0
我有一個kinetic monte carlo代碼。現在它的動力學,因此每個循環將當前狀態更新爲未來狀態,使其成爲循環的依賴。用matlab進行並行計算的依賴循環
我想使用matlab的並行計算功能,但似乎着名的'parfor'命令只適用於獨立循環。
所以我的問題,是否有可能在matlab中使用並行計算來並行化代碼,其中循環不是獨立的?
我有一個kinetic monte carlo代碼。現在它的動力學,因此每個循環將當前狀態更新爲未來狀態,使其成爲循環的依賴。用matlab進行並行計算的依賴循環
我想使用matlab的並行計算功能,但似乎着名的'parfor'命令只適用於獨立循環。
所以我的問題,是否有可能在matlab中使用並行計算來並行化代碼,其中循環不是獨立的?
通常,這些類型的計算是在網格上完成的,並且網格分佈在工人中,每個工人都有自己的網格部分來計算。這通常不能獨立完成,因爲網格上一個點的值將取決於相鄰點。這些邊界值是使用消息傳遞或共享內存等機制在工作人員之間傳遞的。
在MATLAB中,您可以使用spmd or communicating jobs with the labSend and labReceive functions或者您可以使用distributed arrays。
這種並行性應該如何工作?在第(n-1)次迭代結束之前,第n次迭代的輸入是未知的。 – Daniel
我明白你的觀點。但是在分子動力學中,您根據當前狀態更新粒子的位置和動量,並且人們在羣集上運行它。那麼這是如何工作的? – nitin