2012-04-07 908 views
11

我正在編譯具有OpenMPI的服務器上的代碼,但我需要知道我在哪個版本,以便我可以閱讀正確的文檔。 <mpi.h>中有一個常量,我可以打印以顯示當前版本嗎?如何檢查OpenMPI的版本?

回答

11

使用OpenMPI,最簡單的方法是運行ompi_info;前幾行會給你你想要的信息。在你自己的代碼中,如果你不介意OpenMPI的具體情況,你可以在mpi.h中看看使用OMPI_MAJOR_VERSION,OMPI_MINOR_VERSIONOMPI_RELEASE_VERSION。這顯然不適用於MPICH2或其他MPI實現。

更多地規範,如MPI-3的一部分,會有所謂的MPI_Get_library_version,給你在運行時的詳細圖書信息標準MPI程序。這足夠小且足夠有用,新版本的MPI實現將會非常快速地實現 - 例如OpenMPI 1.7開發主幹 - 但它對今天並沒有什麼幫助。

+0

這正是我所期待的。 MPI_Get_version(* int,* int)可讓您知道MPI標準OpenMPI遵守的版本,而不是OpenMPI的實際發行版本。 – Zak 2012-04-07 18:59:58

3

我不熟悉OpenMPI,但MPI具有函數MPI_Get_Version,請檢查您的mpi.h是否有類似的功能。在終端

mpiexec --version 

mpirun --version 

+0

這是一個開始,但只給出了MPI庫符合的標準版本;例如,今天大多數MPI實現將爲主要/次要版本返回2和1(或0),但它不會讓您區分(比如說)OpenMPI 1.4.4和OpenMPI 1.5.3。前者在編寫代碼時當然很重要,但如果您試圖解決實現或配置問題,後一類信息可能非常重要。 – 2012-04-07 18:05:57

+0

感謝您的評論,MPI_Get_version(* int,* int)返回的信息加上MPI網站http://www.mpi-forum.org/docs/是大量信息的關鍵! – Zak 2012-04-07 19:01:52