This is an archive of the discontinued LLVM Phabricator instance.

[test-suite]: Adding Lulesh Proxy-app
Needs ReviewPublic

Authored by pavanravikanth.kprk on Aug 11 2017, 11:32 AM.

Details

Summary

Description:

Lulesh: The Shock Hydrodynamics Challenge Problem was originally defined and implemented by LLNL as one of five challenge problems in the DARPA UHPC program and has since become a widely studied proxy application in DOE co-design efforts for exascale. It has been ported to a number of programming models and optimized for a number of advanced platforms – many of those versions are available in the downloads section below. This page gives a brief description of why the problem was chosen. LULESH Ports details other versions and performance tuning work done on the initial version of LULESH, while LULESH 2.0 Changes details the changes made from LULESH 1.0 to LULESH 2.0. A presentation describing the OpenACC port is found here.

Weblink: Lulesh

Test timings on my machine (IBM x3550 M4):

compile_time: 54.8554 
exec_time: 0.2424 
link_time: 0.0317 
Maximum resident set size (kbytes): 1408

Diff Detail

Event Timeline

pavanravikanth.kprk edited the summary of this revision. (Show Details)Aug 11 2017, 12:22 PM
pavanravikanth.kprk edited the summary of this revision. (Show Details)Aug 11 2017, 12:56 PM
hfinkel added inline comments.Aug 15 2017, 10:36 AM
MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/lulesh-init.cc
421

This also depends on rand. See my comments on this in D36621 and D36626.

MultiSource/Benchmarks/DOE-ProxyApps-C/RSBench.patch
127 ↗(On Diff #110777)

Something's wrong here. You have a patch in a patch somehow.

hfinkel added inline comments.Aug 15 2017, 3:57 PM
MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/lulesh-init.cc
421

But please see my comments on a good rand implementation in D36621.

used suggested new custom random number generation logic.

Added Makefile support.

Adding lulesh to parallel dirs.

added level to lulesh Makefile

MatzeB edited edge metadata.Aug 31 2017, 7:09 PM

This fails verification for me on macOS:

$ diff -u /Users/mbraun/dev/test-suite/build/MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/Output/lulesh2.0.test.out /Users/mbraun/dev/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/lulesh2.0.reference_output
--- /Users/mbraun/dev/test-suite/build/MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/Output/lulesh2.0.test.out	2017-08-31 19:08:44.000000000 -0700
+++ /Users/mbraun/dev/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/lulesh2.0.reference_output	2017-08-31 19:05:32.000000000 -0700
@@ -16,8 +16,8 @@
    Iteration count     =  231
    Final Origin Energy = 2.720531e+04
    Testing Plane 0 of Energy Array on rank 0:
-        MaxAbsDiff   = 4.774847e-12
-        TotalAbsDiff = 2.590793e-11
-        MaxRelDiff   = 1.443890e-13
+        MaxAbsDiff   = 2.273737e-12
+        TotalAbsDiff = 1.659646e-11
+        MaxRelDiff   = 4.649603e-14

 exit 0
MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/CMakeLists.txt
1

Could we name the binary the same as the directory?

2–3

Please don't specify -O3, -g optimization and debug flags should be specified for the llvm-testsuite as a whole and people do not expect them to be overridden by benchmarks.

MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/Makefile
4–5

see above.

MultiSource/Benchmarks/DOE-ProxyApps-C++/lulesh/lulesh.h