XgridでGaussianのジョブ管理

量子化学計算をしているのですが、GaussianなどがMac対応になったので計算環境をLinuxからMacへ移行しました。マシン管理は楽になったのですが、計算をリモートサーバに投げるためのジョブ管理システムをどうしようか悩み、最終的にMacOSX ServerのXgridを使うことにしました。
 

マニュアル

最初は市販されている解説書を参考にインストール等は行いましたが、Xgridについてはほとんど情報がありません。Webで調べていくうちに、OSX Serverのマニュアルはすべてここにあることが判明。もっと早く知っておきたかった。
http://www.apple.com/server/macosx/resources/documentation.html

日本語版は10.5までしかなく、以下のような分かりにくい場所にあるようです。
http://manuals.info.apple.com/ja_JP/Xgrid_Admin_and_HPC_v10.5.pdf
(他のファイルは10.6のファイル名を10.5に直してja_JP以下に直接URL入力でゲット可能。)

環境

以下のマシンとOSを使用。
親分 iMac [Mac OSX Server 10.6.5 Snow Leopard]
子分 Mac Pro [Mac OSX 10.6.5 Snow Leopard]

手順

以下の手順で行いました。OSX Serverで使うサービスは DNS, NFS, Open Directory, Xgrid です。

その1 親分の設定


  1. 初期設定(OSX Serverのインストール)
  2. マシン名の設定(DNS
  3. アカウント管理の設定(Open Directory)
  4. マウントの設定(ホームディレクトリ /Users をNFSにする)
  5. アカウントの作成(ワークグループマネージャー)
  6. Xgrid の設定

その2 子分の設定


  1. アカウント管理の設定(Open Directory)
  2. Xgrid の設定

その3 運用


  1. Xgrid の確認(Xgrid Admin)
  2. ジョブの管理・実行・削除(xgridコマンド)

NFSとAFP

AFPの自動マウントは大変便利です。sshログインでもホームディレクトリをマウントしてくれます。しかしXgridログインではマウントしてくれないので、ホームディレクトリをNFSにする必要があります。この設定はアカウントを作る前に行いました。

Kerberos(ケルベロス)認証

認証方式には「認証なし」、「パスワード認証」、「Kerberos認証」の3つがあるのですが、GaussianのようなXgrid非対応のアプリケーションを実行するには自分のディレクトリに自由にアクセス可能可能なKerberos認証が必須です。(他の2つは実行ユーザーがunknownになるので何もできません。)子分のOpen Directryの設定のときに、バインドし忘れないこと、コマンドでxgridを実行する際、-h指定のホスト名は親分のホスト名を省略しないこと(IPアドレスもだめ)、この2つにはまってしまい苦労しました。分かってしまえば簡単なことですが。

キュークラス(グリッド)の設定

Xgridではキュークラスの設定はできません。ジョブはグリッド(マシンのグループ)にsubmitすることになるのですが、できるのはグリッドを作ることだけです。同時に実行させる最大ジョブ数や並列数の割当などはできません。各マシンの最大ジョブ数は子分マシンの /Library/Preferences/com.apple.xgrid.agent.plist のProcessorCountを編集することで変更可能です。
 

 
最後に使ってみての感想ですが、やはりジョブ管理システムがあるとすごく便利です。研究効率が上がります。今はOSX Server搭載のMacMiniが販売されていたりするので、Macでお手軽Gaussianシステムを構築する手段として、皆さまもいかがでしょうか?