TA的每日心情 | 开心 2022-1-29 15:07 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位好,刚接触MATLAB并行一天,现在有个问题,不知道应该怎么做并行优化。7 Z3 q$ ^, J, h/ v
4 j, u( D5 w/ D/ C: h7 k' `) j: N
1. 有Num_C 个数据集,每个数据集都是行数相同但列数不同的矩阵。; z! e6 a! Z3 I$ R; ^7 M d
2,分别对每个数据集做处理,调用同一个函数。
' C- D# `5 x4 ^( a( Q* m2 U1 j5 m- f$ c1 U, T! c
问题:但是用paRFor的时间还不如直接用用for。(for耗时105s,parfor耗时118s)。感觉跟spmd模式比较像 但不太会用,不知道哪位大侠能发现问题,小女子先谢过。: B( E3 N% c" D- ]- m# G, T
代码如下:
( E% W( K) Z7 g, _8 n(YT 是个cell结构,已知。
0 @2 L; _6 [) R0 [$ n6 n A 为矩阵,已知。functionimage为图像处理操作,并非简单的运算)* }; c" p; f* W& V0 I4 W6 j) W
matlabpool open 4
' A& p% A8 `% `9 B! P7 DNum_C = 8;9 G0 h: h+ u+ {/ L
X_hat = cell(Num_C,1);* s; w: t% ^' O) g8 A
tic;
' v/ y, G" B$ [0 }for m=1:Num_C, U1 ?/ Y. |$ ]2 C0 r9 D/ R8 B
[X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);
8 H. i4 c9 g) O! W, ?end; d$ X3 _+ ^+ Y& n) \1 J# ~+ C( i
%end
$ y. w) j0 K' j5 u% ttoc;
0 u# j+ X7 D5 k5 Z. y ^
) H% H6 g( {, ]6 k- _tic;
+ C; z$ c6 q9 ?parfor m=1:Num_C
- `. n0 g7 b4 y2 N! Y, ?[X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);
0 p7 f5 a1 R2 Z/ N" ]end
0 M& u' I# B- S2 L$ Htoc;
b- k. j# M. q2 z: O! tmatlabpool close
) _" m3 ?8 A& b1 r- S: _& @% f6 F) i- d, r* D6 \1 f
CPU是AMD的四核。
" F* _! h5 \5 m- y |
|