本節では, 負荷分散制御の目的と考え方を説明する. 一般的に, プログラム中には逐次にしか実行できない部分と 並列に実行できる部分がある. にも関わらず, 並列に実行できる部分も 逐次計算機では逐次に実行するしか方法がない. しかし, 並列計算機では逐次に実行できる部分は同じプロセッサで 実行し, 並列に実行できる部分は別プロセッサで実行でき, その点で問題を素直にプログラム化する事ができる.
KL1では, ボディーゴールの実行はプログラム中に記述した順番とは 全く関係なく実行される. また, 実行可能な部分は並列に実行される. ただし, KLIC 逐次処理系は並列に実行が可能であるとは言っても プロセッサは1台しかないので, ゴールは同じプロセッサ上で優先度に基づいて 擬似並列的に実行される. 従って, 本当に並列に実行するためには KLIC 並列処理系上で動かす必要がある.
KL1では, ゴールを別プロセッサで実行させる事を負荷を分散させると呼ぶ. 負荷を分散させるには, KL1ではプログラム中でそのための指定を 行なう(図4.18). 指定の方法についての詳細は次節で説明する.
負荷分散を行なうにあたっては, プロセスとストリームの構造, 及び各ゴールの処理の重さ等についてあらかじめ良く考えておく必要がある. というのも, ゴールの実行を他のノードに依頼するにはそれなりのコストが 必要であり, 並列な部分を全て別ノードに投げれば良いと言うものではない.
また, 幾ら並列な部分で処理の大きなゴールであっても, 最終的に 莫大なデータを返すようなものであっては, 通信時間のオーバヘッド が顕著に現れて, 結局全体的には並列効果が現れなくなる場合もある.
以下に, 負荷分散制御を行なう際に充分気をつけねばならない事項について まとめてある. これを参考にして負荷分散制御を行なうと, 並列効果の良い プログラムを書く指標になる.
なお, 今後の研究次第で更に留意する点が次々と出てくるであろう. ここでは, 安易に負荷分散を行なうと並列効果を期待できないという 事を良く理解しておき, その基本的な考え方を示した.