Example #1
0
 def __len__(self):
     if self == _mpi.COMM_NULL:
         return 0
     elif _mpi.comm_test_inter(self):
         return _mpi.comm_remote_size(self)
     else:
         return _mpi.comm_size(self)
Example #2
0
 def __len__(self):
     if self == _mpi.COMM_NULL:
         return 0
     elif _mpi.comm_test_inter(self):
         return _mpi.comm_remote_size(self)
     else:
         return _mpi.comm_size(self)
Example #3
0
 def Gather(self, sendbuf, recvbuf=None, root=0):
     sendbuf, sfastmode = _mpi.make_buf(sendbuf)
     recvbuf, rfastmode = _mpi.make_buf(recvbuf)
     if sfastmode or rfastmode:
         _mpi.gather(sendbuf, recvbuf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root != _mpi.ROOT and root != _mpi.PROC_NULL:
                 sendbuf = serializer.dump(sendbuf)
             else:
                 sendbuf = None
         else:
             sendbuf = serializer.dump(sendbuf)
         recvbuf = _mpi.gather_string(sendbuf, recvbuf, root, self)
         if recvbuf is not None:
             recvbuf = map(serializer.load, recvbuf)
         return recvbuf
Example #4
0
 def Gather(self, sendbuf, recvbuf = None, root = 0):
     sendbuf, sfastmode = _mpi.make_buf(sendbuf)
     recvbuf, rfastmode = _mpi.make_buf(recvbuf)
     if sfastmode or rfastmode:
         _mpi.gather(sendbuf, recvbuf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root != _mpi.ROOT and root != _mpi.PROC_NULL:
                 sendbuf = serializer.dump(sendbuf)
             else:
                 sendbuf = None
         else:
             sendbuf = serializer.dump(sendbuf)
         recvbuf = _mpi.gather_string(sendbuf, recvbuf, root, self)
         if recvbuf is not None:
             recvbuf = map(serializer.load, recvbuf)
         return recvbuf
Example #5
0
 def Bcast(self, buf=None, root=0):
     buf, fastmode = _mpi.make_buf(buf)
     if fastmode:
         _mpi.bcast(buf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root == _mpi.ROOT:
                 buf = serializer.dump(buf)
             else:
                 buf = None
         elif root == _mpi.comm_rank(self):
             buf = serializer.dump(buf)
         else:
             buf = None
         buf = _mpi.bcast_string(buf, root, self)
         if buf is not None:
             buf = serializer.load(buf)
         return buf
Example #6
0
 def Bcast(self, buf = None, root = 0):
     buf, fastmode = _mpi.make_buf(buf)
     if fastmode:
         _mpi.bcast(buf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root == _mpi.ROOT:
                 buf = serializer.dump(buf)
             else:
                 buf = None
         elif root == _mpi.comm_rank(self):
             buf = serializer.dump(buf)
         else:
             buf = None
         buf = _mpi.bcast_string(buf, root, self)
         if buf is not None:
             buf = serializer.load(buf)
         return buf
Example #7
0
 def Scatter(self, sendbuf=None, recvbuf=None, root=0):
     sendbuf, sfastmode = _mpi.make_buf(sendbuf)
     recvbuf, rfastmode = _mpi.make_buf(recvbuf)
     if sfastmode or rfastmode:
         _mpi.scatter(sendbuf, recvbuf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root == _mpi.ROOT:
                 sendbuf = map(serializer.dump, sendbuf)
             else:
                 sendbuf = None
         elif root == _mpi.comm_rank(self):
             sendbuf = map(serializer.dump, sendbuf)
         else:
             sendbuf = None
         recvbuf = _mpi.scatter_string(sendbuf, recvbuf, root, self)
         if recvbuf is not None:
             recvbuf = serializer.load(recvbuf)
         return recvbuf
Example #8
0
 def Scatter(self, sendbuf = None, recvbuf = None, root = 0):
     sendbuf, sfastmode = _mpi.make_buf(sendbuf)
     recvbuf, rfastmode = _mpi.make_buf(recvbuf)
     if sfastmode or rfastmode:
         _mpi.scatter(sendbuf, recvbuf, root, self)
         return
     else:
         serializer = self.SERIALIZER
         if _mpi.comm_test_inter(self):
             if root == _mpi.ROOT:
                 sendbuf = map(serializer.dump, sendbuf)
             else:
                 sendbuf = None
         elif root == _mpi.comm_rank(self):
             sendbuf = map(serializer.dump, sendbuf)
         else:
             sendbuf = None
         recvbuf = _mpi.scatter_string(sendbuf, recvbuf, root, self)
         if recvbuf is not None:
             recvbuf = serializer.load(recvbuf)
         return recvbuf
Example #9
0
 def Is_intra(self):
     return not _mpi.comm_test_inter(self)
Example #10
0
 def Is_inter(self):
     return _mpi.comm_test_inter(self)
Example #11
0
 def Is_intra(self):
     return not _mpi.comm_test_inter(self)
Example #12
0
 def Is_inter(self):
     return _mpi.comm_test_inter(self)