999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MATLAB并行計算解決方案

2016-10-28 16:11:05姚尚鋒劉長江唐正華
計算機時代 2016年9期
關鍵詞:仿真

姚尚鋒+劉長江+唐正華

DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.021

摘 要: 為了利用分布式和并行計算來解決高性能計算問題,本文介紹了利用MATHWORKS公司開發(fā)的并行計算工具箱在MATLAB中建模與開發(fā)分布式和并行應用的一些方法;包括并行for循環(huán)、批處理作業(yè)、分布式數組、單程序多數據(SPMD)結構等。用這些方法可將串行MATLAB應用程序轉換為并行MATLAB應用程序,且?guī)缀醪恍枰薷拇a和低級語言編寫程序,從而提高了編程和程序運行的效率。用這些方法來執(zhí)行模型,可以解決更大的問題,覆蓋更多的仿真情景并減少桌面資源。

關鍵詞: 建模; 仿真; 并行計算; MATLAB

中圖分類號:TP31 文獻標志碼:A 文章編號:1006-8228(2016)09-73-03

Parallel computing solutions with MATLAB

Yao Shangfeng, Liu Changjiang, Tang Zhenghua, Dai Di

(Simulation Training Center, Armored Force Institute, Bengbu, Anhui 233050, China)

Abstract: For the use of distributed and parallel computing to solve the problem of high-performance computing, this article describes the use of Parallel Computing Toolbox developed by MATHWORKS Company and some methods of parallel applications, including parallel for loop, batch jobs, distributed arrays, Single Program Multiple Data (SPMD) structure. by the methods, the serial MATLAB applications can be converted to parallel MATLAB applications, and almost no need to modify the code and program in low level languages, thereby increasing the efficiency of programming and operation. Use this method to perform model can solve bigger problems, cover more simulation scenarios and reduce the desktop resources.

Key words: modeling; simulation; parallel computing; MATLAB

0 引言

用戶面臨著用更少的時間建立復雜系統模型的需求,他們使用分布式和并行計算來解決高性能計算問題。MATHWORKS公司開發(fā)的并行計算工具箱(Parallel Computing Toolbox)[1-5]可以在MATLAB中建模和開發(fā)分布式和并行應用,并在多核處理器和多核計算機中執(zhí)行,解決計算、數據密集型問題[2],而且并不離開即使的開發(fā)環(huán)境;無需更改代碼,即可在計算機集群上運行同一個應用程序(使用MATLAB Distributed Computing Server)。并行的MATLAB應用程序也可以作為可執(zhí)行程序或共享庫(用MATLAB Compiler構建)分發(fā),這些可執(zhí)行程序或共享庫可以訪問MATLAB。

1 并行for循環(huán)

并行for循環(huán)提供了一種在多個MATLAB worker(從客戶會話中單獨運行的MATLAB計算引擎)間分配任務的方式。使用該循環(huán),可以將獨立的循環(huán)迭代自動分配給多個MATLAB worker。例如,100次迭代的循環(huán)可以同時在20個MATLAB worker集群上運行,從而每個worker只執(zhí)行五次迭代循環(huán),整體上提高了循環(huán)的速度。并行for循環(huán)用關鍵字parfor代替關鍵字for。parfor結構管理著MATLAB客戶端與worker之間的數據和代碼傳輸。它會自動檢測是否有worker,如果沒有,則還原為串行方式。

下面給出如何將一個簡單的for循環(huán)修改為一個并行的for循環(huán)[1,6]。這一循環(huán)沒有很多的迭代,也不需要很長時間來執(zhí)行,但可以應用相似的方法到更大的循環(huán)。對于這一簡單的例子,我們可能不會注意到執(zhí)行速度的增加,但對于更大的循環(huán),執(zhí)行速度的增加是相當可觀的。

假設用for循環(huán)創(chuàng)建一個正弦波并繪制波形:

for i=1:1024

A(i)=sin(i*2*pi/1024);

end

plot(A)

為了將其修改為并行for循環(huán)代碼,首先按以下方式打開MATLAB池,這樣將保留三個本地worker運行循環(huán)迭代。

matlabpool open local 3

然后,使用parfor修改代碼運行并行for循環(huán):

parfor i=1:1024

A(i)=sin(i*2*pi/1024);

end

plot(A)

此循環(huán)中的惟一差別是關鍵字parfor代替了for。循環(huán)運行后,其結果與for循環(huán)沒有任何區(qū)別。任務完成后,關閉MATLAB池并釋放worker。

matlabpool close

2 批處理作業(yè)

