2015-12-21 61 views
-2

我從complete genomicshttp://cgatools.sourceforge.net/docs/1.8.0/)有這個工具稱爲cgatools。我需要在高性能計算集羣中運行一些基因組分析。我試圖運行分配超過50個內核和250GB內存的作業,但它只使用一個內核,並將內存限制在2GB以內。在這種情況下,我的最佳選擇是什麼?有沒有辦法在HPC集羣中運行二進制可執行文件,使其使用所有分配的內存?如何在多線程HPC羣集中運行二進制可執行文件?

+2

AFAICT,並根據其文檔,您的工具是不平行的。那麼你如何提交它?是什麼讓你期望它應該使用分配給批處理作業的所有內核和內存? – Gilles

回答

1

調度程序只是在分配的第一個節點上運行您提供的二進制文件。分工和並行運行的責任在於二元體系。因此,您看到您正在使用分配的五十個中的一個核心。

在代碼級別Parallelising

您需要確保您所提交的工作到羣集的二進制有一定的機制理解分配節點(互動與作業調度)和利用分配資源(MPI,PGAS等)的機制。

如果它是並行化的,則通過作業提交腳本(通過像mpirun/mpiexec這樣的包裝器)提交二進制文件應該使用所有分配的資源。

運行黑匣子並聯

串行二進制如果沒有,整個資源的唯一其他可能的工作量分配機制是數據並行模式,其中,可以使用集羣的多個輸入提供給相同的二進制並行運行流程,有效縮短解決問題的時間。

您可以根據每次運行所需的內存來設置粒度。例如,如果每個進程需要1GB內存,則每個節點可以運行16個進程(假設有16個內核和16GB內存等)。

可以通過工具Parallel並行提交多個輸入在單個節點上。然後,您可以向羣集提交多個作業,每個作業請求1個節點(獨佔訪問和並行工具),並分別處理不同的輸入元素。

如果您不想啓動'n'個獨立作業,您可以使用調度程序提供的機制(如blaunch)來指定作業應該動態運行的機器。您可以解析調度程序分配的計算機的名稱,並進一步使用blaunch like腳本來模擬從第一個節點提交的n個作業。

注意:這些類別的應用程序最好在設置上運行,而不是典型的HPC系統[在可用並行性(集羣,線程和SIMD)的所有級別上有效利用集羣是HPC。]

相關問題