Sun Studio 12 Update 1:Fortran 用户指南

3.4.5 –autopar

启用自动循环并行化。

查找相应的循环并使之并行化,以便在多个处理器上并行运行。分析循环以了解迭代间的数据依赖性并重构循环。如果未将优化级别指定为 -O3 或更高,则会将其自动提升到 -O3

在使用任何并行化选项(包括 -autopar)时,也要指定 -stackvar 选项。当使用 -autopar 时,-stackvar 选项可提供更好的性能,因为它可允许优化器为并行检测其他机会。有关如何为主线程栈和从线程栈设置大小的信息,请参见 -stackvar 选项描述。

如果程序已经包含对 libthread 线程库的显式调用,请避免使用 -autopar。请参见3.4.56 –mt中的注释。

-autopar 选项不适用于单处理器系统,而且已编译代码的运行速度通常会更慢。

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

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

—reduction 选项与 —autopar 一起使用也可能会很有用。

有关并行化的更多信息,请参阅《Fortran 编程指南》。有关用户控制的显式并行化,则使用 OpenMP 指令和 —xopenmp 选项。