def fillSharedMemDictForLocalStep(self, ShMem=None): """ Get dict of shared mem arrays needed for parallel local step. Returns ------- ShMem : dict of RawArray objects """ if ShMem is None: ShMem = dict() if 'nu' in ShMem: fillSharedMemArray(ShMem['nu'], self.Post.nu) fillSharedMemArray(ShMem['kappa'], self.Post.kappa) fillSharedMemArray(ShMem['m'], self.Post.m) fillSharedMemArray(ShMem['beta'], self.Post.beta) fillSharedMemArray(ShMem['E_logL'], self._E_logL('all')) else: ShMem['nu'] = numpyToSharedMemArray(self.Post.nu) ShMem['kappa'] = numpyToSharedMemArray(self.Post.kappa) # Post.m is strided, so we need to copy it to do shared mem. ShMem['m'] = numpyToSharedMemArray(self.Post.m.copy()) ShMem['beta'] = numpyToSharedMemArray(self.Post.beta.copy()) ShMem['E_logL'] = numpyToSharedMemArray(self._E_logL('all')) return ShMem
def fillSharedMemDictForLocalStep(self, ShMem=None): """ Get dict of shared mem arrays needed for parallel local step. Returns ------- ShMem : dict of RawArray objects """ if ShMem is None: ShMem = dict() if 'nu' in ShMem: fillSharedMemArray(ShMem['nu'], self.Post.nu) fillSharedMemArray(ShMem['M'], self.Post.M) fillSharedMemArray(ShMem['cholV'], self._cholV('all')) fillSharedMemArray(ShMem['cholB'], self._cholB('all')) fillSharedMemArray(ShMem['E_logdetL'], self._E_logdetL('all')) else: ShMem['nu'] = numpyToSharedMemArray(self.Post.nu) ShMem['M'] = numpyToSharedMemArray(self.Post.M) ShMem['cholV'] = numpyToSharedMemArray(self._cholV('all')) ShMem['cholB'] = numpyToSharedMemArray(self._cholB('all')) ShMem['E_logdetL'] = numpyToSharedMemArray(self._E_logdetL('all')) return ShMem