わんくま同盟 名古屋勉強会 #28
並列処理について
わんくま同盟 名古屋勉強会 #28
ジコ、ショウカイ。
• H/N: You&I(読み:ユーアンドアイ)
• SNS: @you_and_i
• 出身: 生まれも育ちも名古屋市
• 年齢: 30代中盤
• 本職: 商学部出身の職業プログラマ
• 言語: C++, C#, VB6.0, 日本語COBOL
• 所属: プログラミング生放送 名古屋支部
• 名古屋アジャイル勉強会
• わんくま同盟 名古屋勉強会
2
わんくま同盟 名古屋勉強会 #28
biacさん出版おめでとうございます
• C#によるマルチコアのための非同期/並列
処理プログラミング
わんくま同盟 名古屋勉強会 #28
今日はこっち
• 構造化並列プログラミング
わんくま同盟 名古屋勉強会 #28
並列処理とは
• biacさんの著書においても、「非同期処
理」と「並列処理」は、別に説明が行われ
ていますが、 「並列処理」を中心にお話
したいと思います。
わんくま同盟 名古屋勉強会 #28
並列処理
• SIMD(ベクトル化)
• スレッドプール
• 分散コンピューティング
• クラスタリング
• ヘテロジニアス・マルチコア
わんくま同盟 名古屋勉強会 #28
SIMD
• CPUの1コアにて、1命令で並列的に計算
を行う。
わんくま同盟 名古屋勉強会 #28
スレッドプール
• .NET Frameworkでも採用されている、非
同期処理を行う為に、予めスレッドを幾つ
か用意しておいて、空いているスレッドに
処理を割り当てる。
わんくま同盟 名古屋勉強会 #28
分散コンピューティング
• MPI(Message Passing Interface)
– 複数台のPCを使って処理を分散させて行う為
のフレームワーク
• Hadoop
– GoogleのMapReduce処理の論文を元に実装さ
れた、クラウド上で動かす分散処理フレーム
ワーク。
わんくま同盟 名古屋勉強会 #28
クラスタリング(クラスタ化)
• 複数台のPCによって、1つのPCやサービ
スとして動作するかのように利用できる手
法。
わんくま同盟 名古屋勉強会 #28
ヘテロジニアス・マルチコア
• 異種混在マルチコア処理。ちょっと前だと
PS3のCell B.E.とか、最近ではGPGPUが
主流。
わんくま同盟 名古屋勉強会 #28
まとめ
• 今後は、CPU単体での速度向上はそれほど
見込めないので、マルチコア・メニーコア
化が進んできていますが、それも限界に来
ているように思います。
• ヘテロジニアス・マルチコアが主流になり
そうな昨今、フレームワーク側で自動的に
振り分けたりする所まではまだ出来ないの
で、自分が行いたい処理をどのように並列
化するのかを考える能力はとても重要です
ね。

並列処理について