Skip to content

OCI image for High-Performance Linpack, a portable benchmark for distributed-memory computers

License

Notifications You must be signed in to change notification settings

canonical/hpl-rock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

High-Performance Linpack (HPL) ROCK

An Ubuntu 22.04 LTS-based OCI image for running HPL, a portable implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers. HPL is used to benchmark the Top 500 supercomputers.

CI Release Matrix

Features

The High-Performance Linpack (HPL) OCI image provides a containerised xhpl binary that can be used to run the Linpack benchmark on your distributed-memory system. OpenBLAS, ATLAS, mpich, and libfabric are installed inside this image to support the xhpl binary.

Usage

This short usage how-to section assumes that you have Sarus installed on your distributed-memory system, however, this image should work with any OCI-compliant container runtime.

With a single node

Copy the example HPL.dat file to your local system:

HPL.dat
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out      output file name (if any)
6            device out (6=stdout,7=stderr,file)
1            # of problems sizes (N)
124          Ns
1            # of NBs
64           NBs
0            PMAP process mapping (0=Row-,1=Column-major)
1            # of process grids (P x Q)
1            Ps
1            Qs
16.0         threshold
1            # of panel fact
2            PFACTs (0=left, 1=Crout, 2=Right)
1            # of recursive stopping criterium
4            NBMINs (>= 1)
1            # of panels in recursion
2            NDIVs
1            # of recursive panel fact.
1            RFACTs (0=left, 1=Crout, 2=Right)
1            # of broadcast
1            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1            # of lookahead depth
1            DEPTHs (>=0)
2            SWAP (0=bin-exch,1=long,2=mix)
64           swapping threshold
0            L1 in (0=transposed,1=no-transposed) form
0            U  in (0=transposed,1=no-transposed) form
1            Equilibration (0=no,1=yes)
8            memory alignment in double (> 0)

Execute xhpl using Sarus

sarus pull ghcr.io/canonical/hpl:2.3
sarus run \
  --entrypoint "" \
  --mount type=bind,source=$(pwd)/HPL.dat,destination=/HPL.dat \
  ghcr.io/canonical/hpl:2.3 xhpl

With multiple nodes

Copy the example HPL.dat file to your local system

HPL.dat
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out      output file name (if any)
6            device out (6=stdout,7=stderr,file)
1            # of problems sizes (N)
24000        Ns
1            # of NBs
128          NBs
0            PMAP process mapping (0=Row-,1=Column-major)
1            # of process grids (P x Q)
8            Ps
8            Qs
16.0         threshold
1            # of panel fact
2            PFACTs (0=left, 1=Crout, 2=Right)
1            # of recursive stopping criterium
4            NBMINs (>= 1)
1            # of panels in recursion
2            NDIVs
1            # of recursive panel fact.
1            RFACTs (0=left, 1=Crout, 2=Right)
1            # of broadcast
1            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1            # of lookahead depth
1            DEPTHs (>=0)
2            SWAP (0=bin-exch,1=long,2=mix)
64           swapping threshold
0            L1 in (0=transposed,1=no-transposed) form
0            U  in (0=transposed,1=no-transposed) form
1            Equilibration (0=no,1=yes)
8            memory alignment in double (> 0)

Execute xhpl using Sarus through mpirun

sarus pull ghcr.io/canonical/hpl:2.3
mpirun -np 64 sarus run \
  --entrypoint "" \
  --mount type=bind,source=$(pwd)/HPL.dat,destination=/HPL.dat \
  ghcr.io/canonical/hpl:2.3 xhpl

Note: The provided HPL.dat files may not be optimal for your distributed-memory system. You may want to modify your HPL.dat file to identify the optimal parameters for your system. See the Tuning section of the HPL documentation for more information on modifying the HPL.dat file.

Project & Community

The HPL OCI image is a project of the Ubuntu HPC community. It is an open source project that is welcome to community involvement, contributions, suggestions, fixes, and constructive feedback. Interested in being involved with the development of hpl-rock? Check out these links below:

License

This HPL OCI image is free software, distributed under the Apache Software License, version 2.0. See the LICENSE file for more information.

About

OCI image for High-Performance Linpack, a portable benchmark for distributed-memory computers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages