We agree on the following simple rules to make our lives easier :)
- Stick to the style below for commit messages
- Commit compiling patches for the main branches (
master
anddev
), you can be less strict for (unshared) topic branches
Let's go for an example:
Use the 1st line as a topic, stay <= 50 chars
- the blank line between the "topic" and this "body" is MANDATORY
- use several key points with - or * for additional information
- stay <= 72 characters in this "body" section
- avoid blank lines in the body
- Why? Pls refer to http://stopwritingramblingcommitmessages.com/
We provide an (interactive/automated) script that compiles all examples
within the examples/
directory in your branch.
This helps a lot to maintain various combinations of options in the code (like different solvers, boundary conditions, ...).
Assume
repo=<pathToYourPIConGPUgitDirectory>
tmpPath=<tmpFolder>
Now run the tests with
$repo/compile -l $repo/examples/ $tmpPath
Further options are:
-q : continue on errors
-j <N> : run <N> tests in parallel (note: do NOT omit the number <N>)
If you ran your test with, let's say -l -q -j 4
, and you got errors like
[compileSuite] [error] In PIC_EXTENSION_PATH:PATH=.../params/ThermalTest/cmakePreset_0: CMAKE_INSTALL_PREFIX:PATH=.../params/ThermalTest/cmakePreset_0 (.../build) make install
check the specific test's output (in this case examples/ThermalTest
with
CMake preset #0) with:
less -R $tmpPath/build/build_ThermalTest_cmakePreset_0/compile.log
Compile all CMake presets of a single example with:
$repo/compile $repo/examples/ $tmpPath
- Request an interactive job (to release some load from the head node)
qsub -I -q laser -lwalltime=03:00:00 -lnodes=1:ppn=64
- Use a non-home directory, e.g.
tmpPath=/net/cns/projects/HPL/<yourTeam>/<yourName>/tmp_tests/
- Compile like a boss!
<pathToYourPIConGPUgitDirectory>/compile -l -q -j 60 <pathToYourPIConGPUgitDirectory>/examples/ $tmpPath
- Wait for the thumbs up/down :)