Rewrite the lulesh problem in hydrodynamics using Chainsaw, a new parallel language.
-
Most time-consuming parts (according to profiler)
-
CalcElemShapeFunctionDerivativeLagrangeLeapFrog(2640)LagrangeNodal(1252)CalcForceForNodes(1132)CalcVolumeForceForElems(1090)IntegrateStressInElems(523)- ~50%
CalcElemShapeFunctionDerivative(319)
-
CalcKinematicForElems+CalcElemVolumeLagrangeLeapFrog(2640)LagrangeElements(2454)CalcLagrangeElements(1601)- ~10%
CalcKinematicsForElems(1533) - ~2%
CalcElemVolume(1302)
-
-
Domain: a collection of vectors, condition variables (time), constants.- Mainly consists of a bunch of getters/setters
- ~700 line constructor (can simply replicate, or some optimizations)
-
Communication: everything is done through a 2-d array
fieldData.- No indication of saving old/new states of the cube
- Boundary conditions: typical, every node gets a local
Domain - Need to walk through
CommSendandCommRecvsince customized
-
Next Steps: try to replicate the most time-consuming part
FunctionDerivative.- Modify original code to just time that part
- Compare the performance results of original and Chainsaw
- May require multiple weeks since we need more understanding of Chainsaw
-
'Iterations in Stencil.it': Iterations in Stenil code was correct, but no understanding as to why it is correct.
-
'Object-Oriented': How to translate object oriented code into Chainsaw without adding it all to computation phase?
-
'Time Increment': Working on IT code to test the Time Increment component of the LULESH code.
- which frame of reference should we be in when coding, MPI + OPENMP or just MPI?
-
How to print in an IT program?
-
Why does our program execute 20 times when unpartition is specified?