Next: Cache Variables, Previous: Backend Developer's Reference, Up: Top [Contents][Index]
The coNCePTuaL compiler ( ncptl) honors the following environment variables:
Name a default backend for the compiler to use. For example,
setting NCPTL_BACKEND to
‘c_udgram’ tells ncptl to use the
c_udgram
backend unless the
--backend compiler option
designates a different backend. See Compiling
coNCePTuaL programs, for more information.
Specify a colon-separated list of directories in which to search for compiler backends. See Compiling coNCePTuaL programs, for more information.
The following environment variables are honored when running a coNCePTuaL program (any backend):
Specify the minimum number of seconds between log-file checkpoints (default: 60). The coNCePTuaL run-time library buffers logged data in memory because coNCePTuaL programs are not restricted to writing data in a top-to-bottom, left-to-right format. The following program, for example, writes row 9 , column 2 before writing row 5 , column 1:
FOR EACH i IN {1, ..., 10} {IF i IS EVEN THEN TASK 0 LOGS i AS "Even numbers" THEN TASK 0 LOGS i AS "All numbers"}
Buffering data in memory enables that sort of “two-dimensional”
logging. However, it is not robust to computer crashes or
uncatchable signals (e.g., SIGKILL
).
Consequently, every
LOGS
statement (see Writing to a log
file) that is executed at least NCPTL_CHECKPOINT seconds
after the previous one forces the coNCePTuaL run-time library to
write its partial data to the log file. Specifically, the library
flushes its partial-data buffers then rewinds the write pointer to
the beginning of that partial data. Hence, the partial data is
overwritten by a later checkpoint or by the complete data set.
Smaller values of NCPTL_CHECKPOINT provide more robustness to crashes and uncatchable signals. Larger values put less stress on the filesystem. As a special case, if NCPTL_CHECKPOINT is set to ‘0’ then log-file checkpointing is disabled altogether.
If set to ‘1’, more quickly initialize the run-time
library by skipping the timer calibration and measurement steps. As
a consequence, all timing measurements will be meaningless.
NCPTL_FAST_INIT may be
useful during the development of a coNCePTuaL program or compiler
backend to enable shorter turnaround times. If set to
‘0’, NCPTL_FAST_INIT forces a
thorough initialization even for backends that do not rely on
timing measurements, for instance the
picl
backend (see The picl backend). See
Variables
and data types, for more information.
Artificially delay each log-file open and flush operation by a random number of milliseconds in the range 0… NCPTL_LOG_DELAY (default: ‘0’). For example, if 1000 CPUs share a single filesystem, an NCPTL_LOG_DELAY of ‘2000’ (i.e., 2 seconds) will probabilistically ensure that a log-file creation request will be issued only once every 2000/1000 = 2 milliseconds instead of all at once. NCPTL_LOG_DELAY is intended to help coNCePTuaL programs run atop broken filesystems that are unable to handle large numbers of concurrent accesses—an all-too-common problem on large-scale workstation clusters and parallel computers in which hundreds or thousands of diskless compute nodes compete for access to the same filesystem.
Limit the set of processes that produce log files. NCPTL_LOG_ONLY accepts a comma-separated list of dash-separated process ranges such as ‘0-3,12-16,24,25,32-48’. Only processes included in the list produce log files. See Running coNCePTuaL programs, for more information.
If set, inhibit the use of fork()
, system()
,
popen()
, and other process-spawning
functions. The result is that some information will be omitted from
the log-file prologue. NCPTL_NOFORK is intended to
be used on systems in which such functions corrupt messaging-layer
state, hang or crash processes, or wreak other such havoc.
Next: Cache Variables, Previous: Backend Developer's Reference, Up: Top [Contents][Index]