加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab多核运行

(2012-08-24 13:41:42)
标签:

matlab

并行运算

it

分类: Matlab
Matlab对于执行for循环非常的慢,因此对于大批量的仿真运行来说,如果其中有比较复杂的for循环,将会耗费惊人的时间。解决这样的问题,可以将for循环用C语言写成函数,然后在matlab里面调用。但是另外一种解决方案更加简单,那就是使用matlab自带的多核并行功能。简单用法如下:

1. matlabpool:开启多核并行功能。不加参数的情况下是采用默认设置。当然也可以自行设置参数,具体参数设置可以参考帮助文档
2. 将耗时最多的for循环改为parfor。这是在并行for循环,使用方法和for基本一致,以end结尾。但是注意,parfor不可以嵌套。
3. matlabpool close 程序结束时,即使关闭并行状态 . 否则在下次使用多核并行时会由于之前的多核没有被释放而被提示失败

经过亲自实验,在32-bit ubuntu系统,Intel® Core™ i7 CPU 860 @ 2.80GHz × 8, 其中4核参与并行运算
1000次QPSK加信道编码,常规运行:80.58 sec; 多核并行:35.84 sec
10000次QPSK加信道编码,常规运行:786.97 sec; 多核并行:330.03 sec
运行速度分别提高了 55.52% 和 58.06%。 虽然没有预期中减少3/4那么多(4核并行),但是运行时间减少量仍然相当可观

更多的matlabpool用法可以参考帮助文档或者访问FileExchange社区

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有