月別: 2017年1月

OpenBLAS on OpenBSD

2017-01-22 計算機メモ

簡単にはいかない.簡単にはインストール出来なかった.
ぼくの知識が足りないということもあるのだけど,ともかくBlasは使いたいのでなんとかインストールしてみた.

通常はパッチを準備することを考えるのだろうけど,面倒なのででればいいや,という方針をとった.
やることは3点あった.

(1)gfortranを使えるようにする.
portsからインストールした.
make すれば全部インストールされるのかと考えていたが違うようで,コンパイラーを選ぶようだ.

cd /usr/ports/lang/gcc/4.9.4
for i in f95 c++ go objc;
do SUBPACKAGE="-$i" make install
done

ここで,一応ldconfigが必要かもしれないのでやっておく.
sudo ldconfig -R /usr/local/libexec/gcc/x86_64-unknown-openbsd6.0/4.9.4/

(2)common.hに定義を追加

ほんとならこんな方法はインチキなのだが,ともかくOpenBSDがFreeBSDとして
認識されるようにしてしまう.
makeから渡すオプションだと上書きされる可能性があるので,直書きしちゃう.

OpenBLASのルートディレクトリにあったcommon.h に
#define OS_NETBSD
#define OS_FREEBSD
#define OSNAME FreeBSD

としてしまった.
FREEBSDだけでいいようにも思うが,NETBSDもいれておいた.

(3)コンパイラを設定してmakeする
(1)でインストールしたコンパイラを選択し,なおかつ新しいCPUの命令を諦める.

gmake CC=egcc FC=egfortran NO_AVX=1 NO_AVX2=1 all

かなり強引な方法だけが,結果的にこうなった.

...
END OF TESTS
gmake[1]: ディレクトリ '/home/ton/Develop/lib/OpenBLAS-0.2.19/ctest' から出ます
gmake[1]: ディレクトリ '/home/ton/Develop/lib/OpenBLAS-0.2.19/exports' に入ります
egcc -O2 -DMAX_STACK_ALLOC=2048 -DEXPRECISION -m128bit-long-double -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_AVX -DNO_AVX2 -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=2 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -shared -o ../libopenblas_nehalemp-r0.2.19.so \
-Wl,--whole-archive ../libopenblas_nehalemp-r0.2.19.a -Wl,--no-whole-archive \
-L/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4 -L/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4/../../.. -lgfortran -lm -lquadmath -lm -lc -lpthread -lgfortran -lpthread -lgfortran
egcc -O2 -DMAX_STACK_ALLOC=2048 -DEXPRECISION -m128bit-long-double -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_AVX -DNO_AVX2 -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=2 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -w -o linktest linktest.c ../libopenblas_nehalemp-r0.2.19.so -L/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4 -L/usr/local/lib/gcc/x86_64-unknown-openbsd6.0/4.9.4/../../.. -lgfortran -lm -lquadmath -lm -lc && echo OK.
OK.
rm -f linktest
echo libopenblas_nehalemp-r0.2.19.so
libopenblas_nehalemp-r0.2.19.so
gmake[1]: ディレクトリ '/home/ton/Develop/lib/OpenBLAS-0.2.19/exports' から出ます

OpenBLAS build complete. (BLAS CBLAS LAPACK LAPACKE)

OS ... FreeBSD
Architecture ... x86_64
BINARY ... 64bit
C compiler ... GCC (command line : egcc)
Fortran compiler ... GFORTRAN (command line : egfortran)
Library Name ... libopenblas_nehalemp-r0.2.19.a (Multi threaded; Max num-threads is 2)

To install the library, you can run "make PREFIX=/path/to/your/installation install".

[open:~/Develop/lib/OpenBLAS-0.2.19] ton%

おおお.
これで/usr/local/openblas/libをldconfigしておけばいい.

これがほんとにうごくのか.LAPACKも必要だ.

同時にATLASも入れてみてが,これはまだ苦戦中.

E460について

2017-01-15 計算機メモ

