matlab 多核计算设置2
来源:互联网 发布:mac在线恢复加速2017 编辑:程序博客网 时间:2024/06/08 17:38
典型数值计算问题
N = 1000;
plot(eig(randn(N)) / sqrt(N), ‘.’);
这段代码运行后得到图1,图上每个点代表复平面上一个特征值。注意所有的特征值都位于半径为1 ,圆心在轴的原点的圆内,特别指出的是结果与Girko圆定律是一致的,特征值的幅值没有超过矩阵维数的平方根。
图1 大小为1000的随机矩阵的特征值在半径为sqrt(1000)的圆内
y = zeros(1000,1);
for n = 1:1000
end
plot(y);
使用线程
线程个数
运行循环所需时间
加速倍数
效率
1
902.6
1.00
100%
2
867.2
1.04
52%
3
842.3
1.07
35%
4
862.3
1.05
图2 不同线程数量对应的代码性能
使用并行for循环
for n = 1:1000
end
plot(y);
parfor n = 1:1000
end
plot(y);
图3 左边:原来的代码
Labs数量
运行循环所需时间
加速倍数
效率
1
870.1
1.00
100%
2
487.0
1.79
89%
3
346.2
2.51
83%
4
273.9
3.17
79%
图4 不同的lab数量对应的代码性能
total = 0;
A = zeros(1000, 1);
parfor i = 1:100
end
利用parfor很容易计算total的表达式,但是对于第二个表达式,由于A(i+1)依赖于前一次循环得到的A(i),所以用parfor计算会产生问题。
让我们来更进一步地看看每次循环发生了什么:
Iteration 1: i = 1
Iteration 2: i = 2
Iteration 3: i = 3
通过以上分析我们可以用下面的parfor循环的代码得到跟前面同样结果的代码:
parfor i = 1:10
end
扩展并行计算
________________________________________
所需产品
- MATLAB
- Parallel Computing Toolbox
资源与示例
- Using parfor to Run Loops in Parallel
- Parallel Programming in MATLAB
文章
- Eigenvalues and Condition Numbers of Random Matrices. Alan Edelman. Ph.D. thesis, Massachusetts Institute of Technology, May 1989.
- Language Design for an Uncertain Hardware Future. Roy Lurie. HPCwire, September 28, 2007
- Multiple Processors and Multiple Cores. Cleve Moler. The MathWorks News & Notes, June 2007
- matlab 多核计算设置2
- matlab多核计算设置1
- Matlab多核运算(一)
- matlab 多核并行编程
- 多核计算与程序设计
- 多核计算与程序设计
- Python 多核并行计算
- matlab#2数值计算
- C# IPP多核计算(原文)
- 多核计算与并发编程
- MatLab计算图形中心(2)
- 【Python】【并行计算】Python 多核并行计算
- 面向多核的数值计算:NAG多核并行算法库
- Matlab 多核 多个CPU 并行运算
- OpenCL的多GPU和多核CPU异构计算--2
- 高房价与多核分布式计算
- 日本的Grape引力计算多核处理器
- 多核中的并行前缀和计算
- matlab多核计算设置1
- uva 10465 简单dp标记
- nyoj 711 最舒适的路线
- www.youkud.com开发手记
- (山东省第一届省赛 I 题) SDUTOJ 2159 Ivan comes again! (线段树+set)
- matlab 多核计算设置2
- (9.1.3)线性代数之矩阵变换和线性方程组
- android让TextView滚起来
- Bit-map算法
- Matlab多核运算(一)
- 解决Office2010的激活问题
- hdoj 1598 find the most comfortable road
- PAT(BASIC)1028. 人口普查(20)
- 算法导论:堆排序非递归实现(c语言)