我一直在試圖編譯和運行LULESH基準使用gprof的與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
[[email protected] 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的的網頁說如下:
如果你是支持共享 庫,你可能會碰到問題的系統上運行的程序 中的分析支持代碼在庫已完全初始化之前調用共享庫。程序通常會在程序運行後立即檢測到這種情況。解決方案是將 與包含分析 支持代碼的庫的靜態版本鏈接起來,該代碼對於gcc用戶可以通過
-static' or
-static-libgcc命令行選項完成。例如: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
有人能幫助我嗎?
最佳,
它可能會幫助,如果你發佈一個堆棧跟蹤。 – Jason
謝謝!我如何生成堆棧跟蹤? – andrestoga
確保您的'ulimit'設置正確(例如'ulimit -c unlimited'),然後運行'gdb prog core',然後運行'where'。 – Jason