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

求教一个用parfor还是spmd的并行问题

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-10-31 14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    各位好,刚接触MATLAB并行一天,现在有个问题,不知道应该怎么做并行优化。0 @/ P  n. r; B/ j# M3 ?& V; L

    2 X& j, p1 T" I, ^1.  有Num_C 个数据集,每个数据集都是行数相同但列数不同的矩阵。$ r$ x' ~! W! h* `* ^7 ~
    2,分别对每个数据集做处理,调用同一个函数。
    # J8 _# O$ G) ^" m* P! r4 l! Z2 o5 D+ j1 S
    问题:但是用paRFor的时间还不如直接用用for。(for耗时105s,parfor耗时118s)。感觉跟spmd模式比较像 但不太会用,不知道哪位大侠能发现问题,小女子先谢过。
    ( x5 J, L& T2 j1 L, b6 u代码如下:
    3 d6 N, V' n2 m4 L- p(YT 是个cell结构,已知。" N+ _9 r. f4 b, K) l1 E9 O0 {+ E" A
       A 为矩阵,已知。functionimage为图像处理操作,并非简单的运算)
    4 Y" w! r8 I) Y$ t: mmatlabpool open 4/ e$ m, L" D8 X1 C
    Num_C = 8;
    2 M+ [0 R% ]4 HX_hat = cell(Num_C,1);4 D+ ^# ?/ F% K+ m5 }( W/ r0 A; V
    tic;' B( }! v+ Q, q8 X+ a
    for m=1:Num_C
    , M# S: ]1 P+ ?   [X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);3 j! _6 A' K$ o" X6 c" Q
    end2 |! e2 }* X# h# S0 `% j' o& x
    %end) K# Y6 |: D( W$ J% Q* U% _% Q8 d3 h2 u
    toc;( ^; j" w2 c2 F5 N8 O# K! u

    " E$ c' Z* }. K% d4 x4 f! l8 A2 qtic;
    ( A2 F7 v- ^; O! `0 U- V$ |+ Yparfor m=1:Num_C  f7 A# A. Z2 w, t
    [X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);2 r  T- j3 x  o2 e( }( _
    end6 k( d: F1 y- G$ j7 h
    toc;
    8 i8 S, L. r* H+ dmatlabpool close3 }  o- ^9 [( n( R4 ?4 K4 U
    ( X6 r/ D3 o8 u
    CPU是AMD的四核。
    ! K, A6 j0 A; X2 H5 u; S( r+ L
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-10-31 15:10 | 只看该作者
    Num_c在比较大的时候parfor的威力才能显现出来。 parfor是这样的,分别分几个m取不同值,在不同核里运行,当然核与核之间有信息交互的时间。 所以当循环次数较小时,信息交互的时间占了大头1 s1 r) a" p9 K2 T
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-10-31 15:17 | 只看该作者
    看你不开并行105S开了118S,应该是开启worker花了较多时间,如果正常应用也只有100S左右的话真的不必非要用并行。' {' B* x, Q7 ^7 R5 j
    我自己试过,光开启多个work那个matlabpool open就花费大概40S的时间,你可以试试先开worker,然后使用parfor命令单独测试仅仅并行计算而不带有开关worker命令所用时间,应该是挺短的。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 13:49 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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