Following is the list of environment variables accessed by the Titanium runtime system. All are optional except TI_THREADS, which is required on all threaded backends TI_THREADS - the processor thread mapping for parallel backends Should be a list of fractions, one for each "box" (distributed node) of the form "/" (the denominator is optional and assumed to be equal to the numerator) For shared memory, this looks something like "8" or "8/8" (for an SMP) For a 4-way cluster of uniprocessors, "1 1 1 1" (or "1/1 1/1 1/1 1/1") For a cluster of smps, something like "2 2 4 4" TI_NOGC - set to disable garbage collection TI_STACK_SIZE - set to a count of bytes to use as the program stack size for pthreads-based backends. TI_GCSTATS - print information about gc-memory utilization at exit TI_PAGESTATS - output memory page information at exit TI_NOCOALESCE - disable memory region coalescing TI_REGION_CLOBBER - When set to a value between 0 and 255, every byte of memory freed in Region.delete() operations is overwritten with that value. This can be useful for detecting use of freed data, in the absense of full region checking. TI_REGION_LEAK - When set, memory freed in Region.delete() operations is permanently leaked, ensuring it is not re-allocated during subsequent allocations (basically turns all Region.delete() operations into no-ops). TI_FREEZE - freeze the worker processes and make them wait for a debugger TI_BACKEND_SILENT - suppress diagnostic startup messages on distributed backends TI_POLITE_SYNC - enable "polite", low-performance synchronization algorithms TI_PREALLOC - this variable is set to an integer N, where N is the maximum number of KB for a preallocated buffer (use during gather) TI_PIPELINING - this variable is set to 1 if pipelining versions of gather and scatter are used. TI_BARRIERS_VERBOSE - enable verbose barrier debugging output (only available when configured with --enable-debug) TI_DEBUG_ARRAY_COPY - enable verbose output about TiArray.copy() operations (only available when configured with --enable-debug or --enable-trace) ------------------------------------------------------------------- gasnet-* backends only: Many GASNet-specific variables are available for tweaking runtime and communication behavior. See runtime/gasnet/README and runtime/gasnet/*-conduit/README for details. ------------------------------------------------------------------- udp-* & mpi-* backends only: TI_AMSTATS - print various performance statistics about utilization of the AM2 network layer at program exit TI_NETWORKDEPTH - the network depth to use (number of simultaneous outstanding AM2 requests) This can be tuned to your network for optimal latency performance ------------------------------------------------------------------- udp-* backends only: TI_SPAWNFN - a single character denoting the remote job spawning mechanism to use. Options are: G)lunix, R)exec, S)sh remote shell, L)ocal fork()/exec() Rexec spawn only: REXEC_SVRS - list of servers to use for rexec spawn (e.g. "mm35 mm36 mm37 mm38") REXEC_CMD - the rexec command name (default to "rexec") REXEC_OPTIONS - additional options to rexec Ssh spawn only: SSH_SERVERS - list of servers to use for ssh spawn (e.g. "mm35 mm36 mm37 mm38") SSH_CMD - the ssh command to use (default to "ssh") SSH_OPTIONS - additional options to ssh SSH_REMOTE_PATH - the pathname containing the current executable on the worker machines (defaults to the name of the current working directory) AMUDP_FAULT_RATE - used to perform fault-injection testing on the AMUDP layer Can be set to a value ranging from 0.0 to 1.0 that indicates the percentage of UDP packets that should be artificially dropped. This variable should be left unset during normal usage. ------------------------------------------------------------------- Deprecated: GP_TRACER - filename for gp tracing when tc compiled with USE_GP_TRACE (appears this no longer does anything???) TI_TB - use a tree barrier??? (tera-thread backend only) ------------------------------------------------------------------- Notes on configuring your application runtime environment: The user can specify environment settings to be used while running his application, by creating a file called ".tienv" in the same directory as the Titanium application executable and placing an environment variable assignment on each line, of the form: name = value (where name and value may be "quoted" and value may be omitted) The settings in this file are added to the environment at program startup, overriding any settings already there if there are any conflicts. The file is read very early at program startup, so it may include job configuration variables (such as TI_THREADS). This feature works on all the tic backends, but is especially useful for distributed backends (especially the mpi-* backends) on clusters whose job spawning mechanism doesn't correctly propagate environment variables from the console node to the worker nodes (for example, the mpi-launch script on the ROCKS cluster). ------------------------------------------------------------------- tcbuild environment variables: There are a number of environment variables recognized by tcbuild that modify its operation when building Titanium programs. The most important is TCBUILD_FLAGS: TCBUILD_FLAGS - a set of tcbuild flags to be used on every invocation of tcbuild, as if they'd been typed at the beginning of the line (thereby subject to be overridden by subsequent, explicitly provided flags). Useful for saving typing on often-chosed flags. These variables, when present in the environment, affect the operation of tcbuild by overriding defaults established at compiler configure-time: CC - C compiler to use (and for most backends/platforms, also the linker) CXX,MPI_CC - linker to use (for some backends/platforms) CFLAGS, LDFLAGS - flags to give the C compiler and linker MAKE - the Makefile processor to use CLASSLIB - path to search for Titanium source files