[[ノート>ノート/ノート]]~
訪問者数 &counter();      最終更新 &lastmod();

*並列プログラミング [#d3757837]
**序 [#hcba46b1]
並列処理は、今までその実現方法つまりハードウェアに近いところでたくさんの議論がなされてきたが、ソフトウェア側から見たまとまった教科書はあまり見当たらない気がする。
また、ソフトウェアの議論としては、昔のOSでの同期の議論や、逆に並列性を意識しない関数プログラミングやGHCなどの議論もあるが、最近実用化が進んでいる並列計算アプリケーションについてのプログラミング上の議論、たとえば並列プログラムを作ることや既存プログラムを並列に変換することは、まとめた説明が見当たらない気がする。

ここでは、アプリケーションプログラミングの側から見た並列処理を整理してみたい。

**アプリケーション並列化の目的 [#x0b12fdb]
アプリケーションを並列実行する狙いは、唯一実行時間短縮のみと考えてよいだろう。

実効時間を短縮しなければ使い物にならないアプリケーションは多数存在する。具体的には、たとえば処理に100時間(丸4日間)かかるものが1時間に短縮されれば、条件をさまざまに変えてデータを取り直すなどのことができる。1/100の短縮が、たとえば100コアのシステムを使って100並列にすることによってもたらされるとすれば、十分に価値があるだろう。グラフィックスプロセッサ(GPU)による並列化では、1ボードで容易に100並列が実現できる。

**アプリケーション並列化の環境 [#m215fc23]
並列化は、
対象とするのは、
-従来型のプロセッサを共有メモリやネットワークで接続した環境
-従来型の手続き言語をベースに、並列制御を付け加えた環境
-基本的にマニュアルで並列化する環境(完全な自動並列化はまだ信じられない)

** [#tb75c947]


-アルゴリズム
-プログラミング環境、MPやMPI
-GRIDの技術
-無駄と時間短縮
-

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS