並列計算 ソフトウェア

並列計算

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/07 09:10 UTC 版)

ソフトウェア

並列型コンピュータでのプログラミング向けに、プログラミング言語ライブラリAPI、並列プログラミングモデルが生み出されてきた。

それらは、前提とするメモリアーキテクチャ(共有メモリ、分散メモリ、分散共有メモリ)によって分類できる。共有メモリ型プログラミング言語は、共有メモリ上の変数を更新することで相互の通信を実現している。分散メモリ型ではメッセージパッシングが使われる。共有メモリ型APIとしては、POSIXスレッドOpenMPが広く使われている。一方メッセージパッシング型のAPIとしては、Message Passing Interface (MPI) がよく使われている。

自動並列化

逐次型プログラムのコンパイラによる自動並列化は、並列計算の最終目標の1つでもある。コンパイラ研究者が長年に渡って研究しているが、限定的な成果しか得られていない。

一般に使われている並列プログラミング言語では、プログラマが並列化する部分を明記するか、せいぜい部分的な自動並列化ができる程度である。並列化を全く明記する必要のない言語も少数ながら存在し、SISAL、Parallel Haskell、Mitrion-C(FPGA用)などがあるが、これらはいずれも広く普及しているとは言い難い。

アプリケーション・チェックポインティング

コンピュータが大規模かつ複雑になると、平均故障間隔は小さくなる。並列計算では、多数のプロセッサを使っても長時間かかるような処理を行うことがある。このため、アプリケーションの実行中の状態(全てのリソース確保状況や変数群の状態など)をコアダンプのような形で定期的に保持しておき、障害が発生したときに最初から処理をやり直すのではなく、途中までの保存された状態から再開できるようにする必要がある。この技法をアプリケーション・チェックポインティングと呼ぶ。時には数ヶ月もかかる処理もあり、その場合アプリケーション・チェックポインティングは非常に重要となる。また、この技法はプロセスマイグレーションにも応用できる。

GPGPU

GPGPUに関しては、統合型シェーダーアーキテクチャの出現以降、NVIDIA社によるCUDA、KhronosグループによるOpenCLマイクロソフト社によるDirectComputeといったAPIの整備・標準化も進んでいる。APIごとに特色はあるが、カーネル記述方式などに概ね似通った特徴を持つ。ただしCPUとGPUはメモリ空間が異なるため、まずCPU側のメモリからGPU側のメモリに入力データをコピーしてGPUに処理を実行させ、さらに処理後の結果を出力データとしてGPU側のメモリからCPU側のメモリにコピー(リードバック)する必要があるなど、プログラミングモデルは分散メモリ環境に近く、煩雑である[32]

