loading ...
loading...

2006-11-01 | 以性能分析单元为基础的OpenMP程序负载均衡分析

分享

所谓的性能分析单元就是位于同一个并行区的两个相邻同步点之间的代码段。

具体分析略,有兴趣可以深入交流。

对于下面这样的程序,

#include <stdio.h>
#include <omp.h>
#include <math.h>
#define N 100000
int main()
{
  int i,j;
  int a[N],b[N];
  double sum1=0.0,sum2=0.0;
  for(i=0;i<N;i++)
  {
    a[i]=i+1;
    b[i]=i+1;
  }
  #pragma omp inst init

  #pragma omp parallel
  {
    #pragma omp single nowait
    {
      for(i=0;i<N;i++)
      {
        sum1+=log(a[i]);
      }
    }
    #pragma omp for
    for(j=0;j<N;j++)
    {
      sum2+=log(b[j]);
    }
  }
  printf("%lf %lf\n",sum1,sum2);
  return 0;
}

通过我写的性能分析工具,得到如下的性能日志。
Region:1 name:parallel Line:17-31
Tid  exeC       exeT         exitBarC   exitBarT
startupC   startupT     shutdownC  shutdownT
0    1          0.001603     1          0.000021
1          0.000020     1          0.000066
1    1          0.001513     1          0.000021
1          0.000025     1          0.000065

sum  2          0.003116     2          0.000042
2          0.000045     2          0.000131
imbalance_in_parallel_region
severity:0.000406


Region:2 name:single Line:19-25
Tid  exeC       exeT         singleC    singleT      exitBarC   exitBarT
0    1          0.000008     0          0.000000     0          0.000000
1    1          0.000738     1          0.000725     0          0.000000

sum  2          0.000746     1          0.000725     0          0.000000


Region:3 name:for Line:26-30
Tid  exeC       exeT         exitBarC   exitBarT
0    1          0.001121     1          0.000697
1    1          0.000393     1          0.000024

sum  2          0.001514     2          0.000721
imbalance_in_parallel_loop
severity:0.006984

如果仅仅观察区域3,发现存在着较严重的负载不均衡情况,0号线程负责较多的工作,而1号线程负责较少的工作,其实这种情况是因为1号线程执行了上面的single区域,又因为single指导命令有nowait从句,所以0号线程没有在single指导命令结束处等待,而是直接执行下面的for指导命令。

其实两个线程是负载均衡的。

分享 分享 |  评论 (0) |  阅读 (?)  |  固定链接 |  类别 (技术) |  发表于 11:26  | 最后修改于 2006-11-01 11:28
搜狐博客温馨提示:警惕博客留言诈骗, 搜狐博客管理员的正确地址为http://admin.blog.sohu.com, 其他都是冒牌。搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  开宝马X5,住五星酒店,还有狐狸送哦
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复