PE_ENVIRON(5) Last changed: 3-10-98
pe_environ - Programming environment variables
IRIX systems
This man page describes environment variables used when developing and
running MIPSpro 7 Fortran 90 programs on IRIX systems. The
environment variables are grouped by function and platform.
OPENMP FORTRAN API VARIABLES [Toc] [Back] The following environment variables are defined in the OpenMP Fortran
API.
Variable Effect on system
OMP_SCHEDULE Sets the schedule type and (optionally) the chunk size
for DO and PARALLEL DO loops declared with a schedule
of RUNTIME. For these loops, the schedule is set at
run time when the system reads the value of this
environment variable. Valid values for this
environment variable are STATIC, DYNAMIC, and GUIDED.
The default value for this environment variable is
STATIC.
For DO and PARALLEL DO directives that have a schedule
type other than RUNTIME, this environment variable is
ignored.
If the optional chunk size is not set, a chunk size of
1 is assumed, except in the case of a STATIC schedule.
For a STATIC schedule, the default chunk size is set to
the loop iteration space divided by the number of
threads applied to the loop.
Examples:
setenv OMP_SCHEDULE "GUIDED,4"
setenv OMP_SCHEDULE "dynamic"
OMP_NUM_THREADS [Toc] [Back]
Sets the number of threads to use during execution,
unless that number is explicitly changed by calling the
OMP_SET_NUM_THREADS(3) subroutine.
When dynamic adjustment of the number of threads is
enabled, the value of this environment variable is the
maximum number of threads to use. The default value is
the minimum of 8 and the number of CPUs on the system.
Example:
setenv OMP_NUM_THREADS 16
OMP_DYNAMIC Enables or disables dynamic adjustment of the number of
threads available for execution of parallel regions.
If set to TRUE, the number of threads that are used for
executing parallel regions can be adjusted by the run
time environment to best utilize system resources. The
default value is TRUE.
If set to FALSE, dynamic adjustment is disabled.
Example:
setenv OMP_DYNAMIC TRUE
OMP_NESTED Enables or disables nested parallelism.
If set to TRUE, nested parallelism is enabled.
If it is set to FALSE, it is disabled. Default.
Example:
setenv OMP_NESTED TRUE
ORIGIN SERIES VARIABLES [Toc] [Back] The following environment variables are recognized on Origin 2000,
Origin 200, and Cray Origin 2000 systems.
Variable Effect on system
_DSM_BARRIER Controls the barrier implementation within the MP
run-time system. This environment variable accepts one
of the following values:
Value Action
FOP Uses the uncached operations available on
Origin series systems. FOP achieves the best
performance. This requires kernel patch
#1856.
LLSC Uses load-linked (LL), store-conditional (SC)
operations on shared memory.
SHM Uses regular shared memory. Default.
_DSM_MIGRATION Specifies aspects of automatic page migration. This
environment variable accepts one of the following
values:
Value Action
OFF Disables migration. Default.
ON Enables migration for all but explicitly
placed data (using PAGE_PLACE or a data
distribution directive).
ALL_ON Enables migration for all data.
_DSM_MIGRATION_LEVEL
Controls the aggressiveness level of automatic page
migration. This environment variable must be set to an
integer value between 0 (most conservative setting) and
100 (most aggressive). Specifying 0 disables this
feature. The default setting is 100.
_DSM_MUSTRUN Locks each thread to the corresponding CPU. This
environment variable is not set by default.
_DSM_OFF When set to OFF, disables nonuniform memory access
(NUMA) calls. This can be used, for example, to
allocate pages from a particular memory. On Origin
series systems, _DSM_OFF is set to ON by default. This
environment variable is not set by default.
_DSM_PLACEMENT Allocates memory for all stack, data, and text
segments. This environment variable accepts the
following values:
Value Action
FIRST_TOUCH Specifies first-touch data placement.
Default.
ROUND_ROBIN Specifies round-robin data allocation.
_DSM_PPM Specifies the number of processors to use per memory
module. Must be set to an integer value. To use only
one processor per memory module, set this environment
variable to 1.
_DSM_VERBOSE When set, writes messages to stdout about parameters
used during execution to stdout.
_DSM_WAIT Controls how a thread waits for a synchronization
event, such as a lock or a barrier. This environment
variable accepts one of the following values:
Value Action
SPIN Specifies that a thread wait in a loop until
the synchronization event succeeds.
YIELD Specifies that a waiting thread should spin
for a while and invokes sginap(2). This
surrenders the CPU to another waiting process
(if any). Default.
MULTIPROCESSING VARIABLES
The multiprocessing environment variables allow you to set up your
multiprocessing environment. Some of the settings that these
environment variables control can also be set through library
routines. For more information on the multiprocessing library
routines, see MP(3F).
NOTE: Many of the environment variables in the following list are
outmoded. The descriptions for each one indicate the preferred
alternative, if one exists.
Variable Effect on system
MP_SET_NUMTHREADS, MP_BLOCKTIME, MP_SETUP, and NUM_THREADS
Acts as an implicit call to the following library routines:
MP_SET_NUMTHREADS(3F), MP_BLOCKTIME(3F), and MP_SETUP(3F)
(respectively).
The MP_SET_NUMTHREADS environment variable determines the
number of processors across which an array is distributed
during program execution, regardless of the number of
processors physically present on the machine. As its value,
MP_SET_NUMTHREADS accepts one of the following: an integer
between 1 and the number of CPUs on your system; an integer
expression that includes the symbols +, -, min, and max; and
the special keyword all. The keyword all refers to the
total number of CPUs on the machine. The default is either
the number of CPUs on your system or 8.
MP_BLOCKTIME accepts an integer value. MP_SETUP accepts no
values.
Example 1. The following two specifications prevent the
slave threads from autoblocking:
set MP_BLOCKTIME 0 (for sh)
CALL MP_BLOCKTIME (0) (library call)
Example 2. The following setting selects the number of
threads to be two fewer than the total number of CPUs but
always at least one:
setenv MP_SET_NUMTHREADS max(1,all-2) (for csh)
NOTE: The MP_SET_NUMTHREADS and NUM_THREADS environment
variables are outmoded. The preferred alternative is the
OMP_SET_NUMTHREADS environment variable.
MP_SIMPLE_SCHED [Toc] [Back]
Controls simple scheduling of parallel loops. This
environment variable accepts the following values:
Value Action
EQUAL Distributes iterations as equally as possible
across the processors.
BLOCK Distributes iterations in a BLOCK distribution.
If you are using distributed arrays, the default BLOCK. For
all other cases, the default is EQUAL. The critical path
(that is, the largest piece of the iteration space) is the
same in either case.
MP_SUGNUMTHD and MPC_SUGNUMTHD
Enables an additional, asynchronous process that monitors
the system load. This environment variable may be useful on
a system with long-running jobs and varying workloads.
The process that is enabled allows you to vary the number of
threads during execution of some jobs. When idle processors
exist, the number of threads is increased, up to the maximum
specified by MP_SET_NUMTHREADS. When the system load
increases, the number of threads is decreased, possibly to
as few as one. Note that the number of threads being used
is adjusted only at the start of a parallel region (for
example, at a DOACROSS directive); it is not adjusted within
a parallel region. Using this environment variable can
improve overall system throughput. By avoiding excessive
concurrency, this feature can reduce delays at
synchronization points within a single application.
These environment variables are on by default.
NOTE: The MP_SUGNUMTHD and MPC_SUGNUMTHD environment
variables are outmoded. The preferred alternative is the
OMP_DYNAMIC environment variable.
MP_SUGNUMTHD_MIN and MP_SUGNUMTHD_MAX
Limits the effect of MP_SUGNUMTHD. These environment
variables accept an integer value between 1 and the value of
MP_SET_NUMTHREADS. When these environment variables are
set, the number of processors is not lowered below the
MP_SUGNUMTHD_MIN setting and it is not increased beyond the
MP_SUGNUMTHD_MAX setting.
NOTE: The MP_SUGNUMTHD_MIN and MP_SUGNUMTHD_MAX environment
variables are outmoded.
MP_SUGNUMTHD_VERBOSE [Toc] [Back]
Determines whether or not the system writes informational
messages to stderr whenever the process changes the number
of threads in use.
The compiler interprets library calls to MP_NUMTHREAD
as a sign that the application
depends on the number of threads in use, and the number is
frozen upon encountering either of these calls. If
MP_SUGNUMTHD_VERBOSE is set, a message to that effect is
written to stderr.
By default, this environment variable is not set.
NOTE: The MP_SUGNUMTHD_VERBOSE environment variable is
outmoded. The preferred alternative is the _DSM_VERBOSE
environment variable.
MP_STACK_SLAVESIZE [Toc] [Back]
Controls the stack size of slave processes. As its value,
it accepts an integer number that indicates the desired
stack size, in bytes. The default is 16 Mbytes (4 Mbytes
for greater than 64 threads). Slave processes allocate
their local data only onto their stacks. Shared data, even
if allocated on the master's stack, is not counted.
MP_SCHEDTYPE and CHUNK
Specifies the type of scheduling to use on PARALLEL DO loops
with scheduling specified as RUNTIME.
The defaults are the same as those for the DOACROSS
directive clauses. If neither environment variable is set,
SIMPLE scheduling is assumed. If MP_SCHEDTYPE is set and
CHUNK is not set, a CHUNK of 1 is assumed. If CHUNK is set,
but MP_SCHEDTYPE is not set, DYNAMIC scheduling is assumed.
Example 1: To set the scheduing to INTERLEAVE, specify the
following (in the csh environment):
setenv MP_SCHEDTYPE INTERLEAVE
Example 2. To set the chunk size to 4, specify the
following (csh):
setenv CHUNK 4
For more information on the DOACROSS directive, see the
MIPSPro 7 Fortran 90 Commands and Directives Reference
Manual, publication SR-3907.
NOTE: The MP_SCHEDTYPE and CHUNK environment variables are
outmoded. The preferred alternative is the OMP_SCHEDULE
environment variable.
MPC_GANG Controls the use of gang scheduling, which is enabled by
default. To disable gang scheduling, set this environment
variable to OFF.
By default, this environment variable is not set.
NOTE: The MPC_GANG environment variable is outmoded.
PAGESIZE_STACK, PAGESIZE_DATA, and PAGESIZE_TEXT
Specifies the desired page size for each of the stack, data,
and text segments. The default page size is 16 Kbytes on
IRIX 6.4 and later systems; the default is 4 Kbytes on
systems running previous IRIX revisions. These environment
variables accept an integer value that represents the
desired size in Kbytes. Typical values for this environment
variable are 4, 16, or 64. Your operating system may not be
able to accommodate larger values. If unsuitable values are
specified, the system may adjust your page size to be lower
than requested.
I/O ENVIRONMENT VARIABLES
The following environment variables are used by the I/O libraries.
FF_IO_AIO_LOCKS, FF_IO_AIO_NUMUSERS, FF_IO_AIO_THREADS
Specifies aspects of the aioinit structure. This structure
contains the following fields: aio_locks, aio_numusers, and
aio_threads. These three environment variables alter the
values used for these fields. For more information on using
these environment variables, see the Application
Programmer's I/O Guide, publication SG-2168, and the
AIO_SGI_INIT(3) man page.
FF_IO_LOGFILE [Toc] [Back]
Names a file to which statistics are written by the event
FFIO layer.
FILENV Specifies the location of the assign environment
information. Use FILENV to assign a file name to store the
assign information or to specify that it be stored in the
process environment.
MISCELLANEOUS ENVIRONMENT VARIABLES [Toc] [Back] The following miscellaneous environment variables also affect
compiling.
COMPILER_DEFAULTS_PATH [Toc] [Back]
Specifies the a path or a colon-separated lists of
paths designating where the compiler is to look for the
compiler.defaults file.
The compiler.defaults file contains the following line:
-DEFAULT [:abi=abi] [:isa=mips_num] [:proc=proc_num] [:opt=opt_lvl]
[:arith=arith_lvl]
The information in this file is used when compiling
code unless it is overridden by command line options.
The following list indicates the values to be specified
on the -DEFAULT line and the command line options that
supercede the -DEFAULT line specification:
abi Specifies the Application Binary Interface
(ABI). The -n32 and -64 options to the
f90(1) command override this specification.
Specify either n32 or 64 for abi.
mips_num Specifies the Instruction Set Architecture
(ISA). The -mips4 and -mips4 options to the
f90(1) command override this specification.
Specify either mips3 or mips4 for mips_num.
proc_num Specifies the processor number. The -r4k,
-r5k, -r8k, and -r10k options to the f90(1)
command override this specification. Specify
one of the following for proc_num: r4k, r5k,
r8k, r10k.
opt_lvl Specifies the general optimization level used
when compiling. The -O0, -O1, -O2, and -O3
options to the f90(1) command override this
specification. Specify one of the following
for opt_lvl: 0, 1, 2, 3.
arith_lvl Specifies the IEEE arithmetic level used when
compiling. The -OPT:IEEE_arith option to the
f90(1) command overrides this specification.
Specify one of the following for arith_lvl:
1, 2, 3.
If no file is present, or if this environment variable
is not set, the compiler looks in the default
directory, which is /etc.
For example, the following command line:
%f90 -64 myfile.f
overrides a compiler.defaults file that contains:
-DEFAULT:abi=n32:isa=mips4:proc=r10k
and performs a -64, -mips4, -r10000 compilation.
F2CFLAGS Controls the Fortran-to-C interface. As a value for
this environment variable, specify options to the
mkf2c(1) command.
For example, if you want to pass the -l and the -signed
command line options to mkf2c(1), and you are using the
C shell, you can specify the following in your .cshrc
file: setenv F2CFLAGS -signed -l.
F90_BOUNDS_CHECK_ABORT [Toc] [Back]
Controls whether the compiler aborts compilation if a
bounds check fails.
The -C option on the f90(1) command performs array
bounds checking. By default, the compilation continues
even if the bounds check fails. To cause the compiler
to abort on a failed bounds check, set the
F90_BOUNDS_CHECK_ABORT environment variable to YES.
NLSPATH Affects compiler interactions with the message system.
For more information, see catopen(3C).
SGI_ABI Specifies the Application Binary Interface (ABI) used
during compilation. This environment variable can be
used to change the default ABI. Specify -n32 or -64 as
values. See GETABI(3C) for more information.
TMPDIR Specifies a path for temporary files. When set, the
value used is the directory in which the system places
temporary files, rather than the default, /tmp.
TRAP_FPE Controls the handling and classifying of floating-point
exceptions and substitutes new values. It also
provides a mechanism to count, trace, exit, or abort on
enabled exceptions. The -TENV:check_div option on the
f90(1) command line option inserts checks for divide by
zero and for overflow. See FSIGFPE(3F) for information
on HANDLE_FSIGFPES, which performs a function similar
to that of this environment variable. For more
information on this environment variable, including its
possible values, see FSIGFPE(3F).
_XPG Specifies that compilation should proceed according to
X/Open XPG4 specifications. If set, f77 (or fort77, as
it is known under XPG4) operates in conformance with
the X/Open XPG4 specifications. The options and the
command line behavior may differ in accordance to the
XPG4 standards.
The following two environment variables should not be changed from
their system-supplied default settings: COMP_TARGET_ROOT and
TOOLROOT. By default, the COMP_TARGET_ROOT environment variable is
set to /.
assign(1), f90(1), mkf2c(1).
catopen(3C), FSIGFPE(3F), GETABI(3C), MP(3F).
Application Programmer's I/O Guide, publication SG-2168
MIPSPro 7 Fortran 90 Commands and Directives Reference Manual,
publication SR-3907
This man page is available only online.
[ Back ]
|