ここ10年間における計算手法と計算機の両方の著しい進歩は、これまで到底達成不能であったような複雑な計算シミュレーションを可能とし、今や現実の工学的問題においても解析のツールとしてだけではなく、材料・原理探索の強力な武器としてその地位を固めてきている。こうした計算科学ならびに産業基盤ソフトウェアは、大規模科学技術計算として今後とも高性能計算機の第一義的な対象領域であることは間違いない。ペタフロップスという現行の1万倍程度高速な最高性能を持つシステムが登場するとき、開発するための最も重要な原動力としてこれらのアプリケーションが想定されることは間違いない。ここでは、アプリケーション技術の現状とロードマップについて述べる。
今後のアプリケーションを高度化するにあたって必要なキーテクノロジとして重要なものが「マルチスケール計算技術」とか「シームレスカップリング(ズーミング)」と称される複数の計算モデルを融合させるための計算技術である。これは、従来の単独モデルで極限操作を行ったとしてもそのスケーリングでは扱いきれない現象を対象としている。
ひとつの例として地球環境シミュレーションがあり、そこでは「大気循環モデル」「海洋大循環モデル」「極地モデル」「陸モデル」などを総合し、全体として取り扱う必要がある。この問題ではそれぞれに取り扱う時間単位が違うこと、離散化のスケールが違うこと、計算量が異なることから単純にプログラムを足しあわせるだけでは計算を構築できない。個々のモデルを別個に高速システムで実装するだけでは、計算時間の短縮がはかれない。そこで、相互に計算中途のデータを補間・外挿したり、時間の間引きを行うが、これらを統一的に扱うための手法が今求められている。
別の例としては、ミクロスケールとマクロスケールの両方からのアプローチをモデル化し、計算科学的手法により解明する問題領域がある(図1)。この領域をメゾ領域と呼ぶが、この領域以下のスケールにおいては粒子的な取り扱いでモンテカルロ法や分子動力学法によるシミュレーションを行ったり、量子的な取り扱いにより第一原理計算に基づく電子状態の計算を行ったりすることが可能であった。また、メゾ領域以上のスケールにおいては連続体、構造体の取り扱いとして差分法、有限要素法によるマクロ量として計算することが可能であった。ミクロスケールからの延長上でメゾスケールを取り扱うと、系の粒子数を2桁以上増加させる必要があるが、計算時間、メモリ量との関係で実際の計算技術としては困難を伴う。一方、連続体からの極限的な分割による近似では系のメッシュ数などを増加させる必要があり、これも計算時間、精度、メモリ量の関係から一般には取り扱いが困難である。こうしたメゾ領域はマクロな性質が現れるための素現象の過程を見るために非常に重要であり、破壊や変形などの材料的な性質を決定しているとも考えられている。このためマクロないしミクロの領域からのアプローチによる計算手法を高密度に連携させ、より高精度かつ高速に計算する要請がある。計算技術的な観点から見ると、それぞれのアプローチで実行に用いられる高性能化技術は異なっており、単純には統合することができない。このために新たな計算手法のモデル化と適した計算機システムの開発が重要となる。
従来の計算科学での計算手法の代表的なものとして、古典分子動力学法と、量子力学的電子状態計算に基づく計算がある。それぞれは、ほぼ独立して研究が進められてきた。古典分子動力学法は、系内の原子について古典力学的に運動を求める方法であり、熱力学的性質や動的性質の研究には適しており、現在では100万個の原子を扱うことも可能である。しかし、この方法の最大の欠点は、解析的な原子間のポテンシャルを用いるために、原子間の結合が生成されたり切断されたりするような過程を正しく記述することが困難であることである。また、電子が直接に関与するような現象については全く無力であり、その意味で化学反応を扱うことには無理がある。一方、量子力学的電子状態計算に基づく計算は、古典分子動力学法と全く相補的である。正確な記述が可能であること、電子が関与する現象を扱うことが可能であることなどの利点がある一方、計算が複雑であるために大規模の系を扱うことは困難である。
計算アルゴリズム開発の例としてマルチスケールな物理・化学の問題を考える。ここでは電子が関与する過程は、系の一部分で生じており、系の残りの部分はその中心部を構造的に支えていたり、電場を及ぼしたりしているに過ぎない。このような場合には、古典分子動力学法だけでは問題を扱うことはできないが、量子力学的手法で全系を扱うことも計算量が膨大になってしまって不可能になる。そこで、その活性部位は量子力学的に扱い、残りの部分を古典的に扱うという融合的な計算手法が確立されれば、このような従来は困難であったような問題が扱えることになる。メゾスケール問題は現実の世界には、酵素反応、触媒反応、破壊、粒界、複合材料など非常に多く存在している。
この計算手法により試行錯誤を減らすことがトータルコストの低減につながる。例えば触媒の開発と改良は、化学産業の効率化に寄与するだけでなく、環境・エネルギー問題としても重要である。酵素反応の解明も同様である。計算科学的手法による触媒作用や酵素反応の原子レベルでの解明は精力的に進められており、この方向の研究に大きい寄与をすることが必要である。従ってこうした研究は情報産業のみならず材料関連、環境関連、エネルギー関連新規産業創造に貢献することが期待されている。また、これからの計算機システムの中心となるであろう専用計算システムや並列計算システムの融合手法は、情報産業にも重要な寄与をする。
さらにいくつかの応用例を記載する:
科学技術会議諮問第25号「未来を拓く情報科学技術の戦略的な推進方策の在り方について」において高性能コンピュータとネットワークを駆使した新たな地のフロンティアを目指した研究開発の重要性が指摘されている。また科学技術会議諮問第14号「物質・材料科学技術に関する開発基本計画について」に対する答申のフォローアップ報告書でも計算機シミュレーションの基盤技術の重要性が謳われている。
大規模な計算科学技術が、材料設計や環境・エネルギー問題などの現実世界の広い分野において、今後ますます重要な役割を果たすことが期待されている。材料設計では、試行錯誤を回避することによるコストの低減、環境・安全問題などでは、シミュレーションによる危険なために実際の実験が不可能な過程の解明などが典型的な例である。しかしながら、これらの問題に対応するには、少なくとも数百万個の原子についての古典力学的な運動と量子力学的な電子の振る舞いの組み合わさった複雑な現象を解明する必要があり、従来の計算手法では対応しきれないことが多い。こうした現状を打破するには、計算機システムとアルゴリズムの両面から効率的な計算手法の開発が必要である。すなわち専用計算システムと並列計算システムの融合と、古典シミュレーションと量子シミュレーションの融合が必要である。この目的のためには、単一の分野のグループでは不可能であり、参画研究機関それぞれの分野の専門家の持っている高いポテンシャルを融合することで、初めて上記の手法を開発できる。こうした研究開発は、広範囲の問題の解決を可能とするために必須であると考えられる。
大規模な、いわゆるグランドチャレンジ的な問題はすでにその研究の緒に付いているが、それに加え、今後は新たな展開が期待される。例えば工業技術院が保有するアプリケーションには、超伝導現象の理論的解明、新機能材料創製を目指した結晶成長シミュレーション、微細構造を持つ新デバイス設計、慣性核融合プラズマ解析用シミュレーション、生体複雑系の振舞いの解明、遺伝子情報の解析など、基礎理論から実用的なシミュレーションを実施する項目だけではなく、並列・分散手法による高性能アルゴリズム、産業基盤ソフトウェアの開発や複雑な計算機システムの性能を解析評価するという情報技術としてスーパーコンピュータを活用するような超高速計算機利用技術がある。これらの計算手法としては分子動力学、分子軌道法、差分法による対流・拡散・伝熱計算、粒子シミュレーション、変分モンテカルロ計算、巨大行列の対角化、大規模連立一次方程式の解法などが主に用いられている。
これらのアプリケーションからは速度、メモリといった点への要求は際限がない。スーパーコンピュータは、並列処理機能を具備するのがすでに標準的な構成となっており、今後のシステムも、より台数の多いシステムとなるであろう。しかし、安易に並列化のみに依存して最高性能をたたき出すシステムは、現行のアーキテクチャでは単体での性能が制限されるため、大きく飛躍することは困難となる。並列化による高速化をプログラムの上では努力、工夫はしているものの、多数ユーザが同時に使用する共同利用センターでは並列化よりも逐次プログラムによる最適化と高速化が実行時間の短縮には大きく貢献する。したがって、単体性能が極力高く、かつ可能な限り並列化が実現できるようなシステムの導入に期待する。また、メモリも単に容量ではなく、高速なアクセス速度を持ち、かつ演算装置に充分なデータ供給が可能となるアーキテクチャを期待する。最低でも 1,000Gflops、256GB、かつ単体性能が 10Gflops 以上という能力と容量が今後3年程度を見越した場合には必要であると考える。ペタフロップスはそのまた先にある。
従来の大規模並列応用は科学技術計算分野に限定されて来た。しかし、高性能ハードウェアの低廉化により、ビジネス分野や設計・製造などの産業応用分野にも並列処理が浸透しつつある。
ここでは、ビジネス分野で近年重要な位置を占めつつある情報系のデータベース応用システムに着目し、そこで用いられるOLAP(Online Analytical Processing) やデータマイニング等のための処理方式と、設計・製造分野での重要な情報処理技術である最適化のための探索手法の2分野を取り上げ、その並列処理の規模やスケーラビリティに関する展望・考察を述べる。
また、これらの応用での処理内容の考察に基づき、大規模並列マシンのアーキテクチャに対しての要件を述べる。
そして最後に、大規模並列処理技術の発展と実用化のために国の推進すべき施策について、私見を述べる。
ディスクの低廉化と大容量化、および、企業の情報化の進展により、大量のデータが蓄積されるようになり、これを情報系データベースとして有効活用することを目的として、大容量データを扱う技術が近年脚光を浴びるようになった。
大容量データ活用技術は、その処理の複雑度に応じて表1のように分類出来よう。これを並列処理の観点から整理する。ただし、近年爆発的に利用が進んでいるインターネット上のWebページ等をデータベースに見たてた分散型のデータベース応用システムは除外し、ローカルなデータベースに対する並列処理のみを対象とする。なお、表中の「計算の濃度」とは、ディスクへの入出力とプロセッサ内での計算量の比を相対的に表わしたものである。
計算の並列度 | 計算の濃度(*1) | 基本処理例 | |
(1)データ検索・集計 | 小 | 薄い | 選択・合計 |
(2)データ統計・解析 | 大 | 中位 | 平均・分散・散布集計 |
(3)データマイニング | 大 | 中位 | 相関・分類・クラスタリング |
(4)データ利用プラニング | 大 | 濃い | 探索・事例ベース |
(1) データ検索・集計
情報検索における特定のキーワードからの文書検索、データベースにおけるインデクスを用意していない属性を用いたレコード検索、集計作業などは、ディスクの走査が少なくとも1回必要となる。このため、検索の並列度はO(N)〜O(Log(N))程度得られるものの、ディスクアクセスの所でどうしても直列化が発生してしまい、ボトルネックとなる。一方、直列化を軽減すべくディスクを並列化すると、当然ながら管理システムを並列化する必要性が生じる。並列データベース管理システムを例にとると、その効率的な実現には様々な課題がある。例えば、通常のデータベース関連の応用プログラムはディスクアクセスが多いため、プログラムを丸ごと分配しないと効率が悪くなる。この時、エラー制御のプログラムでラップするなどしてから分配しないと、システムがエラー制御を行いにくくなるという問題点が知られている。いずれにせよ、複数の検索・集計を同時に行うとしても、計算能力に対する要求はそれほど大きくないと言える。
(2) データ統計・解析
種々の集計結果を求める処理であるが、OLAPと呼ばれる対話性・瞬時性をセールスポイントとした技術が近年注目を集めている。あらゆる属性に関する集計処理をリアルタイムで求めるのは今のハードウェア技術では流石に困難であることから、予め主な属性に関する集計処理を行い、これを多次元テーブルもしくはグラフに表示出来るような形式(多次元DB形式または多次元データキューブと称する)に変換してメモリに格納しておく前処理(ビューの実体化とも称する)と、ユーザの指示に従い、それを3次元表示するための処理がある[1]。
勿論、前処理されていない集計結果を求められた場合には、実体化済みのデータキューブの情報の組合せもしくは元のデータベースから即座に集計することも要求される。
前処理の代表的なものは2属性または3属性に関する頻度分布表(もしくは散布図)を求めることであるが、属性数の多いデータの場合、その組合せは膨大となり、全ての頻度分布表を前処理で求めておくことは現実的ではない。従って、計算の手間およびメモリの容量を勘案し、予め参照されそうな組合せについてのみ前処理で求めておき、それ以外のものはオンデマンドで作成することになる。
プロセッサの高速化とメモリの大容量化により、より多くの属性組合せに関して前処理(実体化)を済ませておくことが出来るようになったこと、そして、グラフィック表示技術の進歩により3次元散布図等のリアルタイム表示が容易になったことが、OLAPの実現・普及に結び付いている。
データの大容量化と更なる高速化への要求から、並列処理への期待が高く、しかも、上記のように前処理においては高い並列度を有する。並列化においては多数のディスク上にレコードを分散配置し、それぞれのプロセッサで出来るだけ独立して集計を行う。ただし、プロセッサごとの小計値の報告のために通信が必要となる。分散メモリ型計算機においては通信量とメモリ効率はトレードオフの関係になる。即ち、それぞれのプロセッサで集計し、最後に一回だけ小計値報告をするためには、頻度分布表のコピーを全てのプロセッサで保持しなくてはならなくなるため、メモリ効率が悪い。頻度分布表のコピーを持たず、逐一オリジナルの頻度分布表を持つプロセッサに報告すると通信が膨大となる。
リレーション(テーブル)を縦割りにしてディスクに分散配置しておき、特定属性の値が1つのプロセッサで取り出せるようにする等の工夫も考えられる。これにより、一部の頻度分布表作成は完全にプロセッサ単位に独立に行える。しかし、組み合わせる属性がプロセッサ/ディスク境界をまたぐこともあり、属性単位の通信が避けられない。
なお、1回のディスクの走査で複数の頻度分布表作成を行うことにより、ディスクアクセスのボトルネックを回避できるため[2]、スケーラビリティの確保には(1)と異なり通信性能がより重要となる。
(3) データマイニング
大量データからの知識発見をデータマイニングと称する。OLAPと同様、ユーザの意志決定支援のツールとして用いられるため、迅速な応答性が要求される。
データマイニングには、属性間の相関発見、クラスタリング、分類・予測等の種々の目的にそって様々な手法があり、用いられる手法や処理の内容は多岐に渡るが、いずれも OLAP以上に計算負荷が高い。また、データ蓄積量が増大しても応答性能を確保したいため、スケーラビリティを持った並列処理方式が求められる。
ここでは、最近注目を集めている相関ルール発見の代表的アルゴリズムであるapriori アルゴリズムを見てみよう[3]。基本的には属性値(アイテム)同士の共起頻度のカウントであるため、属性数ではなく、各属性の取り得る値同士の組合せ数だけの計算量があり、本質的な並列度も高い。あるサポート値(出現頻度比率)以上のアイテムの組(ラージアイテムセットと称する)を効率良く発見するため、k個組のラージアイテムセットの候補は (k-1)個組のラージアイテムセットから生成し、各候補が所与のサポート値を超えるかどうかのカウントを行う。即ち、組数の増加に関しては逐次であり、各組数におけるカウントのみが並列処理の対象となる。ただし、多くの実用問題では2 〜3個組のラージアイテムセットを求める処理が計算の殆どを占めるため、並列処理による速度向上が大いに望める。
k個組のカウントの並列処理手法として、候補アイテムセットのカウンタをハッシュにより分散配置し、各レコードから得られたk個組に対応するカウントアップ信号の送り先もやはりハッシュにより求める方法が知られる[4]。データ自身が移動することもなく、カウンタの複製も不要のためメモリ効率も良いが、カウントアップ信号の通信頻度が高く、また、一部のプロセッサに通信が集中して負荷のアンバランスを来す恐れがある。これを解消するため、頻度の高そうな候補アイテムセットに関してのみ全プロセッサで別々にカウントするという工夫も提案されている[4]。この他に様々な並列化手法が提案されつつある[5]が、数十プロセッサ以上での並列処理はこれからの課題である。
数値属性間の相関発見の場合は、意味のある相関ルールとするために、離散化、即ち、連続値の区間割りを行わなくてはならないが、たとえば、あるサポート値以上となるように区間割りを自動決定する場合は、一種の最適値探索問題となる。2つの数値属性を条件部に持つ「(XY)∈R→Z」という相関ルールを求めたい場合は、XYの2次元平面上の領域決定問題となり、計算量は更に増大する[1]。候補領域をピクセルという微小領域に分割し、それらのマージを行う手法の場合は、ピクセル数に比例した並列度があるが、実際の並列化は今後の研究成果を待つことになる。
(4) データ利用プラニング
データマイニングでは「知識発見」とは言うものの、仮説を生成・提示するだけに留まり、それの採用・棄却の判断や知識としての利用はユーザに任される場合が多い。即ち、ユーザの意志決定を側面支援するものが殆んどである。
そこで、マイニングされた仮説を知識として蓄積し、それに基づきユーザの行動をプラニングする次の段階が考えられる。データマイニングとの境界ははっきりしたものではないが、例えば、「売り上げの最大化を目的に、クラスタリングされた顧客情報に基づいて宣伝投資の配分を立案する」などは、データ利用プラニングと称して良いであろう。また、(3)で触れた連続値属性の自動区間割りや領域決定も利用目的によってはこの範疇に入れても良いであろう。前述のように、このようなプラニング問題では次節の最適解探索技術を必要とするものが多い。
事例ベースを活用したシステムも考えられる。例えば、適切な過去の事例を提示して立案に代えたり、評価の高い類似事例を組み合わせて立案することも考えられる。事例ベースの場合は基本的には事例数だけの並列度が存在する。分類を目的としたものではあるが、事例ベースの並列処理研究も進められており、16台で15.8倍の台数効果が報告されている[6]。
組合せ最適化問題に分類される多くの実用問題では、多目的問題であったり、目的関数が厳密に定義出来ない等の理由により、実際には厳密な最適解を求めることよりも、準最適解を高速に求めることが要求される。そのため、準最適解の求解速度の優れたモダンヒューリスティックス探索が近年脚光を浴び、種々の実用問題でも成功を収め始めている。
組合せ最適解の厳密探索解法の殆んどは指数オーダの手間がかかるため、N台のプロセッサによる並列処理によって計算オーダO(N)を削減しても、その効果は低いと言えたが、計算の手間を大幅に省略して実用時間で求解するモダンヒューリスティックス探索においては事情が異なり、並列処理によるN倍の効率向上に期待がかかる。設計分野などでは開発スピードが製品としての成功を決定づけるため、経済効果が大きいからである。
探索木を用いた探索解法の並列化では、通常、探索木の分割という形で行われるが、探索木の深さや枝の広がりのアンバランスによる粒度の調整、プロセッサ稼働率確保のための動的負荷分散、これを制御するための通信のボトルネック解消等、様々な課題を解決せねばならず[7]、十分なスケーラビリティを確保するのはなかなか困難と見られた。しかし、モダンヒューリスティックス探索の中でも特に多点型の確率的な探索では、探索範囲をN倍にすることが比較的容易であり、これにより最適解もしくはある閾値を越える満足解の求まる確率をN倍にすることも不可能ではない。
遺伝的アルゴリズムにおける交配のような局所探索のための操作を、もし大域的な情報を元に行う場合には、N倍あった探索範囲を縮めてしまう。そして、プロセッサ同士でのいわゆる重複探索の可能性を高めてしまうため、探索範囲の再拡大等の難しい課題が生じる。しかし、パラメータ数が十分に大きい場合には重複探索の回避はそれほど困難ではない。
例えば多点ランダムウォーク探索という単純な方法においても、歩き出す方向にちょっとした工夫を施すことによって重複探索が殆んど生じないように出来る。そこでは、近傍点をランダムに一定数選択し、その中の最良点へと探索を進める方法をとる。近傍点をランダムに取ることにより、複数の探索プロセスが、万一交差したとしても、同じ航跡をたどる確率を十分低く抑えることができ、探索範囲の広さが保証される。これはタブー探索を実現するために共有メモリに保持すべき短期経路記憶を省略し得ることを示し、大規模並列処理に大変適した性質と言える。遺伝的アルゴリズムにおいても個体集団の多様性が確保される「島モデル」は大規模並列処理向きと言えるであろう[8]。最適解もしくは局所最適解に漸近するための「局所探索」と「多様性もしくは探索空間の維持」のバランスの取り方に技術課題は残るものの、探索手法とそれを元にした応用問題は大規模な並列処理が活用出来る重要な領域と言える。
上記で見た情報系データベース関連の応用ではディスクへの並列アクセスが前提となるが、殆んどはレコード走査、即ち、逐次アクセスであるため、強力なプリフェッチ機能を持つディスクキャッシュが効果的である。また、(2)の頻度分布表作成や(3)の相関発見などでは多数の、あるいは、大きなテーブルを用いたカウント処理が行われるため、従来のキャッシュメモリではヒット率が高くならないので、何らかの工夫が必要である。更に、多くのカウントアルゴリズムでは、小計の通信先である最終集計プロセッサをハッシュで求めることにしており、この部分のハードウェアサポートも検討に値する。
ディスクの走査回数を削減するために複数の頻度分布表を同時作成する場合にはレコード情報をブロードキャストする方法が結局は有効であるという報告もあり[2]、また、相関発見の並列化でもラージアイテムセットのブロードキャストが必要であることから、ハードウェアによる高速なブロードキャスト通信機構も有用であるかも知れない。
また、多くのアルゴリズムにおいてメモリ容量と通信量とにトレードオフが存在する。この性質は従来の科学技術計算ではあまり考慮され無かったため、現状の商用並列計算機では価格性能比の良いシステムを実現することが困難かも知れない。
一方、3.3.2.2の「探索問題」における多点探索アルゴリズムでは入出力スループットやメモリ容量に対する要求は大きくない。従って、従来の科学技術計算を想定した並列計算機でも高い性能とスケーラビリティが期待出来る。ただし、タブー探索における長期記憶、即ち、極大値の比較等のためにブロードキャストや効率の良いグローバル演算がサポートされている必要はありそうである。
昔から言われていることであるが、応用サイドの者にとって、並列処理は高速化の手段であって目的ではない。そのため、単一プロセッサの実行速度の著しい進展が続く中、それでも並列処理による高速化を敢えて目指すのはスケーラビリティをセールスポイントとしている場合か、ぎりぎりの競争を行っている場合である。
今回調査検討した情報系データベース応用システムの分野ではスケーラビリティが非常に重要であることから、応用サイドからの並列処理研究が例外的に進展したとも言えるが、この分野でさえ、並列計算機アーキテクチャとして、これを十分考慮したものはまだ出現していない。
最適解探索やシミュレーションをベースにした設計ツールの高速化は開発速度の向上に非常に重要であるにも関わらず、それらの並列処理化研究は、少なくともわが国では盛んではない。利用者側からは設計ツールの並列化に手が出せないか、手が回らないという状況である。
応用からアーキテクチャまでの幅広い知識を必要とする並列処理技術は学際的であり、かつ、基礎的研究開発テーマと言える。故にその開発は、直近の開発に追われる産業界にとって大きな負担となっている。有能な人材を比較的多く抱えている大企業の研究所でさえ、景気低迷・競争激化のために、中長期的な研究から新製品の直接開発へウェートをシフトしている。この研究から開発へのシフトは日本企業同士の競争激化を増進すれども、基礎技術に裏打ちされた米国等の製品を凌駕することにはならず、国際競争力の長期的な維持・向上の観点から心配が多い。
並列処理技術をはじめとする、学際的かつ中長期的な研究を企業にモチベートするための速効性のある国の施策としては、研究開発に対する思いきった税法上の優遇措置が考えられる。また、必要な人材を素早く組織化できるように、人材の流動性を高めるための施策や、産学共同の支援施策なども拡大すべきである。学校教育の見直しも必要であろう。複数専門制を推進するなどにより、学際研究を促進し得る人材の早急な育成が望まれる。
参考文献