OpenAtom  Version1.5a
Uber

Ubers provide a multidimensional collection of CkArray proxies such that a complete instance of all objects necessary for a simulation are accessible at each unique tuple of indices. More...

Functions

AtomImaptable resize (config.numInstances)
 
UgSpacePlaneProxy reserve (config.numInstances)
 

Variables

 excludePes =NULL
 
 excludePes =NULL
 
CkVec< CProxy_PIBeadAtoms > UPIBeadAtomsProxy
 
CkVec
< CProxy_CP_State_GSpacePlane > 
UgSpacePlaneProxy
 
CkVec< CProxy_GSpaceDriver > UgSpaceDriverProxy
 
CkVec
< CProxy_CP_State_ParticlePlane > 
UparticlePlaneProxy
 
CkVec
< CProxy_CP_State_RealParticlePlane > 
UrealParticlePlaneProxy
 
CkVec
< CProxy_CP_State_RealSpacePlane > 
UrealSpacePlaneProxy
 
CkVec
< CProxy_CP_Rho_RealSpacePlane > 
UrhoRealProxy
 
CkVec< CProxy_CP_Rho_GSpacePlane > UrhoGProxy
 
CkVec< CProxy_CP_Rho_RHartExt > UrhoRHartExtProxy
 
CkVec< CProxy_CP_Rho_GHartExt > UrhoGHartExtProxy
 
CkVec< CProxy_AtomsCompute > UatomsComputeProxy
 
CkVec< CProxy_AtomsCache > UatomsCacheProxy
 
CkVec< CProxy_EnergyGroup > UegroupProxy
 
CkVec< CProxy_FFTcache > UfftCacheProxy
 
CkVec< CProxy_StructFactCache > UsfCacheProxy
 
CkVec< CProxy_StructureFactor > UsfCompProxy
 
CkVec< CProxy_eesCache > UeesCacheProxy
 
CkVec
< CProxy_CP_LargeSP_RhoGSpacePlane > 
UlsRhoGProxy
 
CkVec
< CProxy_CP_LargeSP_RhoRealSpacePlane > 
UlsRhoRealProxy
 
CkVec< UberCollectionUberAlles
 
CkVec< PeList * > UavailProcs
 

Detailed Description

Ubers provide a multidimensional collection of CkArray proxies such that a complete instance of all objects necessary for a simulation are accessible at each unique tuple of indices.

Uber proxies for all the things which change per step

Indexed by PathIntegral Bead. Each Bead has its own set of proxies. Charm driver startup will construct a different set of arrays for each bead.

There is a small flexibility vs performance tradeoff. If we assume beads are never co-mapped, then the old readonly can be overwritten locally on each processor (e.g. gSpacePlaneProxy=UgSpacePlaneProxy[mybead];) Otherwise we force a slight indirection penalty to lookup U*Proxy[mybead] for every send. In practice this is probably noise compared to the real expense of sending a message, but it does seem a little silly for the default case where there is only one bead.