HPC 關於MPI IO,你該知道的

2021-10-21 10:27:00 字數 1793 閱讀 2324

在高效能計算中,經常會用到mpi或者mpi-io,那mpi和mpi-io到底是什麼呢?

mpi(message passing inte***ce),是開發者們在高效能計算程式中,用於在參與計算的不同cpu、或伺服器節點之間進行訊息傳遞的一組規範或介面,通過這組介面,能幫助開發工程師們在不同的計算平台上快速編寫可跨平台移植的平行計算程式,提公升開發效率。基於mpi的規範和介面,業界有不同的mpi實現,如openmpi等。在高效能計算的世界中,除了計算,還必須有資料讀寫的支撐,所以除了mpi,還需要有一組跨計算平台的、可移植的、並行資料讀寫介面,這就是mpi-io設計的初衷:讓io能夠像訊息傳遞(mpi)那樣,通過標準的介面實現並行的資料讀寫訪問。

說到io介面,我們可以用下圖來描述高效能計算程式是如何通過系統介面來訪問資料的:

整個io軟體棧為使用者和開發工程師們提供了標準的程式設計介面,以便大家在不需要關心底層儲存硬體細節的情況下,通過標準的方式訪問資料。

整個io棧中的最底層的介面是posix介面,它涉及最基本的檔案操作,如open、close、read、write、stat等。posix hpc io擴充套件的設計目的,是提高posix在大規模hpc環境中的效能,有意思的是,在大規模hpc環境中,對資料訪問的效能要求有時會超過對資料一致性的要求。例如,相對於posix相當嚴格的一致性語義而言,hpc io擴充套件對一致性的要求會顯得放鬆一些。一般來說,大多數普通應用程式的api都是在posix語義之上構建的。

在整個io棧中,最底層的是檔案系統本身。檔案系統管理著應用程式如何對硬體資源進行訪問,同時,檔案系統實現了posix api所需的功能。檔案系統有兩個極為關鍵的角色:

在hpc環境中,我們通常可能會用到網路檔案系統(nfs)和並行檔案系統。nfs必須解決的兩個問題是:

標準的nfs server通常只提供相當有限的並行訪問能力,即單個客戶端通過單一訪問入口來訪問資料,因此在hpc中使用並行io策略時,難以提供足夠高的效能。因此,在大型平行計算應用中,通常不使用nfs來進行資料訪問。並行檔案系統通常將單個檔案資料分布在多個儲存伺服器上,而執行在多個計算節點上的並行應用程式的多個任務,經常對單個檔案同時發起併發訪問請求。並行檔案儲存系統可以通過並行的多個io訪問請求,為單個檔案提供高水平的讀/寫頻寬。

在hpc系統中,io軟體棧的中介軟體通常由mpi-io的軟體類庫提供。應用程式可以通過使用mpi-io提供的快取和資料過濾技術,來整體提公升資料訪問效能,例如,romio就是mpi-io標準中比較常見的實現。

io棧中還包括更高階別的一些類庫,這些類庫的api有助於工程師以更靈活的方式表達科學模擬計算,例如多維資料、標籤和標記、非連續資料和分類資料。高效能計算程式的讀寫操作基於mpi-io層之上,可以充分利用mpi-io對資料讀寫的優化特性。這些上層io類庫甚至可以實現資料的視覺化和簡單的分析功能,同時能夠在不同平台上實現移植,從而讓這些高效能應用程式可以快速地在不同平台上執行。hdf5和netcdf是目前使用較多的上層io類庫。在過去幾年中,也有不少hpc使用者開始選擇pnetcdf和adios來編寫並行io程式。

上面介紹的類庫和介面都使用共享檔案系統的方式實現並行io,允許多個程序寫入同一邏輯檔案。

簡單而言,mpi-io利用了mpi的訊息傳遞機制,基於posix語義,提供了一套為高效能計算訪問資料的介面規範,不同的mpi-io類庫提供了不同的mpi-io實現,而mpi-io的實現的核心,是底層檔案系統中各種posix語義的支援。yrcloudfile對posix語義的全面支援,也可以為不同的mpi-io類庫提供對底層檔案系統的訪問,從而支援高效能計算的各種應用。

關於焱融科技

你最該知道的事(活著)

好多人真的不知道怎麼活 人是社會一分子,凡是都離不開跟他人打交道,和父母。和子女,和鄰居街坊。和單位同事以及領導,和社會上各種形形色色的人打交道。甚至包含地痞流氓之類的。但好些人總是把事情弄糟,讓他人不快,自己則收穫了委屈,一次也就算了,可偏偏的 受傷的總是我!因為程式猿有著先天的方便條件 csdn...

你該知道的 20 件事情

url 在 eztable 的網誌上看到他們的 vp engineering,大神 york tsai 貼出的一篇 我二十歲時該知道的二十件事 我覺得非常有啟發意義,今天就借用他的這 20 個點,跟大家分享我的觀點。1.世界其實試著讓你保持愚笨 原因是愚笨的人的錢比較容易賺,愚笨的客戶與員工也比較好...

年輕人,你該知道這些

1.如果你不喜歡現在的工作,要麼辭職不幹,要麼就閉嘴不言。初出茅廬,往往眼高手低,心高氣傲,大事做不了,小事不願做。不要養成挑三揀四的習慣。不要雨天煩打傘,不帶傘又怕淋雨,處處表現出不滿的情緒。記住,不做則已,要做就要做好。2.每個人都有孤獨的時候。要學會忍受孤獨,這樣才會成熟起來。年輕人嘻嘻哈哈打...