HPE Blog, Japan
1745786 メンバー
3949 オンライン
108722 解決策
新規ポスト
Masazumi_Koga

2001年 スーパーコンピューターの旅

1990年代から2000年にかけて、筆者は、今と比べると非常に低速な(?)コンピューターを使いながら、人工知能、ニューラルネットワーク、数値計算、計算機工学などに四苦八苦していました。そう、筆者は、悲しい第2次人工知能ブーム世代なのです。今回は、第2次人工知能ブームを悲しく生きた筆者が、90年代のマシン事情や、社会人になった2000年以降の超高速計算機(スーパーコンピューターなど)を取り巻くIT事情などについて、誰よりも遅く、限りなく個人的な思いを交えながら、まったりと語りたいと思います。

映画「2001年 宇宙の旅」に魅せられた筆者

皆さんは、映画「2001年宇宙の旅」(原題:2001: A Space Odyssey)をご存知ですか?アーサーC・クラークとスタンリーキューブリックが共同で作ったといわれているSF映画(1968年公開)です。映画では、宇宙船に搭載された人工知能コンピューター「HAL 9000」が登場します。当時としては、非常に斬新な内容で、宇宙船などの動きや物理現象などが忠実に再現されており、あまりにもリアルに描かれているため、当時の研究者や知識人達の多くが驚嘆したといわれる傑作です。学生時代にレンタルビデオで借りて観たのですが、自身の情報工学の研究分野の方向性に大きな影響を与えました。

映画の設定は、西暦2001年。登場する「HAL 9000」は、宇宙船の乗組員と不自由なく流暢な会話ができるスゴイ人工知能です。「HAL 9000」は、人間と関わりながら様々な学習を行って成長し、宇宙船の全システムの制御まで行う知的マシンです。

この映画のすごいところは、以下、少し映画のネタバレになってしまいますが、かなり現在の世の中に出回っているモノを正確に予想できている点です。例えば、現在ではおなじみの「タブレットPC」や、1968年当時に存在しなかった「コンピューターグラフィックス」なども登場します。また、人間と会話できる人工知能、コンピューターによる宇宙船の空調管理、エンジンのコンピューター制御、宇宙船の軌道の推定といったIoT機器の最適制御、人間の感情の読み取り、画像認識、生体情報の管理など、映画の中では、その解説も説明文章も何も出てきませんが、「2001年の日常生活では当たり前でしょう?」という感じで、しれっと登場します。そして、最近話題になっている人工知能による人間への攻撃(暴走)が映画の中で描かれています。他にもいろいろありますが、IoT、人工知能、コンピューターサイエンスという目線だけでなく、科学的裏づけを意識したリアルな映像としても非常に見ごたえがあり、映像も綺麗です。是非、自宅の大画面TVでご覧になることをお勧めします。

現実の1990年代後半から2000年代前半の人工知能は冬の時代

では、映画で登場する「HAL 9000」がいたとされる1990年代から2001年ぐらいの実際の人工知能やコンピューターは、どのような状況だったのでしょうか?実は、筆者が情報工学を学んだ90年代は、まさに、第2次人工知能ブームの末期です。当時、人工知能を実現するには、研究者がプログラミング言語である「C言語」や「FORTRAN」(フォートラン)という手続型のプログラム言語を使ってソフトウェアを一から書いていた時代です。当然、現在のように、深層学習に最適化されたPythonライブラリは存在しません。筆者も、プログラミングに四苦八苦しながら、C言語とFORTRAN 77を使って、ニューラルネットワークのコンピュータープログラムをプログラミングしていました。

しかし、プログラミングをしたとしても、問題は、ニューラルネットワークなどの知的な情報処理を行うには、膨大な時間がかかることでした。90年代後半、筆者の大学では、学生の情報工学演習用のワークステーションで、非IntelアーキテクチャのMIPS(ミップス)という32bit CPUで100MHz程度、研究室でも、非Intelアーキテクチャの超高速といわれた旧DEC(Digital Equipment Corporation、現HPE)のAlpha 64ビットCPUで400~500MHz程度でしたので、今と変わらないニューラルネットワークによる学習や推定などの計算となると、結果を得るまでに気の遠くなるような時間を要したのです。現在は、人工知能や深層学習用のソフトウェアを使って、人の顔認識や物体認識などが、問題の難易度に依存するとはいえ、当時に比べれば格段に短い時間で処理を行える時代です。しかし、当時は、すこし物体が傾いたり、少し顔の角度を変えただけで、同一物体、同一人物として認識させるのに、気の遠くなるような時間がかかっていました。分かりやすいたとえになるかわかりませんが、すこし正確性に欠けるのを恐れずにたとえて言うと、当時の大学の高性能ワークステーションレベルと当時のソフトウェアの組み合わせで、現在のSiriのような人工知能と正確な会話を実現しようとすると、Siriへの質問の回答を得るのに数十分、問題の難易度によっては、数十時間、顔の認識や動画内の物体や人の認識に至っては、場合によって数週間、数ヶ月かかってもおかしくないと言えば、大体当時の人工知能を取り巻くコンピューターの絶望的な雰囲気が分かるかと思います。コンピューターに与える問題の複雑度と求める精度によって処理時間が大幅に変わるので、あくまでたとえですが、だいたいそれくらいの性能レベルのコンピューターを使って、なんとか知的な情報処理をしようと(絶望せずに)四苦八苦していたわけです。

