ScalascaOnTSUBAME - t-sakashita/rokko GitHub Wiki
Scalascaによる性能測定@TSUBAME
CMakeのコンパイラチェック時の問題
CMakeには"skin mpicc"というコンパイラ名を渡すことはできない。CMakeによるコンパイラのチェック時にエラーとなる。
そこで、skin -comp=none -user -v mpicxx "$@"
という内容のbashスクリプトskin_mpicxx.shを用意し、これをCMakeのオプションCMAKE_CXX_COMPILERに渡すとチェックが通った。
"skin mpicc"、"skin mpif90"についても同様に対応した。
動的ライブラリが使用できない。
Rokkoを動的ライブラリで生成すると、性能測定ができない。
Scalascaでは、動的ライブラリとリンクしたプログラムの性能測定はサポートしていない。
そのため、Rokkoは静的ライブラリで生成して、それを性能測定用のメインプログラムとリンクする。
(性能を測定しない下部の階層では動的ライブラリを使用して問題ない。この場合でいえば、Rokkoから使用する固有値ソルバ(EigenExa等)は動的に生成したライブラリを使っても問題ない。)
Rokkoで動的・静的のどちらのライブラリを生成するかは、CMake実行時にスイッチ変数BUILD_SHARED_LIBSで指定できるようにした。