借助并行MATLAB應(yīng)用程序提升科學(xué)計算效率
隨著諸如金融分析、地震預(yù)報、醫(yī)學(xué)影像、流體模擬等應(yīng)用對科學(xué)計算的要求變得更加復(fù)雜,工程師和科學(xué)家必須使用大量的數(shù)據(jù)集來解決日益增長的計算強度問題。多數(shù)情況下,不是客戶的計算機處理不了這樣的難題,就是必須花幾天甚至數(shù)周的時間運行才能得到結(jié)果。
另一方面,傳統(tǒng)HPC用戶也正在尋找更好、更簡單的編程工具,以便能創(chuàng)造性地解決問題。否則,他們就不得不在低級語言環(huán)境中開發(fā)并行應(yīng)用(例如C、FORTRAN);或者,即便采用了諸如MATLAB(r)這樣的高級語言,他們也仍然要依靠程序員用C或FORTRAN來重新編寫這些應(yīng)用 。顯然,這些工作成本高又費時,而且還容易出錯。
為了更好地解決上述問題,The MathWorks公司曾在2008年5月宣布,將其并行計算工具箱(Parallel Computing Toolbox)并行計算功能整合到MATLAB Optimization Toolbox和遺傳算法和直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox)等優(yōu)化求解器之中,讓用戶無需代碼修改,即可創(chuàng)建密集型計算MATLAB應(yīng)用的并行版本。
“簡便性、靈活性、和易于部署始終是并行MATLAB最為看中和關(guān)注的。”該公司MATLAB產(chǎn)品市場總監(jiān)Lisa Kempler日前在北京為其新版并行計算工具箱進行推廣時做出了此番表態(tài)。“正版用戶只要使用并行計算工具箱開發(fā)應(yīng)用程序并通過MATLAB Compiler發(fā)布,便無需繳納版稅。”
她強調(diào)說,MATLAB并行計算工具箱能夠為客戶提供多種高級編程結(jié)構(gòu),包括parfor(并行for循環(huán))和spmd(單程序多數(shù)據(jù))語句、分布式數(shù)組、并行數(shù)值算法、以及消息傳遞函數(shù)等。用戶可利用此工具箱對串行MATLAB代碼進行轉(zhuǎn)換,使之在數(shù)個worker(獨立于MATLAB客戶端運行的MATLAB計算引擎)上并行運行。
例如,parfor功能就提供了一種在多個MATLAB worker間分配任務(wù)的方式,用戶可以在MATLAB腳本和函數(shù)中使用該循環(huán),并以交互或脫機的方式執(zhí)行;如果使用spmd結(jié)構(gòu),指定代碼的區(qū)段就可以在所有參與并行計算的worker間并行運行。程序執(zhí)行過程中,該結(jié)構(gòu)會自動將在其內(nèi)部使用的數(shù)據(jù)和代碼傳輸給worker,并在執(zhí)行完畢后將結(jié)果返回給MATLAB客戶端。
而使用分布式數(shù)組和支持分布式數(shù)組的并行函數(shù)的好處則在于,用戶不但可以在參與并行計算的所有worker間分配任何數(shù)據(jù)類型的矩陣,還能夠執(zhí)行多種數(shù)學(xué)運算,例如索引、矩陣相乘、分解,以及在分布式數(shù)組上直接轉(zhuǎn)換。此外,該工具箱還提供了作業(yè)和任務(wù)對象,用以在批處理環(huán)境中執(zhí)行并行 MATLAB 應(yīng)用程序。
盡管通過MATLAB并行工具箱,使用者已經(jīng)可以在一臺使用一個工具箱許可證的計算機上使用四個本地worker。但Lisa認為,如果能與MATLAB 分布式計算服務(wù)器集成使用,應(yīng)用程序還可得到擴展,從而可以使用運行在任意數(shù)量計算機上的任意數(shù)量的worker。“這就意味著,其它領(lǐng)域內(nèi)不直接使用MATLAB的專業(yè)人士,也能從并行MATLAB性能中獲益。”
她進一步解釋說,MATLAB 分布式計算服務(wù)器會在應(yīng)用程序運行時在基于用戶配置文件的集群上動態(tài)啟用所需的許可證。這樣,管理員便只需在集群上管理一個服務(wù)器許可證,而無需針對每位集群用戶在集群上管理單獨的工具箱和模塊集許可證。
MATLAB并行計算工具箱 4.0新版本使用了用戶熟悉的MATLAB環(huán)境來建立原型、開發(fā)任務(wù)并行和數(shù)據(jù)并行應(yīng)用程序。以Matlabpool命令為例,它可為用戶分配一組專用的計算資源,并將MATLAB會話連接至一個MATLAB worker池。同時,它還可以建立一個交互式并行執(zhí)行環(huán)境。在該環(huán)境中,使用者可以從MATLAB命令提示符執(zhí)行并行的MATLAB代碼,并且在計算結(jié)束后立即得到結(jié)果。相信該工具箱的推出,會讓更多的科學(xué)家和工程師更高效地利用計算資源和解決大數(shù)據(jù)量并行計算問題,從而加速自身科研工作的進展。
F1 使用The MathWorks公司并行計算工具箱開發(fā)并行應(yīng)用程序