1

我不是並行編程方面的專家。但我很好奇,如果我可以在同一個應用程序中使用它們。有什麼好處?可以辦到?似乎沒有人問這個問題。 OpenMP和MPI相結合也存在類似的問題。一般的答案是肯定與依賴。但我對MPI不是很熟悉。結合boost ::線程和OpenMP

回答

2

MPI與OpenMP意義上的正交 - 它是對分佈式內存系統進行編程的範例,其中每個MPI進程無法直接訪問其他MPI進程內存(例如,不同進程在不同計算節點上運行)。由於現在大多數計算節點都是多核,因此可以使用OpenMP或其他線程方法對每個節點進行編程,並使用MPI在節點之間交換消息。 OpenMP和boost:threads都是線程範例。除了使用boost::threads來執行定期的線程任務以及對於某些數據並行任務在概念上更簡單的OpenMP之外,我認爲沒有必要混合使用它們。

+0

我用MPI得到它。我的興趣在於多核節點。雖然技術上boost :: threads不僅僅是OpenMP,後者具有簡單性的優點。而使用兩者的唯一原因是openmp允許快速「增加」一些舊的singlecore代碼。 Boost :: Threads將幫助程序的更新和未寫入的部分。 – Palax