5/30(土) 駿府・曇

 朝方はいい天気かと思っていたら,これを書き出す頃には薄曇に。爽やかな大陸型高気圧が日本列島のど真ん中で頑張っているおかげでカラッとした爽やかな空気が運ばれてきている。押し下げた梅雨前線は来週には盛り上がってくるようなので,本日はこの爽やかな春最終の週末を,南部鉄器のアマビエと共にゆっくり過ごすことにしたい。

鉄の処女ならぬ南部鉄器のアマビエ

 ベランダのささやかな菜園は,パセリが一向に育たない以外は順調である。

 左が2週間前,右が今現在の状態で,ラディッシュは順当かなと思うが,朝顔の育ち方はちょっと度を超えている。蔓が伸びてもいいようにネットは貼ってあるので,どんどん伸びて頂きたい。

 ボチボチ5月が終了するが,今月は色々あった。一番はこのクレジットカード不正使用未遂による iPhone SE購入トラブル。顛末は下記のTweetから辿ると分かる。

 その後,予定通り新しい番号が割り当てられたクレジットカードが到着,諸々カード変更に伴う手続きを行い,iPhone SEが到着してやっと使えるようになった Apple Payの筆頭クレジットカードとして登録できた。やれやれである。
 ところで,新しいSEであるが,全く快適であり,初代SEよりごっつくデカくなった以外は気に入っている。電話としては使えなくなった初代SEはFacetimeの子機として活用しようと職場に持って行ったらポートが塞がっていて全く使えないので,自宅で使うことに。持って歩くこともないので,ほんとに壊れるまで長い付き合いになりそうである。もちろん,今のSEもよろしくお願いしたい。しかしまぁ,移行作業は格段に楽になったなぁ。

 今月の大仕事は「情報数学の基礎」改訂版のための新章書き足しと,「Python数値計算入門(仮)」の第6章,第7章の書き直し。前者は少し長く書きすぎたかとヒヤヒヤしていたが,とりあえずO.K.が出たので初稿待ちとなった。後者は・・・先が長いなぁと感じさせられる作業であった。我ながら若書きの部分はさることながら,今となっては冗長すぎる部分があり,思いっきりカットしたり書き足したりで,一向に固まる気配がない。一番の難所は補間と数値積分のところ。前者はスクリプトを書き足す必要があるし,後者はほとんど解説の必要がないんじゃないかというぐらいなのでカットしちゃおうかなぁと。6月の大仕事はここに集約されそうである。

 ということで,遠隔講義は今後も続くものの,ボチボチ大学院,卒研,実験は開始されつつある昨今,感染状況を伺いながらの綱渡りな日々が始まる梅雨時となりそうである。頑張ります。

4/19(日) 駿府・晴

 今週末の土砂降りで桜はすっかり散り,春めいてきた。日中は日が差すと暑いぐらい。流石にもうヒートテックは要らないかな。にしても,世界の終わりかというぐらいの人出の無さ,いつまで続くのかしらん。8割人出カットで一ヶ月で押さえ込みがなんとかできそうということだが,感染のリスクは残ったままだし,特効薬もワクチンもないわけだから,8割おじさんの思惑通りになったとしても,一気に経済活動解禁ということにはなりそうにない。今年度いっぱいは不自由な生活は覚悟せんといかんかなぁ。

静岡銀行・呉服町支店のギャラリーにアマビエ登場

 コロナ騒ぎが全世界的に広がって,日本全土が緊急警戒地域となり,本学も全面的にオンライン講義を行うことになった。今週水曜日からは基本,Microsoft Streamで動画配信講義が行われる。リアルタイム配信も考えたが,回線容量的に心配な上,トラブったときの対処や教員や受講生の慣れが必要なことを考えると,予め録画したものをリリーするのが良いだろうという判断である。
 おかげで,準備を前倒しする必要があり,額縁ょ〜としての職務分に加えて自分の講義も2〜3週まとめて収録した。凝りすぎると時間がかかり過ぎる上に,視聴する学生の負担も増えるので,サラッと作ったつもりだが,はてさてどういうことになるやら。我ながらアドリブが好きなので,かっちり固まった講義スタイルは好きではないのだが,この際そんなことは言っていられないから,毎年のペースを思い出しながら無観客講義を続けるのみである。今週から少なくとも5月いっぱいは,シーンと静まり返ったキャンパスに収録する声のみが響くのだろうなぁ。まぁこれを良い機会として自分の講義内容を見直すとするか。

 つーことで,Python数値計算入門の見直しどころではなくなってしまったが,これから講義収録しつつ,直しをしていきまする。

 風呂入って英気を養うべく寝ます。

