はじめにお客様は総合電機メーカーの研究所で、量子化学の基礎研究からその応用や実用研究までを行われている研究グループの方です。ご研究では量子化学計算も行われており、その計算には研究所の計算センターのスーパーコンピュータやPCクラスタを利用されているそうです。さらに、研究グルーブでも独自にPCクラスタを運用されているそうです。お客様は、これら3種類の計算機を使い分けられていました。主にに利用される量子化学計算用のアプリケーションはGaussianでした。
最初に、計算機から見たGaussianの特徴をまめてみました。
◇ Gaussianの計算では、長い時間を要するものが多い
◇ アウトコアソルバーが採用されており、高速な大容量のスクラッチディスクを必要とする
◇ 小規模なアウトコア計算ではメモリファイルシステムにより高速化が可能
◇ ジョブの種類によっては大容量メモリを必要とするものもある
◇ シェアードメモリ並列機による並列計算がサポートされており、マルチコア計算機で並列性能が出る
◇ ネットワーク並列計算がサポートされており並列性能が出る
(Linda (ミドルウェア) を利用する)
◇
ソースコードを導入する場合は、PGIコンパイラを用いてユーザがビルドして使う
⇒ ビルドに関しては、PGIコンパイラによる標準ビルド以外の利用は認められていないので注意
⇒ Gaussainは長い歴史を持つプログラムで、膨大な量のソースコードとして開発・維持されている
※ 一般論として、アプリケーション開発や運用では一貫性や保守性などが優先され、速度向上はハードウェアの性能向上など、プログラム以外の要因に依存する
◇ Gaussianのプリ/ポストであるGaussViewは使い易い、リモートからXで利用すると便利
Gaussianでの量子化学計算は長い計算時間がかかることが多いです。ところがセンターのスパコンは定期メンテナンスで停止することがあり、思いどうりにジョブ投入ができないそうです。また、ジョブ実行時間にも制限があり、一定時間を超えるジョブは強制終了させられるため、この条件をクリアするジョブしか投入できません。センターのスパコンには共同利用環境ならではの制限がネックとなっているそうです。
計算センターにはHPCクラスタもあり、これも利用されているとのことでした。このHPCクラスタもセンターの計算機であるため、定期メンテナンスによる停止や、ジョブ実行時間による制限があります。そしてさらに、このクラスタはジョブ管理ソフトを介して利用するようになっていて、実際にジョブが計算機に割り振られる際に、どのようなスペック (CPU、メモリ、ディスク) の計算機に割り振られるかが判り難いのだそうです。あまり大きなジョブを投入するとトラブルの原因となり他の利用者に迷惑を掛ける可能性があるため、あまりリソースを消費しないようなジョブを投入するように心がけておられるのだそうです。
上記のように、センターの計算機は共同利用環境のため、利用制限を守り行儀良く使う必要があります。しかし、最先端の研究を推進するためには、冒険的な計算を行ってゆく必要があります。そこで、チャレンジングな大規模計算を思う存分、実行できるようにと研究グループでも独自のHPCクラスタを導入されていました。
このようなお考えで導入された独自のHPCクラスタも、導入から時間が経ち古くなってきたので更新を考えられました。そこで、Gaussianの更新と、それに併せた計算機システムの更新を計画されました。そのため、Gaussian用計算機のインテグレーション実績が豊富な弊社へ、計算機システムの導入についてのお問い合わせを頂きました。
お客様のご希望は以下のようなものでした。
◇ 高い演算性能の実現
⇒ 運用の容易なノード内での並列計算による性能向上
◇ 大容量メモリと大容量スクラッチディスクを搭載した大規模ジョブ実行環境の実現
◇ OSを含めた完成度の高いHPCインテグレーション
◇ オンサイトでのGaussianの稼動開始支援
◇ 使い易いシステム設計・構築
◇ 技術スタッフが訪問してのオンサイトでのシステム導入サービス
◇ 安定稼動する高品質サーバ
◇ 迅速なオンサイト保守サービス
これまでの経験から、考え得る最良の構成を提案しました。
◆ ご提案した計算機
◎ HPC-ProServerDPr490 1台
CPU: Quad-Core Xeon 2.66GHz 2CPU 8コア
メモリ: 16GB
システムディスク: 250GB
スクラッチディスク: 1TB (RAID0 500GB x2)
OS: CentOS4 EM64T Linux
その他: OSリカバリーDVD
無停電電源装置: 1500VA UPS
◇ Quad-Core Xeon 2CPU 8コアを搭載しシェアードメモリ並列計算が可能
◇ 16GBの大容量メモリを搭載
◇ 1TBのRAID0で構成された高速・大容量スクラッチディスクを搭載
◇ 1500VAのUPSを搭載し瞬停対応、停電時には正常終了が可能
◇ GaussViewの搭載を提案、(優れたプリポス環境により作業効率が向上)
◇ GaussViewに対応するグラフィックス環境の搭載と動作確認
◇ Gaussain03とGaussViewを同時に動作させることのできる大きなCPUパワーの搭載
◇ GaussViewからのGaussian03の利用方法までレクチャー
◇ HPCテクノロジーズの技術スタッフを派遣しオンサイトセットアップ
◇ 3年間の当時オンサイト保守
◇ 3年間の技術サポート
※ ご提案して製品は、外見こそワークステーションですが、その性能は昔のAlphaプロセッサを16〜32CPU搭載していた大型並列計算機や、現在多数導入されているPentium4 8〜16ノード構成のクラスタに匹敵する性能を持っています。また、大容量メモリを搭載しているため、Alpha、MIPS、POWER、IA64など高価な64bitプロセッサ搭載サーバでしか計算できなかった大規模計算も実行することができます。
以上のご提案が、お客様にもご評価され、ご発注していただくことができました。製品は社内で完成させた後に出荷しました。
迅速かつ確実な運用開始のため、HPCテクノロジーズの技術スタッフがお客様のサイトをご訪問し、オンサイトでの計算機の設置、GaussainとGaussViewのセットアップと動作確認、お客様への利用説明を行いました。説明では、お客様とセットアップの確認作業を行った後、システムの基本説明と実際の利用説明を実機を用いて行いました。
オンサイトセットアップでは、お客様から次のような使い方に関するご質問やご確認を受けました。
◇ スクラッチファイルの指定方法
◇ 大容量メモリジョブの実行
◇ 並列実行時の性能向上
◇ GaussViewの操作方法
◇ 個人のWindowsPCからGaussainとGaussViewのリモート利用
スクラッチファイルの指定は、環境変数の設定で行うと便利です。するとGaussian実行時に自動的にスクラッチファイルがRAID0のスクラッチ用ディスクに作成されるようになります。この設定が行ってあると、お客様がGaussianを実行される度にインプットファイルの中にスクラッチファイルのパス指定する必要がありません。
サンプルにあるインプットファイルを用いて、メモリサイズ割り当ての変更を行い、EM64T版バイナリを用いると、2GB以上の大容量メモリを指定した計算が実行できることをご説明しました。
並列実行については、インプットファイルのnprocの値を変更することで並列実行ができることを確認するため、4並列実行での性能向上を確認しました。なお、Gaussianの並列計算では、ジョブの種類の違いや搭載されているメモリ容量、スクラッチディスクの性能などにより並列効率が変わります。これは並列化されてないLinkや、並列化向上率が芳しくないLink、並列化効率が素晴らしいLinkがあるからです。また、使用するスクラッチディスクの速度や構成によっても状況が変わります。しかし、Quad-Core Xeon機とDual-Core Xeon機のシステムレベルの価格差が僅差となっているので、実際に導入される場合にはQuad-Core Xeon 8コア機がお得になることをお伝えしました。さらに、GaussViewもGaussianと平行して利用されるのでQuad-Core Xeonの導入は、さらに望ましいということをお伝えしました。
GaussViewの利用説明も行いました。GaussViewにより計算モデルを読み込み、Gaussianを実行し、計算中の状況の確認、計算結果の確認と可視化、モデルの操作など、一連のデモンストレーションを行いました。
計算機を直接操作せず居室から、手元のWindows PCをX端末にしてマルチユーザで利用する方法をお伝えしました。具体的にはXサーバとXクライアントの設定方法をお客様にお伝えし、WindowsPCでのX環境を利用できるようにするためCygwinを用いてのXサーバの起動させました。そして、導入した計算機システムをXクライアントとしてGaussViewを手元のWindowsPCにて表示させ、Linux機上で動作しているGaussViewの操作を手元のWindowsPCから行えることを確認してもらいました。このようなマルチユーザ利用での8コア Xeonの効用は大きいです。
納品後にお客様からは次のようなご意見とご感想を頂きました。
HPCテクノロジーズの技術スタッフがオンサイトサービスにより、Gaussian03とGaussViewのセットアップを確実に実施してくれたので安心できました。また、その説明を実地でしてくれたので安心感が倍増し、しかも短時間で理解できたのは良かったです。さらに、こちらからも利用に即した質問をすることができました。その回答も即座に得られたので、これも良かったです。
Gaussianの利用では、ソースコードの改変やmakefileの変更、コンパイラの変更などはしないようにとされています。このようなことでGaussian社のサポートが受けられなくなっては困ります。さらに、計算機結果の信頼性をどのように考えれば良いのかもわからなくなります。この点でも、HPCテクノロジーズのGaussianセットアップサービスでは、Gaussain社の指定に従った正規セットアップの遵守が基本に据えられているので、研究や開発での本格的な利用にも安心です。
GaussianとGaussViewのセットアップにとどまらず、実際にWindowsパソコンからXサーバによりリモートで操作できるような環境のセットアップまでフォーローしてくれたので助かりました。実は、オンサイト時にHPCテクノロジーズの技術スタッフに問合せをしようと、GaussianとGaussViewのセットアップや利用に関する質問を予め用意していました。これらは実機でレクチャーしてもらったほうが早いし手堅いからです。そして実際も期待通り、納入された計算機を操作しながら回答が得られたので良かったです。
導入の当日には、Gaussainの並列動作の性能試験で、4並列での実行時間が約1/4になり、並列時の高速化が実現されていることが確認できました。さらにこれから、2日以上の長時間のジョブや数百GBクラスの巨大スクラッチファイルを生成するようなジョブを実行してみたいと思います。