找回密码
 注册
关于网站域名变更的通知
查看: 502|回复: 1
打印 上一主题 下一主题

并行计算通用模型分享,适用所有for循环体的加速计算(转)

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-8-12 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    并行计算通用模型分享,适用所有for循环体的加速计算(转); f: @- j# [* L; \7 y% T
    , z! `6 p0 l! @" Y
    matlab利用多核心的计算能力来加速计算是非常有必要的,因为目前所有的电脑最少都双核芯了$ g' W0 k; K: P3 z5 T
    打开matlab并行计算池的方法是:matlabpool,具体使用参考帮助文档
    1 B5 B  b+ A7 q9 k, G7 k循环并行使用paRFor循环代替for循环,如果仔细读下文档,会发现parfor很不好用,当parfor循环体内的代码比较多时,非常容易不满足循环的条件而失败7 r$ D  m3 D$ {0 r' S

    3 h; I8 E' {2 G5 \parfor ss=1:100, O  P+ m' \- W2 s" y
    xxx
    $ r4 \/ W% |& l# n) r.....# P# h) B- I+ v$ j+ t0 g4 F3 o) j
    .....1 ]2 T/ w. @1 W
    end
    - m) _  [& {/ P( Q. M9 J+ ]- t- ^: ]3 i" [+ N" ?! X
    为此,提供一套通用计算模型,其基本思路是将循环体内代码打包为函数3 K1 G6 v6 m1 F% I: t( v

    ! A' s: Y6 B3 P) U' ~; Zparfor ss=1:100
      E6 A* F. ?# Y2 lfunc(ss,...,...);
    ' `; z% @% X; j: |) D9 G4 tend
    % n+ E# i5 g4 h8 C" P) M. A7 R) C% f& i* }; K
    函数如下所示:
    5 W0 t# B1 _) T& Lfunction func(ss,...,...)
    + X& Q/ L% \0 t5 g  C; o5 m  Exxx
    , I4 y6 p) m" S* I.....
    & R6 q0 c$ A6 `4 M% u& l: M.....
    6 I% A. o* q7 r2 o$ S4 u" A& K* K8 M4 B/ ~$ j7 h' V
    end
    ( G$ l9 @2 [9 Y该函数不应该有返回值,当parfor循环体内计算结果需要返回主函数时(绝大多数情况是这样的)
    . i+ Z1 F  `, t* G, D: ]那么将计算结果在循环体内保存为文件,文件名与循环变量ss有关系5 z" {! S; [0 s  N$ ]
    $ l) h. y' B: a$ Z* z
    1 Q& [! P, T% G9 X  G
    当parfor的并行程序运行完之后,将保存的临时文件读取进来即可,保存和读取计算结果相比于大量的计算耗时来讲应该小的多,从而体现出并行的优势
    7 E1 J5 D/ I9 t  ^6 }! G1 j9 D: o$ e, j! F. U0 g6 ]

    ' K$ |, @7 U5 Y
    % P) d2 f9 s8 \1 y! Z* Z7 I& @0 h
    所提供的该方法可以用于任何一维或者二维或者多维循环的加速计算6 H* z- r6 m9 C7 U1 S+ K
    各位同学可以参考,采用所给出的方法,规避了学习parfor规则的所有难点,非常具有通用性5 _: ~8 E. o/ V( u- W# }

    该用户从未签到

    2#
    发表于 2020-8-12 10:57 | 只看该作者
    赞,谢谢分享!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-27 20:50 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表