ThinkpadのE460を昨年のGWに購入した.その後うまいことOSをインストールできず,またインストール後の動作速度も遅かったため,これまでほとんど使わないできた.年末から「これじゃなぁ」と思って心機一転巻なおしで作業をしたところ,なんとか使えるPCにまでもってこれた.

まずOSをOpenBSDにした.そのときは最新のRELEASE版をつかったのだが,今考えるとこれが不味かったようだ.無線LANはiwm0をつかっているのだが,これが「猛烈に遅い」.いや,無線LANが遅かったのかpkg_addしたchromiumが遅かったのかわからないが,とにかくChromeでページを閲覧することが不可能なくらい動作速度が遅かった.

ブラウザがないと使えない.しかしそれはそのPCを使うかどうかの判断であって,なんとか動作するようになったとしても遅かったら実用品ではない.

通常ならここでWindowsに戻すか,Ubuntuなど調整が聞いたOSに変更するか,あるいはおとなしくFreeBSDにするかという対処とる.が,このE460はとくにこれといって使う目的が決まっていなかったので,OpenBSDをほそぼそと調整していけばいいかなと思いつつ放っておいた.

E460は価格が安いPCだけに筐体も大きく重い.これよりもっと古いThinkPadも持っているが,そちらは本当に「遅い」からだんだん敬遠するようになったのだが,こちらのPCはcore i-3だし,メモリも8Gあるし,SSDにしてあるので,遅くてダメということはない.ただ,OpenBSDだと必ずしも適切なドライバがあるわけではないので,全体としての使い勝手が悪い.そういう意味で敬遠してしまっていた.

古いPCを使おうという気分がしてきたが,これが歳をとった証拠だろうと思う.若い頃は自分の身につけるものは最新でなければならない,という強迫観念に晒されていた.なにを使っているか自体が自分のセンスなり格なりを表現していると考えてしまいがちだった.だから,PCは常に最新を操る必要があるという妄想にかられていた.

おおくの人にとって,それは普通のことだと思う.だから利用用途がなにかとは別に,できるだけ「いいもの」をつかって,それを使っている様子をまわりの人に見せて,「あぁ,なるほどな」と「思われたい」と思ってしまっていた.

その感覚が今ではゼロになったとは言えないが,何かを購入するときの選択過程ではかならず外部からの視点というものを入れてしまっていた.歳をとって良かったと思えることの一つだ.だからのE460は少し無理してでも使っていきたい.

愛用品になるための条件

2017-01-15 おしゃべり

武田邦彦さんの本だったか,愛用品になるための十ヶ条というものがあった.どんな道具であっても,それが高価であってもプレゼンとであっても,愛用品というものになり得るかどうかには条件があるというものだ.全部は覚えていないが,磨けば光ること,修理できること,ということがあった.これは要するに,自分である程度手入れができるということだと思う.

PCについてある程度知識があれば,ノートPCも愛用品とすることができると思っている.とくに,自分が何らかの「工夫」を入れることができ,それで使い勝手が向上したなど,その道具が自分の創意工夫を受け入れる余地があるかどうかは,その道具を長く愛用できるかどうかを決める要素であるはずだ.

今回,まったく使い物にならないタッチパッドを自分の創意工夫で改良し,その結果道具が劇的に使い安くなったという経験をした.そして,この工夫がこのPCを間違いなく「愛用品」となるべく道を開いたと思っている.工夫によって道具その物に「愛着」が湧いてしまったのだ.

自分が工夫する.それが受け入れられ,そのために「良くなった」ということがはっきりと分かる.この経験は実に大切なものだと心底納得した.大事なのは自分とものとの関わり合いなのだ.買ってきて使う,というだけでは絶対に生じない関係が「愛着」なんだなと理解した.

この感情をもっていると,それだけで幸せな気分になる.だから,そういうものを今後は増やしたいと考えるのは当然.そのためには,なるべく道具を大事にし,なるべく工夫でなんとかするようにすればいい.これは,上手な生き方の一つなんだろうと思っている.

