ワークステーションでバッチジョブの実行

サーバ

8tops

bdpserv

fujikawa

richard

katsuya

サーバとのファイル共有

NetBIOS (Windowsのファイル共有)

richardの場合だと、Windowsのエクプローラで、「コンピュータ」を右クリック⇒「ネットワークドライブの割り当て」で "\\192.168.0.100\ユーザ名" とすることにより接続可能

bdpservなら"\\bdpserv.yamanashi.ac.jp\ユーザ名"とする。

ファイアウォールでは通さない場合が多いので、ローカルな範囲に限られるが、上記のサーバでは学内ホストに対してはアクセスOKにしてある。

(サーバ側にユーザ登録上の特別な設定が必要なので、それを行っていないサーバがあるかもしれない。アクセスできなかったら尋ねてほしい。)

sshfs

WinSshFSは、フリーズし解決できなかった経験があるので(間にあるファイアウォールなどネットワーク環境に依存するかもしれない)ので今のところ推奨しない。(2017/11)

ffftp

(説明省略)

VNC (ウインドウ環境)

VNC(Virtual Network Conputing)プロトコルを利用するとサーバのグラフィック画面を手元のコンピュータで操作できる

設定

   #!/bin/sh

   # Uncomment the following two lines for normal desktop:
   # unset SESSION_MANAGER
   # exec /etc/X11/xinit/xinitrc

   [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
   [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
   xsetroot -solid grey
   vncconfig -iconic &
   exec gnome-session &
   gnome-panel &
   gnome-settings-daemon &
   metacity &
   nautilus -n &
  

        vncserver :1

他の人が使っていればディスプレイ番号を2とかにする。(試していないのでうまく行くかどうかわからない。)

    vncserver -kill :1
    vncserver :1

vnc クライアントのインストール

いろいろあるが、 https://www.realvnc.com/download/viewer/ が便利そうである。

利用

          vnc://ホスト名(IPアドレス):5901
    

のように、プロトコル、ホスト名、ポート番号を指定する。

サーバでのjavaプログラムの実行

プログラム作成

サーバ上での実行

シミュレーションのパラメータコマンドライン引数で与える

シミュレーションではパラメータをコマンドライン引数の与えるのが便利である。 たとえば、

java twoLaneSOV.simulation.Main 0.5 0.2 0.02 1.0
のように。(引数はたとえば順に、Pc beta alphaの最初の値 alphaの最後の値)

mainメソッドでの処理の仕方

	public static void main(String[] args) throws IOException {

		double alpha, beta, a, Pc;
		if(args.length!=4) {
			System.out.println("Pc  beta alphaの最小値 最大値 の4つをを引数に与えてください。");
			System.exit(0);
		}
		Pc = Double.parseDouble(args[0]): 0.5;
		beta = Double.parseDouble(args[1]);
		alpha = Double.parseDouble(args[2]);
		double alphaMax = Double.parseDouble(args[3]);
        // 以下略
       }
のように、引数が文字列型配列argsに入っているので、それぞれをDouble等に変換して変数に代入する。

pythonでのコマンドライン引数

https://toyoki-lab.ee.yamanashi.ac.jp/~toyoki/labTips/pythonTips4lab.html を参照

バッチジョブへの投入

端末でのセッションを終了(logout)してもジョブが実行されるように、ジョブを"バックグラウンド"で実行させる。そのためのコマンドがbatchである。(batchはat nowと同様)

echo "java twoLaneSOV.simulation.Main 0.5 0.2 0.02 1.0" | batch

のようにする。バーがパイプを表す。 シェルのヒストリー機能を利用すれば、次のジョブの投入が簡単である。

バッチジョブ終了の知らせ

終了はメールで知らせてくれる。

ホームディレクトリに".forward"というファイルを作り、その中にメールを転送したいアドレスを書いておく。