4/4(土) 駿府・晴

 天気晴朗,そよ風が吹く,穏やかな春の土曜日であるが,コロナウイルス騒動で,全世界的にメメントモリ状況に陥っていて心穏やかならず。爆発的な感染が広がった中国,イタリア,アメリカではロックダウンを行うにも理解が得られ易かろうが,日本では個々人の行動が抑制されているせいか,まだその状況には至っていないという認識が一般的で,故に政府も非常事態宣言が出せずにいるらしい。起こってからでは遅いが,早ければ後々そんな必要はなかったと批難される可能性が高いし,大打撃を受けている飲食業・旅行業・その他もろもろの企業や個人への補償策がまとまらないうちは宣言もできないだろう。さりとてワクチンもない現状では感染者が減ることは当面考えられないので,早い話が「さっさとやれ」に尽きる。

 職場の方は,当然,例年通りの全学的入学式は挙行できないので,感染防止策をしっかり取った上で,学科別に分散して新入生ガイダンスを行った。学長以下,ワシも額縁ょ〜として付き従って水戸黄門御一行の如く,各教室を回っては祝意を述べて回る事になる。ワシはいいけど,毎度しっかり挨拶をしなきゃならん学長は大変である。来年もこの状況だと,卒業式のように,挨拶は動画コンテンツを流し,顔見世程度でいいような気がする。・・・そんなことにならなきゃいいけど,早くワクチンできないかなぁ。 Bill Gatesの試みが成功することを祈るのみ。自分もせいぜい感染しない,させない努力をしないとなぁ。今年は東京行きも控えることにする。アキバと神保町の散策,できないとなると無性に行きたくなるのは人間のサガだな。

 WordPress 5.4にUpdate。何が変わったかよく分からんけど,Pluginに広告が表示されるようになってきたのは正直ウザい。かすみ食って生きていける訳じゃないけど,Adwareの適切な管理はしっかりやってほしい。

 Python数値計算入門,第2章見直し終了。演習問題は10進ベースなので,decimalパッケージを使った回答例を作った。第3章はさらっと見ておき,Matplotlibの説明は全体的にグラフを作ってから,必要最低限の説明をしておく程度にしておくことにして,今のところ後回しにしておく予定。

 次週は,自分の担当分のオンラインコンテンツを作っておかないとなぁ。PowerPoint資料に動画と音声を流し込んで,Microsoft Streamでアップしておくのが一番楽かな。小テストはMS Formsで。Office356に頼りっぱなしだが,今こそCloudの力を発揮して持ち堪えて頂きたい。

 今日は溜まった漫画と新書の消化に充てます。

4/2(木) 袋井・?

 一日中,あれこれ忙殺されていたので天気が不明のままである。雨は降っていなかったと思われる。老眼鏡のネジが外れて使いづらいのなんの。今週末まで時間が取れないから,バックアップ用の奴で凌ぐしかない。

 ぼちぼち「Python数値計算」の完成が見えてきたので,進行メモがてら,個々の更新をマメにするついでにどこまで進んだかを書きつけておくことにする。但し内容は薄くなるけど。

 本日は第1章の手直し,大体終わった。次は第2章の手直し。

 コロナ,収束しそうにないので,感染防止しながら日々を過ごすしかない。こういう時に限って科研費が当たったりしても,折角確保した旅費の使い道がない! まぁ,プログラミングを頑張るしかないなぁ。20年以上申請書書き続けてきたけど,今後3年間は報告書だけでいいので,気楽・・・じゃないな,業績重ねないと次がないのでかえってプレッシャーが増えるのだ。額縁ょ~は頑張るしかないのだ。

 明日も頑張ります。

