我在研究是否有框架/庫可以幫助我實現分佈式計算系統。分佈式計算的C/C++框架(MPI?)
我有了大量分裂成幾百兆的文件數據的所有者。這些文件將被分成大約1MB並分發給工作人員進行處理。一旦初始化,每個工作人員的處理都依賴於從前一個組塊獲得的狀態信息,因此工作人員必須在整個過程中保持活躍狀態,並且主人需要能夠將正確的組塊發送給正確的工作人員。另外需要注意的是,這個系統只是一個更大的處理鏈。
我做的尋找到MPI(具體開放MPI)一點點,但我不知道這是否是合適人選。它似乎適用於發送小消息(幾個字節),儘管我確實發現了一些圖表顯示吞吐量隨着更大的文件(高達1/5 MB)而增加。
我擔心可能沒有保持狀態,除非它是在消息不斷來回發送的方式。看一些MPI的例子,它看起來像是主人(等級0),工人(等級1-n)是同一部分的一部分,他們的行爲是由條件決定的。我可以讓工人保持活力(維持狀態)並等待更多消息到達嗎?
現在我正在寫這個,我認爲它會工作。等級1 ... n部分只是一個帶有阻塞接收的循環,後面跟着處理代碼。該狀態將保持在該循環中,直到收到「沒有更多數據」消息,在該點上它將發回結果。我可能會開始掌握這裏的MPI結構...
我對MPI的另一個問題是如何實際運行代碼。請記住,該系統是更大系統的一部分,因此需要從其他代碼調用。我見過的例子使用了mpirun,通過它可以指定處理器數量或主機文件的數量。通過從其他代碼中調用我的MPI函數可以獲得相同的行爲嗎?
所以我的問題是MPI在這裏的正確框架?有什麼更適合這項任務,或者我會從頭開始做這件事嗎?
你用C或C++? – Puppy