ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

リモート先でジョブが終わったかどうかを確認する

2013-12-02 18:20:35 | Weblog
例えば、データを収集するのに、
(1)リモートのマシンのあるコマンドを起動する
(2)そのコマンドの実行が終了するには、20分くらいかかる
(3)終了後、ファイルコピーしたい
というような要望がある場合。
ここで、条件として
・クライアントは、サーバーに、sshとscpが使える
・サーバーからは、どのクライアントから呼ばれたか判らない
 (そもそも、scp.sshクライアントは使わない)
・クライアントからは、1件1件処理するのではなく、
 同時に処理を起動したい
とする。




このときは、以下の処理を行う

・リモート先のジョブをバックグラウンドで起動する
   ssh サーバーアドレス 処理内容 (引数内に、どのジョブかわかる) &

・出来たかどうかを、クライアントから確認する
   ssh サーバーアドレス ps axl | grep 上記引数

・出来あがったら、サーバーが作ったファイルをコピー
   scp サーバーアドレス:サーバーファイルパス ローカルパス

これについて、それぞれ書いてみる




■リモート先のジョブをバックグラウンドで起動する
 SSHをバックグラウンド(&をつけて)実行する。
 そうすれば、クライアント側では、いくつも同時に投入できる
 その際、引数に、どのジョブがやっているかわかるように、
 識別子をいれる。

例:シェル /tmp/xmldtpというジョブを3つ行いたい。
  区別するために
    ジョブ1の識別子 1234
    ジョブ2の識別子 5678
    ジョブ3の識別子 9012
  とする。リモート先のIPアドレス 192.168.1.192

のときジョブ1は

ssh 192.168.1.192 /tmp/xmldtp myno1234 &





■出来たかどうかを、クライアントから確認する
 定期的に、出来たかどうかを、psで確認する。
 識別子を含んでいる行をgrepで表示させる

例:上記のジョブ1を確認する場合

ssh 192.168.1.192 ps axl | grep myno1234

を定期的(1秒間隔とか)で投げる。
処理中なら

0 501 2909 2908 20 0 6032 1296 - Ss ? 0:00 bash -c /tmp/xmldtp myno1234

のように、なにか帰ってくる。

処理が終了していたら、何も帰ってこない




■出来あがったら、サーバーが作ったファイルをコピー
終了したら、scpでコピーする

例:ジョブ1が終了すると、/tmp/kekka1234がサーバー(192.168.1.192)に出来ている
それをローカルにコピー

scp 192.168.1.192:/tmp/kekka1234 kekka1234





なかんじかな・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

要求の形式言語Event-Bから、FPGA等で利用するVHDLに変換するプラグインEHDL その2

2013-12-02 15:15:33 | トピックス
前に

要求の形式言語Event-Bから、FPGA等で利用するVHDLに変換するプラグインEHDL
http://blog.goo.ne.jp/xmldtp/e/b7184bb4d994d365ae8cc1380494ac04

を書いたとき、エラーダイアログが出て終わっていた。

今回は、そのエラーダイアログが出た原因についてと
FPGAへのつなぎ概要




■原因

コンテキストを作っていたから。
コンスタントを何も使ってないのに、コンテキストを使っていたのが
原因らしい。

コンテキストを削除し、
マシンだけにして、
マシンのSeeを削除

プロジェクトを選択して、メニューCode generation menu

Generate VHDL code without library compornents
をクリックすると

と保存先フォルダを聞いてくるので、適当に入れると
(すでにファイルがある場合、上書きしていいか聞いてくる。それに答えると)
最終的に

なダイアログができて、マシン名でvhdlファイルができる




■FPGAへのつなぎ概要

ごめん、アルテラしかわかんないし、今、CyclonⅢが手元にあるので、
それで説明。

QuartusⅡを立ち上げ、
新規プロジェクトを作成。
  このとき、作成したVHDLファイルを読み込み。
 難しい問題に巻き込まれたくないので、
 プロジェクト名、その他もろもろはマシン名と同じM1にした。

そしたら、コンパイル→通る。

 ピン配置をして
   LED1_O PIN_J1
   SW1_I PIN_F1

コンパイルをもう一度(フィッティングなども行う)

プログラマーを使って、sofファイルをFPGAに送り込むと・・・


・・・動かない(>_<!)

がプログラムを書き換え、SW_OFFのときもSW_ONのときも
常にLED1_Oが1(TRUE)になるように書き換えたら、
付きっぱなしになった。




ということで、流れ的には、これでよさそう。
あとは、プログラミング内容だね・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「ブラック企業」対策へ離職率公表

2013-12-02 12:30:00 | Weblog
ここの記事

「ブラック企業」対策へ離職率公表…新年度から
http://news.goo.ne.jp/article/yomiuri/nation/20131202-567-OYT1T00107.html

