Difference between revisions of "Talk:Performance"

From Biowerkzeug Wiki
Jump to: navigation, search
(Scaling)
(Scaling)
Line 3: Line 3:
  
 
== Scaling ==
 
== Scaling ==
 +
How to run scaling tests/testing methodology:
 +
 +
Use [[test_scaling.py]] which in turn uses [[calc_testjobs_linux.sh]].
 +
cd testjobs
 +
test_scaling.py ''NSLOTS''
 +
where ''NSLOTS'' is the maximum number of available cpus/cores. Results are the files
 +
scaling.xvg      # numbers
 +
scaling.png      # graphs
 +
* Only measures ''wall time'', hence must be run on an empty machine.
 +
* Uses <code>date +%s</code> so accuracy is limited to seconds.
 +
* No repeat runs; results may vary slightly.
 +
 +
Manually:
 
Use updated [[calc_testjobs_linux.sh]]
 
Use updated [[calc_testjobs_linux.sh]]
 
  DATA=scaling.xvg
 
  DATA=scaling.xvg
 +
MAXSLOTS=8
 
  echo -e "# scaling for Hippo\n# numthreads walltime/s" > $DATA
 
  echo -e "# scaling for Hippo\n# numthreads walltime/s" > $DATA
  for NSLOTS in `seq 8`; do  
+
  for NSLOTS in `seq $MAXSLOTS`; do  
 
   echo "-- NSLOTS = $NSLOTS";  
 
   echo "-- NSLOTS = $NSLOTS";  
 
   ../../calc_testjobs_linux.sh -n $NSLOTS  walp_octane_NPT_sp_MD \
 
   ../../calc_testjobs_linux.sh -n $NSLOTS  walp_octane_NPT_sp_MD \
 
     | awk '/BENCHMARK/ {print $3, $4}' >> $DATA;  
 
     | awk '/BENCHMARK/ {print $3, $4}' >> $DATA;  
 
  done
 
  done
Note:
+
All the above remarks apply here, too.
* only run this on an empty machine: we are using ''wall time'' for timing
 
 
 
Slightly more sophisticated: use [[test_scaling.py]].
 
cd testjobs
 
test_scaling.py ''NSLOTS''
 
where ''NSLOTS'' is the maximum number of available cpus/cores. Results are the files
 
scaling.xvg      # numbers
 
scaling.png      # graphs
 

Revision as of 15:41, 7 December 2008

Integration with tests

We could write a script that does the benchmark while running the test. It would even be possible to automatically post it (with the user's consent, of course). — Oli 16:03, 14 November 2008 (UTC)

Scaling

How to run scaling tests/testing methodology:

Use test_scaling.py which in turn uses calc_testjobs_linux.sh.

cd testjobs
test_scaling.py NSLOTS

where NSLOTS is the maximum number of available cpus/cores. Results are the files

scaling.xvg      # numbers
scaling.png      # graphs
  • Only measures wall time, hence must be run on an empty machine.
  • Uses date +%s so accuracy is limited to seconds.
  • No repeat runs; results may vary slightly.

Manually: Use updated calc_testjobs_linux.sh

DATA=scaling.xvg
MAXSLOTS=8
echo -e "# scaling for Hippo\n# numthreads walltime/s" > $DATA
for NSLOTS in `seq $MAXSLOTS`; do 
  echo "-- NSLOTS = $NSLOTS"; 
  ../../calc_testjobs_linux.sh -n $NSLOTS  walp_octane_NPT_sp_MD \
    | awk '/BENCHMARK/ {print $3, $4}' >> $DATA; 
done

All the above remarks apply here, too.