第3章 ログインノードの使用

3.1 概要

利用者はすべての作業をログインノードで行います。本章ではログインノードを使用するにあたって重要なコマンドの使い方およびログインノードで使用できるソフトウェアについて紹介します。

3.2 シェルの種類

ログインノードでは bash または tcsh が使用できます。デフォルトは bash です。本章ではすべて bash を前提に説明します。ログインシェルは chsh コマンドで変更可能です。

3.3 初期設定ファイル

ログイン時に一回だけ実行されるスクリプトが ~/.bash_profile です。このファイルに設定を書き込むことでユーザー独自の環境を自動的に設定できます。通常、コマンドサーチパスを設定する環境変数PATHの設定をカスタマイズしたり、シェルの動作をカスタマイズするためのシェル変数をセットしたりします。~/.bash_profile で設定することの多い重要な環境変数は次の2種類です。

PATH

コマンドを探すディレクトリを設定します。自分のホームディレクトリにソフトをインストールした場合はインストール先にPATHを通すと便利な場合があります。

LD_LIBRARY_PATH

動的ライブラリの検索対象ディレクトリを設定します。自分のホームディレクトリにライブラリをインストールした場合、設定が必要な場合があります

いずれの環境変数もシステムデフォルトの値を消してしまわないように注意が必要です。次に例を示します。

export PATH=/home/z00000/software/bin:$PATH

export LD_LIBRARY_PATH=/home/z00000/software/lib:$LD_LIBRARY_PATH

3.4 利用できるプログラム

ログインノードでは RedHat Enterprise Linux に含まれているほぼすべてのプログラムが使用できます。各プログラムの使用方法及びUNIXシステムの一般的な使用方法については本手引きでは触れませんので市販の参考書などをご覧ください。

ログインノードには計算ノードとまったく同じ仕様の計算機が使われています。したがって16個のCPUがありますが、多くのユーザーで共有する資源ですので一人同時1CPUの使用をルールとさせていただきます。並列化されたプログラムの実行や並列でのプログラムコンパイルはご遠慮ください。これは同時に複数のターミナルからログインすることを禁止するものではありません。

3.5 プログラムの強制終了

ログインノードでは他のユーザーと譲り合って資源をご使用ください。特に暴走してCPUを浪費しているだけのプロセスを残さないようにご注意ください。ログインノードでプログラムが正常終了しない場合、フォアグラウンドで実行している場合は Ctrl + C でプログラムを停止できます。バックグラウンド実行の場合は ps コマンドでそのプロセスのプロセスIDを調べ、kill コマンドを実行します。

$ ps

PID TTY TIME CMD

13295 pts/0 00:00:00 bash

13500 pts/0 00:00:00 a.out

$ kill 13500

ただし、この方法のkillはプログラムによって拒否されることがあります。どうしても強制終了が必要なときは kill コマンドに –KILL オプションを付けます。また、プロセス番号の -1 は自分に権限の及ぶ全プロセスを意味します。大量のプロセスが暴走を始めたときなど、マシン上の自分の全プロセスを緊急強制終了する必要がある場合は次のコマンドを入力します。これを実行した場合は暴走プロセスのみならず、ログインシェルも終了するので、強制ログアウトとなります。また、すべてのプログラムが直ちに強制終了となるので終了処理が定義されているプログラムであっても終了処理は実行されません。

$ kill -KILL -1

3.6 独自アプリケーションのインストール

ログインノードではシステム標準のアプリケーションの他、ユーザーが自身でインストールしたプログラムも(並列化されていなければ)実行可能です。ファイルシステムは計算ノードとも共有されているのでログインノードでインストール作業を行い、バッチジョブからそれを使用することもできます。ユーザーディレクトリにプログラムをインストールする際に特別な連絡をセンターにいただく必要はありません。

3.7 制限事項

HA8000クラスタシステムでは利用者の秘密保持の観点から通常のUNIXシステムでは利用可能なコマンドの一部が利用できません。例えば top、ps など、他の利用者が実行しているプロセスの名前が取得できるコマンドは利用できない、あるいは自プロセスの情報取得のみに限定されます。また、ログイン中の利用者がわかるようなコマンドも実行できません。同一グループ内の利用者であっても、他の利用者の情報は取得できません。不便なこともあるかと思いますがご理解とご協力をお願いいたします。

3.8 メール転送

バッチジョブの終了通知などのメールはジョブを投入したログインノードに電子メールで通知されます。通知先はアカウント申請の際に記入していただいた連絡用メールアドレスではありませんのでご注意ください。この通知メールは利用者の方が普段使用されているメールアドレスに転送することをお勧めします。転送する場合は次の設定を ~/.forward に記述してください。

\z00000

g00000@mail.ecc.u-tokyo.ac.jp

1行目はHA8000クラスタシステムにもメールを残す場合に必要です。バックスラッシュ(端末によっては円記号)に続けて自分のログイン名を記述してください。HA8000クラスタシステムにメールを残す必要がない場合はこの行は不要です。2行目は転送先のメールアドレスです。任意のメールアドレスが設定できます。HA8000クラスタシステムにメールを残した場合は mail コマンドで確認ができます。POPやIMAPなどメール取り込みのためのサービスはありません。