2017年10月26日木曜日

Joomla 3.8 + T3 Framework

Joomlaをサイトに使っている。JA-T3 Frameworkを使っているが、GoogleさんにMobile Friendlyでないと怒られてしまう。確認するとiPhoneだけはやるけど、Androidさんには冷たい。
で、最新のT3 FrameworkのT3 Blankを入れると、昔のJA-T3とはプラグインがかぶるらしくて混在できない。仕方が無いので、昔のテンプレートプラグインは休んで貰うことにした。でも、昔の方がしっくりくるデザインだった。でもモバイルフレンドリにはなったようだ。とりあえずはオーケー。

明るい未来

一次産業は、そのほとんどがロボットによって行われ、安定な供給、たぶん工業のような2次産業的な体制になる。水産業は全自動的な監視システムを用いた国際的な取り決めに基づいて漁獲高が決められる。ただほとんどが養殖によって賄われる。漁もロボット船が行い、生育の度合いとか種類とかをちゃんと選別してくれて今みたいに無駄が無い。
二次産業も、ロボット化が進み、ヒトの介在はほとんど無くなる。車で言えば、デザインを決めるのはヒトが行うだろうが、安全性のチェックから製造までをロボットがやるだろう。
三次産業の内、医者、弁護士、などデータベースをベースに判断するような職種はヒトからAIに多くをサポートされるようになり、国民は無料で24時間サービスを受けられる。警官や消防士などもロボットだろうな。

と言うことになれば、国民は食の心配が無くなるので、何をしよう。伝統工芸とか、デザインみたいな嗜好性の強いもの、料理、研究、学問。。。

こうして考えると、この未来で、重要なのは、自前の食料の確保と、エネルギーの確保が最重要課題なのかな。でも原子力も核融合力もいらんなぁ。

2017年10月9日月曜日

Kuman 信号発生器買ってみた

ゆっちゃんに貰ったファンクションジェネレータキットがどうしても動作しないので、 Kuman 信号発生器をAmazonでぽちっとやった。中国深圳から10日以上掛かってとどいたものの、それは「UNO」と基盤に書かれた見慣れたものだった。で、販社に連絡したところ直ぐに送っていただけた。組み上げて、別に買ってあったArduino UNOでプローブしたところ、信号が全く検出できない。どうなってるのかと、色々やっている内に、実はArduinoのAnalog Portがこけていることが判明。信号が出ていることは確認したけれど、ケースに入れようとしたら、雌ねじの一つのねじ山が無い。ありかー。直ぐに送ってくれるらしいけど。。。
担当の方はすごく反応が早いし、誠実だけど、ちょっと、疲れた。
Arduinoの方も代替品を送ってくれるらしい。ちょっと心配だったので二つ買っといて良かった。でも、なぜか1つ増えて、半故障品も一つ。2つかったら4つになった。これってわらしべもどきか。
品質は値段の割には十分だと思うけどね。

2017年10月1日日曜日

Visual Studio for macOS

ゆっちゃんに貰ったC#のコードを、せっかくVS for macOSが出たんだから移植してみようと思い立ち、プロジェクトファイルを読み込んで,ランさせようとしたら、オチタ。
じゃあということで、Hello Worldから始めようと思った。新しいプロジェクトを作成して、Cocoaアプリを指定したが、なにかライブラリが無いという。
Xamarinの何かが足らないのかなと思い、Unitiyがらみから、.NET Coreを入れてみたりしたけど、ダメ。もしかしたらXcodeがらみか、と気がついて、Xcodeを立ち上げたら、コンポーネントをインストールしますってメッセージが出た。ドキドキしながら待ち、Hello Worldをビルドしたら、ちゃんと出来た。よかった。
ゆっちゃんコードは、この次にって事になった。

2017年7月25日火曜日

Integrated Performance Monitoring Library


正式には、Integrated Performance Monitoring ライブラリと言う。プログラムの内部関数の時間などを計測し、パフォーマンスの改善につなげるためのライブラリツール。使い方はプログラムリンク時に、IPMライブラリを指定することによって、利用する。計測結果は、標準出力またはファイルに出力される。MPIの通信時間など広くプログラム実行速度のチェックに使われているらしい。

インストール[編集]

2017年現在、ソースはGitHubから提供されている。
git clone https://github.com/nerscadmin/IPM.git
cd IPM
./configure --with-os=LINUX --with-compiler=gcc --with-arch=LINUX --with-cpu=INTEL --prefix=~/  --with-hpm=PAPI
make
make install
これでUbuntu17.04ではインストールされた。インストールされる場所は、自分のルートディレクトリの~/bin, ~/lib, ~/etcである。

使い方[編集]

プログラムリンク時に、その一番お尻にライブラリを指定する。
mpicc foo1.o foo2.o -lfoo -lboo -L~/lib -lipm -o foo
そして、並列処理を始める。
mpirun -np 120 foo arg1 arg2 ...
実行終了時に標準出力やファイルに結果が出力される。出力されるファイルは、xxx_xxx.xmlというファイルになる。このファイルはxmlファイルで階層データになっていてそのままではよく分からないので、グラフィックに出力させる。そのツールは既に用意されている。
~/bin/ipm_parse -html xxx_xxx.xml
すると、ディレクトリが作られ、内部にHTMLファイルがセーブされているのでそれをウェブブラウザで表示すればよい。

2017年7月14日金曜日

PhotoRec WoW!

