Sun Studio 12:Fortran 用户指南

3.4.82 –parallel

并行化SPARC)使用以下选项进行并行化:-autopar、-explicitpar、-depend


注 –

此选项包括 -explicitpar,它可启用传统的 Sun 和 Cray 并行化指令。这些指令现已过时,不再受支持。OpenMP API 是 Sun Studio 编译器所支持的首选并行化模型。有关将传统 Sun/Cray 指令迁移到 OpenMP 的详细信息,请参见 Sun Studio《OpenMP API 用户指南》。


对编译器自动选择的循环以及用户所提供的指令显式指定的循环进行并行化。如果优化级别较低,则会将它自动提升到 -O3。另请参见3.4.23 –explicitpar

为了提高性能,在使用任何并行化选项(包括 -autopar)时,还要指定 -stackvar 选项。

缺省情况下,Sun 风格的并行化指令处于启用状态。使用 -mp=cray 可选择 Cray 风格的并行化指令。(注:对于 OpenMP 并行化,请使用 -xopenmp,而不要使用 -parallel。)

如果执行自己的线程管理,请不要使用 -parallel。请参见3.4.60 –mt

并行化选项(如 -parallel)用于生成将在多处理器系统上运行的可执行程序。在单处理器系统上,并行化通常会降低性能。

要在多线程环境中运行已并行化的程序,必须在执行之前设置 PARALLEL(或 OMP_NUM_THREADS)环境变量。这会将程序可以创建的最大线程数通知给运行时系统。缺省值为 1。通常会将 PARALLELOMP_NUM_THREADS 变量设置为目标平台上可用的虚拟处理器数。(请参见 psrinfo(1))

如果使用 -parallel 并在同一步骤中进行编译和链接,则链接会自动包括多线程库和线程安全的 Fortran 运行时库。如果使用 -parallel 并在不同的步骤中进行编译和链接,则还必须使用 -parallel 进行链接

有关详细信息,请参见《Fortran 编程指南》的“并行化”一章。