LAPACK 3.9.0をGCCでインストール

 気が付いたらLAPACK 3.6.0のインストール方法を書いてから大分経ってたので,Ubuntu環境にTAR ballからインスト―する方法をメモ書きしておく。前提として

  • GCC (gcc, gfortran)が使える
  • make (GNU make)が使える
  • /usr/local/libにライブラリファイル(*.a)を,/usr/local/includeにインクルードファイル(*.h)をインストールできる権限(sudo)がある

を仮定している。 $ 太字がコマンドである。ついでに拙著「LAPACK/BLAS入門」のサンプルプログラム実行方法も書いておいた。

1. LAPACK 3.9.0のTAR ball(v3.9.0.tar.gz)をダウンロード

$ wget https://github.com/Reference-LAPACK/lapack/archive/v3.9.0.tar.gz
–2020-03-25 18:38:15– https://github.com/Reference-LAPACK/lapack/archive/v3.9.0.tar.gz
Resolving github.com… 52.192.72.89
Connecting to github.com|52.192.72.89|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://codeload.github.com/Reference-LAPACK/lapack/tar.gz/v3.9.0 [following]
–2020-03-25 18:38:16– https://codeload.github.com/Reference-LAPACK/lapack/tar.gz/v3.9.0
Resolving codeload.github.com… 52.193.111.178
Connecting to codeload.github.com|52.193.111.178|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: unspecified [application/x-gzip]
Saving to: “v3.9.0.tar.gz”
[ <=> ] 7,534,567 4.84M/s in 1.5s
2020-03-25 18:38:18 (4.84 MB/s) – “v3.9.0.tar.gz” saved [7534567]
$ ls -l v3.9.0.tar.gz
-rw-rw-r– 1 tkouya tkouya 7534567 Mar 25 18:38 v3.9.0.tar.gz
$ tar zxvf v3.9.0.tar.gz
lapack-3.9.0/
lapack-3.9.0/.appveyor.yml
(略)
lapack-3.9.0/meson.build
lapack-3.9.0/meson_options.txt
$

2. “lapack-3.9.0″ディレクトリに移動してMakefile用のincludeファイル(make.inc)をgfortran用に設定

$ cd lapack-3.9.0
$ ls
BLAS CTestCustom.cmake.in lapack.pc.in meson.build
CBLAS DOCS lapack_testing.py meson_options.txt
CMAKE INSTALL LICENSE README.md
CMakeLists.txt lapack_build.cmake Makefile SRC
CTestConfig.cmake LAPACKE make.inc.example TESTING
$ ls -l INSTALL
total 228
-rw-rw-r– 1 tkouya tkouya 483 Nov 21 16:57 CMakeLists.txt
-rw-rw-r– 1 tkouya tkouya 5355 Nov 21 16:57 dlamch.f
(略)
-rw-rw-r– 1 tkouya tkouya 2140 Nov 21 16:57 slamchtst.f
-rw-rw-r– 1 tkouya tkouya 21748 Nov 21 16:57 tstiee.f
$ cp INSTALL/make.inc.gfortran ./make.inc

3. Reference BLASを生成

$ cd BLAS
$ ls
blas.pc.in CMakeLists.txt Makefile SRC TESTING
$ make
make -C SRC
(略)

4. CBLASを生成

$ cd ../
$ cd CBLAS
$ ls
cblas.pc.in CMakeLists.txt include README testing
cmake examples Makefile src
$ make
cp include/cblas_mangling_with_flags.h.in include/cblas_mangling.h
make -C src

5. librefblas.a, libcblas.aが生成されていることを確認

$ cd ../
$ ls -l
-rw-rw-r– 1 tkouya tkouya 384424 Mar 25 18:44 libcblas.a <– cblas
-rw-rw-r– 1 tkouya tkouya 618312 Mar 25 18:43 librefblas.a <– reference BLAS

6. LAPACKを生成

