テストドライブ:SuSE Linux Enterprise Server 8 for Intel Itanium2
ハードウェアとインストレーション
今回のテストマシンの調達とレビューに関しては Ion Computer Systems のPaul Scheremeta、Keith Josephsonの両氏に協力を仰いた。レベル3キャッシュ1.5MB付きの900MHz CPU(4基)、8GBのDDRメモリ、36GBのUltra160 10,000 RPM SCSIディスクが搭載されたテストマシン、Itanium 2サーバを使わせていただくことができたのも両氏のご厚意のおかげだ。
SLES 8をインストールした本人(Keith Josephson氏)の言によると、今回のテストマシンは「典型的なSLESサーバ」とのことだ。
他のパッケージを2、3、追加しなければならなかったことを除けば、不都合らしい不都合は、マルチCPU構成をサポートするカーネルが含まれていなかったことくらいだ。事実、Keith Josephson氏は、「SMPカーネルのRPMを手動で(むりやり)インストールしなければならなかった」としながら、それさえ済めば、テストマシンは「慣れ親しんだLinuxマシンと変わらない状態」になったと語っている。
変化のないことのすばらしさ
OpteronとSLES 8の組み合わせを試した私の経験 をお読みいただくと、新しいプラットフォームを評価するときの項目の1つとして挙げられるのが「変化のないこと」だということがわかるだろう。理想的なのは、今使っているプラットフォームと同じ方法ですべての作業を行えるマシン、しかし、必要とあらばそれ以上の作業も行えるマシンだ。したがって、SuSEがItanium 2上でもIntel x86上やOpteron上の場合と同様のルックアンドフィールを持つという事実は歓迎すべきものだといえる。
そのユーザインタフェースはありふれたKDEデスクトップに似ている。Intel x86 SuSE Linuxサーバ上にあるアプリケーションがそこにもあった。しかし、問題は、32ビット/64ビットの実行ファイルに対してどのような反応を見せるかだ。
まず、Intel x86 Linuxマシン上でコンパイルした実行ファイルをItanium 2マシンに上に転送して、それが実行可能かどうかを試してみた。すると問題なく実行できたが、パフォーマンスはお世辞にも高いとは言えなかった。
次に、64ビットのクリーンプログラムをソースコードから再コンパイルし、修正が必要かどうかを試してみた。先週、このテストをOpteronマシン上で行ったところ、別の場所(64ビットライブラリ用)にあるX11ライブラリが見つからず、gccコマンドラインを修正する必要があった。Itanium 2マシン上では、gccコマンドラインを修正する必要はなかった。AMDアーキテクチャは32ビットと64ビットの両方に対応しているが、Intelアーキテクチャは64ビットだけに対応し、32ビットはエミュレートする──これがその違いをもたらした理由だろう。ライブラリセットの数は、Intelマシンでは1つ、AMDマシンでは2つだ。
64ビット実行ファイルは32ビット実行ファイルの約3倍高速に動作した。もちろん、これらのプログラムの実行にはディスクI/Oが伴うため、CPUのベンチマークとして扱うことはできない。しかし、再コンパイルした実行ファイルでは実行速度に明らかな改善が見られた。
さらに、Intel製のコンパイラ(Intel C++ Itanium Compiler for Itanium-based applications)を使ってプログラムを再コンパイルしてみた。ありがたいことに、その起動コマンドはecc
とシンプルそのものだ。なお、IntelはItanium用のFrotranコンパイラも提供している。
これらのコンパイラはオープンソースでもなければ、SuSE SLES 8に含まれているわけでもない。しかし、Itanium 2マシン上では多くの読者がこれらのコンパイラを使うのではないだろうか。特にパフォーマンスが重視されるプログラムの場合は、Itanium 2プロセッサ向けにコードを最適化できるという特長が買われるはずだ。これらのコンパイラを使うには、Intelとの間で個別にライセンス契約を結ぶ必要がある。もちろん、技術的な便利さよりソフトウェアの自由を尊重したいというのであれば、GNUコンパイラを使えばよい。
最初に気づくのは、eccとgccとでは渡す引数が大きく異なるということだ。テストで行ったコンパイルはきわめてシンプルなものであったため、何も修正を加えなくてもコードをコンパイルすることができた。しかし、gccでは何もメッセージが出されないコードでも、Intel製コンパイラではデフォルトで数多くのメッセージが出される。eccを使うのであれば、このgccとの違いに慣れる必要があるだろう。
コンパイル後、実行ファイルを実行してみた。すると軽快に動作し、何も問題は見られなかった。
結論
SuSE Linux Enterprise Server 8 for Intel Itanium2 Processor Familyは、主な項目で満足のいく結果が得られた。まず、見た目だが、これはIntel x86およびAMD64の場合と大きく変わらない。したがって、異種ハードウェアアーキテクチャが混在している組織や、32ビットから64ビットへの移行途中にある組織でも、システム管理に苦労するということはないだろう。
SLESはIntel x86バイナリファイルに対応している。IA64プログラムより動作速度は遅いものの、目立った問題は見られない。
gccでも64ビットのクリーンソースファイルをコンパイルできる。だが、パフォーマンスを重視するのであれば、gccに固執せず、Intel製のコンパイラを使うのも悪くない。ある程度の慣れは必要だが、わずかな手間と時間で64ビット実行ファイルを得ることができるはずだ。
たしかに、Itanium 2のIA64アーキテクチャはいまだ大きなシェアを獲得してはいない。そのうえ、IA64マシンはどれも高価だ。しかし、SuSE Linux Enterprise Server 8 for Intel Itanium2 Processor Familyはこのハードウェアプラットフォームにとって不可欠の存在となるだろう。
Russell Pavlicek: ビジネスシーンにおけるLinuxの活用を専門分野とし、コンサルタントおよび著者として活躍する。Linux ShowのウィークリーWebキャストのパネリストでもあり、Linux関連のウェブサイトに多数の記事を書いている。以前はInfoWorld誌のOpen Sourceコラムを担当していた。