客先に置いてきたプログラムがエラーで死ぬという。
訊けばかなり無茶な条件だが…、変だな、手元ではちゃんと動いているんだが。
というところから安楽椅子デバッグ開始。思い付く質問を投げ、コマンドの実行結果を教えてもらう。うむ。やはり Out of Memory で死んでるケースか。
しかし 64bit だし unlimited だし。やはり 64bit な手元環境で同じ条件でちゃんと動いてるし…。あー login してじかに確認したい。
結果:
手元環境では PGI のコンパイラを使っていたが、これを G++ に変更すると途中から激しく swap out してそのまま Out of Memory で死んだ。… STL vector の4次元で 500^3 x N くらい使おうとしたはずだが、どんだけ Malloc しようとしたんだ?
客先は Intel のコンパイラがあったんだが、トラブったのと時間の都合で g++ でコンパイルしたのを置いてきたから、この辺が原因か?
しかし、速度以外にもこんなところにもコンパイラの性能って出るんだなぁ。
安楽椅子デバッグが終了したところで次は安楽椅子コンパイル。コンパイルの手順を伝えて、コンパイルしてもらわねば・・・・。