[目次]  [質疑応答]
2007年度合同分科会 「ICT社会を支える人"財"像」 科学技術計算分科会代表報告

次世代スーパーコンピュータを活用する人材を育てる


PDF版 PDF file[ 252KB]
プレゼンテーション資料 PDF file[ 117KB]
写真_小柳氏

工学院大学 情報学部
学部長・教授 小柳 義夫

 
アブストラクト
 スーパーコンピュータの歴史を振り返り、その歩みのなかで諸分野のユーザがそれをどのように使いこなしてきたか、その技術課題は何であったか、について分析する。汎用計算機の時代には、ユーザは自己流で思い思いに使っていたが、当時は計算資源が極端に乏しかったので、有効な利用法をユーザが自分自身で見いだしていた。その後、会話処理で自由に使えるようになり、PCやWSが手元で使えるようになると、ユーザは計算の効率化・最適化にあまり注意を払わなくなった。その裏には、日本のコンパイラが優秀であって、適当にコーディングすれば、かなり高速に実行できたこともある。これらは、アメリカの事情と対照的である。次世代ペタコンではこのような環境はあまり期待できないので、人材育成が急務である。
キーワード
スーパーコンピュータ、コンパイラ、ペタコン、最適化、利用技術
 



  1. はじめに
     なぜ、スーパーコンピュータを利用する人材を育成しなければならないのか。スーパーコンピュータを利用する人間が多数いるからスーパーコンピュータが建設されているのではないか。発想が逆ではないか。
     ここに、我が国のコンピュータの利用に関係した大きな問題がある。少なくない分野では、「計算」という手法は、一種の単純労働として一段低く見られて来た。私も、大学院の低学年から素粒子物理学の研究にコンピュータを活用してきた前駆者の一人と自負しているが、このころ私の指導教官は「一流の物理学者は計算機を使わない。」と言い放ったものである。
     本講演では、コンピューティングや計算科学の歩みを振り返り、その中でコンピュータの利用がどう位置づけられてきたか、計算科学者はどうやって自分を磨いてきたかを回顧し、そこから今後の展望を見いだして行きたい。

  2. コンピュータの歴史における人材の育ち方
     スーパーコンピュータの歴史(1)のなかから、どのような人材が必要なのかを考えてみたい。
    1. 神代時代
       1950年代前半に萌芽的なTACとかPC-1, PC-2などの計算機が東大で製作された。他の大学や研究所でも様々な試みがあり、リレー計算機のサービスもあった。この時代は私が直接知っている訳ではないが、伝え聞くところでは、その計算パワー(今の電卓にも及ばないが)を使いたい人が、必死で利用術を習得して使ったようである。まだ、高級言語も、アセンブリー言語もなく、機械語で直接プログラムを作成したと思われる。まさに「コーディング」(暗号化)であった。
    2. 大型計算機センターの時代
       1960年代半ばから、東大を始め7つの大学に大型計算機センターが設置され、国産の計算機が動き出した。当時の主要言語は(大文字の)FORTRANであった。このころ私を含め多くのユーザが学んだのは、森口繁一先生の記念碑的な著書「JIS FORTRAN入門」である。「HARP5020に則して」という副題が付いていたかも知れない。
       この本は、FORTRAN言語の言語仕様を教える教科書であり、コンピュータの利用を飛躍的に拡大させたことは大きな功績である。しかし今の時点から考えると、多くのユーザに「プログラミング言語を覚えればコンピュータが使える」という幻想を与えてしまったのではないかと思う。確かにこの時代の計算機(たとえば東大ではHITAC 5020E)は、演算器が遅かったのでメモリ(もちろんコアメモリ)とのバランスがよく、現在のように多段のキャッシュだのメモリレイテンシだのを考える必要が少なかったので、それで済んだという面はある。英文法を記憶したとしても英語が話せるわけではないのと同様、本当はプログラムの作成はそれなりに知識と技術の必要な仕事なのである。
       もう一つは、当時はメモリ容量が小さかった。例えば、東大のHITAC 5020Eの主記憶は64KW (256KB)であった。MBではないのでご注意。従って大きな問題をコンピュータで取り扱うには、メモリを節約するためにプログラム上の工夫が必要であった。このため、見やすいプログラムよりは、アクロバティックに圧縮したプログラムが奨励された面もあった。
    3. スーパーコンピュータ前夜
       Cray-1が出荷されたのが1976年で、その翌年に富士通は日本初のベクトル計算機230-75 APUを出荷した。2台しか製造されなかったようなので商業的には成功とは言えないが、日本の企業がこの時点からアメリカに迫っていたことは記憶されるべきである。1978年には日立製作所がHITAC 180 IAP を出荷し、その後日立とNECはIAP (Integrated Array Processor) をメインフレームに付加して出荷した。IAPはベクトル処理により演算を高速化する付加プロセッサであるが、Cray-1ほど飛躍的な性能向上はなかった。ただし、仮想記憶の上で動き、TSSでも利用可能で、メインフレームのユーザが自然に移行でき、ほどほど(数倍)の性能向上が得られた。
       東京大学ではHITAC 200H IAPが設置されたが、ここで忘れてはならないのは、当時東大センターに在職した故唐木幸比古氏が、日立関係者と企画した「IAP研究会」である。この研究会は、センターの研究会としてしばしば開かれ、IAPを使いこなす手法の講義、IAPによる使用事例、ベクトル計算機の技術動向などがテーマであった。これにより、多くのユーザは、ちょっとしたプログラミングの工夫によって、速度が大きく変わることを学び、自分の利用技術を向上させた。東大周辺でのベクトル計算機の利用技術という点では、このIAP研究会の果たした役割はきわめて大きかった。
    4. スーパーコンピュータの登場
       東大に本格的なスーパーコンピュータHITAC S810/20 が設置されたのは1983年であるが、このような新しいアーキテクチャの計算機にしてはユーザの対応が速かったと記憶している。それは、IAP研究会などで、ユーザがベクトル計算機の利用の技術をかなり身につけていたことが背景にあったと思われる。
       それでも、当時のベクトル化コンパイラの性能は十分とは言えず(初期のCrayのコンパイラよりははるかにましということであるが)、プログラムを高速化するためにはいろいろなノウハウが必要であった。スーパーコンピュータの時代になっても、IAP研究会はしばらく続けられ、今度はスーパーコンピュータの利用技術について情報交換を行った。
       その後、日立(そして富士通もNECも)のベクトル化コンパイラは驚くほど改良され、使いやすくなった。Cray, Alliant, Titan, Convexなどアメリカのコンパイラよりも日本のベクトルコンパイラは優れているという報告がある(2)。日本製のベクトル型スーパーコンピュータは、7つの大型計算機センターやいろいろな分野の研究所に設置され、日本の科学技術の重要なインフラとなった。1980年代後半において、アメリカにはもちろん多数のスーパーコンピュータが設置されていたが、主として原子力、軍事、宇宙などの研究所にあり、一般の大学の研究者はあまり利用することができなかった。日本では、大学関係の研究者が、わずかな分担金を払えば(多くの研究所では分担金を取らず、課題の審査による)自由にスーパーコンピュータが利用できた。これに危機感を抱いて始まったのが、HPCC計画である。
       反面、日本のユーザは、ちょっとだけプログラムに手を入れれば、スーパーコンピュータは高速に動いてくれるという環境に慣れてしまった。
    5. 並列計算機での立ち後れ
       日本が本格的ベクトル計算機に参入した1980年代中頃から、アメリカでは多くのベンチャービジネスが並列計算機を作り始めた。アメリカではスーパーコンピュータを利用するチャンスが乏しく、高性能な計算をするには、このような新しい機械を使う必要があったのである。日本でもこのころから、並列アーキテクチャや相互接続網について盛んに研究されてはいたが、日本の企業は、並列計算機を画像処理、論理シミュレーション、ハードウェア設計などの専用機システムとしてしか認識していなかった。応用諸分野のユーザも並列処理を難しい技術としてあえて取り組もうとするものは多くなかった。
       1990年代になると、CrayやIBMが本格的に並列計算機に参入し、スーパーコンピュータの業界を席巻し始めた。その背景には、汎用プロセッサチップの急速な性能向上(”Attack of Killer Micros”と呼ばれる)があった。これにより10年ほど前に雨後の筍のように登場した多くのベンチャーは、消滅するか吸収されてしまった(3)。Cenju-2 (1993), AP1000 (1994), Cenju-3 (1994), AP3000 (1996), Cenju-4 (1997) などの商用高並列計算機も登場したが、商品としての位置づけは、実用的な計算機というより並列処理研究用のテストベッドであった。 日本が並列処理に立ち後れてしまったのは、ベクトル計算機がふんだんに利用できたことと、ベクトルコンパイラが余りにも優秀で、並列計算機の使いにくさを目立たせてしまったことにあると思われる。
  3. どんな人材が必要か
    1. 3種類のおたく
       計算科学においては、3種類のオタクがある、というのが私の仮説である。
      1. 計算機オタク
        −なんでもいいから速い計算機を作りたい。
        −作ったから、みなさん使ってください。
        これはコンピュータ科学者のオタクである。まあすぐ名前が浮かぶかも知れない。ただ、コンピュータ科学者にとって、コンピュータは1分も動けばデータが取れ、論文が書ける。しかし、それでは応用分野の人は浮かばれない。応用分野としては、多少のメンテの時間は別にして、24時間365日動くようなものを期待している。こんなオタクにコンピュータを作らせると、ろくなことはない。
      2. 応用オタク
        −論外オタク:この私のプログラムをそのまま速く。
        「論外」と言ったが、このような計算科学者は多い。ほとんどではないかと思う。「労するものは報われる。」働かないで速くしろ、といったって無理である。
        −速い計算機を作ってくだされば、いかようにもプログラムをチューンして使いこなして見せます。
        ちょっとましなのはこれであろう。アーキテクチャの進歩に応じて、自分の開発したプログラムをずっと修正し高速化している計算科学者もいないわけではない。とくに、桁違いの性能向上が得られるなら、それに対応したプログラムの最適化に労をおしまない、という人々である。
        しかし次世代スーパーコンを開発するときには、どちらのオタクも不十分である。ちょっとましな応用オタクでも、彼らにとってアーキテクチャは所与のものであって、自分たちの応用のためにアーキテクチャを考えようという発想はない。そこで、
      3. 計算機と応用の融合
        −応用(複数)のために計算機を設計する。
        という両者を兼ね備えた新しいオタクが必要なのである。アーキテクチャと応用のco-designという新しいコンセプトが必要である。
        現在、次世代スーパーコンピュータの構成は決まりつつあるので、応用オタクでいいと思われるかもしれないが、今後のさらなる発展のためには、計算機と応用の両者を複眼的に見るオタクの存在は重要である。
    2. なぜ人材開発
       それでは最初の問題に戻ろう。なぜ人材開発が必要か。それは、最先端コンピュータは常にアーキテクチャとの戦いである。自分の応用を走らせたい計算科学者はたくさんいるが、かれらに新しいアーキテクチャ技術を伝える必要があるからである。何もしなくてもひとりでに自分のプログラムが速くなるのではなく、コンピュータの側の知識を学び、それを活用していく必要がある。コンピュータ技術は、決して一段下の技術でもなく、単純労働でもない。
       伝え聞くところによると、次世代スーパーコンピュータは、ベクトル計算機とスカラー計算機から構成されているとのことである。流体のようにベクトルを使ってきたユーザは、「これでオレのプログラムが走る」と思い、スカラーを使ってきたユーザは「これで自分のプログラムはOK」と思っているが、近年のコンピュータ技術の動向を考えればそんな簡単なものでないことは明らかである。自分で苦労する必要がある。
    3. 計算科学の確率
       計算科学は、「理論」「実験」とならぶ第3の科学と言われて久しいが、その認識は必ずしも共有されているとは限らない。一つの問題は、「理論」という学問分野がないように、「計算科学」という独立した学問分野もないことである。物理とか化学とかの分野の中の一つの方法論だからである。しかし、それだからといって、各分野に埋没してしまっていいわけではない。計算科学は、一つの横型の科学であり、諸分野のなかにありながら、それがある種の独立性をもつという構造をもっている。事実、異なった分野の数理手法には共通のものがあり、それを共有することは利益になる。なによりも、コンピュータという共通の道具をつかうということが最大の共通点であり、使うアルゴリズムにもかなりの類似性がある。計算科学の人材を養成するということは、このような横型の新しい学問形態を一つのディシプリンとして確立するための必要条件でもある。
  4. おわりに
     次世代スーパーコンピュータ計画には、ソフト・ハードの開発とともに、COEの構築が掲げられている。このセンターが真にエクセレンスの中心になるためには、若い人材の育成が必要である。

[参考文献]
(1) Y. Oyanagi, “Development of Supercomputers in Japan: Hardware and Software,” Parallel Computing Vol.25, pp.1547-1567 (1999).
(2) H. Nobayashi, C. Eoyang, “A comparison study of automatically vectorizing Fortran compilers,” Proceedings of Supercomputing ’89, pp. 820-825 (1989).
(3) “The Rise and Fall of the HPC Empire”http://olab.is.s.u-tokyo.ac.jp/~oyanagi/reports/HPC-Empire.txt

[目次]  [質疑応答]

All Rights Reserved, Copyright©サイエンティフィック・システム研究会 2007