いまさらながら、 Xeon Phi で環境構築する際のまとめ
- Phi 環境の /etc/passwd はホストのそれから抽出して作られる。
- login shellが bash 以外の場合、 Phi 環境に bash しかないのに、 passwd ファイルは他のシェルのままになっていて login できなくなる。一回 root で Phi に login して vipw で書き換えるなりする
- setuid されていると環境変数 LD_LIBRARY_PATH は無視される
- Phi 環境の bash 自身は setuid されていないが、 fork する側に setuid されているものが挟まっているらしく一般ユーザで login すると LD_LIBRARY_PATH を設定できない。ホストでコンパイルしたバイナリを Phi 上で実行する場合ライブラリも必要になるケースがあるため(具体的には OpenMP)このままでは一般ユーザで Phi の上でプログラム実行できない。
しょうがないので/etc/ld.so.confにディレクトリを登録する。例えば、/var/mpss/mic0/home/libなんてのを作って、ライブラリはそこに放り込んでおいて、/var/mpss/mic0/etc/ld.so.confに/home/libと書いておく。
起動時に ldconfig してくれないので、同様に/var/mpss/mic0/etc/rc5.d/S80ldconfigをでっちあげて無理やり叩かせる。