关于mpiswgfortran编译器Fortran语言的profile求解



  • 最近在使用mpiswgfortran 编译Fortran的时候想profile下应用,发现使用了很多方法都没有生成gmon.out文件,但测试的时候发现使用sw5f90编译器能够生成相应文件。但应用需要使用mpiswgfortran编译器编译,想请问下sw上怎么解决profile问题,或者有没有可行的解决方案?求告知





  • 您好,我尝试了一下swlu,使用方法为在main函数中调用了sw_prof_init、sw_prof_start、sw_prof_print、sw_prof_stop;
    然后编译连接时使用下面的命令:
    mpiswgfortran -L/home/export/online1/swmore/opensource/swlu/lib -lswlu -o test main.o sub.o

    但出现了如下的错误;
    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

    Backtrace for this error:
    #0 0x4ff0680c27
    #1 0x4ff06802af
    #2 0x4ff067b90f
    #3 0x4ff044f480

    不知是否我的使用方法存在问题?



  • @ted 我忘了swlu也是基于sw5f90做的了...你可以先试试在程序没有IO的小范围能不能用, 如果不能用那么可能就没有什么好办法了...
    以及看上去你只有两个文件的话能不能缩小一下现场贴代码上来?



  • 我没有在大应用上采用这个,只是自己写了个小程序看看该方法是否可行?
    我的测试主要代码如下:
    ![0_1552976735326_VG3YG%ZLE}CHNS3WBNUIKL.png
    其中sub_c和func_c函数在其他文件中实现,只是实现一些小数的运算;
    但是运行的时候出现了如下错误;
    ![0_1552976929110_VG3YG%ZLE}CHNS3WBNUIKL.png
    通过printf发现swlu_prof_init就没执行成功。
    不知道是否我的使用方法不正确还是?



  • @ted 看上去像是栈帧不兼容导致的...我写个试试...


登录后回复