Copy and Paste  -   An Application to Copy/Paste Text  

 
S.No 5730 Name Abc Date/Time 20-Jun-2023 08:57:46 AM

Copy text from below

import numpy as np

import time

from mpi4py import MPI

 

def generate_matrices(N):

    A = np.random.randint(0, 10, (N, N))

    B = np.random.randint(0, 10, (N, N))

    return A, B

 

def sequential_matrix_multiply(A, B):

    return np.dot(A, B)

 

def parallel_matrix_multiply(A, B):

    comm = MPI.COMM_WORLD

    rank = comm.Get_rank()

    size = comm.Get_size()

 

    N = A.shape[0]

 

    # Scatter matrix A to all other processes

    local_A = np.zeros((N // size, N), dtype=np.int)

    local_A = np.array_split(A, size)[rank]

    comm.Scatter(A, local_A, root=0)

 

    # Scatter matrix B to all processes

    local_B = np.zeros((N, N), dtype=np.int)

    comm.Scatter(B, local_B, root=0)

 

    # Perform local matrix multiplication

    local_C = np.dot(local_A, local_B)

 

    # Gather the results from all processes

    global_C = np.zeros((N, N), dtype=np.int)

    comm.Allgather(local_C, global_C)

 

    return global_C

 

# Step 1: Matrix Generation

N = 100  # Change the matrix size as needed

A, B = generate_matrices(N)

 

# Step 2: Sequential Matrix Multiplication

start_time = time.time()

sequential_result = sequential_matrix_multiply(A, B)

sequential_time = time.time() - start_time

 

# Step 3: MPI Initialization

comm = MPI.COMM_WORLD

rank = comm.Get_rank()

size = comm.Get_size()

 

# Print the received portion of matrix A on each process

print(f"Process {rank} received matrix A:\n{A}")

 

# Print the received portion of matrix B on each process

print(f"Process {rank} received matrix B:\n{B}")

 

# Step 4: Matrix Multiplication

start_time = time.time()

parallel_result = parallel_matrix_multiply(A, B)

parallel_time = time.time() - start_time

 

# Step 5: MPI Reduce

comm.Reduce(sequential_result, parallel_result, op=MPI.SUM, root=0)

 

# Step 6: Performance Analysis

if rank == 0:

    print(f"Sequential time: {sequential_time} seconds")

    print(f"Parallel time: {parallel_time} seconds")

    print("Sequential result:")

    print(sequential_result)

    print("Parallel result:")

    print(parallel_result)





comments powered by Disqus
NEW ENTRIES
S.No Name Entry Time/Date
5904 David\'s RV P 26-Feb-2024 11:15:44 AM
5903 Child HOT 22-Feb-2024 06:43:26 AM
5902 Dumpsterfl 20-Feb-2024 01:33:22 PM
5901 Danielle Simpson 18-Feb-2024 03:26:15 AM
5900 KID Vids 05-Feb-2024 08:43:49 AM
5899 02-Feb-2024 07:00:42 PM
5898 pool 26-Jan-2024 06:49:53 PM
5897 vvvv 24-Jan-2024 08:50:49 PM
5896 qqqqq 24-Jan-2024 08:26:57 PM
5895 addmaxexport 20-Jan-2024 06:39:13 PM
5894 geophrmarx 20-Jan-2024 06:38:48 PM
5893 readymedicin 20-Jan-2024 06:38:01 PM
5892 18-Jan-2024 10:37:50 AM
5891 Full-CP 17-Jan-2024 12:09:21 PM
5890 ss 17-Jan-2024 10:12:18 AM
5889 NEW KIDs 16-Jan-2024 08:06:16 AM
5888 Test 2 13-Jan-2024 11:57:53 AM
5887 Child Vids 09-Jan-2024 06:40:28 AM
5886 EntranceIQ 05-Jan-2024 02:04:27 PM
5885 New Child 03-Jan-2024 07:13:03 AM
5884 xyz 31-Dec-2023 04:09:19 AM
5883 aaaaaa 29-Dec-2023 01:24:48 AM
5882 Saragamasa 29-Dec-2023 01:19:17 AM
5881 copyWithin() 28-Dec-2023 09:21:58 AM
5880 Paster 27-Dec-2023 10:02:58 PM
5879 imagePicker 22-Dec-2023 10:33:52 PM
5878 Test 1 22-Dec-2023 11:07:15 AM
5877 Test 2 22-Dec-2023 11:06:28 AM
5876 Test 3 22-Dec-2023 11:04:29 AM
5875 hamza jadoon 21-Dec-2023 10:23:58 AM

[First] [Prev] 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 [Next] [Last]
 
web counter
web counter


To report any error messages or bugs, or other issues, please send email at: info@pakproject.com