| Processor/Node/Rank Information | |
| int CkMyPe(): | Returns the processor number for the processor it is called on (0 through P-1 where P is the number of processors available to the application). |
| int CkNumPes(): | Returns the number of processors available to the application. |
| int CkMyNode(): | Returns the node number of the node it was called on (0 through N-1 where N is the number of nodes available to the application) and a node is defined as a single address space. |
| int CkNumNodes(): | Returns the number of nodes available to the application. |
| int CkMyRank(): | Returns the rank number of the processor it was called on. The rank of a processor is its number within the node (address space) starting at 0. For example, if a single node contains four processors (i.e. a node size of four), the processors' rank numbers would be 0 through 3 with each having a unique value. |
| int CkNodeSize(): | Returns the number of processors within the node it was called. on. |
| int CkNodeFirst(int nodeNumber): | Returns the processor number of the processor at rank zero within the specified node (address space). |
| int CkNodeOf(int procNumber): | Returns the node number of the specified processor. |
| int CkRankOf(int procNumber): | Returns the rank number of the specified processor. |
| Program Termination | |
| void CkExit(): | This function causes the Charm++ application to terminate. The call does not return. All other processors to notified that execution of the application should end. |
| void CkExitAfterQuiescence(): | Informs the Charm++ Runtime System that the Charm++ application should exit if quiescence is detected. Quiescence is described in Section 3.13: Quiescence Detection of the The Charm++ Programming Language Manual. |
| void CkAbort(const char* message): | This function causes the Charm++ application to abort. The speicified message is displayed before the application terminates. This function does not return. |
| Timing Functions | |
| double CkCpuTimer(): | Returns the value of the system timer (in seconds). The system timer is started when the application begins and measures processor time (both user and system time). |
| double CkWallTimer(): | Returns the amount of time that has elapsed since the application started from the wall clock timer (in seconds). |
| double CkTimer(): | Aliases to either CkCpuTimer() or CkWallTimer() depending on the system being used. Typlically, dedicated machines (i.e. program has complete use of CPU such as ASCI Red) this function aliases to CkWallTimer(). For machines which have multiple processes sharing the same CPU (such as a workstation), this function aliases to CkCpuTimer(). |