Oracle® Developer Studio 12.5:性能库用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

并行处理示例

本节演示了如何将 OMP_NUM_THREADS 环境变量与编译和链接选项结合使用来创建以串行和并行方式执行的代码。

要创建串行应用程序,请执行以下操作:

  • 调用一个或多个 Oracle Developer Studio 性能库例程

  • 使用 -library=sunperf, 进行链接,将标志放在命令行末尾。不要使用 -xopenmp=parallel-xautopar 进行编译或链接

  • 取消设置 OMP_NUM_THREADS 环境变量或将其设置为 1

以下示例说明了如何使用共享的 Oracle Developer Studio 性能库 libsunperf.so 进行编译和链接。

my_host% cc -xmemalign=8s -xarch=native any.c -library=sunperf
my_host% f95 -dalign -xarch=native any.f95 -library=sunperf

要创建在多处理器上执行的并行应用程序,请执行以下操作:

  • 调用一个或多个 Oracle Developer Studio 性能库例程

  • 在编译和链接命令中使用相同的并行化选项(-xopenmp=parallel-xautopar

  • 使用 -library=sunperf, 进行链接,将标志放在命令行末尾。

  • 在运行可执行文件之前,将 OMP_NUM_THREADS 设置为可用处理器的数量

例如,要使用 24 个处理器,请键入以下命令:

my_host% f95 -dalign -xarch=native my_app.f -library=sunperf
my_host% setenv OMP_NUM_THREADS 24
my_host% ./a.out

以上示例使 Oracle Developer Studio 性能库例程以并行方式运行,但用户代码 my_app.f 的任何部分都不会以并行方式运行。要使编译器尝试将 my_app.f 并行化,需要在编译行中使用 -xopenmp=parallel-xautopar

my_host% f95 -dalign -xopenmp=parallel my_app.f -library=sunperf
my_host% setenv OMP_NUM_THREADS 24
my_host% ./a.out