おお・・・これがでちゃうとまずいソフトハウスとかSIerさんとかいるんじゃあ・・

と思ったが、あれ、離職率って、そもそも、会社四季報にでてなかったっけ?

・・・と思ったら・・・

就職四季報
http://www.toyokeizai.net/shop/magazine/shushoku_all/

(以下太字は上記サイトより引用)

会社が「求める人材」、「入社3年後離職率」、「平均年収」など5000社の最新情報がこの一冊に集約。


おお、すでに、そんな本があるのね・・(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rでnnetを使って、ニューラルネットワーク

2013-12-02 09:54:52 | そのほか
授業で、「脳とニューロン」について、発表した人が、
即興で、Rのパッケージnnetを使って、ニューラルネットワーク
のサンプルをやっていたので、メモメモ
(最後にコマンド結果をはっつけてます)



■授業のメモメモ

脳とニューロン

樹状突起:入力
細胞体:処理
軸索:出力

ニューロン:うんじゅうみりセコンド
  →並列性

形式ニューロン:
  マカロックとピッツ

シグモイド関数
  微分可能だといいことあるので

学習
・教師あり:パーセプトロン、バックプロパゲーション
・教師なし

デルタ則
 εだけ修正

ヘッブの学習
  ↓
単純パーセプトロン:3層
  エラーコレクションメソッド
  ミンスキーの断罪
  欠点:
   線形分離が可能であることが前提
    →XORは学習できない

バックプロパゲーション

実験
・それぞれの形容詞に対してバックプロパゲーション

Rのパッケージ
・nnet
その他
・neuralnet
・RSNNS
・AMORE



■サンプル

(パッケージnnetをダウンロード後:赤字が入力箇所)


> library(nnet)
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> index<-sample(nrow(iris),nrow(iris)*.7)
> iris.train<-iris[index,]
> model.nn<-nnet(Species~.,iris.train,size=10)
# weights: 83
initial value 128.802435
iter 10 value 38.327313
iter 20 value 7.115194
iter 30 value 5.585961
iter 40 value 4.695980
iter 50 value 4.626715
iter 60 value 4.624330
iter 70 value 4.624313
final value 4.624311
converged
>predict(model.nn,iris.train,type="class")
[1] "virginica" "virginica" "virginica" "virginica" "virginica"
[6] "versicolor" "setosa" "virginica" "versicolor" "versicolor"
[11] "virginica" "versicolor" "virginica" "virginica" "versicolor"
[16] "setosa" "setosa" "virginica" "virginica" "virginica"
[21] "setosa" "virginica" "versicolor" "virginica" "setosa"
[26] "virginica" "versicolor" "setosa" "virginica" "versicolor"
[31] "virginica" "virginica" "virginica" "setosa" "versicolor"
[36] "setosa" "virginica" "virginica" "versicolor" "versicolor"
[41] "setosa" "setosa" "setosa" "setosa" "setosa"
[46] "versicolor" "versicolor" "virginica" "setosa" "versicolor"
[51] "setosa" "versicolor" "virginica" "setosa" "versicolor"
[56] "setosa" "versicolor" "virginica" "setosa" "setosa"
[61] "setosa" "setosa" "setosa" "versicolor" "virginica"
[66] "versicolor" "virginica" "versicolor" "versicolor" "virginica"
[71] "virginica" "virginica" "virginica" "setosa" "setosa"
[76] "setosa" "setosa" "setosa" "setosa" "versicolor"
[81] "versicolor" "versicolor" "versicolor" "virginica" "versicolor"
[86] "versicolor" "virginica" "setosa" "setosa" "virginica"
[91] "virginica" "versicolor" "virginica" "versicolor" "virginica"
[96] "virginica" "setosa" "versicolor" "setosa" "setosa"
[101] "virginica" "versicolor" "versicolor" "setosa" "setosa"
> index.test<-setdiff(seq(nrow(iris)),index)
> iris.test<-iris[setdiff(seq(nrow(iris)),index),]
> predict(model.nn,iris.test,type="class")
[1] "setosa" "setosa" "setosa" "setosa" "setosa"
[6] "setosa" "versicolor" "versicolor" "setosa" "setosa"
[11] "setosa" "setosa" "setosa" "versicolor" "setosa"
[16] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[21] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[26] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[31] "versicolor" "versicolor" "virginica" "virginica" "virginica"
[36] "virginica" "virginica" "virginica" "virginica" "virginica"
[41] "virginica" "virginica" "virginica" "virginica" "virginica"
> table(data=iris.test$Species,prediction=predict(model.nn,iris.test,type="class"))
prediction
data setosa versicolor virginica
setosa 12 3 0
versicolor 0 17 0
virginica 0 0 13
>

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする