Cruft

From Tau Wiki
Revision as of 01:06, 8 March 2012 by Scottb (talk | contribs)
Jump to: navigation, search


Background

Link Code Version Machine Date
LLNL website git repo Kyle Spafford fork Keeneland March 2012

Building Cruft

Modify the CmakeLists.txt and add these lines:

set (CMAKE_CXX_COMPILER tau_cxx.sh)
set (CMAKE_C_COMPILER tau_cc.sh)

Then issue

cmake .

You can safety proceed when you encounter reversions.

Selective instrumentation of Loops:

BEGIN_INSTRUMENT_SECTION

loops file="eam.c" routine="eamForce#"
loops file="ljForce.c" routine="LJ#"

END_INSTRUMENT_SECTION

For the Opencl code edit src-ocl/eam_kernels.c to move this section about the typedef CL_REAL_T real_t;

#if defined(cl_khr_fp64)  // Khronos extension available?
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#elif defined(cl_amd_fp64)  // AMD extension available?
#pragma OPENCL EXTENSION cl_amd_fp64 : enable
#endif

Then set:

export TAU_OPTIONS="-optVerbose -optTauSelectFile=`pwd`/select.tau"
export TAU_MAKEFILE=<path to TAU>/x86_64/lib/Makefile.tau-icpc-pdt
make

Running Cruft

./cruft -p ag -e -f data/8k.inp.gz

or

./cruft -f data/8k.inp.gz


And for OpenCL accelerated version:

tau_exec -T serial -opencl ./cruftOCL -p ag -e -f data/8k.inp.gz
tau_exec -T serial -opencl ./cruftOCL -f data/8k.inp.gz

Performance Data

EAM method:

Cruft-EAM-profile.png

File:Cruft-EAM.ppk

CruftOCL-eam-profile.png

File:CruftOCL-EAM.ppk

LJ method:

Cruft-LJ-profile.png

File:Cruft-LJ.ppk

CruftOCL-lj-profile.png

File:CruftOCL-LJ.ppk