
叢集與任務佇列
|
283
這是開始為輕量級計算任務建造隨意叢集的有用方法,你可能不會想要將它運用在上線
環境(Celery 或 GearMan 可能是更好的選擇),但對研究與學習來說,這讓你很容易擴
充,也很容上手。
pp
無助於將程式碼或靜態資料散佈到遠端機器;你必須將外部程式庫(例如,任何你
可能編譯成靜態程式庫的東西)移到遠端機器,並且提供任何共用的資料。然而,它確
實處理及序列化要執行的程式碼,額外的匯入(import),以及你從控制器行程提供的
資料。
使用 IPython Parallel 支援研究工作
IPython 叢集由
ipcluster
(
http://bit.ly/IPython_parallel
)支援,IPython 變成本地與遠端
處理引擎的介面,在當中,資料可以在引擎之間推送,任務能夠被推送到遠端機器。遠
端偵錯是可行的,而且訊息傳遞介面(message passing interface,MPI)選擇性地被支
援。相同的溝通機制為 IPython Notebook 介面提供動力。
這對研究設定大有好處—你能夠將任務推送到本地叢集的機器,在有問題時進行互動與
偵錯,把資料推送到機器,並且將結果收集回來等,全都是以互動的方式進行。另外,
請注意,PyPy 執行 IPython 與 IPython Parallel,這個結合可能非常具有威力(假如你不
使用
numpy
)。
在幕後,ZeroMQ 被用來當作訊息傳送的中間件(middleware),所以你必須安裝它。
如果是在區域網路上打造叢集,你可以避開 ...