下面是与并行化 C 相关的一些环境变量。还存在由 OpenMP API 规范定义的其他环境变量以及特定于 Oracle Solaris Studio 实现的其他环境变量。有关与并行化相关的所有环境变量的说明,请参见《Oracle Solaris Studio OpenMP API 用户指南》。
PARALLEL 或 OMP_NUM_THREADS
设置 PARALLEL 或 OMP_NUM_THREADS 环境变量可指定要用于程序的线程数。 如果未设置这些环境变量,请参阅《OpenMP API 用户指南》以了解缺省线程数。
可以使用 PARALLEL 或 OMP_NUM_THREADS ,它们是等效的。
SUNW_MP_THR_IDLE
控制 OpenMP 程序中空闲线程的状态,这些线程正在边界处等待或者正在等待要处理的新并行区域。有关详细信息,请参见《Oracle Solaris Studio OpenMP API 用户指南》。
SUNW_MP_WARN
将此环境变量设置为 TRUE,可打印来自 OpenMP 和其他并行化运行时系统的警告消息。 有关详细信息,请参见《Oracle Solaris Studio OpenMP API 用户指南》。
STACKSIZE
正在执行的程序会为主线程保留一个主内存堆栈,同时为每个从属线程保留不同的堆栈。 堆栈是临时内存地址空间,用来存储子程序执行期间的参数和自动变量。可使用 STACKSIZE 环境变量来控制从属线程堆栈的大小。如果未设置此环境变量,请参阅《OpenMP API 用户指南》以了解缺省从属线程堆栈大小。
请注意,STACKSIZE 环境变量的设置对使用 Oracle Solaris Pthreads API 的程序没有效果。
如果线程堆栈的大小太小,则可能会出现堆栈溢出,从而导致无提示数据损坏或段故障。有关如何检测和诊断堆栈溢出的信息,请参见 -xcheck=stkovf 编译器选项。