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
主站蜘蛛池模板: 国产福利影院在线观看| AV网站中文| 日韩无码黄色| 国产va欧美va在线观看| 日韩欧美中文在线| 国产成本人片免费a∨短片| 亚洲中文制服丝袜欧美精品| 2020国产在线视精品在| 亚洲精品黄| 久久一级电影| 午夜a级毛片| 亚洲精品无码久久毛片波多野吉| 中文国产成人久久精品小说| 午夜国产精品视频黄| 午夜精品福利影院| 久久精品一品道久久精品| 亚洲天堂视频网| 中文字幕伦视频| 亚洲欧美不卡| 国产一区二区在线视频观看| 国产精品香蕉| 国产主播福利在线观看| 色综合婷婷| 亚洲第一视频网| 韩日午夜在线资源一区二区| 欧美精品在线视频观看| 亚洲毛片网站| 久久无码av三级| 国产在线自在拍91精品黑人| 日本不卡在线播放| 性视频一区| 精品一区二区三区中文字幕| 成人在线综合| 亚洲 成人国产| 国产女人在线| 青青青视频免费一区二区| 欧美午夜精品| 国产女人爽到高潮的免费视频 | 亚洲一区二区三区在线视频| 天天婬欲婬香婬色婬视频播放| 国产精品亚洲日韩AⅤ在线观看| 亚洲人成网7777777国产| 五月激情综合网| 一级毛片在线播放免费观看 | 国产精品手机视频| 毛片大全免费观看| 成年片色大黄全免费网站久久| 亚洲第一黄色网址| 国产免费a级片| 欧美色伊人| 日本免费一区视频| 亚洲乱强伦| 亚洲日韩AV无码精品| 国产黄在线观看| 日韩a级片视频| 日韩成人高清无码| 欧美午夜一区| 国产微拍一区| 91精品啪在线观看国产91| 91成人在线免费观看| 国产美女人喷水在线观看| 欧美综合中文字幕久久| 免费一级毛片不卡在线播放| 喷潮白浆直流在线播放| 亚洲精品麻豆| 亚洲欧美国产视频| 国产va在线观看免费| 91在线一9|永久视频在线| 97国产精品视频自在拍| 制服丝袜一区| 亚洲第一天堂无码专区| 台湾AV国片精品女同性| 四虎影视永久在线精品| 日本国产精品| 97一区二区在线播放| 动漫精品中文字幕无码| 一级在线毛片| 色哟哟国产精品一区二区| 久久亚洲AⅤ无码精品午夜麻豆| 亚洲天堂日韩av电影| 韩日无码在线不卡| 国产成人亚洲精品无码电影|