$ make
make -C INSTALL run
make[1]: Entering directory /home/tkouya/pool/lapack/lapack-3.9.0/INSTALL'
gfortran -O2 -frecursive -c -o lsame.o lsame.f
(略)
--> LAPACK TESTING SUMMARY <--
Processing LAPACK Testing output found in the TESTING directory
SUMMARY nb test run numerical error other error
================ =========== ================= ================
REAL 1308195 0 (0.000%) 0 (0.000%)
DOUBLE PRECISION 1309007 0 (0.000%) 0 (0.000%)
COMPLEX 760590 1 (0.000%) 0 (0.000%)
COMPLEX16 768086 1 (0.000%) 1 (0.000%)

--> ALL PRECISIONS 4145878 2 (0.000%) 1 (0.000%)

7. LAPACKEを生成

$ cd LAPACKE
$ make
(略)
make[1]: Leaving directory
/home/tkouya/pool/lapack/lapack-3.9.0/LAPACKE/utils’

8. ファイル確認

$ cd ../
$ ls -l
-rw-rw-r– 1 tkouya tkouya 384424 Mar 25 18:44 libcblas.a
-rw-rw-r– 1 tkouya tkouya 12336044 Mar 25 18:51 liblapack.a
-rw-rw-r– 1 tkouya tkouya 6898692 Mar 25 19:11 liblapacke.a
-rw-rw-r– 1 tkouya tkouya 618312 Mar 25 18:43 librefblas.a
-rw-rw-r– 1 tkouya tkouya 630092 Mar 25 18:51 libtmglib.a

9. /usr/local/libにライブラリ(*.a)ファイルを,/usr/local/includeにヘッダファイル(*.h)をコピー

$ sudo cp *.a /usr/local/lib
$ sudo cp CBLAS/include/*.h /usr/local/include
$ sudo cp LAPACKE/include/*.h /usr/local/include
$ ls -l /usr/local/lib
-rw-r–r– 1 root root 384424 Mar 25 19:15 libcblas.a
-rw-r–r– 1 root root 12336044 Mar 25 19:15 liblapack.a
-rw-r–r– 1 root root 6898692 Mar 25 19:15 liblapacke.a
-rw-r–r– 1 root root 618312 Mar 25 19:15 librefblas.a
-rw-r–r– 1 root root 630092 Mar 25 19:15 libtmglib.a
$ ls -l /usr/local/include
-rw-r–r– 1 root root 21243 Mar 25 20:42 cblas_f77.h
-rw-r–r– 1 root root 29918 Mar 25 20:42 cblas.h
-rw-r–r– 1 root root 444 Mar 25 20:42 cblas_mangling.h
-rw-r–r– 1 root root 8051 Mar 25 20:42 cblas_test.h
-rw-r–r– 1 root root 4236 Mar 25 19:15 lapacke_config.h
-rw-r–r– 1 root root 834528 Mar 25 19:15 lapacke.h
-rw-r–r– 1 root root 474 Mar 25 19:15 lapacke_mangling.h
-rw-r–r– 1 root root 33161 Mar 25 19:15 lapacke_utils.h
-rw-r–r– 1 root root 455216 Mar 25 19:15 lapack.h

10. 「LAPACK/BLAS入門」サンプルプログラムをインストール

$ git clone https://github.com/tkouya/lapack_blas_tutorial
$ cd lapack_blas_tutorial

Makefile.unix → 下記のように書き換え

lapack_gcc.inc → 下記のように書き換え

Makeしてコンパイル→実行ファイルの一つをお試し

$ make -f Makefile.unix
$./lapack_dgeev ←行列の固有値・固有ベクトルを計算
Dim = 3 ←次元数を入力
Eigenvalues =
0: ( 1.82216, 0)
1: ( 0.103726, 0.366921)
2: ( 0.103726, -0.366921)

(0.619085, 0) (0.634996, 0) (0.634996, 0)
(0.641249, 0) (-0.399111, -0.289681) (-0.399111, 0.289681)
(0.453358, 0) (-0.396179, 0.443416) (-0.396179, -0.443416)
||A * right_ev – lambda * right_ev||_F / ||A||_F = 4.35690729441612009e-16
||A^T * left_ev – lambda * left_ev||_F / ||A||_F = 3.79955740713784858e-16