Mentions légales du service

Skip to content

[bench] Fix uncoherent directory name between refdir & rundir following...

There is several new features in this PR to import the interesting changes in BENCH from my GPU branch.

NOTE TO REVIEW

There is many patches, it will be easier to review patch-per-patch.

Note-1: I made again a last patch after importing all to fix the gap due to minicroco diffs (configure.cmake + ./src). No need to report them in previous commits.

QUESTION

As you proposed I renamed the directories in rundir by swaping case/variant. But by practice I think for debugging it was better before. Sometimes when going by hand in the directory we want to compare to sequential or other variants. In new order we need to

../sequential/BASIN/.....
# instead of (no case, less ../../)
../sequential/...

rvtk

Permit to use the RVTK_DEBUG cpp key to help stronger validation analysis.

Usage:

# currently compare to sequential as ref
./bench-croco.py -c BASIN -v sequential,openmp-8 -R 1 -r --rvtk

It :

  1. Enable RVTK_DEBUG + RVTK_DEBUG_WRITE on sequential
  2. Enable RVTK_DEBUG + RVTK_DEBUG_READ on others
  3. Symlink the dump files from sequential into the others so they can access it.

I didn't yet added an option but the variant ref name is currently statically setup in config.py if we want to play with it.

--enable-debug

New --enable-debug option to build CROCO in debug mode to get stack traces easily on segfault.

cppkeys

Now can define cppkeys in case or variant.

"variants": {
    "sequential": {
        "cppkeys": ['RVTK_DEBUG', '.....']
    }
}

Note : also patches is now also supported in case AND variant

--host

Add option to force host config to use : --host svalat-inria.

error logging on netcdf compare

Now get more details in error log :

-----------------------------------------------
Error from command : ./bench-croco.py -c BASIN -v sequential,openacc-native,openacc-psyclone -R 1 -r
Error from workdir : /home/svalat/Projects/minicroco/BENCH
-----------------------------------------------
Error while checking
 - refere : /home/svalat/Projects/minicroco/BENCH/rundir/sequential/BASIN/basin_his.nc
 - actual : /home/svalat/Projects/minicroco/BENCH/rundir/openacc-native/BASIN/basin_his.nc
-----------------------------------------------
Detect some errors : 
Found 226484 errors in : zeta
-------------------- zeta ---------------------
Non strict equality in variable 'zeta' at (1,0,1): ref != actual : 0.004649769049137831 != 0.004649771377444267 (diff=2.3283064365386963e-09)
Non strict equality in variable 'zeta' at (1,0,1): ref != actual : 0.004649769049137831 != 0.004649771377444267 (diff=2.3283064365386963e-09)
Non strict equality in variable 'zeta' at (1,0,2): ref != actual : 0.004192524589598179 != 0.004192525055259466 (diff=4.656612873077393e-10)
Non strict equality in variable 'zeta' at (1,0,2): ref != actual : 0.004192524589598179 != 0.004192525055259466 (diff=4.656612873077393e-10)
Non strict equality in variable 'zeta' at (1,0,3): ref != actual : 0.003910057712346315 != 0.003910051193088293 (diff=6.51925802230835e-09)
Non strict equality in variable 'zeta' at (1,0,3): ref != actual : 0.003910057712346315 != 0.003910051193088293 (diff=6.51925802230835e-09)
Non strict equality in variable 'zeta' at (1,0,4): ref != actual : 0.0036178193986415863 != 0.003617810783907771 (diff=8.614733815193176e-09)
Non strict equality in variable 'zeta' at (1,0,4): ref != actual : 0.0036178193986415863 != 0.003617810783907771 (diff=8.614733815193176e-09)
Non strict equality in variable 'zeta' at (1,0,5): ref != actual : 0.0033648109529167414 != 0.0033648048993200064 (diff=6.05359673500061e-09)
Non strict equality in variable 'zeta' at (1,0,5): ref != actual : 0.0033648109529167414 != 0.0033648048993200064 (diff=6.05359673500061e-09)
Non strict equality in variable 'zeta' at (1,0,6): ref != actual : 0.0031190605368465185 != 0.0031190551817417145 (diff=5.3551048040390015e-09)
-----------------------------------------------

--jobcomp

Add support of --jobcomp to force using jobcomp instead of cmake. In principale handle well the croco/master and minicroco one with automatic fallback.

I didn't validated yet fully the minicroco one because now jobcomp does not search itself the netcdf libs and don't wanted to search myself.

Edited by VALAT Sebastien

Merge request reports