MATLAB并行运算测试效率评估.doc

上传人:sk****8 文档编号:3520284 上传时间:2019-06-01 格式:DOC 页数:13 大小:176.50KB
下载 相关 举报
MATLAB并行运算测试效率评估.doc_第1页
第1页 / 共13页
MATLAB并行运算测试效率评估.doc_第2页
第2页 / 共13页
MATLAB并行运算测试效率评估.doc_第3页
第3页 / 共13页
MATLAB并行运算测试效率评估.doc_第4页
第4页 / 共13页
MATLAB并行运算测试效率评估.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、MATLAB 并行运算测试效果评估1 MATLAB 并行计算机制MATLAB 提供了并行计算工具箱( Parallel Computing Toolbox) ,可以将一个 MATLAB 会话(session,即 client)的计算工作分配到其他的 MATLAB 会话(也称为 worker) 。在没有使用并行计算工具箱的情况下,MATLAB 的计算工作是由 client 执行的;当使用了并行计算工具箱后,MATLAB 能够创建多个 worker(MATLAB 确定了最大上限是 8 个) ,由client 将计算工作分配到 worker 并行执行。并行计算工具箱有三种典型的使用场景:1、Para

2、llel for-Loops (parfor):将 for 循环中的执行语句分配到不同的 worker 并行执行。要保证执行结果正确,需要保证 for 循环中的代码是能够彼此互不依赖。Parfor 实现的是代码级别的并行处理机制。2、Batch Jobs:即批任务执行机制,一个 worker 负责一个 job。一个任务通常是一个 M 文件或者一个函数。Batch Jobs 实现的是任务(函数、文件为载体)级别的并行处理机制。3、Large Data Sets:当处理的数据量太大超出内存负荷后,可以将此大数据分配到不同的worker,每一个 worker 只包含其中一部分数据,但是用户仍然可以将

3、此大数据作为一个整体来操作。本文评估了 parfor 工作效率。Parfor 工作原理如下图所示,MATLAB client 启动了 3 个worker 来并行执行 parfor 中的代码,一个 CPU 核对应一个 worker。本测试所用 PC 的 CPU只有两个核,因此最多只能启动两个 worker。除了并行计算工具箱(Parallel Computing Toolbox) ,matlab 还支持分布式计算引擎(MATLAB Distributed Computing Engine(Server),简称 MDCE) ,可以扩展应用程序,将其应用到一个集群上的多台计算机,如下图所示。本文基于

4、 MDCE 在一个 PC 上创建 job 进行计算,一个 job 最多启动了 10 个 worker 进行并行计算。2 parfor 测试2.1 测试环境 PC 机硬件配置:CPU:intel 双核 E4600 2.4GHz;内存:2GB 物理内存。 PC 机操作系统:WINXP SP3。 MATLAB 版本:7.9.0(R2009b)。 测试方法:执行 fft 计算,分别执行 for 循环的语句以及 parfor 循环的语句进行对比,for 循环和 parfor 循环的代码完全一致,唯一区别的是 for 不是并行计算,而 parfor 启动了 2 个 worker 进行并行计算。 测试代码:

5、% 打开并行计算的工作资源池,1 个资源池对应本地 CPU 的一个核。本机有两个核,取值为 2。testExamples = 5;loopTimes = 1e5 ;testStep = loopTimes;tElapsed = 1:1:testExamples;tElapsedPal = 1:1:testExamples;Fs = 1000; % Sampling frequencyT = 1/Fs; % Sample timeL = 1000; % Length of signalt = (0:L-1)*T; % Time vector% Sum of a 50 Hz sinusoid an

6、d a 120 Hz sinusoidx = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); % 非并行计算测试isOpen = matlabpool(size);if isOpen 0matlabpool close; endfor j=1:testExamplestimeStart = tic; for i=1:loopTimes y = x + 2*randn(size(t); % Sinusoids plus noiseNFFT = 2nextpow2(L); % Next power of 2 from length of yY = fft(y,NFFT)

7、/L;f = Fs/2*linspace(0,1,NFFT/2+1);endtElapsed(j) = toc(timeStart);% 增加循环次数loopTimes = loopTimes + testStep;end% 并行计算测试isOpen = matlabpool(size);if isOpen =2 时,C=2。N:worker 数量。由于 MDCE 的工作机制是通过调度器来集中管理 worker 的,因此除了计算时间之外,整个任务执行期间 MDCE 自身调度还占据一定时间,从实测数据来看,调度时长和任务数量成正比。当 C=2、N=2 时,X 需要大于 1.8 秒,采用 MDCE 的优势才能体现出来。2.3 测试数据1) 并行 worker 数为 1 个。蓝色线为串行计算结果,绿色线为并行计算结果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。