lanl / benchmarks

Benchmarks
BSD 3-Clause "New" or "Revised" License
14 stars 6 forks source link

WIP: Proofread microbenchmark docs for STREAM, OSU microbenchmarks, and DGEMM #66

Closed dmageeLANL closed 7 months ago

dmageeLANL commented 10 months ago

Please proofread the microbenchmark docs for STREAM, OSU microbenchmarks and DGEMM to make sure they make sense from a third party POV.

JDTruj2018 commented 10 months ago

STREAM questions:

  1. Which optimization flags were used? I assumed -O2 -fopenmp as is done here: https://github.com/jeffhammond/STREAM/blob/master/Makefile
  2. Were MPI ranks bound to cores? I assumed yes, and the srun commands now include --cpu-bind=core
  3. Was the stream-mpi.exe executable used? I assumed yes, and the srun commands now reflect that
  4. Was the STREAM_ARRAY_SIZE set to 40,000,000 rather than 40? That appears to give similar results to what is on the page (I used gcc 9.4.0 and openmpi/3.1.6 on Darwin's spr-hbm partition)

STREAM changes:

  1. Defined compile time pre-processor constants (-DSTREAM_ARRAY_SIZE=40000000 -DNTIMES=20) in the build section along with optimization flags (-O2 -fopenmp)
  2. Added example make command to the build section
  3. Added export OMP_NUM_THREADS=1 to the running section commands
  4. Added --cpu-bind=core to the srun command
  5. Changed the executable in the running examples from ./stream to ./stream-mpi.exe
  6. Fixed typo where STREAM_ARRAY_SIZE=40 is now STREAM_ARRAY_SIZE=40000000
JDTruj2018 commented 10 months ago

OSUMB questions:

  1. Would it be helpful to add the commands to run each of the tests? I think the table in the Running section gives enough info, but I wanted to double-check with you.
  2. Any run rules that are relevant? I imagine not, and will put N/A there for now.

OSUMB changes:

  1. Added a sentence under the Purpose section.
JDTruj2018 commented 10 months ago

DGEMM questions:

  1. I do not see the dgemm_omp_fixes.patch file referenced in the documentation. I am leaving that as is for now.
  2. Maybe this is a Darwin thing, so I'll check on Roci, but I needed to modify the makefile pass in the include directory containing cblas.h, and LDFLAGS was not passed to the make rule and wasn't linking. I did not check Makefile.intel yet.

DGEMM changes:

  1. Fixed typo in Example Results section that mentioned Branson instead of DGEMM
  2. (Tentative) Updated Makefile to pass LDFLAGS to the make rule and to append to CFLAGS rather than overwrite CFLAGS. Did not make any changes to Makefile.intel
  3. (Tentative) Updated make command in documentation to reference passing the include directory. It is now make CFLAGS=-I<openblas_include_dir>
gshipman commented 7 months ago

Done!