- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab并行计算工具箱函数基本情况介绍
Matlab并行计算工具箱的使用Matlab并行工具箱的产生一方面给大规模的数据分析带来了巨大的效益,另一方面且引入了分布式计算,借助matlab自身携带的MDCE,可以实现单机多核并行运行或者是同一个局域网络中的多台处理器组成的机群的并行运行。个人以为后者是前者的拓展,并行计算的最初目的是为了解决串行计算速度不能满足某些复杂运算而产生的技术,能够借助较低配置的处理,协同工作处理同一个程序,但是他们之间是并不会交互的,仅仅是有核心主机—client进行大任务的分解,而后将它们分配给各个处理器,由处理器共同完成。所以说并行计算的实质还是主从结构的分布式计算。这里体现了数量的优势,同一个程序串行运行可能需要40个小时,但是若是由10台处理器同时跑,则有望将计算时间降低到接近4个小时的水平。而且这十台处理器可以是一个多个多核CPU组成,例如一个8核心CPU和1个2核心CPU。也可以是由5个2核心CPU组成,形式灵活。而分布式计算在并行计算的基础上有功能上的扩展,一个很重要的方面就体现在,上述的十个处理器之间可以进行交互式通讯这是基于MPI(message passing interface)实现的,这对于大规模的分布式控制系统是很有需要的,也就是说,各个处理器之间要实现数据的实时传递,有时是共享某些信息,有时是lab1需要lab2的某些信息。相对于单纯的并行计算来说,后者将交互式通讯扩展到了labs之间,而不仅仅是lab和client之间。Matlab并行计算工具箱中的函数有:Parfor (FOR循环的并行计算);函数1:matlabpool其作用是开启matlab并行计算池,单独的命令会以默认的配置开启并行计算环境。函数2:parforFor循环的并行计算替代关键词,需要注意的是,parfor不能像for一样嵌套。但是外部的parfor内部可以嵌套for循环。函数3:batch用于在worker上运行matlab脚本或者是matlab函数。例如:batch(‘script.m’) 语句会根据默认并行配置文件定义的集群将script脚本文件运行在worker上。批处理函数1:batch,其语法有:j = batch(aScript)j = batch(myCluster,aScript)j = batch(fcn,N,{x1, ..., xn})j = batch(myCluster,fcn,N,{x1,...,xn})j = batch(...,p1,v1,p2,v2,...)其中的变量:JThe batch job object.aScriptThe script of MATLAB code to be evaluated by the MATLAB pool job.myClusterClusterobject representing cluster compute resources.fcnFunctionhandle or string of function name to be evaluated by the MATLAB pool job.NThe number of output arguments from the evaluated function. {x1, ..., xn}Cell array of input arguments to the function.p1, p2Object properties or other arguments to control job behavior.v1, v2Initial values for corresponding object properties or arguments.利用GPU计算(这一部分暂时略过)分布式数组和SPMD函数1:distributed分布式数组利用matlab计算池中所有worker的内存来存储数组。如此以来,就可以创建或者是操作对于一个机器无法存储的大型数组。函数2:gather回收所有的分布式数组数据到当前工作空间。例如:x = gather(D);函数3:spmd (Single Program Multiple Data)其使用方式一般情况下为:spmdstatementend.当程序语句被放置在statement部分时,matlab会将程序语句在几个matlab worker中同时运行,并行计算。函数4:composite创建一个复合对象。对于在workers上运行spmdstatement语句中的变量,在client端都可以通过构造函数获取变量值,当spmdstatement语句运行时,会自动生成复合构造函数,也可以利用composite函数自行创建一个。例如对于,复合构造变量C:C{1} 表示变量C在w
文档评论(0)