Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 9
0
 def Is_intra(self):
     return not _mpi.comm_test_inter(self)
Exemplo n.º 10
0
 def Is_inter(self):
     return _mpi.comm_test_inter(self)
Exemplo n.º 11
0
 def Is_intra(self):
     return not _mpi.comm_test_inter(self)
Exemplo n.º 12
0
 def Is_inter(self):
     return _mpi.comm_test_inter(self)