TA的每日心情 | 开心 2022-1-29 15:07 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位好,刚接触MATLAB并行一天,现在有个问题,不知道应该怎么做并行优化。0 a$ i. Y4 B* e. l$ ^( v% s, R) d
# l6 w" ^ E: [3 R# S- O$ ?+ Q
1. 有Num_C 个数据集,每个数据集都是行数相同但列数不同的矩阵。+ X) [# V$ @+ q- w+ {! O
2,分别对每个数据集做处理,调用同一个函数。
/ {8 z" C, } B6 n4 P3 c) m) Y$ y# J( S, h; ]) N7 ~
问题:但是用paRFor的时间还不如直接用用for。(for耗时105s,parfor耗时118s)。感觉跟spmd模式比较像 但不太会用,不知道哪位大侠能发现问题,小女子先谢过。
: e4 a4 R: _+ A5 I% c/ n代码如下:
8 v/ i$ e' e: a- L8 [$ @( [(YT 是个cell结构,已知。
' H" e1 {7 {4 N2 p" G A 为矩阵,已知。functionimage为图像处理操作,并非简单的运算) a+ U2 U% n) o8 s
matlabpool open 4! G5 F; U2 e( ~/ j; S1 S( r7 ^
Num_C = 8;
7 r4 |3 b! b( t' ]- V- mX_hat = cell(Num_C,1);! Z' ]) {- _* @/ y8 p+ y
tic;" R8 `, U% @4 V, P8 K$ b3 q
for m=1:Num_C Z- t! R% D. ^) p; E
[X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);
8 p$ g, [1 w/ @1 A* [end; u- C4 B1 B, `4 e; B3 ]* z$ z
%end
, o' j3 K/ r1 l9 wtoc;
* n3 f+ {; v- ]- ?
2 q; q4 a1 [- q/ ^0 t0 u" w" W( Ztic; p' a- a8 J5 a0 d$ \8 T
parfor m=1:Num_C
) K/ q( o( U: ?; K4 b% W4 h[X_hat{m}] = functionimage(A,YT{m},0.05,1e-2,200);
0 a2 Q& p3 ^3 o2 }8 X1 z& S" @end
4 \' Y* \; Y- w) `" Z# k9 Ztoc;. c7 `/ v0 W2 x1 A0 X5 {$ H' ^0 U
matlabpool close8 l! J7 A" |: y: U
- m' B8 ~/ m: e& g0 S% A; hCPU是AMD的四核。
, z* u" t+ l6 s8 [ |
|