2017-05-28 回答

matlab并行运算

目前,新购置的电脑大部分都是多核的了,使用matlab进行大量计算时如何有效利用多核呢?matlab目前版本已经比较好的支持多核并行运算了。是用的matlab版本是r2007b。电脑是双核的。

先简单试试:

>> matlabpool local 2

submitted parallel job to the scheduler, waiting for it to start.

connected to a matlabpool session with 2 labs.

显示正在进行多核配置,然后,提示连接到2个“实验室”(labs)。我这也理解的:本地虚拟出2台可以运行matlab的工作站,这样用分布式计算工具箱可以进行并行计算(matlabpool这个命令好像是在并行计算工具箱里的)。

>> testparallel

elapsed time is 7.750534 seconds.

这里运行testparallel函数,已经开辟了2个labs,为了进行多核并行运算,testparallel中,要用parfor代替原来的for循环。

在运行这个时,观察windows任务管理器,可以发现一共有3个matlab.exe进程。其中一个占内存较多的,应该是主控的,他基本不干活,只负责分配,进行计算时他的cpu占用率只有1~2%,剩下两个进程专门用来计算的,跑起来各占cpu 49%左右。看上去还是每个matlab进程单核运算,但是一下开2个进程,所以能把cpu用满。当运行完testparallel后,三个进程的cpu都立刻降为1%左右了。

>> matlabpool close

sending a stop signal to all the labs...

waiting for parallel job to finish...

performing parallel job cleanup...

done.

当要关闭开辟的2个labs时,使用matlabpool close关闭即可。

代码及使用时间对比如下表:

function testparallel

%非并行

% matlabpool local 2

tic

total=10^5;

for (i=1:total)

ss(i)=insum;

end

plot(ss);

toc

% matlabpool close

function [s]=insum

x=abs(round(normrnd(50,40,1,1000)));

s=sum(x);

function testparallel

%并行

matlabpool local 2

tic

total=10^5;

parfor (i=1:total)

ss(i)=insum;

end

plot(ss);

toc

matlabpool close

function [s]=insum

x=abs(round(normrnd(50,40,1,1000)));

s=sum(x);

elapsed time is 70.471469 seconds.elapsed time is 7.750534 seconds.

70.471469/7.750534 = 9.0925,并行与否的时间比竟然是9倍,足以表明,在matlab中使用多核并行运算给我们带来很多好处。

如何利用计算机多核,如何利用多核电脑实现Matlab的并行运算相关推荐

  1. 利用计算机漏洞犯罪,利用漏洞非法谋利2000元怎么处罚

    利用漏洞非法谋利2000元怎么处罚 依据我国相关法律的规定,利用计算机漏洞非法谋利2000元的,如果是实施了盗窃的行为,就会构成盗窃罪,可以追究刑事责任. <中华人民共和国刑法> 第二百八 ...

  2. 利用计算机浏览信息,利用计算机浏览信息时,可以实现任意页面之间的跳转,这种技术最恰当的说法是(??)...

    利用计算机浏览信息时,可以实现任意页面之间的跳转,这种技术最恰当的说法是(??) 小儿推拿经穴大多集中于A:腰背部B:胸腹部C:头面部D:上肢部E:下肢部 做作屈伸练习前直后转时,髋关节及整个身体转向 ...

  3. 如何利用计算机做备课,如何用电脑进行电子教案的制作

    如何用电脑进行电子教案的制作 1.样式的使用 从已经做好的教案中我们可以看到,教案的章.节的文字都有统一的格式,整个教案看起来条理清楚,结构井然.这是因为章节的标题都使用了样式,也就是规定各标题行的段 ...

  4. 怎么利用计算机传输文件到邮箱,电脑和电脑怎么传文件_电脑和电脑之间如何传文件-win7之家...

    现在我们要互相传递文件是很方便的,也可以用手机传,也能用电脑之间互传,有时就只有两台电脑给你,从一台电脑上的文件传到另一台上要怎么传,那么电脑和电脑之间如何传文件呢,下面小编给大家分享电脑和电脑传文件 ...

  5. 如何开发利用计算机字体,如何利用PS来制作水纹特效字体

    最近,小编发现不少令人惊叹的水纹作品,使小编对photoshop当中的置换滤镜有了比较大的兴趣,学些之后就给大家分享.小编这个教程是利用置换滤镜以及水纹理创建水纹效果的文字,用十几分钟就能完成它哦. ...

  6. 怎样用计算机计算定积分,试利用IntegrationbyParts计算以下的定积分然後利用计算机验算答案.PPT...

    试利用IntegrationbyParts计算以下的定积分然後利用计算机验算答案 * 利用計算機驗算定積分的答案 = ? 0.274653072 純數課本P.72 Example 7-16(b) MO ...

  7. 如何利用计算机计算复杂的定积分,试利用Integration by Parts 计算以下的定积分,然後利用计算机验算答案.PPT...

    试利用Integration by Parts 计算以下的定积分,然後利用计算机验算答案 * 利用計算機驗算定積分的答案 = ? 0.274653072 純數課本P.72 Example 7-16(b ...

  8. java多核的利用率_java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算

    java利用FutureTask.ExecutorService 在多核时代充分利用CPU运算 FutureTask.ExecutorService 相关知识,请看java,API 一个使用Futur ...

  9. 电脑启动计算机无法启动 修复工具栏,如何利用Win7启动修复功能解决电脑启动进不了系统的问题...

    如何利用Win7启动修复功能解决电脑启动进不了系统的问题 腾讯视频/爱奇艺/优酷/外卖 充值4折起 电脑就像人一样,时常会生点"小病",闹闹"罢工".在所有电脑 ...

最新文章

  1. 交叉熵理解深度学习互信息
  2. 只要可能,就缓存数据和页输出
  3. Solaris 常用命令
  4. BetterWMF2021中文版
  5. IE6 式样表 Bug
  6. Acwing145. 超市[C++题解]:贪心
  7. Codeforces 85D Sum of Medians
  8. mysql日志文件的类型和作用_Mysql日志文件和日志类型介绍
  9. 汉字Unicode编码表
  10. mysql 使用异步io_InnoDB引擎之-异步IO(Async IO)
  11. kong自定义插件(修改官方插件)
  12. 实时高清渲染:全局光照(Global Illumination)[2]---漫反射/高光全局光照
  13. 【spring mvc】annotation-driven 配置详解
  14. 脚上有一个很灵的止咳穴位
  15. 奇门遁甲排盘方:定局
  16. Matlab滤波器设计——基于filter函数的低通、高通、带通、带阻滤波器
  17. .考试倒计时44天!来提分啦!
  18. 单点登录cas常见问题(九) - android app怎么接入cas单点登录系统?
  19. Spring Bean作用域与生命周期
  20. python decorator wrapper_python装饰器(decorator)

热门文章

  1. centos 7安装配置python3.7
  2. 前端框架 Angular 11.0.0 正式发布,不再支持 IE 9 、10
  3. 选择开源项目什么最重要?许可证排第一
  4. excel函数与公式实战技巧精粹_excel函数技巧:两个查询函数的用法比较 下
  5. python实现二分法查找_python二分法查找
  6. python爬虫影评_python爬虫实战一:分析豆瓣中最新电影的影评
  7. elementUI table 表格表头居中 颜色、内容居左
  8. 红帽7编译安装mysql_精通RHEL7编译安装mysql-5.5.32
  9. sqlite 数据量_Sqlite数据库从入门到放弃
  10. pcb钻孔披锋改善报告_铜基板的小孔加工改善研究