電脳春秋 – 〈第 16 回〉 何も処理をしないと遅くなるコンピュータ


電脳春秋

執筆:H.F

〈第 16 回〉 何も処理をしないと遅くなるコンピュータ

技術計算を延々と行うと、かなり高速なコンピュータでも結構時間がかかる。ときには何時間も大型コンピュータやスーパーコンピュータで連続計算をさせることがある。そういう技術計算も、計算の条件設定などは対話的に入力し、延々と計算した後、結果を立体的に表示したり、計算結果に応じて 3 次元立体に色をつけて表示するのが一般的になってきだした平成に年号が変った頃の話である。

対話的なプログラムは、それまでのプログラムとはちょっと作りが違うのだが、技術計算を対話的に処理するためのプログラムも、それまで技術計算ばかりをやってきた人達が学習して作成していた。操作性を考えれば、やはりプログラムの中身を知り抜いていたり、計算結果のどこが重要かなどが分かっている人が作ったプログラムの方が、現場では評価が高くなる。

大企業のそういう部署から、どうもプログラムが不思議な動きをするので調べて欲しいという依頼が飛込んで来たことがある。技術計算プログラムの内部などとても手を出せるものではないので断ろうかと思ったが、聞いてみると、技術計算部分ではなかった。計算はちゃんと出来ていて、何も問題がないという。しかし、人間が入力するための画面が出ているときに、利用者が何もしないでボーッとしていると、どんどんコンピュータが遅くなってしまうという。

技術計算用のコンピュータは、かなり高性能なものであり、実際には何人もが同時に利用する。だから、誰かが面倒な計算をしているときに遅くなるのは仕方がないが、誰も面倒な計算をしていないで、プログラムの操作画面が出ているだけのときに極めて遅くなるのは大変困る。

これだけ聞けば、原因は 99 %確定した。プログラムの説明も何も受けず、とりあえずプログラムを走らせてもらって、計算機が遅くなったと思われる頃を見計らって、突然プログラムを止めて、止まったあたりのプログラムをちょっとだけ眺め、予測通りだったのを確認して、プログラムに 1 行だけおまじないを加えて動かしてみた。たった数分の作業だったが、これでコンピュータの動きはずいぶん良くなった。

これは当時、対話型プログラムの書き方に慣れていない人が、頑張ってプログラムを書いてしまうときに頻発していた典型的なミスだった。コンピュータ側から次の入力を常に指示され、それに対応するだけの時代から、人が適当な順番で指示を与えても動くようにするためには、割り込み処理という方法を使うことになる。

コンピュータではなく、普通の仕事でも、決まった仕事を順番にこなしていくのは非常に速いが、いつ何が発生するか分からないような割り込みの多い仕事になると、さっぱりダメになる人がいる。今の時代は、プログラムも人間も、そのような完全には予測できない場合にも対応できなければいけないようだ。

ところで、上記の仕事は、あまりにも簡単に終わってしまったので、お金には結びつかなかった。信用力が増して、仕事を受注しやすくはなったのだが。もちろん、プログラムの修正も正しい対処方法ではなく応急処置であるが、それでも利用するには困らなくなったであろう。