24小时热门版块排行榜    

查看: 1030  |  回复: 5

bulianghui

新虫 (小有名气)

[求助] 想在计算机集群里用8个核运算一个MATLAB计算程序,需要怎么修改呢?

以下程序,提交后申请了8个核,但是只有一个核在运算,求大神怎么修改!
clc
clear
ii=0;
for x1=0:0.01:1;
  for x2=0:0.01:1;
   for x3=0:0.01:1;
     for x4=0:0.01:1;
      for x5=0:0.01:1;
       for x6=0:0.01:1;
if x1+x2+x3+x4+x5+x6==1 && x1~=0 && x2~=0 && x3~=0 && x3~=0 && x4~=0 && x5~=0 && x6~=0
        ii=ii+1;
s1= 9.98*x1+12.93*x2+8.12*x3+2.56*x4+7.48*x5+2.55*x6;
s2=14.53*x1+20.47*x2+14.66*x3+0.36*x4+9.13*x5+3.57*x6;
s3=74.52*x1+65.07*x2+75.45*x3+95.82*x4+81.59*x5+88.51*x6;
s4=35.31*x1+34.64*x2+36.73*x3+14.44*x4+22.12*x5+20.97*x6;
s5=8.52*x1+7.69*x2+8.61*x3+10.03*x4+10.06*x5+9.77*x6;
s6=10.92*x1+8.33*x2+7.54*x3+6.42*x4+7.84*x5+2.54*x6;
s7=0.91*x1+2.29*x2+2.31*x3+2.81*x4+2.28*x5+2.14*x6;
     s(ii,=[s1,s2,s3,s4,s5,s6,s7];
end
end
end
end
end
end
end
xlswrite('/public/home/qzhh/matlab_bx/peimeicanshu01b.xlsx',s)
y1=(s(:,1)-9.0050)/1.4323;
y2=(s(:,2)-17.7230)/3.6728;
y3=(s(:,3)-68.4066)/4.4536;
y4=(s(:,4)-23.7348)/1.5452;
y5=(s(:,5)-9.4295)/0.69*38;
y6=(s(:,6)-15.6093)/4.2234;
y7=(s(:,7)-3.6961)/2.7192;
m=[y1 y2 y3 y4 y5 y6 y7];
xlswrite('/public/home/qzhh/matlab_bx/bzhcanshu01b.xlsx',m)
c=[-0.4872,-0.5141,0.4791,-0.0690,0.3503,-0.2986,0.2277;0.0585,0.0208,0.0895,0.6496,0.5424,0.1098,-0.5097;-0.2815,0.2464,-0.3749,0.3565,-0.1322,-0.7556,0.0628;0.2555,0.1357,0.0250,0.4132,0.2073,0.1636,0.8217]; %转换矩阵
y=c*m';
y0=y';
xlswrite('/public/home/qzhh/matlab_bx/PCA101b.xlsx',y0)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijf517

木虫 (小有名气)

你这段代码本身是串行的,不含并行语句啊,怎么会并行呢。并不是说那随便拿段代码,给多分几个核,这代码就会并行运行了。理论上,想要代码并行,必须从算法上考虑怎样将任务分配给几个进程,或者把数据分配给几个进程,还得考虑几个进程之间数据的交互。你可以看看matlab中多核并行相关语句怎么写。

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

2楼2016-11-19 05:15:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jonewore

新虫 (著名写手)

并行算法实现,又要整好长时间。

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

3楼2016-11-19 08:04:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bulianghui

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by lijf517 at 2016-11-19 05:15:22
你这段代码本身是串行的,不含并行语句啊,怎么会并行呢。并不是说那随便拿段代码,给多分几个核,这代码就会并行运行了。理论上,想要代码并行,必须从算法上考虑怎样将任务分配给几个进程,或者把数据分配给几个进 ...

好的  多谢

发自小木虫Android客户端
4楼2016-11-19 14:15:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bulianghui

新虫 (小有名气)

送红花一朵
引用回帖:
3楼: Originally posted by jonewore at 2016-11-19 08:04:58
并行算法实现,又要整好长时间。

是的啊  之前没考虑到这个  在超算上运行才发现这个问题

发自小木虫Android客户端
5楼2016-11-19 14:16:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baogehuo

银虫 (初入文坛)

最外层用parfor,开启并行。

发自小木虫Android客户端
6楼2016-11-23 08:17:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bulianghui 的主题更新
信息提示
请填处理意见