PPL Logo

FuncCkLoop Class Reference

#include <CkLoop.h>

Inheritance diagram for FuncCkLoop:

Inheritance graph
[legend]
Collaboration diagram for FuncCkLoop:

Collaboration graph
[legend]

Public Member Functions

 FuncCkLoop (int mode_, int numThreads_)
 FuncCkLoop (CkMigrateMessage *m)
 ~FuncCkLoop ()
void registerHelper (HelperNotifyMsg *msg)
void createPThreads ()
void exit ()
void init (int mode_, int numThreads_)
int getNumHelpers ()
CkLoop_sched getSchedPolicy ()
void setSchedPolicy (CkLoop_sched schedPolicy)
void parallelizeFunc (HelperFn func, int paramNum, void *param, int numChunks, int lowerRange, int upperRange, int sync=1, void *redResult=NULL, REDUCTION_TYPE type=CKLOOP_NONE, CallerFn cfunc=NULL, int cparamNum=0, void *cparam=NULL)
void parallelizeFuncHybrid (float sf, HelperFn func, int paramNum, void *param, int numChunks, int lowerRange, int upperRange, int sync=1, void *redResult=NULL, REDUCTION_TYPE type=CKLOOP_NONE, CallerFn cfunc=NULL, int cparamNum=0, void *cparam=NULL)
void destroyHelpers ()
void reduce (void **redBufs, void *redBuf, REDUCTION_TYPE type, int numChunks)
void pup (PUP::er &p)

Static Public Attributes

static int MAX_CHUNKS = 64

Private Attributes

int mode
int numHelpers
FuncSingleHelper ** helperPtr
CkLoop_sched schedPolicy

Friends

class FuncSingleHelper

Detailed Description

Definition at line 228 of file CkLoop.h.


Constructor & Destructor Documentation

FuncCkLoop::FuncCkLoop ( int  mode_,
int  numThreads_ 
)

Definition at line 148 of file CkLoop.C.

References init().

Here is the call graph for this function:

FuncCkLoop::FuncCkLoop ( CkMigrateMessage m  ) 

Definition at line 188 of file CkLoop.C.

FuncCkLoop::~FuncCkLoop (  )  [inline]

Definition at line 245 of file CkLoop.h.

References BGConverse::CkMyNodeSize(), CmiDestroyLock(), CmiFree(), helperPtr, and loop_info_inited_lock.

Here is the call graph for this function:


Member Function Documentation

void FuncCkLoop::registerHelper ( HelperNotifyMsg msg  ) 

void FuncCkLoop::createPThreads (  ) 

Definition at line 101 of file CkLoop.C.

References allConds, allLocks, attr, CmiNumCores(), CmiOnCore(), gCrtCnt, mainHelperPhyRank, malloc(), ndhThreads, ndhThreadWork(), numHelpers, and numPhysicalPEs.

Referenced by init().

Here is the call graph for this function:

Here is the caller graph for this function:

void FuncCkLoop::exit (  ) 

Definition at line 123 of file CkLoop.C.

References allConds, allLocks, exitFlag, free(), mode, ndhThreads, and numHelpers.

Here is the call graph for this function:

void FuncCkLoop::init ( int  mode_,
int  numThreads_ 
)

Definition at line 152 of file CkLoop.C.

References CKLOOP_LIST, CKLOOP_NODE_QUEUE, CKLOOP_TREE, BGConverse::CkMyNode(), BGConverse::CkMyNodeSize(), BGConverse::CkNodeFirst(), CmiCreateLock(), createPThreads(), helperPtr, loop_info_inited_lock, MAX_CHUNKS, mode, numHelpers, schedPolicy, and traceRegisterUserEvent().

Referenced by FuncCkLoop(), and pup().

Here is the call graph for this function:

Here is the caller graph for this function:

int FuncCkLoop::getNumHelpers (  )  [inline]

Definition at line 265 of file CkLoop.h.

References numHelpers.

Referenced by ndhThreadWork().

Here is the caller graph for this function:

CkLoop_sched FuncCkLoop::getSchedPolicy (  )  [inline]

Definition at line 268 of file CkLoop.h.

References schedPolicy.

Referenced by ndhThreadWork(), and RegisterCkLoopHdlrs().

Here is the caller graph for this function:

void FuncCkLoop::setSchedPolicy ( CkLoop_sched  schedPolicy  )  [inline]

Definition at line 271 of file CkLoop.h.

References CKLOOP_NODE_QUEUE.

Referenced by RegisterCkLoopHdlrs().

Here is the caller graph for this function:

void FuncCkLoop::parallelizeFunc ( HelperFn  func,
int  paramNum,
void *  param,
int  numChunks,
int  lowerRange,
int  upperRange,
int  sync = 1,
void *  redResult = NULL,
REDUCTION_TYPE  type = CKLOOP_NONE,
CallerFn  cfunc = NULL,
int  cparamNum = 0,
void *  cparam = NULL 
)

void FuncCkLoop::parallelizeFuncHybrid ( float  sf,
HelperFn  func,
int  paramNum,
void *  param,
int  numChunks,
int  lowerRange,
int  upperRange,
int  sync = 1,
void *  redResult = NULL,
REDUCTION_TYPE  type = CKLOOP_NONE,
CallerFn  cfunc = NULL,
int  cparamNum = 0,
void *  cparam = NULL 
)

void FuncCkLoop::destroyHelpers (  ) 

Definition at line 495 of file CkLoop.C.

References _charmHandlerIdx, Converse::CkMyPe(), CmiMyRank(), CmiPushPE(), ForChareMsg, numHelpers, envelope::setEpIdx(), envelope::setMsgtype(), envelope::setSrcPe(), and UsrToEnv().

Referenced by RegisterCkLoopHdlrs().

Here is the call graph for this function:

Here is the caller graph for this function:

void FuncCkLoop::reduce ( void **  redBufs,
void *  redBuf,
REDUCTION_TYPE  type,
int  numChunks 
)

Definition at line 509 of file CkLoop.C.

References CKLOOP_DOUBLE_MAX, CKLOOP_DOUBLE_SUM, CKLOOP_FLOAT_SUM, and CKLOOP_INT_SUM.

Referenced by parallelizeFunc(), and parallelizeFuncHybrid().

Here is the caller graph for this function:

void FuncCkLoop::pup ( PUP::er p  ) 

Definition at line 546 of file CkLoop.C.

References init(), PUP::er::isUnpacking(), mode, and numHelpers.

Here is the call graph for this function:


Friends And Related Function Documentation

friend class FuncSingleHelper [friend]

Definition at line 229 of file CkLoop.h.


Field Documentation

int FuncCkLoop::MAX_CHUNKS = 64 [static]

Definition at line 232 of file CkLoop.h.

Referenced by init(), parallelizeFunc(), parallelizeFuncHybrid(), and RegisterCkLoopHdlrs().

int FuncCkLoop::mode [private]

Definition at line 234 of file CkLoop.h.

Referenced by exit(), init(), parallelizeFunc(), and pup().

Definition at line 237 of file CkLoop.h.

Referenced by init(), parallelizeFunc(), RegisterCkLoopHdlrs(), registerHelper(), and ~FuncCkLoop().

Definition at line 238 of file CkLoop.h.

Referenced by getSchedPolicy(), init(), parallelizeFunc(), and RegisterCkLoopHdlrs().


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

Generated on Mon Sep 21 08:25:07 2020 for Charm++ by  doxygen 1.5.5