2015-01-24-01-某スパコン制御システムに関する伝聞と感想 - project-enigma

2015-01-24-01-某スパコン制御システムに関する伝聞と感想

>> Site top >> weblog >> 月別アーカイブ >> 2015年01月のlog >> 2015-01-24-01-某スパコン制御システムに関する伝聞と感想

最終更新日付:2015/01/24 15:58:43


某スパコン制御システムに関する伝聞と感想

2015 年 01 月 24 日

開発が調子良く進んでいると、weblog の更新が滞る。今回は、過去の自分の仕事について、最近伝え聞いたこととその感想について書こう。一応注意点としては、1.具体的な名前や組織名称は出さないようにする。2.あくまで伝聞ベースなので、書いたことが正しいかどうかを(自分としては信じてはいるが)保証はできない。ということだ。それでは始めよう。

8年程前から2年間に渡って、自分はとある独立行政法人が運営するスパコンのジョブ制御システムの開発をやっていた。というか、ジョブ制御システム自体はスパコンのベンダから提供されるのだが、一部の制御ロジックを実装する部分 ── Windows で言えば DLL、UNIX 系で言えば .so ── を置き換えることが可能で、それでスパコンの(大袈裟な言い方をすれば)ジョブ制御ストラテジーを変えることができたわけだ。その職場では、その置き換えるライブラリのことを「スケジューラ」と呼んでいた。自分は2年間、そのスケジューラの開発だけに専念した。しかも、ほとんど一人で。記憶が間違っていなければ、C言語のソースコードレベルで行数にして 17万行。時間的な制約をクリアする目的で行数を削るためにダーティなテクニックも使った。平均的な開発者が複数人でよってたかって開発すれば、おそらく 20 - 25 万行に至っただろうと思う。その設計、開発、テストを、2年間でだ。想像してごらん、楽しかったよ。

2年経って、テストも終わり、いよいよそれを使い始める日の前日、自分は契約終了となってその独立行政法人を後にした。まぁ色々理由はあったのだけれど、「頭と心の不自由な上司とモメて袂を分かつことになった」とだけ書いておこう。「だけ」と言える表現じゃないけどな。

当時新人だった後輩はその現場に残ったので、自分が離任した後も差し支えのない範囲で色々と情報は貰うことができた。スケジューラは良好に動作しているらしかった。ベンダ本体が標準で提供するスケジューラよりも稼働率は抜群に向上した。それが目的だったのだから成功といって良いだろう。そして嬉しいことに、バグの報告はなかった。ひとつだけあったのだが、それは後に(ベンダ提供の)ジョブ制御システム本体の問題であるらしいという話を聞いた。それで問題が解決したことにはならないけれども、自責でなかったという点には胸を撫でおろしたものだ。

この仕事に関しては、自分の作品が実際に稼働するところを自分の目で見ることはできなかったけれども、自分のこれまでの仕事の中でも誇って良いものだと思っている。半ば冗談半分にだが、当時の後輩にも「次のスパコンリプレースの時は、呼んでもらえたら新しいスケジューラを開発してやるよ」などと言っていたものだった。前述の、頭の不自由な上司はすでに定年退職していたから、それもよかろうと思っていたのだ。しかし、その後「次世代スパコンではスケジューラを内製しない」と決まったという話が聞こえてきて自分は落胆することになる。それが(多分)2年くらい前の話だ。

そして最近、自分の仕事のターゲット世代から見れば「次世代」のスパコンが、どうやら動き始めたらしい。そして、自分を落胆させた情報の通り、その独立行政法人ではスケジューラの内製は行なわないらしかった。ベンダ標準のスケジューラをそのまま使用するのだろう、そう思っていた。自分の作品は良好に動作していたらしいため、ほとんど手が入ることがない。結果、おそらくその設計や方式の全容を理解しているのは今や自分だけだろう。その組織は研究機関であってソフトウェア開発をするところではそもそもないから、ソフトウェアの管理についてはお粗末なものだった。前世代のスケジューラについても、ロクなドキュメントはなかった。自分はそれが嫌だったが、リソース上の理由から十分な設計ドキュメントを作成することは自分にもできなかった。自分の頭の中にしかない情報も、年月とともに色褪せていく。こうして世界から何かが消えていくのだな、と思っていた。

しかし、後に当時の後輩から聞いた話では事情は少し違っていた。どうやら、ベンダがその独立行政法人向けにスケジューラをカスタマイズするらしいというのだ。それを聞いた時、黒い感情が湧き起こった。いわゆる大手ベンダ様に、自分の作品に匹敵するモノが作れるかな? 勝負しようじゃないかと、御手並み拝見といこうじゃないかと、勝手に思っていた。

