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