AMDはCPUとGPUを統合したAPUを開発しているが、さらにCPUとGPUのメモリ空間までをも統合し、データ転送の手間を減らしてGPGPUアプリケーションソフトウェアの実装を容易にするための仕組みとしてHeterogeneous System Architecture (HSA) を提唱・推進している。


  1. ^ I-10-8. 並列処理プログラミングの基本、並列化処理 | 日本OSS推進フォーラム
  2. ^ a b c d e f Wilson, Gregory V. (1994年). “The History of the Development of Parallel Computing”. 2008年1月8日閲覧。
  3. ^ a b Blaise Barney. “Introduction to Parallel Computing”. Lawrence Livermore National Laboratory. 2007年11月9日閲覧。
  4. ^ John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. 3rd edition, 2002. Morgan Kaufmann, ISBN 1558607242. Page 43.
  5. ^ J. M. Rabaey. Digital Integrated Circuits. Prentice Hall, 1996.
  6. ^ Laurie J. Flynn. Intel Halts Development of 2 New Microprocessors. New York Times, 2004年5月8日
  7. ^ G. Amdahl. The validity of the single processor approach to achieving large-scale computing capabilities. In Proceedings of AFIPS Spring Joint Computer Conference, pages 483–485, Atlantic City, N.J., April 1967. AFIPS Press.
  8. ^ Reevaluating Amdahl's Law Archived 2007年9月27日, at the Wayback Machine. Communications of the ACM 31(5), 1988. pp. 532-533
  9. ^ A. J. Bernstein, "Program Analysis for Parallel Processing,' IEEE Trans. on Electronic Computers, EC-15, Oct 66, 757-762.
  10. ^ K. Hwang and F. A. Briggs. Computer architecture and parallel processing. McGraw-Hill, 1984.
  11. ^ Leslie Lamport. "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs", IEEE Transactions on Computers, C-28,9 (September 1979), 690–691.
  12. ^ Patterson and Hennessy, pg 748
  13. ^ David E. Culler, Jaswinder Pal Singh, Anoop Gupta. Parallel Computer Architecture - A Hardware/Software Approach. Morgan Kaufmann Publishers, 1999. ISBN 1558603433, pg 15
  14. ^ Culler et al, pg 15
  15. ^ Yale Patt. "The Microprocessor Ten Years From Now: What Are The Challenges, How Do We Meet Them? Archived 2008年4月14日, at the Wayback Machine. (wmv). カーネギーメロン大学での講義(2004年4月)、2007年11月7日閲覧
  16. ^ a b Culler et al, pg 124
  17. ^ a b Culler et al, pg 125
  18. ^ a b Patterson and Hennessy, pg 713
  19. ^ a b Hennessy and Patterson, pg 549
  20. ^ Patterson and Hennessy, pg 714
  21. ^ What is clustering? Webopedia computer dictionary. 2007年11月7日閲覧
  22. ^ Beowulf definition. PC Magazine. 2007年11月7日閲覧
  23. ^ Architecture share for 06/2007 Archived 2007年11月14日, at the Wayback Machine.. TOP500 Supercomputing Sites. ここでは、74.60%のマシンがクラスターとされている。2007年11月7日閲覧
  24. ^ Hennessy and Patterson, pg 537
  25. ^ MPP Definition. PC Magazine. 2007年11月7日閲覧
  26. ^ SIGGRAPH 2005 - GPUをCPU的に活用するGPGPUの可能性 マイコミジャーナル、2005年9月6日。2008年4月5日閲覧
  27. ^ Oleg Maslennikov (2002). Systematic Generation of Executing Programs for Processor Elements in Parallel ASIC or FPGA-Based Systems and Their Transformation into VHDL-Descriptions of Processor Element Control Units. Lecture Notes in Computer Science, 2328/2002:272.
  28. ^ Y. Shimokawa, Y. Fuwa, N. Aramaki. A parallel ASIC VLSI neurocomputer for a large number of neurons and billion connections per second speed. IEEE International Joint Conference on Neural Networks, 1991年11月18日-11月21日. 3: 2162–2167.
  29. ^ K.P. Acken, M.J. Irwin, R.M. Owens. A Parallel ASIC Architecture for Efficient Fractal Image Coding. The Journal of VLSI Signal Processing, July 1998, 19(2):97–113(17)
  30. ^ Andrew B. Kahng. "Scoping the Problem of DFM in the Semiconductor Industry Archived 2008年1月31日, at the Wayback Machine.." University of California, San Diego. 2004年6月21日
  31. ^ a b Patterson and Hennessy, pg 751
  32. ^ PGI アクセラレータにおけるマルチ GPU の使用
  33. ^ L.F. Menabrea, Sketch of the Analytic Engine Invented by Charles Babbage. Bibliothèque Universelle de Genève, 1842. 2007年11月7日閲覧
  34. ^ a b c Patterson and Hennessy, pg 753
  35. ^ Anthes, Gary (2001年11月19日). “The Power of Parallelism”. Computerworld. 2008年1月31日時点のオリジナルよりアーカイブ。2008年1月8日閲覧。
  36. ^ Patterson and Hennessy, pg 749
  37. ^ Patterson and Hennessy, pgs 749–750: 「いくつかの有益な技術を生み出したが、ILLIAC IV はコンピュータとしては失敗であった。当初計画した規模の4分の1しか構築できなかったにもかかわらず、1966年に800万ドルと見積もられていた費用は1972年には3100万ドルにまで膨れ上がった。(中略)おそらく最も悪名高いスーパーコンピュータであろう。プロジェクトは1965年に開始され、実際のアプリケーションが実行可能になったのは1976年だった」





英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「並列計算」の関連用語

並列計算のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



並列計算のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの並列計算 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS