2016年10月15日土曜日

Rのパッケージインストール時にリポジトリを指定する

Cent OS 6 マシンにyumを使ってインストールした R のリポジトリが古い様で,>install.packages("package")
では本家CRANを見に行き,ダウンロードできない.
この場合は有効なリポジトリ(例えばcran.us)を指定すると良い様だ.dplyr と clust パッケージを以下のコマンドでインストールした.
> install.packages("dplyr", repos="http://cran.us.r-project.org/")
> install.packages("mclust", repos="http://cran.us.r-project.org/")

CPANから.tgzをローカルにダウンロードしてインストールすることもできるようだ(試していない).
> install.packages("/path/target.tgz", repos=NULL, type="source")

以下のサイトをそのまま実行した.
http://altons.github.io/r/2013/06/23/when-package-xyz-is-not-available-for-a-specific-version-of-r/

以下のWikiには国内のCRANミラーサイトについて色々書いてある(問題を解決してから見つけた)
http://www.okadajp.org/RWiki/?CRAN国内ミラーの使い方

2016年10月14日金曜日

HSPICE で Advanced Server/Clientモードを使う

HSPICEを利用するときにライセンスをチェックアウトする必要があるが,細かいシミュレーションを多数行う場合はチェックアウト/チェックインのオーバーヘッドが大きい.
ライセンスをチェックアウトした後,そのまま保持するためにServer/Clientモードを利用する.今回はAdvanced Server/Clientモードを利用する事でマルチスレッド動作を実現する(後述するが目論見は外れる).

Advanced Server/Clientモードを利用するに,以下の3つの手順を利用する.

(1) Serverの起動
HSPICEを実行するマシンで以下のコマンドを入力
% hspice -CC -mp -port [num]
-CCで Advanced server/clientモードが起動する(すぐにバックグラウンドに移動する).
-mpでマルチプロセッサによるシミュレーションを可能にする.
-portでportを指定する事で,複数のserverに番号をつける事が出来る.
portを指定しない場合は,デフォルトの25000を使う (標準出力に表示される).

(2) Clientの起動
HSPICEのワーカーを以下のコマンドで起動する.
% hspice -CC [input.sp] -port [server_name:num]

(3) Serverの終了
全てのジョブを終えたら,Serverを殺しておく(デフォルトでは1時間後にタイムアウトする).
% hspice -CC -K -port [server_name:num]

マニュアルには「Advanced server/clientモードはマルチスレッド動作(-mp)をサポートする.」とあるが,私の環境ではライセンスを1つしか取ってくれず,かなわなかった.
仕方が無いのでシェル側でマルチスレッドもどきを実装して利用した.

複数のマシンにワーカー割り当てることも可能らしいが,残念ながら試していない.