OpenAtom  Version1.5a
Ortho Class Reference

For definition of CkDataMsg. More...

#include <ortho.h>

Inheritance diagram for Ortho:
CBase_Ortho

Public Member Functions

 Ortho ()
 Default empty constructor. For?
 
 Ortho (CkMigrateMessage *m)
 
 Ortho (int m, int n, CLA_Matrix_interface matA1, CLA_Matrix_interface matB1, CLA_Matrix_interface matC1, CLA_Matrix_interface matA2, CLA_Matrix_interface matB2, CLA_Matrix_interface matC2, CLA_Matrix_interface matA3, CLA_Matrix_interface matB3, CLA_Matrix_interface matC3, orthoConfig &_cfg, CkArrayID step2Helper, int timeKeep, CkGroupID _oMCastGID, CkGroupID _oRedGID)
 New functions necessary for using CLA_Matrix /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////.
 
void makeSections (const pc::pcConfig &cfgSymmPC, const pc::pcConfig &cfgAsymmPC, CkArrayID symAID, CkArrayID asymAID)
 Trigger the creation of appropriate sections of paircalcs to talk to. Also setup internal comm sections. More...
 
void start_calc (CkReductionMsg *msg)
 Symmetric PCs contribute data that is summed via this reduction to deposit a portion of the S matrix with this ortho, triggering S->T.
 
void do_iteration (void)
 Triggers the matrix multiplies in step 1 of an ortho iteration. More...
 
void do_iteration (orthoMtrigger *m)
 Used when array broadcasts in ortho are delegated to comlib/CkMulticast so as to not involve all PEs in bcast.
 
void step_2 ()
 Triggers step 2, and optionally step 3 (if ortho helpers are being used)
 
void recvStep2 (CkDataMsg *msg)
 Receives the results of the call to OrthoHelper from step_2. More...
 
void step_3 ()
 Triggers step 3 in the S->T process. More...
 
void tolerance_check ()
 Computes square of the residuals and contributes to a reduction rooted at Ortho(0,0)::collect_error() More...
 
void collect_error (CkReductionMsg *msg)
 Computes the RMS error and either launches the next ortho iteration (if needed) or calls collect_results.
 
void collect_results (orthoMtrigger *m)
 Used when ortho redn/bcasts are delegated to comlib/CkMulticast because charm array broadcasts involve all PEs.
 
void collect_results (void)
 Computes walltimes, prints simulation status msgs and calls resume() if more openatom iterations are needed. More...
 
void resume ()
 Sends results (T matrix) to the symm PCs (and also the asymms if this is dynamics) More...
 
void sendOrthoTtoAsymm ()
 Used in dynamics, to send the results of S->T to the asymm paircalc instance which will use them.
 
void acceptSectionLambda (CkReductionMsg *msg)
 
void gamma_done ()
 Used in dynamics, to accept computed gamma and send it to the asymm PC instance. Also sends T if it hasnt yet been sent. More...
 
double array_diag_max (int sizem, int sizen, internalType *array)
 S should be equal to 2I. This returns max value of deviation from that in this ortho's portion of the S matrix. More...
 
void maxCheck (CkReductionMsg *msg)
 Called on ortho(0,0). Checks if PsiV update is needed based on the max deviation in S received via a redn across all orthos. Notifies GSpaceDriver if so. Called periodically in start_calc only for dynamics.
 
void resumeV (CkReductionMsg *msg)
 Once all GSpaceDriver chares are notified, they resume Ortho execution via a redn broadcast to this method. More...
 
void print_results (void)
 Dumps the T matrix to an appropriately named file.
 
virtual void pup (PUP::er &p)
 pack/unpack method More...
 
void orthoCookieinit (initCookieMsg *msg)
 
void all_ready ()
 called from each CLA_Matrix array (3 per multiplication, 3 mults)
 
void ready ()
 Startup/Init synchronization. When all elements (PC, CLA_Matrix etc) are ready, first iteration is triggered.
 

Static Public Member Functions

static void step_2_cb (void *obj)
 Static methods used as callbacks. Could be replaced by CkCallbacks.
 
static void step_3_cb (void *obj)
 
static void gamma_done_cb (void *obj)
 
static void tol_cb (void *obj)
 

Public Attributes

bool parallelStep2
 
bool step2done
 
bool step3done
 

Private Attributes

orthoConfig cfg
 
int timeKeep
 
internalType * orthoT
 
internalType * ortho
 
int numGlobalIter
 
int iterations
 
CProxySection_Ortho multiproxy
 
CkSectionInfo orthoCookie
 
int num_ready
 
bool got_start
 
int lbcaught
 
PCSectionManager symmSectionMgr
 Section of symmetric PC chare array used by an Ortho chare.
 
PCSectionManager asymmSectionMgr
 Section of asymmetric PC chare array used by an Ortho chare.
 
CkGroupID oMCastGID
 Group IDs for the multicast manager groups.
 
CkGroupID oRedGID
 
CProxy_OrthoHelper step2Helper
 The proxy of the step 2 helper chare array.
 
bool toleranceCheckOrthoT
 
internalType * A
 
internalType * B
 
internalType * C
 
internalType * tmp_arr
 
int step
 
int m
 
int n
 
double invsqr_tolerance
 
int invsqr_max_iter
 
CLA_Matrix_interface matA1
 
CLA_Matrix_interface matB1
 
CLA_Matrix_interface matC1
 
CLA_Matrix_interface matA2
 
CLA_Matrix_interface matB2
 
CLA_Matrix_interface matC2
 
CLA_Matrix_interface matA3
 
CLA_Matrix_interface matB3
 
CLA_Matrix_interface matC3
 

Detailed Description

For definition of CkDataMsg.

Definition at line 105 of file ortho.h.


The documentation for this class was generated from the following files: