Difference between revisions of "Compiling Chef Summit"
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/.