最近知ったこと

数値計算をするのに、他大学の計算機を借りて計算を行うことがしばしばある。
他大学の計算機を借りることができる、ということは前々から分かっていたのだけれども、プログラムの転送やデータの転送が面倒なので、使っていないに等しかった。


実際、面倒なことは他にもあったりする。
例えばローカルのサブネット内でプログラムを実行するときは、自動実行スクリプトや出力ファイル名(実行ファイルもデータも)自動生成の記述を用いたりしてやっていた。でも、学外の計算機を借りたときはcrondを使えるかどうか分からないので、その辺りの自動生成の記述を全て修正してからftpで転送する必要がある。


しかし、最近そうも言っていられなくなったので、他大学のPCを使わせてもらっていますが。
まずひっかかるのがコンパイル。自分が直接使っている計算機にはintel Fortran8が入っているけれども、少なくともインストした当時は比較的新しいものであったらしく、少し前からあったPCには大抵intel Fortran7が入っている。
8のifortだと文句を全く言われないようなことでも、7のifcだとものすごくグチグチ文句を言われる。
その挙句、Compiledとか書いてあるのに実行ファイルはできておらず、虫取りをする必要が出てくる訳である。
どこでエラーが出ているのか探るため、エラーメッセージを探る→
グチグチ文句でエラー行は既にターミナル内から流れてしまっている→うはwwwっをkwwwwwww
特に、obsolescent in Fortran 95とかいうコメントが多いのだけれども、このコメントを消すオプションはなんじゃらほい。
ifcのばかぁ(;´д⊂)


もう一つ分からなかったのは、ログアウトしてもジョブを残す方法。
リモートログイン→コンパイルして実行→ログアウト→実行プロセス死亡
ログアウトした時点で、せっかく実行したジョブは消されてしまうらしい。
これは結局debian支持者に聞いて解決したけれども、atとかいうコマンドを使えばいいのねー。最近知ったのはこれです。
なので、
at now
at>tyhoonno18.out
(CTRL+D)
とかやると、内部時計で分が変わった時に上記コマンドが実行&実行結果をメールでお知らせしてくれるようです。便利。