在神威上使用mpe分析程序的mpi行为



  • 1.安装:
    使用Autotools进行配置:
    ./configure --build=x86_64 CC=mpicc CPP="mpiCC -E" MPI_INC=-I/usr/sw-mpp/mpi2/include MPI_LIBS="-L/usr/sw-mpp/mpi2/lib -lmpi -lm -lpthread" --prefix=/director/to/install --host=alpha64 MPI_CC=mpicc MPI_F77=mpif77
    然后等一个灰常灰常长的config过程
    然后make; make install

    2.链接mpe
    一般情况下,编译过程不需要作修改,只要在可执行程序后面额外链接liblmpe.a和libmpe.a就可以了。但是可能出现可执行程序不链接libmpe.a的情况。为什么?不清楚,可能可执行程序里面没有显式对libmpe.a中函数的调用。好在可以用--whole-archive来强制链接,比如:
    mpicc -o test test.o -L/path/to/mpe/lib -L/path/to/mpi/lib --whole-archive -llmpe --no-whole-archive lmpe

    3.运行
    先设置一个环境变量让mpe存储临时文件,如下:
    export TMPDIR=$(pwd)/tmp
    然后原来怎么跑程序,现在还怎么跑。运行过程中会输出mpe相关临时文件,但是最后才会输出profile日志。因此要保证程序正常结束。

    4.日志转换
    正常运行结束的情况下,你会在运行程序的目录(也可能是可执行程序所在目录)得到一个*.clog2文件。现在需要利用装好的mpe工具进行转换clog2TOslog2.jar来进行转换,它在libmpe.a相同的路径中。命令示例如下:
    java -Xms1024m -Xmx8g -jar clog2TOslog2.jar test.clog2
    这样就会生成一个test.slog2,这个东西是可视化工具需要的日志格式。那么问题来了,-Xms1024m -Xmx8g是什么东西。这两个选项应该是决定java运行空间的上下限,如果你的clog2文件很大,那么上限需要设置得大一点,否则你会发现转化了半天突然崩溃了。使用mpe生成日志时,不要运行时间过长,进程不要太多,否则会导致clog2异常巨大。

    5.可视化分析
    使用一个可以打开图形界面的terminal,比如Xmanager,运行libmpe.a相同的路径中的jumpshot.jar。命令如下:
    java -Xms1024m -Xmx8g -jar jumpshot.jar
    java的运行空间同上一步。运行上面这个命令后你会看到这样的界面
    0_1526910870752_1526910847(1).jpg
    点击File->select,找到自己想要打开的slog2,就可以分析了,界面如下
    0_1526911355224_1526911345(1).jpg

    结束。
    祝使用愉快!



  • 赞!
    --whole-archive那个可以看这篇文章



  • @夜深忽梦少年事 赞!了解一下。



  • 请问mpe的安装包要到哪里获取?




Log in to reply