もちろん、深層学習に関する研究や、ソフトウェア自体の最適化の度合いが未熟だったということも人工知能がうまくいかなかった理由の一つになるかもしれませんが、ニューラルネットワークや高精度な推定を行うといった目的、すなわち、様々な問題や条件に対して、人間にとってある程度、都合のよい答えを出すという「膨大な計算処理」に対しては、コンピューターの処理性能があまりにも低すぎたのです。ましてや、「リアルタイムに顔を認識したり、動く車を認識したり、人と会話する知的な情報処理マシンなんて100年無理なのでは?」と思ったくらい、当時のコンピューターは、あまりにも性能が低かったわけです。この頃から、人工知能や知的情報処理を研究している人々の間では、コンピューターの性能が日進月歩で向上しているとはいえ、ある種の「人工知能=期待がある、しかし、実際やってみると、絶望」に近い感覚を多くの方が感じていたような気がします。

筆者も、「HAL 9000」のような人工知能コンピューターが欲しかったので、筆者なりにソフトウェア工学や情報理論を勉強していた(つもり)だったのですが、やはり、ニューラルネットワークのロジックなど、いくらプログラミングの作りの範囲で改良できたとしても、コンピューターのハードウェアの処理速度が遅いのでは、計算結果が出るまでにあまりにも時間がかかっていました。数理的なことを煮詰めることが苦手な筆者は、理論をアルゴリズムに載せる際に、そのロジックを単純化して高速化することがなかなかできず、どうしてもコンピューターのCPUの性能に頼ってしまっていました。教科書に書いてある理論を煮詰めることなく、そのまま理論どおりのロジックをプログラミングしていたわけです。当時は、「このコンピューターは、なんでもっと高速に計算できないのか!」と腹を立てていた自分がいましたが、今から考えると、結果がでるまでに時間がかかる問題を計算機の性能のせいにして、数理的な「理論の改良」を全然せずにそのままプログラミングしていた自分にも落ち度があったということに後から気づき、コンピューターに関わる会社員として、学生時代の未熟さを今も深く反省(?)している今日この頃です。

2001年当時の高速計算機筆者がお客様にご提案していた2000年前半のRISC CPU搭載マシンによる高速計算システム.png

 

では、当時、大学などで使われていた「高速計算機」というのは、どのようなものだったのでしょうか?多くの大学や企業の研究所では、大型計算機が導入されていましたが、旧DEC(現HPE)は、古くから高速計算用のマイクロプロセッサの開発に成功した企業でもあり、その高速計算用のプロセッサを搭載した商用マシンが大学や研究所などで広く利用されていました。

高速計算というと、「Intel社のXeon(ジーオン)プロセッサのIAサーバーでしょ?」と思われるかもしれませんが、2001年当時の高速計算用のCPUといえば、旧DECが開発した「Alpha 64ビットプロセッサを搭載したAlphaServerやAlpha Workstation」の名前があがります。

(上図は、2000年代前半に筆者がお客様にご提案していたAlphaプロセッサ搭載マシンの高速計算システム)

筆者は、学生時代、たまたま研究室にあったAlpha 64ビットプロセッサのマシンや非Intel CPUのMIPSプロセッサのワークステーションでプログラムを動かしていたのですが、当時は、非IntelプロセッサのMIPSプロセッサ搭載ワークステーションやAlphaプロセッサ搭載マシン(サーバーやワークステーション)と、Intelプロセッサのパソコンの違いもわからず、「なんでAlpha CPUとIntel CPUのマシンでは、ソースコードが同じにできないんだろう。」「なぜAlpha CPUの実行ファイルをIntel CPUのマシンにコピーしても動かないんだろう」と、情報工学を学んでいた人間だったにも関わらず、非常に基礎的なことがよく理解できていませんでした。また、当時は、高速なコンピュータでプログラムを高速に動かすためには、CPUのアーキテクチャを知り、そのCPUのアーキテクチャに適したプログラミング言語のお作法というのがあり、これが学生にとってみれば、非常に難解だったわけです。筆者がお客様にご提案していた2000年前半のBeowulfクラスターシステム.png

 

