Phoronix Test Suite¶
Phoronix Test Suite is a free and open-source benchmark software for Linux and other operating systems which is developed by Michael Larabel and Matthew Tippett. Phoronix Test Suite integrates with https://openbenchmarking.org/ where tests, suites of tests and uploaded benchmarks from users are available.
Phoronix Test Suite can be activated using the following module file:
module load phoronixtestsuite/pts9.8.0/binary
The Phoronix Test Suite executable is
phoronix-test-suite but is aliased to the command
p . The Phoronix Test Suite can be launched during an interactive session with X Window support (e.g. an interactive
qrshx session) or used in batch jobs when appropriately configured.
Phoronix Test Suite contains a very large number of benchmarks which can be used to become familiar with the software.
A list of these tests/test suites can be found here: https://openbenchmarking.org/tests
A summary of common commands can be found here: https://www.phoronix-test-suite.com/documentation/phoronix-test-suite.html
A Phoronix Test Suite cheat sheet can be found at: https://gist.github.com/anshula/728a76297e4a4ee7688d
Concepts to be aware of include:¶
You can save your results locally or also upload your results to the OpenBenchmarking website which may be useful for comparison.
Benchmark tests are typically discrete by a single program but may have multiple test modes to characterise different aspects of that program.
Test suites are a group of benchmark tests.
You will not be able to install dependencies with sudo - you will need to install these yourself, load them and override the check in phoronix for dependencies by setting the following environment variable:
Any dependencies will need to be installed / handled by you e.g. python, conda and tensorflow for the pts/ai-benchmark benchmark.
You can set the test name and unique identifier for a test interactively when running the program or with the following environment variables when in batch jobs:
TEST_RESULTS_NAME="My Test Name",
TEST_RESULTS_IDENTIFIER="My Unique ID".
Common commands include:¶
p list-all-teststo list all benchmark tests.
p info yourtestnamehereto get info about a given a benchmark test.
p benchmark yourtestorsuitenamehereto run a benchmark test.
p install yourtestnamehereto install a benchmark test.
p upload yourtestnamehereto upload your benchmark test results.
p build-suiteto start building a custom suite of your own benchmark tests, you can also use this to pre-select options for benchmarks when batch testing.
p batch-setupto setup phoronix running batch jobs (set this up if doing batch jobs.)
p batch-benchmark yourtestorsuitenamehereto run a batch benchmark job.
Phoronix Test Suite example benchmarks / suites¶
The Phoronix Test Suite can be called like a normal executable when in an interactive session requested via
Simply entering the command
p will list the commands which are available.
As an example, you can start the CPU stress testing benchmark, stress-ng with the following command:
p benchmark stress-ng
Here is an example batch submission script which is running a custom build CPU test suite called
sharccpu which reserves a node exclusively for 24 hours (this will take a long time to queue):
#!/bin/bash #SBATCH --time=24:00:00 #SBATCH --mem=40000 #SBATCH --ntasks-per-node=40 #SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --mail-type=ALL #SBATCH --mail-user= email@example.com #SBATCH --job-name=Phoronix-CPU-test export SKIP_EXTERNAL_DEPENDENCIES=1 module load phoronixtestsuite/pts9.8.0/binary #Add the over all test name i.e. where the unique tests will be grouped export TEST_RESULTS_NAME="Sheffield HPC CPU Test" #Construct the test ID aka the unique name for each test CPUMODEL=`lscpu | grep "Model name:" | sed -e "s/^Model name:[[:space:]]*//"` CLUSTERNAME="Bessemer " # Edit me if needed TESTID="$CLUSTERNAME $CPUMODEL" export TEST_RESULTS_IDENTIFIER=$TESTID p batch-benchmark sharccpu
PHP and several modules are required for Phoronix Test Suite to function, PHP has been manually compiled from source alongside these modules and any dependencies.
The sourcefiles for this will be located within:
The module file can be found at the following location:
The Makefile can be found at the following location:
The PHP_INI_SCAN_DIR environment variable is set in the module file to direct PHP to load the required PHP extensions:
The ./configure for this compiling is as follows:
./configure --prefix=/usr/local/packages/live/noeb/phoronixtestsuite/php-8.0.0-dev/ --with-curl --with-openssl --with-xmlrpc --with-zip --with-zlib
Please ensure that the PKG_CONFIG_PATH environment variable is set correctly:
Compiling and installing PHP modules will require you to first load the Phoronix Module then follow the instructions (with respect to phpize and onward) in this link: https://ma.ttias.be/how-to-compile-and-install-php-extensions-from-source/