2013-04-10 20 views

回答

2

MPIR_ 由於通常用於其在其爲實際MPI_界面下方但抽象設備接口(ADI),其符號通常具有MPID_前綴上述頂層層定義的符號。大多數MPIU_符號也在此層定義,但它們通常用於完全獨立的實用程序例程,它們不實現任何「MPI業務邏輯」。與這些命名慣例一樣,在所有情況下,約定都沒有嚴格遵守100%。

來源:我的大腦;我一直在開發MPICH 5年以上。

使用的庫中定義的例程非MPI_的名字是很重要的,因爲這意味着我們會不小心踩在腳下的MPI命名空間和未來潛在的標準化衝突或混淆用戶對什麼是真正的標準功能:http://www.mpi-forum.org/docs/mpi22-report/node31.htm#Node31

我們使用ISO C聲明格式。所有MPI名稱都有一個MPI_前綴,定義的常量全部以大寫字母表示,並且定義的類型和函數在前綴後面有一個大寫字母。程序不得聲明名稱以MPI_前綴開頭的變量或函數。爲了支持性能分析界面,程序不應該聲明名稱以PMPI_前綴開頭的函數。

+0

謝謝,所以你說MPI接口和設備層之間有一層。所以當我們說「MPI級別」中的「MPID_函數由MPI級別使用的設備實現」時,我們是指MPIR,對吧?當我們說MPI級別的「MPI_函數由應用程序使用的MPI級別實現」時,我們的意思是MPI Interface,對嗎? – Iman 2013-04-10 15:29:29

+0

排序取決於你想如何看待它。我將「MPI級別」和「MPIR級別」視爲圖中的同一層。也就是說,接口是層之間的邊界,理想情況下由一組明確定義的函數和數據類型組成(想象一個設計良好的頭文件集)。圖層是這些函數的實際實現的地方(這些頭文件的'.c'文件)。不幸的是,我沒有清楚地說明這一點的圖表。 – 2013-04-11 13:09:34

+0

感謝您的信息 – Iman 2013-04-11 15:52:21