高価なノートPCはもう必要ない

2017-01-15 おしゃべり

どうせ買うならハイスペックのノートPCがいいと考えていたが,どういうわけか今はそんな気がしなくなっている.歳をとるとはこういうことなのかもしれない.

新しいMacBookProはいろいろと問題がありそうだから,ということが理由なわけではなく,お金が厳しいからということが決定的な理由でもなく,欲しいという意欲がなくなったのだ.

多くの場合だが,新しいPCの対する需要というものは本当は高くなく,大抵は最新の(あるいはかっこいい)PCを操っている自分に憧れて,ある種の装飾品として買うという動機があるものであって,歳をとるとそういう気分が消えてなくなる.だから買わなくなる.

では安いPCを買うのか.そう,安いのでよい.それではWindowsがきちんと動かないではないかという心配があると思うが,Windowsは使わないので,これよいのだ.

しかし,それで問題がないということはなく,BSD系のOSを使ったら大抵は苦労が多い.一昔よりもはるかに高速に動作するPCなのに,なんでこんなに使い勝手が悪いのだろうと,呪いたくなることがずっと続く.

現在格安で使ったThinkpadのE460を使っている.OSはOpenBSDだ.ここで苦労したものを2つだけメモしておきたい.

一つはWIFIで,どういうわけかAirMacで認識されなかったのだが,実に簡単な理由があった.それは,AirMac側で「ステルス」にしていたのだが,どういうわけかステルスモードではつなげなかった.どうせMACで接続を絞っていることもあり,ESSIDを公開にしたらあっさりとつながった.11nであれば2Gも5Gも使える.

もう一つはタッチパッド.E460はBIOSでタッチパッドの無効化ができない.dmesgで確認すると,wsmouse0としてpms(PSマウス)として接続されている.アキュポインタとタッチパッドが一緒になってつながっており,synaticsとしては認識されていない.ドライバがでているわけもなく,OpenBSDでFirmwareに含まれることもないだろう.

こうなるとタッチパッドだけOFFにすることができない.外付けマウスをつけるよりなくなる(それで解決する方法はネットにでている).しかし,せっかくノートを使っているのでわざわざマウスを持ち歩きたくない.何とかならないものかと2日ほど考えていたが,解決方法を見つけた.

かなりアナログな方法だが,タッチパッドの感度領域を狭めてしまうことだ.具体的には,キーボード入力をしているときにうっかり触ってしまう領域は親指の付け根に近い部分なので,その近傍を「名刺などのちょっとした厚紙を貼り付けしまう」のだ.これでタッチパッドのある部分を感度をなくすことができる.

厚めのテープをはってたのだが,それではダメだった.ある程度の厚さをもった紙が良い.ぼくはこんな感じで試した.

試しに紙をテープでつけてあるだけだが,絶大な効果がある.こうしてブログのために文字入力することは,この紙なしには「不可能」だったのに,こんな簡単なことで「まったく問題ない」と言いきれるようになった.

PCは気分良く使えれば良いのであって,プログラムで解決するという話でもなかったのだ.見た目を気にすることもあるので,もうちょっとマシな貼り付け方を工夫していけば良い.

方法はいくらでもあるものだな.そうしみじみ思っている.なにかないかなと考え続けると,なんとかなるものだな.

結局,と思うのだけど,タッチパッドをOFFできないからといってプログラム的に諦めるのはバカらしいわけだ.PCの問題はPC内部で解決するのは筋で,そのみちの人はそうすることに全力を傾けるべきだと思う.

その一方で,エンドユーザーは「何をどう使おうと,そんなの一切かんけーない」という態度で問題解決を図ることは推奨されるべきなんだ.言ってみればだけど,生きるためにどうするのか?というレベルにまで問いを格上げしたらいいんだ.それは「たかがPCの不便さ」であっても,「これがないと死んじゃうよ」というものとして考えれば,大抵のことには答えをくだせるのではないだろうか.

もっと真剣に生きてみるかなと,まったく関係ないにもかかわらず元気になってきた.