ところがどっこい、数日前に件の後輩から聞いた話はさらに違っていた。そのベンダ、次世代スケジューラのカスタマイズのために現在のスケジューラを参考にしたいと申し出てきたらしいのだ。それを受けてソースコードを提供したらしいが、結果としてその次世代機で動作しているスケジューラは、自分の作ったのとほとんど瓜二つなモノだったらしい。

別に、この件について「パクリじゃねぇか!」などと頭の悪い騒ぎ立て方をするつもりはない。だが、思ったことはいくつかあるので、それを書き留めておこうと思ったのだ。それが今日書いていることの目的だ。まず最初は、前述の「勝負しようじゃないか」については、そもそも勝負の機会にはならなかった、ということだった。相手が自分と同じように設計から本気のモノ作りに挑まなかったのなら、端からみてどうかということとは無関係に、それはそもそも勝負として成立しない。そう思う理由は最後のところで書くとしよう。

次は、これは件の後輩君から聞いたことなのだが、そもそもそのベンダには、ちゃんとした開発ができる人がほとんどいなかったのだそうだ。たまたま確保できなかっただけなのか、開発者の空洞化が慢性化していたのか。それはわからないが、結果的に外注したのかもしれないし、しなかったのかもしれない。下手をすれば、「参考として提供」した前世代の(つまり自分が作った)コードを、ほとんどそのまま使ったのかもしれない。事実がどうかはわからない。ただ、ここで思うことは、「ちゃんとした開発ができる人が減っている」というのはおそらく本当なのだな、という感想だ。そのベンダの問題かもしれないが、おそらくは業界全体の問題だろう。

最後に思うことは、あるいは方式や設計だけかもしれないし、あるいは実装レベルまで含めてかもしれないが、自分の作品(のすくなくとも一部)は何にせよ生き残ったのだな、という感慨だ。それを本当の意味でちゃんと理解している人は現場にはいないかもしれない。おそらくいないだろう。というのは、これが先に「そう思う理由は最後のところで書く」とした点なのだが、瓜二つにしては、自分の作品程には稼働率が上がらないらしいのだ。おそらく、設計と方式を(あるいはコードも?)再利用するようなことをしたものの、次世代スパコンのアーキテクチャや構成上の差違を考慮した調整をしなかった(あるいはできなかった)のだ。それを完遂したければ、結局は時間をかけて全てを理解しなければならないし、場合によっては新規開発しなければならなかったかもしれない。世代間の差違が大き過ぎれば、そういうことにもなっただろう。それは、8年程前にまさに自分が下した決断だった。前世代のスケジューラの全てを捨て、イチから開発したのだ。今回そう決断すべきだったかどうかはわからない。だが、その必要性に直面するのを恐れただけという可能性もあるだろう。優秀な開発者を確保できなければ、それを恐れる気持ちもわからなくはない。

なんだか散漫な文章になってしまったが、とりあえずはこんなところだ。8年前、自分にスケジューラを開発させることによって、その独立行政法人は5年以上使うスパコンの稼働率を 70-80% から 90%台まで向上させることができた。かかったコストは、せいぜい自分に支払った人件費とプラスアルファ程度だ。今回、どんな理由があったかわからないが、それをケチった結果、稼働率はどうなったのだろう? 割に合う節約と言えただろうか? 具体的な数字は知らないが、ケチった額などスパコン全体にかかっている予算からすれば誤差とも呼べないレベルだろう。一方で、スパコン運用において稼働率の 10% を失うというのは、金額に換算したらとんでもないコトなのだ。言い換えると、いくらかかるかという問題でなく、すでに支払ったお金(=スパコン計算能力の最大値)の範囲からいかにして最大限の効果を引き出すかという問題なのだ。「2位じゃイケないんですか?」という問題とは違うのである。

だが個人的には、それよりも重要なのは機会の減少だ。減っているのは「ちゃんとした開発のできる人」じゃない。それは結果であって、本当に減っているのは「ちゃんとした開発をする機会」なのだ。今回、スパコン運営をする独立行政法人において、自分達のユーザーに合わせたジョブ制御機能を開発する機会が消えた。そのノウハウも消えて行く。代わりにベンダから買うことにしたが、そのベンダにもそれだけの余裕も能力もなかった(と思われる)。そこにもまともな機会はないのだ。開発者がそういった機会のみにて成長するのだなどというつもりはないけれども、機会が重要なことに変わりはないと思う。まぁ今の傾向が続けば、自分が開発者として現役でいられる期間は延びるかもしれないけれど、でもやっぱりやるせない気持ちになるのだ。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.