openmp吧 关注:39贴子:176
  • 8回复贴,共1

近段时间,openmp实践的若干总结!

只看楼主收藏回复

虽然我是菜鸟,但是三个月的工作,收获很多,在此和大家分享一下!
1.全局变量vs局部变量
全局变量可以用来private吗?答案是不可以!这是三个月工作最痛苦的总结,搞来搞去,实在是恶心,最后发现原来全局变量不能真正在#pragma omp ...private()列表里面实现每个线程私有,具体原因不知道,我猜测是因为,程序执行过程中,并不能保证本线程修改全局变量时时修改的本线程所私有的那个全局变量。
局部变量当然可以用来private了。
2.静态变量
static变量在串行时是个宝贝,在并行时,就是个屁。。。而且现在还没有找到解决办法——怎么让程序正确并行,并且允许static的存在。
3.指针
指针可以用来private吗?没有任何意义。。。因为指针本身就是个地址,而一旦私有,指针的值改变,预示着变量的地址胡乱跑,肯定出错。
4.结构体、类
结构体,类中的元素,如果是非指针类型,是可以private的,而且语义正确。
里面的指针类型,最好改成数组,如果是特别大的数组,那就等死吧。。。
5.再论指针
最好不要有任何指针出现在并行域里面,但是,这几乎不可能。那个,总得找个办法吧?办法就是再搞几个指针,然后申请空间,然后复制,然后每个线程一个,但是不要放到private列表里。


1楼2014-06-19 19:33回复
    路过


    IP属地:江西2楼2014-07-28 00:14
    回复
      2025-09-04 18:21:01
      广告
      不感兴趣
      开通SVIP免广告
      三楼是我的。


      IP属地:江西3楼2014-07-28 00:15
      回复
        楼主还在不?有问题请教,关于并行域中指针的问题


        IP属地:江苏来自Android客户端4楼2016-03-28 19:16
        回复
          谢谢楼主分享


          IP属地:广东5楼2017-01-06 19:59
          回复
            threadprivate


            6楼2017-07-19 04:50
            回复


              IP属地:四川7楼2018-03-01 21:34
              回复
                想简单的靠openmp就大幅度的提升性能是不可能的
                有很多坑


                IP属地:四川8楼2018-03-09 10:15
                回复
                  2025-09-04 18:15:01
                  广告
                  不感兴趣
                  开通SVIP免广告
                  楼主有空吗,可以简单的把我编写的FFT程序用openmp并行话吗?有偿的,拜托了


                  IP属地:江苏来自Android客户端9楼2018-04-10 14:26
                  回复