Previous: , Up: Reserved Words   [Contents][Index]


A.2 Predeclared variables

coNCePTuaL predeclares a set of variables that programs can use but not redeclare. These variables and their descriptions are listed below.

bit_errors Total number of bit errors observed

bytes_received Total number of bytes received

bytes_sent Total number of bytes sent

elapsed_usecs Elapsed time in microseconds

msgs_received Total number of messages received

msgs_sent Total number of messages sent

num_tasks Number of tasks running the program

total_bytes Sum of bytes sent and bytes received

total_msgs Sum of messages sent and messages received

As should be evident from their descriptions, coNCePTuaL’s predeclared variables are updated dynamically. Each access can potentially return a different result. Furthermore, unlike user-declared variables, predeclared variables in can have a different value on each task.

The following notes clarify the semantics that relate to the updating of some of the preceding variables:

ASYNCHRONOUSLY (see Blocking semantics) A message that is sent ASYNCHRONOUSLY immediately increments each of msgs_sent and total_msgs by 1 and each of bytes_sent and total_bytes by the message size. A message that is received ASYNCHRONOUSLY increments none of the predeclared variables. However, after the receiving task AWAITS COMPLETION (see Awaiting completion) it increments each of msgs_received and total_msgs by 1 and each of bytes_received and total_bytes by the message size.

MULTICASTS (see Multicasting) None of the byte or message variables are updated as part of a multicast operation, regardless of how the underlying messaging layer implements multicasts.

SYNCHRONIZES (see Synchronizing) None of the byte or message variables are updated as part of a barrier synchronization, regardless of how the underlying messaging layer implements barriers.


Previous: , Up: Reserved Words   [Contents][Index]

Scott Pakin, pakin@lanl.gov