作成日:2005.11.27 目次 前置き データ構造 操作 擬似コード 動作 問題点 参考文献 脚注 1. 前置き マルチプロセッサ上で行う並列処理を行うプログラムが、 仕事を均等に N 分割できるものは稀だ。 プログラムの処理コストの最大値や平均値を見積もることができても、 実際の処理時間や消費メモリはプログラムの実行内容によって大きく変わっていく。 そのため各プロセッサに割り当てる負荷(ロード)が均一になるように 負荷分散を行うことが重要になる。 負荷分散を行うためには、 プログラムをある程度の粒度に分割し、 プロセッサ間で担当をやり取りできるようにする。 とりあえずプログラムを分割したものをタスクと呼ぶことにしよう。 タスクをやり取りする方法は、 大雑把に言って三つある。 マネージャーがいて、どのプロセッサがどのタスクを行うか制御する。 暇なプロセッサが、タスクを多く抱えたプロセッ