我從complete genomics
(http://cgatools.sourceforge.net/docs/1.8.0/)有這個工具稱爲cgatools
。我需要在高性能計算集羣中運行一些基因組分析。我試圖運行分配超過50個內核和250GB內存的作業,但它只使用一個內核,並將內存限制在2GB以內。在這種情況下,我的最佳選擇是什麼?有沒有辦法在HPC集羣中運行二進制可執行文件,使其使用所有分配的內存?如何在多線程HPC羣集中運行二進制可執行文件?
-2
A
回答
1
調度程序只是在分配的第一個節點上運行您提供的二進制文件。分工和並行運行的責任在於二元體系。因此,您看到您正在使用分配的五十個中的一個核心。
在代碼級別Parallelising
您需要確保您所提交的工作到羣集的二進制有一定的機制理解分配節點(互動與作業調度)和利用分配資源(MPI,PGAS等)的機制。
如果它是並行化的,則通過作業提交腳本(通過像mpirun/mpiexec這樣的包裝器)提交二進制文件應該使用所有分配的資源。
運行黑匣子並聯
串行二進制如果沒有,整個資源的唯一其他可能的工作量分配機制是數據並行模式,其中,可以使用集羣的多個輸入提供給相同的二進制並行運行流程,有效縮短解決問題的時間。
您可以根據每次運行所需的內存來設置粒度。例如,如果每個進程需要1GB內存,則每個節點可以運行16個進程(假設有16個內核和16GB內存等)。
可以通過工具Parallel並行提交多個輸入在單個節點上。然後,您可以向羣集提交多個作業,每個作業請求1個節點(獨佔訪問和並行工具),並分別處理不同的輸入元素。
如果您不想啓動'n'個獨立作業,您可以使用調度程序提供的機制(如blaunch)來指定作業應該動態運行的機器。您可以解析調度程序分配的計算機的名稱,並進一步使用blaunch like腳本來模擬從第一個節點提交的n個作業。
注意:這些類別的應用程序最好在設置上運行,而不是典型的HPC系統[在可用並行性(集羣,線程和SIMD)的所有級別上有效利用集羣是HPC。]
相關問題
- 1. 運行串行作業的HPC羣集
- 2. 用於運行可執行文件的python多線程進程
- 3. 如何打開可執行二進制文件而不在ollydbg中運行它?
- 4. 如何在Qt程序中嵌入二進制可執行文件(在運行時執行)?
- 5. SSIS並行 - Microsoft HPC羣集?
- 6. 如何運行Go二進制文件?
- 7. 如何在GoLang程序中運行二進制文件?
- 8. 如何從二進制可執行文件中提取位
- 9. 執行格式錯誤。二進制文件不可執行
- 10. 如何在Delphi可執行文件中嵌入二進制文件並在運行時解壓縮?
- 11. 在iPhone上執行二進制文件
- 12. 在一個進程中運行兩個可執行文件
- 13. 如何爲非可執行二進制文件生成CFG
- 14. 執行多線程進程
- 15. 如何在我的Javascript中執行二進制文件?
- 16. 如何在二進制文件中執行bitshift?
- 17. 運行時無法執行二進制文件錯誤bibtex2html
- 18. 是否可以在java中執行二進制文件?
- 19. 如何在羣集模式下運行spark,但是在本地執行文件?
- 20. 如何在iOS應用程序中運行可執行文件?
- 21. 在寶石中銷售二進制可執行文件的可行性?
- 22. 如何在Windows中直接運行二進制文件?
- 23. 如何檢查Windows可執行文件是否在Session 0進程中運行?
- 24. 無法執行二進制文件
- 25. 用shebang執行二進制文件
- 26. cygwin - 無法執行二進制文件
- 27. CircleCI:執行本地二進制文件
- 28. C++不能執行二進制文件
- 29. bash,無法執行二進制文件
- 30. PhantomJs無法執行二進制文件
AFAICT,並根據其文檔,您的工具是不平行的。那麼你如何提交它?是什麼讓你期望它應該使用分配給批處理作業的所有內核和內存? – Gilles