README
1This is the README for LULESH 2.0
2
3More information including LULESH 1.0 can be found at https://codesign.llnl.gov/lulesh.php
4
5If you have any questions or problems please contact:
6
7Ian Karlin <karlin1@llnl.gov>
8Jeff Keasler <keasler1@llnl.gov> or
9Rob Neely <neely4@llnl.gov>
10
11Also please send any notable results to Ian Karlin <karlin1@llnl.gov> as we are still evaluating the performance of this code.
12
13*** Notable changes in LULESH 2.0 ***
14
15Split functionality into different files
16lulesh.cc - where most (all?) of the timed functionality lies
17lulesh-comm.cc - MPI functionality
18lulesh-init.cc - Setup code
19lulesh-viz.cc - Support for visualization option
20lulesh-util.cc - Non-timed functions
21
22The concept of "regions" was added, although every region is the same ideal gas material, and the same sedov blast wave problem is still the only problem its hardcoded to solve. Regions allow two things important to making this proxy app more representative:
23
24Four of the LULESH routines are now performed on a region-by-region basis, making the memory access patterns non-unit stride
25
26Artificial load imbalances can be easily introduced that could impact parallelization strategies.
27 * The load balance flag changes region assignment. Region number is raised to the power entered for assignment probability. Most likely regions changes with MPI process id.
28 * The cost flag raises the cost of ~45% of the regions to evaluate EOS by the entered multiple. The cost of 5% is 10x the entered
29 multiple.
30
31MPI and OpenMP were added, and coalesced into a single version of the source that can support serial builds, MPI-only, OpenMP-only, and MPI+OpenMP
32
33Added support to write plot files using "poor mans parallel I/O" when linked with the silo library, which in turn can be read by VisIt.
34
35Enabled variable timestep calculation by default (courant condition), which results in an additional reduction. Also, seeded the initial timestep based on analytical equation to allow scaling to arbitrary size. Therefore steps to solution will differ from LULESH 1.0.
36
37Default domain (mesh) size reduced from 45^3 to 30^3
38
39Command line options to allow for numerous test cases without needing to recompile
40
41Performance optimizations and code cleanup uncovered during study of LULESH 1.0
42
43Added a "Figure of Merit" calculation (elements solved per microsecond) and output in support of using LULESH 2.0 for the 2017 CORAL procurement
44
45Possible Future 2.0 minor updates (other changes possible as discovered)
46
47* Different default parameters
48* Minor code performance changes and cleanupS
49
50TODO in future versions
51* Add reader for (truly) unstructured meshes, probably serial only
52* CMake based build system
53
54