VV游戏

 找回密码
 立即注册
12
返回列表 发新帖

MATLAB程序加速——除了多线程,还有别的办法吗?

[复制链接]

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-3-26 13:21:25 | 显示全部楼层
先说明一下,是你代码的问题
你这个,反复扩充变量a的内存,而不是选择预先选择开辟好内存等待赋值,你这样代码执行效率被限制在CPU和内存的通信速度上了
回复

使用道具 举报

2

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-26 13:21:48 | 显示全部楼层
我的代码用parfor速度提升异常明显,代码是跑tabu search和GA,里面的群体计算部分就用的并行处理,一次迭代100个群体,用for要一个个算,用parfor就能一起处理。就仅仅开出双核,一次迭代的运算时间就从230多秒降低多78秒左右。
回复

使用道具 举报

1

主题

8

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-3-26 13:22:40 | 显示全部楼层
谢谢楼主的抛砖引玉,让我学到了很多[拜托]
回复

使用道具 举报

2

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-3-26 13:22:57 | 显示全部楼层
大佬可以说说为什么纯矩阵计算可以快这么多吗,是因为matlab专门为矩阵做了优化以至于接近于C语言的速度,而for循环却还是matlab的速度这样吗?[好奇]
回复

使用道具 举报

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-3-26 13:23:12 | 显示全部楼层
这个例子会不会parfor要慢一点[doge]
回复

使用道具 举报

0

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-3-26 13:23:27 | 显示全部楼层
我是parfor的坚定拥护者,我有一个简单的单变量循环,只是循环次数异常大,大概有15亿次,正常运算要十几天。开启parfor后,大概只要10个小时就能计算完成,电脑是6核的,当时都美屁了[爱]
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|VV游戏

GMT+8, 2025-4-8 11:32 , Processed in 0.088285 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表