Difference between revisions of "Compiling Chef Summit"

From PHASTA Wiki
Jump to: navigation, search
Line 43: Line 43:
 
  make -f Makefile.custom PARALLEL=openmpi
 
  make -f Makefile.custom PARALLEL=openmpi
  
This will generate a file named
+
This will generate a file named libSimPartitionWrapper-openmpi.a. Then, run
 +
 
 +
chmod +x libSimPartitionWrapper-openmpi.a.
 +
 
 +
Once this is completed, copy this newly generated partition wrapper to ../../lib/x64_rhel7_gcc48/.

Revision as of 09:37, 13 July 2020

Copy Simmetrix Libraries from Viz Nodes

Note that in order for Chef to operate, it must be compiled with the proper Simmetrix libraries. That is to say, there needs to be compatibility between Simmetrix and SCOREC-core for compilation of Chef to run smoothly. Please see https://fluid.colorado.edu/wiki/index.php/Building_SCOREC_Core for instructions on building SCOREC-core. An example (what worked for me) is provided through out the wiki. From the viz nodes (/projects/tools/SimmetrixTest), I ran

scp -r 14.0-190626beta/ <username>@login.rc.colorado.edu:<path>

to copy over the directory 14.0-190626beta/ to Summit.


Set Proper Environment

To start with a clean slate, run

module purge

This unloads all currently loaded modules.

Next, run

module load gcc/6.1.0
module load openmpi/2.0.1

Note that /6.1.0 and /2.0.1 can be swapped with the intended versions of gcc and openmpi the user intends on using.

Generate Partition Wrapper

After the directory is copied over to Summit and the environment is set, a Partition Wrapper needs to be generated. Go to:

<path>/14.0-190626beta/code/PartitionWrapper

and open the file

Makefile.custom

Obviously, 14.0-190626beta/ is a placeholder and any version of Simmetrix (i.e. the version you used to create the mesh) will work. In this example, I used open openmpi (A High Performance Message Passing Library). I also used mpicc and mpicxx as MPI-C and MPI-C++ compilers respectively. If this is what is intended, in the Makefile, set the following variables:

PQUAL:= -openmpi
CC:=/curc/sw/openmpi/2.0.1/gcc/6.1.0/bin/mpicc 
CXX:= /curc/sw/openmpi/2.0.1/gcc/6.1.0/bin/mpicxx

Notice the compatibility between the loaded modules and the directory structure above. Once this is set, in the terminal run

make -f Makefile.custom PARALLEL=openmpi

This will generate a file named libSimPartitionWrapper-openmpi.a. Then, run

chmod +x libSimPartitionWrapper-openmpi.a.

Once this is completed, copy this newly generated partition wrapper to ../../lib/x64_rhel7_gcc48/.