我一直在尝试编译并运行LULESH基准测试

https://codesign.llnl.gov/lulesh.php

https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz

用gprof,但我总是遇到分段错误。我在Makefile中更新了以下说明:

CXXFLAGS = -g -pg -O3 -I. -Wall

LDFLAGS = -g -pg -O3

[andrestoga@n01 lulesh2.0.3]$ mpirun -np 8 ./lulesh2.0 -s 16 -p -i 10
--------------------------------------------------------------------------
mpirun noticed that process rank 2 with PID 30557 on node n01 exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------


在gprof的网页中显示以下内容:


  如果您在支持共享的系统上运行程序
  库,您可能会遇到以下情况中的分析支持代码问题
  在共享库完全使用之前被调用的共享库
  初始化。通常是程序遇到
  细分错误在运行后立即出现。解决的办法是链接
  针对包含配置文件的库的静态版本
  支持代码,可以通过-static' or -static-libgcc'命令行选项为gcc用户完成。例如:

 gcc -g -pg -static-libgcc myprog.c utils.c -o myprog



我添加了-static命令行选项,并且也遇到了分段错误。

我找到了一个pdf文件,在其中他们通过添加命令行选项-pg来更新Makefile来分析LULESH。尽管他们没有说他们所做的更改。

http://periscope.in.tum.de/releases/latest/pdf/PTF_Best_Practices_Guide.pdf

第11页

有人可以帮我吗?

最好,

最佳答案

确保所有库都已加载:


openmpi(您已经完成)
海湾合作委员会


您可以尝试使用参数,这些参数可以让您根据资源确定问题是否出在您的机器上。如果计算机不支持如此数量的进程,则通过查看体系结构拓扑来查看它支持多少个进程(MPI或不支持MPI)。这将使您确定可以启动到系统中的作业/进程的正确数量。

快速运行:


  mpirun -np 1 ./lulesh2.0 -s 1 -p -i 1


Running problem size 1^3 per domain until completion
Num processors: 1
Num threads: 2
Total number of elements: 1

To run other sizes, use -s <integer>.
To run a fixed number of iterations, use -i <integer>.
To run a more or less balanced region set, use -b <integer>.
To change the relative costs of regions, use -c <integer>.
To print out progress, use -p
To write an output file for VisIt, use -v
See help (-h) for more options

cycle = 1, time = 1.000000e-02, dt=1.000000e-02
Run completed:
 Problem size        =  1
 MPI tasks           =  1
 Iteration count     =  1
 Final Origin Energy = 4.333329e+02
Testing Plane 0 of Energy Array on rank 0:
    MaxAbsDiff   = 0.000000e+00
    TotalAbsDiff = 0.000000e+00
    MaxRelDiff   = 0.000000e+00


Elapsed time         =       0.00 (s)
Grind time (us/z/c)  =        518 (per dom)  (       518 overall)
FOM                  =  1.9305019 (z/s)

关于c++ - 在LULESH基准测试中使用gprof,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33745565/

10-11 17:04