・afrt使用時のエラーについて回答致します。 結論からいいますと、ソースファイルのライン数が制限値を 越えていました。(アセンブラレベルで)回避策としては最初に VPPアナライザを採取してから1回でも実行しているルーチンは 対象ファイルとしてまとめて1つのファイルとしました。 まずVPPアナライザを実行します。VPPアナライザはfrtpxコマンド にて作成したa.out(ロードモジュール)を使用します。 +-----VPPアナライザの実行シェル(samp.sh)--------------+ | | | #bin/sh | | cd test | | F7PARASAMP='file:samp.data,interval:20,type:rtime' | | export F7PARASAMP | | a.out c60 | | parasamp a.out c60 | +-----------------------------------------------------| このシェルをVPPのキューに投入します。 qsub -q p08d -lPv 1 samp.sh 終了するとsamp.sh.oXXXXXX(XXXXXXは数字)に以下の結果が出力され ます。 Status : Serial Number of Processors : 1 Type : elapse Interval (msec) : 20 Synthesis Information Count| Percent| VL| Name 3950| 27.9| 179| diag_ 1286| 9.1| 120| densit_ 1251| 8.8| 7| rotate_ 1162| 8.2| 4| kab_ 1085| 7.7| 23| bintgs_ 1069| 7.6| 4| jab_ 749| 5.3| 11| repp_ 658| 4.7| 4| diat_ 606| 4.3| 6| dhc_ 575| 4.1| 16| fock2_ 423| 3.0| -| aintgs_ 306| 2.2| 24| diat2_ 212| 1.5| 4| hcore_ 134| 0.9| -| set_ 124| 0.9| 26| ddot_ 85| 0.6| 29| daxpy_ 70| 0.5| 10| h1elec_ 70| 0.5| 75| coe_ 63| 0.4| 3| dcart_ 62| 0.4| 20| helect_ 49| 0.3| 2| fock1_ 29| 0.2| -| einvit_ 29| 0.2| 133| charmo_ 18| 0.1| -| _start 16| 0.1| -| geout_ 13| 0.1| 30| elau_ 12| 0.1| -| dnrm2_ 11| 0.1| 73| cnvg_ 7| 0.0| -| eqlrat_ 6| 0.0| -| etrbk3_ 4| 0.0| 42| dscal_ 4| 0.0| -| gmetry_ 2| 0.0| -| chrge_ 2| 0.0| -| iter_ 2| 0.0| -| writmo_ 1| 0.0| -| getgeo_ 1| 0.0| -| myword_ 1| 0.0| -| calpar_ 1| 0.0| -| freda_ 1| 0.0| -| chi_ 1| 0.0| -| symoir_ 14150| | 74| TOTAL この結果を元に1回でも実行しているルーチン群と実行していない ルーチン群に分別します。出力結果のCOUNTを参考にします。 この時必ずメインプログラムは忘れずにします。VPPアナライザのサ ンプリング間隔によってはメインが1回も実行していない様に見え る場合もあるからです。上記例ではメインが出ていません。 mopac-s.f --+----->t2.f(1回も実行していないルーチン群) | +----->t1.f(1回でも実行しているルーチン群 そして下記シェルでアナライザを実行します。 +- アナライザ実行シェル ana.sh-------------------------+ | # | | #@$-q ban3 | | #@$-o test.list | | #@$-eo | | # | | cd test | | frt -c -Wv,-px220 -Zcom.lis t1.f | | afrt -px220 -e -f mopac-anal.list t1.o t2.f | +------------------------------------------------------+ qsub ana.sh 以上でアナライザの採取が可能です。因みに既存アプリケーション プログラムのアナライザをとる場合は、ソースコードが大きい場合 がよく見受けられますのでこの方法が有効だと思います。 ただ今回のプログラムの場合、実行時のパラメタをプログラム内に 読み込んでいる構造になっているため、afrtの採取が困難となって います。afrtは実行時のパラメタをプログラムに渡すことは現状 仕様外ですので、プログラムの書き換えが必要となります。 現在システム担当のSEにパラメタを渡す方法を確認中ですので、 パラメタについてはしばらくお待ち下さい。 プログラムのルーチン単位のコスト分布が知りたいだけであれば、 上記で御紹介したVPPアナライザも有効だと思います。