当時の企業で利用されていた研究開発用のコンピューターとしては、ベクトル計算を行える「ベクトル型コンピューター」や、AlphaプロセッサなどのRISC CPUのSMPマシン(複数のCPUコアを1つのバスで共有するアーキテクチャ)が一般的でした。また、Beowulfクラスターというx86マシンを大量に並べて並列計算させるシステムが徐々に注目を浴びて企業や研究所にも導入されていました。

 

 

(上図は、2000年代前半に筆者がお客様にご提案していたx86プロセッサ搭載マシンのBeowulfクラスターシステム)

現在の高速マシンSGI_8600_Front.png

 

では、現在利用されている高速計算機は、どのようなものでしょうか?一般の人々が目にする高速マシンというと、ゲーミングPCなどを想像するかもしれませんが、サーバーの世界では、いわゆる科学技術計算用途のHigh Performance Computing(通称、HPC)という分野で利用される「HPCクラスター」が一般的です。HPCクラスターは、サーバー用x86 CPUを搭載した高速処理用のマシンを大量に並べて並列計算するシステムです。2001年当時にBeowulfクラスターと呼ばれているシステムは、実は2018年現在も、HPCクラスターでは非常に一般的な構成として導入されています。2001年当時は、Myrinet(ミリネット)とよばれる高速計算用のマシンを接続する並列計算用の高速な通信機器(インターコネクトといいます)がありましたが、現在では、100GbEやInfinibandとよばれる高速通信用のネットワーク機器が導入されています。インターコネクトやサーバー自体の性能が格段に高くなっているとはいえ、基本的なシステム構成は、2001年当時のBeowulfクラスターからそれほど変わっていないのです。

2018年現在のHPCを取り巻く環境は、2001年当時に比べ、人工知能や機械学習、深層学習といった知的情報処理のためのソフトウェア群が非常に充実しているものの、計算スピードをかせぐためには、非常に高速なCPUと高速なインターコネクト、そして、並列計算のための拡張性が求められています。スピードが命のHPCの世界において、単に汎用の安価な1Uサーバーを並べるシステムは、全く太刀打ちできない状況になっています。ギリギリの性能を引き出すためには、コンピューターのCPU動作周波数を高め、発生する熱と戦わなくてはなりません。また、近年の人工知能ブームでは、深層学習(ニューラルネットワークのソフトウェアによる学習の計算)を高速に行えるグラフィックボードの利用が不可欠になっています。そこで、2017年、HPEは、ついにSGIと合併し、性能の限界に挑戦するコンピュータを提供するため、HPC分野の製品ラインナップの拡充をはかりました。そこで登場するのがHPC SGI 8600(上図)です。なんとこのマシンは、水冷なのです。一般的なPCを並べるBeowulfクラスターの全体構成は、現在のHPCクラスターとそれほど変化がないとはいえ、実際には、水冷システムなどを組み込んだHPCに特化した超高速コンピューターハードウェアが登場しています。

幸いにも、HPE SGI 8600は、汎用的なLinuxであるSLES、RHEL、CentOSが稼働します。もし手元に2001年当時の古い人工知能のプログラムのソースコード(ソフトウェアの設計図)などがあれば、是非、HPE SGI 8600に移植してみてください。特に、深層学習などのニューラルネットワークの学習プログラムは、グラフィックボードを駆使すると、驚愕の性能を体感できるはずです。筆者のように、第2次人工知能ブームで絶望に近い眼差しで人工知能を研究していた方々は、是非、HPE SGI 8600で希望を見出してい頂きたい次第です。

関連リンク:
HPE SGI 8600 System
https://www.hpe.com/jp/ja/servers/hpc-server-sgi8600.html 

「2001年 スーパーコンピューターの旅」は、今後も続けてまいります。旅記事では、懐かしのサーバーや、コンパイラー事情、並列計算プログラミング、数値計算ライブラリー、さらには、HPCクラスターにおけるジョブ投入システムなども、どこよりも遅く限りなく個人的な見解を交えて、ゆるくとりあげていきたいと思います。

Masazumi Koga (Twitter: @masazumi_koga)

 

 

0 感謝
作者について

Masazumi_Koga

Hewlett Packard Enterprise認定のオープンソース・Linuxテクノロジーエバンジェリストの古賀政純が技術情報や最新トピックなどをお届けします。保有認定資格:CCAH(Hadoop)/RHCE/RHCVA/Novell CLP/Red Hat OpenStack/EXIN Cloud/HP ASE DataCenter and Cloud等