I was able to get the benchmarks (only Parsec and Splash) to compile on Ubuntu 18.04; I'll provide instructions below. HOWEVER, a few are broken at runtime and others have some general weirdness that makes me weary of using them. The recent support for newer operating systems in snipersim has been great so far. Will the benchmarks provided at [
http://snipersim.org/w/Download_Benchmarks] also be modified to support new operating systems "out of the box?" This would be incredibly useful for the work I'm performing if I could run these benchmarks with confidence that they are working correctly.
Instructions for compiling Parsec and Splash benchmarks on Ubuntu 18.04:
- Edit benchmarks/MAKEFILE ; This only fixed parsec and splash 2, I did not attempt to fix cpu2006 or npb, and both will fail to compile. comment out the following lines:
- make -C cpu2006
- make -C npb
- make -C local
- make -C cpu2006 clean
- make -C npb clean
- make -C local clean
- Edit benchmarks/parsec/parsec-2.1/pkgs/apps/bodytrack/parsec/gcc-sniper.bldconf
- Edit src files in ferret. Replace all instances of HUGE with HUGE_VAL. The files needing modified are listed below
- benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/src/src/lsh/LSH_query.c
- benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/src/src/lsh/LSH_query_batch.c
- benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/src/benchmark/ferret-parallel.c
- benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/src/benchmark/ferret-serial.c
- Edit benchmarks/parsec/parsec-2.1/pkgs/tools/cmake/parsec/gcc-sniper.bldconf
- Edit benchmarks/parsec/parsec-2.1/pkgs/apps/x264/parsec/gcc-sniper.bldconf
- Add
CC="${HOOKS_CC} -no-pie"
- RUN MAKE. IT WILL FAIL. WHEN IT GETS TO THE SSL LIBRARY. THE ERROR WILL READ:
smime.pod around line 272: Expected text after =item, not a number
smime.pod around line 276: Expected text after =item, not a number
smime.pod around line 280: Expected text after =item, not a number
smime.pod around line 285: Expected text after =item, not a number
smime.pod around line 289: Expected text after =item, not a number
- This is the only error I couldn't fix before running make once because the src is not downloaded prior to the first run of make
- Edit benchmarks/parsec/parsec-2.1/pkgs/libs/ssl/src/Makefile.org
- Run make again. the benchmarks should now compile correctly
- The pin2 branch (to my knowledge) doesn't compile correctly on Ubuntu 18.04. This step is only necessary for the pin3 branch
- in benchmarks/run-sniper comment out lines 138-140, which are
if not os.path.exists(os.path.realpath(os.path.join(graphiterootdir, 'lib', 'pin_sim.so'))):
print '\nERROR: Sniper has not been compiled. Please compile Sniper before trying to run an application.\n'
sys.exit(1)
- in benchmarks/run-sniper comment out lines 154-156, which are:
if not os.path.exists(os.path.realpath(os.path.join(graphiterootdir, 'lib', 'pin_sim.so'))):
print '\nERROR: Sniper has not been compiled. Please compile Sniper before trying to run an application.\n'
sys.exit(1)
I hope this is helpful to other people, and I hope it can get us closer to official support on newer operating systems for these benchmarks!