データフロー並列性

by tanabe on December 31, 2007

コンピュータプログラミングの概念・技法・モデル」を読んでいて、データフローという概念がおもしろかった。複数スレッドを走らせたときに、各スレッド間で変数の束縛が行われるまで互いに評価を待つというモデルのようで、シンプルな考え方で並列処理の恩恵を受けられる。関連して検索した結果をメモ。

現在のコンピュータは、大半がフォン・ノイマンモデルと呼ばれるアーキテクチャに基づいている。演算部、制御部、記憶部、出力部があり、命令を順番にフェッチし、実行していく。命令の実行順序をあらかじめ定め、各命令に必要なデータを集め、処理を行うという、命令を中心とした処理体系だ。ところが、データフローマシンでは、データの依存性に着目し、トークンをやりとりする形で演算を行っていく。トークンは、行先ノード、ポート、データからなり、行先ノードの指定のポートにデータを届ける。そのノードにおいては全てのトークンが揃ったところで発火し、次のノードに結果としてのトークンが転送されていく。データフローアーキテクチャはデータの流れに着目した、コミュニケーションベースの処理体系なのである。

超並列アーキテクチャとディペンダビリティ - プロセッサ開発の今後

コンピュータプログラミングの概念・技法・モデル」は、翻訳がちょっとアレなところはあって、明らかに何か内容が欠落しているような部分があったりするんだけど、それを差し引いても良い内容だと思う。

コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)
セイフ・ハリディ ピーター・ヴァン・ロイ Peter Van-Roy Seif Haridi 羽永 洋
翔泳社 (2007/11/08)
売り上げランキング: 25497