2014-02-25 48 views
1

我有一個關於MPI使用的一般性問題。使用MPI或以串行方式並行寫入文件?

例如,如果要將數據寫入文件,將會創建100個文件。

你更喜歡用每個等級(核心)來編寫一個文件,或者你更喜歡把它們一個一個地串行編寫嗎?哪個更快?

回答

0

如果您將每個等級寫入一個文件(串行),則將存在race condition,因此所有寫入都必須以原子方式完成。與每個等級寫入自己的文件相比,這會使整體寫入時間慢得多。

然而,如果Reduce連接兩個單獨的文件,則需要某種減少。您必須對連續寫入的等待時間(除非您將文件保留部分)加權來減少通信/連接開銷。

+0

所以你的意思是,如果我把文件留在零件中,如果我平行寫入,會更快? – frankliuao

+0

是的,如果你不關心寫入文件的順序。從本質上講,所有等待寫入一個文件的等級與一個進程寫入一個文件的速度相同,因爲您無法對其進行並行化。 –