當前位置:編程學習大全網 - 遊戲軟體 - C語言中的MPI編程和多線程有什麽區別,MPI編程中針對的是壹臺電腦多核還是多臺電腦?謝謝!

C語言中的MPI編程和多線程有什麽區別,MPI編程中針對的是壹臺電腦多核還是多臺電腦?謝謝!

MPI(MPI是壹個標準,有不同的具體實現,比如MPICH等)是多主機聯網協作進行並行計算的工具,當然也可以用於單主機上多核/多CPU的並行計算,不過效率低。它能協調多臺主機間的並行計算,因此並行規模上的可伸縮性很強,能在從個人電腦到世界TOP10的超級計算機上使用。缺點是使用進程間通信的方式協調並行計算,這導致並行效率較低、內存開銷大、不直觀、編程麻煩。OpenMP是針對單主機上多核/多CPU並行計算而設計的工具,換句話說,OpenMP更適合單臺計算機***享內存結構上的並行計算。由於使用線程間***享內存的方式協調並行計算,它在多核/多CPU結構上的效率很高、內存開銷小、編程語句簡潔直觀,因此編程容易、編譯器實現也容易(現在最新版的C、C++、Fortran編譯器基本上都內置OpenMP支持)。不過OpenMP最大的缺點是只能在單臺主機上工作,不能用於多臺主機間的並行計算!如果要多主機聯網使用OpenMP(比如在超級計算機上),那必須有額外的工具幫助,比如MPI+OpenMP混合編程。或者是將多主機虛擬成壹個***享內存環境(Intel有這樣的平臺),但這麽做效率還不如混合編程,唯壹的好處是編程人員可以不必額外學習MPI編程。

  • 上一篇:請教粵語方言 :沙裏弄寵
  • 下一篇:清逸洗發水怎麽沒有了
  • copyright 2024編程學習大全網