當與MATLAB客戶端交互會話工作時,可以卸載工作到一個運行批處理作業(yè)的MATLAB worker。執(zhí)行此任務的命令是異步的,這意味著客戶端MATLAB進程不會受阻,你能繼續(xù)你的交互式會話,而MATLAB worker負責處理代碼。MATLAB worker可以運行在同一臺機器上,或者如果使用MATLAB分布式計算服務器,也可以運行在遠程集群機器上[4]。

為了卸載工作從MATLAB客戶端到一個worker,可以使用批處理命令。下面的示例使用上面介紹的for循環(huán)。

首先創(chuàng)建和編輯文件名為mywave的文件[6];文件內容如下。

for i=1:1024

A(i)=sin(i*2*pi/1024);

end

保存文件并關閉編輯器。然后,在MATLAB命令窗口使用批處理命令在一個單獨的MATLAB worker中運行腳本。

job=batch('mywave')

批處理命令不阻止MATLAB,所以你必須等待作業(yè)完成,然后才能檢索和查看它的結果。

wait(job)

“l(fā)oad”命令將worker工作空間的變量轉移到客戶端工作空間,在這里你可以查看結果。

load(job, 'A')

plot(A)

最后,當作業(yè)完成,刪除其數據。

destroy(job)

3 批處理并行循環(huán)

在前面兩個例子中,一個修改了for循環(huán)變?yōu)閜arfor循環(huán),一個提交腳本for循環(huán)作為批處理作業(yè)。下面將它們結合起來創(chuàng)建一個批處理parfor循環(huán)。

首先,在MATLAB編輯器中打開腳本文件mywave并修改腳本,變for循環(huán)為parfor循環(huán)。

parfor i=1:1024

A(i)=sin(i*2*pi/1024);

end

保存文件并關閉編輯器。然后,像前面一樣用批處理命令運行腳本,但需要表明該腳本使用MATLAB池做并行循環(huán)。

job=batch('mywave', 'matlabpool', 3)

此命令指定三名worker(不包括運行批處理腳本的worker)執(zhí)行循環(huán)迭代。因此,本例使用四個本地worker;等待并查看結果。

wait(job)

load(job, 'A')

plot(A)

最后,當作業(yè)完成,刪除其數據[4]。

destroy(job)

4 分布式數組和單程序多數據

假如有一個數組,它相對計算機的內存過大,因此它不容易在單一的MATLAB中處理。并行計算工具箱可以將這個數組分配到多個MATLAB worker中,每個worker只包含數組的一部分。然而,你可以將整個數組作為一個單一實體進行操作;每個worker僅操作它所管理的部分,但各worker間在需要時可自動相互傳送數據,就像使用常用數組一樣。工具箱提供了150多個用于分布式數組的重載MATLAB函數;使得我們可以快速的設計開發(fā)并行程序,而不需要去處理低層次的消息傳遞的細節(jié)問題。

分布式數組的創(chuàng)建有多種方法,可直接使用創(chuàng)建函數如rand,ones,,zeros創(chuàng)建;下面介紹使用distributed函數創(chuàng)建分布數組的方法。

首先,打開MATLAB池。

matlabpool open %用戶默認并行配置

然后,使用distributed函數創(chuàng)建分布數組。

M=magic(4) %客戶工作空間中的4×4魔方矩陣

MM=distributed(M);

這里,MM是分布數組,等同于M;可以象任何其他數組一樣操縱或訪問它的元素。

M 2=2*MM; %M2也是分布數組,計算在worker中進行

x=M2(1,1); %客戶端x等于M2的第一個元素

處理完畢后,關閉matlab池。

matlabpool close

單程序多數據(SPMD)結構可以定義一個并行運行在MATLAB池中所有l(wèi)abs (workers)上的代碼塊。這里的lab,當MATLAB工作進程開始工作時,它們在默認情況下獨立工作,也可以相互通信協同工作,這時它們被稱為labs。

matlabpool %使用默認并行配置

SPMD %默認使用池中的所有l(wèi)abs

R=rand(4);

end

此代碼創(chuàng)建一個獨立的4×4隨機矩陣R,其元素存于MATLAB池中所有l(wèi)abs上。

5 結束語

并行計算工具箱延伸了MATLAB交互式環(huán)境,并行命令窗口即能提供熟悉的MATLAB環(huán)境原型用于開發(fā)分布式和并行應用程序,也能提供在批處理環(huán)境中脫機執(zhí)行分布式和并行應用程序。無需為特定的硬件和網絡架構編寫程序,就可方便的將串行MATLAB應用程序轉換為并行MATLAB應用程序,從而能夠以較高的級別在MATLAB中執(zhí)行任務及數據并行算法。用這種方法來執(zhí)行模型,可以解決更大的問題,覆蓋更多的仿真情景并減少桌面資源。

參考文獻(References):

