def __init__(self, pobj, just_list = False, attr='_grids',
round_robin=False):
ObjectIterator.__init__(self, pobj, just_list, attr=attr)
# pobj has to be a ParallelAnalysisInterface, so it must have a .comm
# object.
self._offset = pobj.comm.rank
self._skip = pobj.comm.size
# Note that we're doing this in advance, and with a simple means
# of choosing them; more advanced methods will be explored later.
if self._use_all:
self.my_obj_ids = np.arange(len(self._objs))
else:
if not round_robin:
self.my_obj_ids = np.array_split(
np.arange(len(self._objs)), self._skip)[self._offset]
else:
self.my_obj_ids = np.arange(len(self._objs))[self._offset::self._skip]
评论列表
文章目录