比较 Parallel Sections 与 Parallel Do 策略

如果尚未收集 omptest 的性能数据,必须进行收集,并打开第一个实验 omptest.1.er。相关说明,参见为 omptest 示例收集数据

本练习将比较分别使用 PARALLEL SECTIONS 指令和 PARALLEL DO 指令的两个例程 psec_()pdo_() 的性能。例程的性能以 CPU 数目的函数形式进行比较。

要比较四 CPU 运行和双 CPU 运行,您必须启动性能分析器的另一个实例,并将 omptest.2.er 载入其中。在终端窗口中,键入下列命令。

% analyzer omptest.2.er & 
  1. 在 [性能分析器] 窗口的 [函数] 标签中,找到函数 psec_ 并将其选中。

    可以使用 [查找] 工具来查找此函数。请注意,还存在其它一些以 psec_ 开头的函数,这些函数已由编译器生成。

  2. 调整各窗口的位置,以便可以比较 [摘要] 标签。
  3. 比较用户 CPU 时间、挂钟时间和总 LWP 时间的相容度量。

    对于双 CPU 运行,挂钟时间与用户 CPU 时间或总 LWP 时间的比率约为 1 比 2,这表示相对有效的并行化。

    对于四 CPU 运行,psec_() 所花费的挂钟时间与双 CPU 运行花费的挂钟时间大致相同,但用户 CPU 时间和总 LWP 时间更长。在 psec_() PARALLEL SECTION 构造内只有两段,因此只需要两个线程来执行它们,并且在任一给定时间仅使用四个可用 CPU 中的两个。其它两个线程将花费 CPU 时间等待工作。由于未提供其它工作,因此时间被浪费。

  4. 在每个 [分析器] 窗口内,选择 [函数] 标签中的 pdo_

    此时,pdo_() 的数据会显示在 [摘要] 标签中。

  5. 比较用户 CPU 时间、挂钟时间和总 LWP 时间的相容度量。

    pdo_()psec_() 的用户 CPU 时间大致相同。挂钟时间与用户 CPU 时间的比率在双 CPU 运行中约为 1 比 2,在四 CPU 运行中约为 1 比 4,这表明在适当地考虑可用的 CPU 数目及循环调度的情况下,pdo_() 并行化策略在多个 CPU 中调节地更为有效。

  6. 关闭显示 omptest.2.er 的 [分析器] 窗口。

找到要找的内容了吗?如未找到,请将您的意见通过电子邮件发送至 docfeedback@sun.com。
法律声明