在神威上使用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 install2.链接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的运行空间同上一步。运行上面这个命令后你会看到这样的界面
点击File->select,找到自己想要打开的slog2,就可以分析了,界面如下
结束。
祝使用愉快!
-
赞!
--whole-archive那个可以看这篇文章
-
@夜深忽梦少年事 赞!了解一下。
-
请问mpe的安装包要到哪里获取?
-
@fadai1993 MPE源码可以从网络上直接下载 http://www.mcs.anl.gov/research/projects/perfvis/download/index.htm#MPE,然后按上述方法编译使用