gaussian スクラッチファイルの保存先

Share This:

gaussian のインストールは基本的には簡単ですが、permission の設定を誤るといつまでも計算を開始することが出来ず、沼にはまってしまうことがあります。その一つが scratch ファイルの保存先です。

ラップトップで計算する時は、特に気にする必要は無いのですが、計算機の場合 scratch ファイルの保存先に raid0 のディスクを指定する人もいると思います。

今回は、gaussian 設定時のちょっとしたエラーと raid の設定の仕方についてまとめました。

参考gaussian のスクラッチファイル ~ファイル名ごとの解説~

scratch ディレクトリの permission

まずは、scratch ファイルの保存先は、”.profile” の中で指定します。

として指定します。

きちんとscratch directory のパスを指定しているにも関わらず、permission の設定が正しく無いと

PGFIO/stdio: Permission denied
PGFIO-F-/OPEN/unit=11/error code returned by host stdio – 13.
File name = /gaussian/Gau-#####.inp
In source file ml0.f, at line number 177

というエラーメッセージが表示されます。

Permission denied と表示されているため、ついつい g16 の permission が正しく無いのかな?と思いがちですが、全く関係ありません。PGFIO/stdio: Permission denied は scratch directory にアクセスできないということを意味しています。

scratch directory の permission を chmod 007 以上にすれば、g16 が正常に実行することができます。(複数人で計算機を共有する場合には、ファイル操作の実行権限にも気を配った方が良いです。誤って他人の計算中の scratch ファイルを削除してしまうという事故を防ぐためにも。)

RAID0 とは

RAID とはA Case for Redundant Arrays of Inexpensive Disks の略で、安価なドライブを組み合わせることで冗長性を持たせる仕組みのことを意味します。

RAID にはいくつか種類があります。RAID0, RAID1, RAID5, RAID6, RAID10, RAID50 などがあります。管理人は RAID0 をスクラッチファイルに、RAID5 をデータ保存用に使っています。それぞれの RAID の速度は、こちらのページのベンチマークを参照して下さい。

RAID0 は耐障害性は無く故障率が高まるため、セキュリティの面からはあまり良くありません。しかし、低予算で HDD のアクセス速度の向上を望むことができます。そのため、重要ではない一時ファイルの保存先などに向いています。

実際の操作

今回は、OS インストール後に RAID0 をマウントする場合について紹介します。

まずは、lsblk でディスクの状態を確認しましょう。もし既に RAID0 が組んであってマウントしていない状態だと以下のような状態になっているはずです。

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 191.4G 0 part /
└─sda3 8:3 0 31.7G 0 part [SWAP]
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part
└─md0 9:0 0 5.5T 0 raid0
sdc 8:32 0 2.7T 0 disk
└─sdc1 8:33 0 2.7T 0 part
└─md0 9:0 0 5.5T 0 raid0

RAID の設定をまだしていない場合は、以下のコマンドで RAID を組んで下さい。

そしてファイルシステムを構築します。

その後、マウントポジションを指定します。

もしも、Linux OS インストール時に RAID の設定をしたけどマウントポイントの指定を忘れたという場合は、mount コマンドを実行するとエラーが起きます。この場合は、もう一度 RAID システム上のファイルシステムを構築し直せば解決します。

続いて、scratch directory を作成します。

続いて、.profile を開いて scratch directory を以下のように指定します。

これで設定完了です。

scratch の削除について

gaussian の計算時に生成する scratch ファイルは、計算が正常終了した場合には削除されますが、正常終了でない場合はそのまま残ります。この scratch ファイルがどんどんと溜まっていくと、ファイルシステムを圧迫していってしまいます。scratch directory を RAID0 のディスク上に切り離しておくと、メインのシステムの圧迫は起こりません。

scratch ファイルは定期的に削除していく必要があります。もし複数の計算ノードでクラスターを作っている場合、ヘッドノードに NFS などでファイルを転送しているとは思いますが、scratch ファイルの削除の際には各計算ノードにログインする必要があります。

管理人が昔所属していたグループでは、32 台のパソコンを繋げた計算クラスタがありました。また、ジョブスケジューラーは使用せず、各計算ノードにログインして計算を投げていました。現在のように TB サイズの HDD が売られている時代ではなかったため、各パソコンのディスク容量はとても小さかったです。そのため、chk ファイルの作成も基本的には禁止されていました。NBO 解析や TS opt 後の irc で rcfc する場合など限られた場合のみ chk ファイルを作ることは認められていましたが、計算後には速やかに chk ファイルは削除していました。

 

 

管理人は、計算化学・パソコン共に初心者です。もっとこうした方が良いというアドバイス等ございましたら、コメント欄、twitter、またはメールなどでご連絡いただければ幸いです。

参考にしたサイト

  1. LinuxでソフトウェアRAID 0を構築したい
  2. RAIDの速度比較(ベンチマーク)
  3. RAID0 とは?
  4. RAID5 とは?

関連する記事

汎関数一覧に戻る

計算手法に戻る

コメントを残す(投稿者名のみ必須)