|
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Test Message Passing Interface for cluster paralleling.
- Created on Wed Nov 7 17:26:40 2018
-
- @author: ljia
- """
-
- from mpi4py import MPI
-
- comm = MPI.COMM_WORLD
- rank = comm.Get_rank()
-
- import numpy as np
- import time
- size = comm.Get_size()
- numDataPerRank = 10
- data = None
- if rank == 0:
- data = np.linspace(1, size * numDataPerRank, size * numDataPerRank)
-
- recvbuf = np.empty(numDataPerRank, dtype='d')
- comm.Scatter(data, recvbuf, root=0)
- recvbuf += 1
- print('Rank: ', rank, ', recvbuf received: ', recvbuf, ', size: ', size, ', time: ', time.time())
-
- #if rank == 0:
- # data = {'key1' : [1,2, 3],
- # 'key2' : ( 'abc', 'xyz')}
- #else:
- # data = None
- #
- #data = comm.bcast(data, root=0)
- #print('Rank: ',rank,', data: ' ,data)
-
- #if rank == 0:
- # data = {'a': 7, 'b': 3.14}
- # comm.send(data, dest=1)
- #elif rank == 1:
- # data = comm.recv(source=0)
- # print('On process 1, data is ', data)
-
- #print('My rank is ', rank)
-
- #for i in range(0, 100000000):
- # print(i)
|