母の調子が悪いと父に聞いて、具合を聞いてみると、遠出して撮ってきた写真を間違えて全部消してしまったとのこと。具合が悪いのは歩いたため膝が痛くなったらしい。心痛もあるのかな。そこで、メモリーカードの復活の呪文をネットで探してみた。
最悪、昔使ってたノートンユーティリティーみたいに有料ソフトがあるだろうと思っていたら、良さそうなのが見つかった。http://www.cgsecurity.org/wiki/PhotoRec。
インストールして使ってみたところ、消えてなくなった数百のJPEGファイルが復活した。ほお。すごいね。

2017年6月13日火曜日

ViennaCLのBenchmark BLAS on iMac 21.5 Late 2013

  機種名: iMac
  機種 ID: iMac14,3
  プロセッサ名: Intel Core i5
  プロセッサ速度: 2.9 GHz
  プロセッサの個数: 1
  コアの総数: 4
  二次キャッシュ(コア単位): 256 KB
  三次キャッシュ: 6 MB

  メモリ: 16 GB

  チップセットのモデル: NVIDIA GeForce GT 750M
  種類: GPU
  バス: PCIe
  PCIe レーン幅: x16
  VRAM(総量): 1024 MB
  製造元: NVIDIA (0x10de)

この環境で、ViennaCLのベンチマークを走らせてみる。

まず、CPUから。
./examples/benchmarks/dense_blas-bench-cpu 
Benchmark : BLAS
----------------
sCOPY : 3.07 GB/s
sAXPY : 3.74 GB/s
sDOT : 3.02 GB/s
sGEMV-N : 0.431 GB/s
sGEMV-T : 0.767 GB/s
sGEMM-NN : 0.591 GFLOPs/s
sGEMM-NT : 0.541 GFLOPs/s
sGEMM-TN : 0.574 GFLOPs/s
sGEMM-TT : 0.543 GFLOPs/s
----
dCOPY : 5.83 GB/s
dAXPY : 7.02 GB/s
dDOT : 5.7 GB/s
dGEMV-N : 0.82 GB/s
dGEMV-T : 1.46 GB/s
dGEMM-NN : 0.557 GFLOPs/s
dGEMM-NT : 0.51 GFLOPs/s
dGEMM-TN : 0.579 GFLOPs/s
dGEMM-TT : 0.573 GFLOPs/s
OpenMP版
Benchmark : BLAS
----------------
sCOPY : 9.14 GB/s
sAXPY : 10.3 GB/s
sDOT : 9.33 GB/s
sGEMV-N : 1.28 GB/s
sGEMV-T : 2.34 GB/s
sGEMM-NN : 2.01 GFLOPs/s
sGEMM-NT : 1.97 GFLOPs/s
sGEMM-TN : 2.04 GFLOPs/s
sGEMM-TT : 1.97 GFLOPs/s
----
dCOPY : 12.7 GB/s
dAXPY : 18.1 GB/s
dDOT : 15.4 GB/s
dGEMV-N : 2.15 GB/s
dGEMV-T : 3.75 GB/s
dGEMM-NN : 2.02 GFLOPs/s
dGEMM-NT : 1.99 GFLOPs/s
dGEMM-TN : 2.06 GFLOPs/s
dGEMM-TT : 2.07 GFLOPs/s
コア分だけ速くなってる。
次はOpenCL
./examples/benchmarks/dense_blas-bench-opencl 

----------------------------------------------
               Device Info
----------------------------------------------

Name:                GeForce GT 750M
Vendor:              NVIDIA
Type:                GPU 
Available:           1
Max Compute Units:   2
Max Work Group Size: 1024
Global Mem Size:     1073741824
Local Mem Size:      49152
Local Mem Type:      1
Host Unified Memory: 0


Benchmark : BLAS
----------------
sCOPY : 19.3 GB/s
sAXPY : 46.8 GB/s
sDOT : 41.6 GB/s
sGEMV-N : 25.5 GB/s
sGEMV-T : 23.7 GB/s
sGEMM-NN : 31.6 GFLOPs/s
sGEMM-NT : 33.9 GFLOPs/s
sGEMM-TN : 29.5 GFLOPs/s
sGEMM-TT : 31 GFLOPs/s
----
dCOPY : 48.4 GB/s
dAXPY : 55.2 GB/s
dDOT : 44.9 GB/s
dGEMV-N : 23.5 GB/s
dGEMV-T : 23.2 GB/s
dGEMM-NN : 14.8 GFLOPs/s
dGEMM-NT : 14.9 GFLOPs/s
dGEMM-TN : 14.2 GFLOPs/s
dGEMM-TT : 14.6 GFLOPs/s

そして、CUDA。
./examples/benchmarks/dense_blas-bench-cuda
Benchmark : BLAS
----------------
sCOPY : 24.5 GB/s
sAXPY : 52.1 GB/s
sDOT : 37.5 GB/s
sGEMV-N : 40.8 GB/s
sGEMV-T : 26.4 GB/s
sGEMM-NN : 38.2 GFLOPs/s
sGEMM-NT : 38 GFLOPs/s
sGEMM-TN : 39.6 GFLOPs/s
sGEMM-TT : 38.1 GFLOPs/s
----
dCOPY : 56.3 GB/s
dAXPY : 52.8 GB/s
dDOT : 47.1 GB/s
dGEMV-N : 37.4 GB/s
dGEMV-T : 27.1 GB/s
dGEMM-NN : 22.5 GFLOPs/s
dGEMM-NT : 23 GFLOPs/s
dGEMM-TN : 22.5 GFLOPs/s
dGEMM-TT : 22.4 GFLOPs/s

GPUの圧勝。ただ、CPU版の単精度計算と倍精度計算でFLOPS値が同じくらいなのは、AVX2の命令系を使っていないのだろう。まあ、使っても単精度が倍になるくらいか。それともSIMDは使ってないのか。それならば最大16倍速くなる。