[1] 劉維編著.實戰(zhàn)Matlab之并行程序設計[M].北京航空航天大

學出版社,2012.

[2] 高山流水.Matlab并行計算工具箱及MDCE介紹[M/OL].

http://blog.sina.com.cn/s/blog_45eac6860100lzlk.html.

[3] 吳鵬編著.Matlab高效編程技巧與應用[M]. 北京航空航天大

學出版社,2010.

[4] 靖穩(wěn)峰.Matlab并行程序設計[M/OL].http://wenku.baidu.com/

link?url=yKuBHklFu3oxBDDUl6BXr4xzRhbepRJlhJoWwUlbr_

FMvRNR3VDhnw-AvC9wJvSmuMVC3TAH3A5ncOO3Ep

WVX7HuBObM9ubhWzlr4KXVRpK

[5] 彭代慧,鄒顯春編著.Matlab2013實用教程[M].高等教育出

版社,2014.

[6] 飛思科技產品研發(fā)中心編著.Matlab7基礎與提高[M].電子

工業(yè)出版社,2006.

猜你喜歡
仿真
Proteus仿真軟件在單片機原理及應用課程教學中的應用
工業(yè)機器人模擬仿真技術在職業(yè)教育中的應用淺析
一種幫助幼兒車內脫險應急裝置的仿真分析
科技資訊(2016年18期)2016-11-15 20:09:22
論虛擬仿真實訓系統在口腔實驗教學中的應用
科技資訊(2016年18期)2016-11-15 07:55:28
基于機電設備電氣控制線路排故的仿真系統設計
價值工程(2016年29期)2016-11-14 02:01:16
航空電氣系統中故障電弧研究
Buck開關變換器的基本參數設計及仿真分析
試析PLC控制下的自動化立體倉庫仿真情況分析
基于MADYMO的航空座椅約束系統優(yōu)化設計
科技視界(2016年18期)2016-11-03 21:44:44
中國體態(tài)假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
科技視界(2016年18期)2016-11-03 20:31:49
主站蜘蛛池模板: 中文一区二区视频| 日韩毛片免费视频| 88国产经典欧美一区二区三区| 欧美成人精品高清在线下载| 国内精品一区二区在线观看 | 亚洲一级毛片在线播放| 国产杨幂丝袜av在线播放| 日本伊人色综合网| 亚洲国产成人精品一二区| 日韩无码黄色| 波多野结衣在线一区二区| 国产又粗又猛又爽| 自拍亚洲欧美精品| 国产自产视频一区二区三区| 日韩欧美中文在线| 久久精品人人做人人综合试看| AV片亚洲国产男人的天堂| 国产精品成人一区二区不卡 | 国产精品免费p区| 亚洲精品爱草草视频在线| 视频一本大道香蕉久在线播放| 成人福利在线看| 国产二级毛片| 国产高清在线精品一区二区三区| 无套av在线| 九九热免费在线视频| 久久精品人人做人人爽电影蜜月 | 久久这里只有精品66| 女人毛片a级大学毛片免费| 国产视频一区二区在线观看 | 激情综合图区| 亚洲中文字幕无码爆乳| 国产一区亚洲一区| 国产69精品久久久久孕妇大杂乱 | 免费可以看的无遮挡av无码| 欧美成人国产| 国内精品久久人妻无码大片高| 亚洲欧美极品| 国产白丝av| 中文字幕亚洲无线码一区女同| 亚洲精品777| 四虎国产在线观看| 久久国产亚洲偷自| 最新精品久久精品| 黄色一及毛片| 成年人福利视频| 欧美不卡在线视频| 欧美日韩国产精品va| 久久这里只有精品66| 国产精品吹潮在线观看中文| 精品视频免费在线| 久久大香伊蕉在人线观看热2| 国产极品美女在线| 国产一区二区三区精品久久呦| 四虎永久在线视频| 亚洲—日韩aV在线| 亚洲午夜天堂| 国产网友愉拍精品视频| 无码AV高清毛片中国一级毛片| 欧美一级夜夜爽www| 69视频国产| 日韩精品成人网页视频在线 | 2048国产精品原创综合在线| 亚洲视频影院| 国产精品亚洲а∨天堂免下载| 免费一级成人毛片| 97久久人人超碰国产精品| 久久综合激情网| 国产精品无码AV片在线观看播放| 99视频精品全国免费品| 亚洲欧洲一区二区三区| 亚洲天堂精品视频| 日韩人妻无码制服丝袜视频| 久久国产拍爱| 久久精品日日躁夜夜躁欧美| 久久亚洲国产一区二区| 国产美女丝袜高潮| 久久中文字幕不卡一二区| 久久国产精品无码hdav| 福利视频久久| 中文精品久久久久国产网址| 2021国产在线视频|