Anacondaでpython3にしたらibus-setupがpythonのエラーを吐いて実行できなくなり、日本語入力ができなくなった。メニューバーのinput methodから行ってもpreferencesが起動せず。
/usr/bin/ibus-setup
の中にあるexec python→exec /usr/bin/pythonと変更したら解決した。
Anacondaでpython3にしたらibus-setupがpythonのエラーを吐いて実行できなくなり、日本語入力ができなくなった。メニューバーのinput methodから行ってもpreferencesが起動せず。
/usr/bin/ibus-setup
の中にあるexec python→exec /usr/bin/pythonと変更したら解決した。
# fdisk -l
Disk /dev/sda: 10000.8 GB, 10000831348736 bytes
255 heads, 63 sectors/track, 1215865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/sdc: 10000.8 GB, 10000831348736 bytes
255 heads, 63 sectors/track, 1215865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
10TBのディスクが二つ認識されていることが確認できた。パーティションを作成するが、fdiskでは2TBまでしかできないのでpartedを用いる。
# parted /dev/sda
(parted) mklabel gpt → Yes
(parted) unit GB
(parted) mkpart primary 0.0GB 10000.8GB
(parted) set 1 lvm on
(parted) print
(parted) quit
/dev/sdcに対しても同様に行う。
・物理ボリューム作成
# pvcreate /dev/sda1
# pvcreate /dev/sdc1
# pvscan
で物理ボリュームがきちんと作成されたか確認。
・ボリュームグループ作成
# vgcreate -s 512m VG01 /dev/sda1 /dev/sdc1
# vgdisplay -v VG01
で表示されるVG Sizeが最大容量なので確認しておく。
・論理ボリューム作成
# lvcreate -L 18.19TiB -n vol01 VG01
# lvscan
で論理ボリュームがきちんと作成されたか確認。
・フォーマット。mkfs.ext4は、どうやら16TBまでしかフォーマットできないらしいので、xfsを用いた。(mke2fsというものあるらしい)
# mkfs -t xfs -f /dev/VG01/vol01
・マウント。xfsフォーマットの場合、特にオプションをつけずにマウントできる。/etc/fstabにも追加しておく。
# mkdir /data
# mount /dev/VG01/vol01 /data
ずっとシステムのアップデートをしていなかったので、まずカーネルをアップデート。
/etc/yum.confの exclude=kernel* をコメントアウトし、
#yum update kernel
ちょっと緊張したが、無事再起動した。
ここで、リポジトリへのリンクが古かったので、更新。
自分の場合は/etc/yum.repos.d/にあるhome:dtufys.repoをリネームして排除する必要もあった。
アップデートと、必要なもののインストール。
#yum -y update
#yum upgrade
#yum install gcc*
#yum install freeglut
#yum install freeglut-devel
#yum install kernel-devel
HDDを増設し、GPUも交換した。GTX 1080 Tiを差し込む際、DVDドライブのSATAケーブルが干渉したので別の場所に移す。
あと8pin残っていたのはATX兼EPSケーブルであり、PCI-Eとしては使えなかったので、ペリフェラル4×2→PCI-E 6pin変換ケーブルを用いて6pinを埋めた。
蓋を閉めて起動。
この段階では、CentOSのバーが伸び切った段階で止まる。(startXがうまくいかない。)CUIでログインし、まず/etc/grub.confの末尾に以下を追加することで以前のドライバを無効にする。
nouveau.modeset=0
その後、最新のNVIDIAドライバをインストール。
# sh NVIDIA-Linux-x86_64-*****.run
いろいろと聞かれるが、Accept、yesで答える。
nvidia-smi
コマンドが有効になっていることを確認し、再起動すると、画面が出力された!!
次にCUDAをインストールする。
CUDA9.1は仮想環境を通したTensorFlowでは使えない(ソースコードからビルドすれば可だが、未トライ)ということだったので、まずはCUDA8.0とcuDNN6.0の組み合わせ。run fileからインストールした。
#yum install cuda
では、なぜかjre>=1.7.0を満たしていない(java -versionでは1.7になるにも関わらず)と言われてインストールできなかった。
その後PythonでTensorFlowをimportする。
1.0.0はそのまま(ただしcuDNN5.1)でも動いたが、1.4.0をimportしようとすると高位のglibc、gccが必要だと言われるので、個別に導入した。
glibc-2.17
検索するとCentOS7用のglibcを入れるケースが多かったが、CentOS6用のglibc2.17があったので、これをインストール。
gcc-4.8.4
すでに多くの方々がトライされているように、gccをソースコードからビルドしてlibstdc++.so.6のシンボリックリンクを貼り替える。
これでTensorFlowGPU-1.4.0が動いた。
for i in {1..408};do echo -n $i ; echo -n ” “; done
CP2KのFIXED ATOMリストをつくるときのワンライナー。
echo -n は改行しないオプション。
0から240までのランダムな数を6回取得したいとき。
for i in `seq 1 6`; do echo `expr $RANDOM % 240`; done;
元の出力の方を後でちゃんと変えるべきなのだが、実験データを出力した際に精度が足りず、データのX軸がいくつか重複してしまった。そんなデータでも、ざっくりでもよいからとりあえず解析すべく、重複するデータを削除して整理したい。その時のコマンド。
awk ‘!a[$1]++’ data.txt
なお、
awk ‘!a[$0]++’ data.txt
とすると、行全体で重複を判定できる。
2017年1月1日にうるう秒が実施された後、qpiddが50%くらいCPUを食うようになった。
ルートで
$ date -s “`LANG=C date`”
とすると負荷がなくなった。
qpidが何をしているのかはあまりよくわかっていないが、ソフトウェア間のデータ通信をしているらしい。
Gaussianだと振動数が3列にわたって表示されるのでコピーしにくい。
3列にわたって出力されるものを1列に直すbashワンライナー。
ちょっと冗長な気はするが、とりあえず動けばいいということで。
(awkのprintで改行を打ち込めないかと思ったのだが、\nではダメで、代替手段を探すのが面倒に)
grep Frequencies FREQ.LOG | cat | while read line ; do echo $line | cut -f3 -d’ ‘ ; echo $line | cut -f4 -d’ ‘; echo $line | cut -f5 -d’ ‘; done
ORCAはopenMPIに依存する。
ライブラリのエラーのため、バイナリを解凍して存在するopenmpiへLD_LIBRARY_PATHを設定するだけでは使えなかった。
まず、下記二つのlibraryがloadできないと言われる。
libmpi_cxx.so.1
libmpi.so.1
確かに、もとからある/local/apl/pg/openmpi-1.4.5/libにはこれらのso.0のバージョンしかない。管理者にお願いしてsymbolic linkを貼ってもらえばいいのかもしれないが、面倒なので自分でopenmpiをビルドする。
openmpi-2.0.1では仕様の変更のためか上記ライブラリがなかったので、openmpi-1.6.5をビルド。mpirunへのPATHとLD_LIBRARY_PATHを設定する。
しかし、これでもまだライブラリlibbat.soがloadできないというエラーになる。lddコマンドではちゃんとリンクが確認できるのに不思議である。ともかく、libbat.soはLSFに関連するライブラリらしく、LSFは必要ないので、openmpi-1.6.5のconfigure時に–without-lsfを追加。openmpiはconfigure時、自動で存在するキューイングシステムを特に指示せずとも読み取ってくれるらしいが、今回はその親切が仇になったようだ。これで走るようになった。ただし、ノード間並列は(intelMPIしかサポートしていないため)できない。
awkを使って度数分布(1列目に階層値、2列目に頻度が出力されている場合)から平均、標準偏差を計算。
awk ‘{m+=$1*$2} {n+=$2} {sq+=$1*$1*$2} END{print m/n, sqrt(sq/n-(m/n)^2);}’ filename