免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2400|回复: 6
收起左侧

[经验共享] Matlab利用cpu的多核提高运算速度

[复制链接]

66

主题

1364

铜板

7

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
584
发表于 2017-10-19 16:10 | 显示全部楼层 |阅读模式
在使用Matlab进行大数据运算的时候,往往会遇到速度低下的问题,高版本的matlab是支持多核运算的,这里做了一个尝试。

经过测试使用的MATLAB2010可以多核运行的。需要多核多线程跑的算法,在之前要让matlab在本地建立4个“实验室”(我的机器是4核,所以是4个)
  1. >> matlabpool local 4
  2. Starting matlabpool using the 'local' configuration ... connected to 4 labs.
复制代码
显示正在进行多核配置,一会说,连接到4个“实验室”。我理解就是在本地虚拟出4台可以运行matlab的工作站,这样用分布式计算工具箱可以进行并行计 算(matlabpool这个命令好像是在并行计算工具箱里的)。观察windows任务管理器,可以发现一共有5个MATLAB.exe进程。其中一个 占内存较多的,我理解是主控的,他基本不干活,只负责分配,进行计算时他的cpu占用率只有1~2%,剩下四个进程专门用来计算的,跑起来各占cpu 25%左右。看上去还是每个matlab进程单核运算,但是一下开4个进程,所以能把cpu用满。

如果后续还需要多核运算,就直接用parfor好了,不用每次都用matlabpool命令。那个配置一次就好。
算完了,不再跑了,临退出时关闭配置就行。

  1. >> matlabpool close
  2. Sending a stop signal to all the labs ... stopped.
复制代码
测试过程

下面是我一个M文件的程序,测测4核并行计算和单核计算的差距,很简单。

  1. function testtime
  2. runtimes = 1e9;

  3. dummy1   = 0;

  4. dummy2   = 0;


  5. %matlabpool local 4


  6. tic

  7. %for x= 1:runtimes;

  8. parfor x= 1:runtimes;

  9. dummy1 = dummy1 + x;

  10. dummy2 = 2 * x + 1;

  11. end

  12. toc


  13. plot([1 2], [dummy1, dummy2]);
复制代码
第一次用普通for语句,单核跑,6.09秒
  1. >> testtime
  2. Elapsed time is 6.094267 seconds.
复制代码
第二次用parfor语句,4核跑,1.63秒
  1. >> matlabpool local 4
  2. Starting matlabpool using the 'local' configuration ... connected to 4 labs.
  3. >> testtime
  4. Elapsed time is 1.631350 seconds.
  5. >> matlabpool close
复制代码
加速比 6.09 / 1.63 = 3.736,将近4倍(还有开销吧),还比较可观。

10

主题

1万

铜板

19

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3720
发表于 2021-11-13 21:28 | 显示全部楼层
感谢分享!
回复

使用道具 举报

30

主题

2万

铜板

59

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6290
QQ
发表于 2022-1-23 21:38 | 显示全部楼层
感谢分享:mg
回复 支持 反对

使用道具 举报

0

主题

2万

铜板

1

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3415
发表于 2022-2-4 16:15 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

2万

铜板

1

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3415
发表于 2022-2-4 16:22 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

1

主题

1万

铜板

2

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4845
发表于 2022-12-8 18:54 | 显示全部楼层
感谢楼主分享!!
回复 支持 反对

使用道具 举报

34

主题

1万

铜板

35

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2799
发表于 2023-1-8 11:18 | 显示全部楼层
谢谢分享                        
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表