b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

matlab内循环并行计算_matlab分布式并行计算_matlab2014a并行计算(3)

电脑杂谈  发布时间:2017-04-09 04:02:51  来源:网络整理

% 设置共享文件夹,映射网络驱动器

% set( job, 'PathDependencies', {'Z:\Test'} );

% 另一种方法,把用到的原程序文件传给所有 workers。matlab内循环并行计算

%set( job, 'FileDependencies', {'hp.m', 'hp1.m', 'x.mat', 'y.mat'} );

在创建Job之后,使用createTask函数为该Job创建Task。Task定义了Worker所要执行的函数。在本例中,每个Task将会生成3*3的随机数矩阵。

createTask(job, @rand, 1, {3,3});

createTask(job, @rand, 1, {3,3});

createTask(job, @rand, 1, {3,3});

createTask(job, @rand, 1, {3,3});

createTask(job, @rand, 1, {3,3});

T = createTask(job, @rand, 1, {{3,3} {3,3} {3,3} {3,3} {3,3}});

Matlab client 对parfor关键字的处理,它将任务分配到多个Matlab workers上并行执行程序,假设m为Matlab worker的数量,循环次数为n,若n/m为整数的话,则循环被均匀划分到Matlab worker,否则,循环被非均匀划分,部分Matlab worker的负载会大些。

parfor主要是针对循环进行并行,parfor执行时将循环分解为独立的部分,然后将各个部分并行执行,提高程序的执行效率。MATLAB并行执行parfor循环时,采用client和worker模式,用户可以将matlab理解为一个进程,一台计算机可以运行多个matlab进程。for循环完全顺序执行,而parfor的执行顺序与parfor分段在matlab worker 之间的分配顺序有关,有可能会随机执行。(参考:刘维《实战Matlab之并行程序设计》)

将传统的for循环改为parfor循环,就会将循环体作为整体分到到一个个处理器中,从而一次性进行多组运算。在使用parfor时,代码的编写有一些注意事项,最主要的是其中变量的处理。matlab的帮助文档中有详细的描述。在parfor中,变量不再是随心所欲的使用,有着其自己的分类。在parfor运行时,我们经常会遇到这样的错误“Error: The variable xxx in a parfor cannot be classified.”说的就是变量xxx不能被正常划分到正确的类别中。

2:将串行循环中的for关键字改为parfor,并注意是否修改循环体,以满足特定需求,如循环变量,下标

matlab使用变量的一个好处是不需要预定义。但是在使用parfor时,这会弄混sliced变量和临时变量。由于临时变量不需要有sliced变量的限制,使用更自由,因此一定要区分开。方法是在parfor中对临时变量进行预定义。例


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40306-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 吴锦世
      吴锦世

      飞机对敌舰和空中飞行采取驱逐行动形成武力对峙

    • 张棒
      张棒

      才终感知

    热点图片
    拼命载入中...