Skip to main content

HPLinpack Workload Profiles

The following profiles run customer-representative or benchmarking scenarios using the HPLinpack workload.

PERF-CPU-HPLINPACK.json

HPL (High Performance Linpack) is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the High Performance Computing Linpack Benchmark.

The HPL package provides a testing and timing program to quantify the accuracy of the obtained solution as well as the time it took to compute it. The best performance achievable by this software on your system depends on a large variety of factors.

This profile is designed to identify general/broad regressions when compared against a baseline by testing and timing programs that provide complete solutions for the most common problems for linear system of equations.

  • Workload Profile

  • Supported Platform/Architectures

    • linux-x64
    • linux-arm64
  • Supported Linux Distrbutions

    • Ubuntu

    Note: Performance Libraries are enabled only for Linux ARM-Ubuntu22.04 with gcc 11 as of now. Performance Libraries for AMD and Intel will be enabled soon. By default this profile runs without performance libraries. User can customize it from the VC command line parameters.

  • Supports Disconnected Scenarios

    • No. Internet connection required.
  • Dependencies
    The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.

    • Internet connection.

    Additional information on components that exist within the 'Dependencies' section of the profile can be found in the following locations:

  • Profile Parameters
    The following parameters are specific to this workload and decides behavior of the workload.

    ParameterPurposeDefault Value
    CompilerNameName of compiler usedgcc
    CompilerVersionVersion of compiler11
    ProblemSizeNThe order of coefficient matrix of set of linear equations that we want to solveConvert.ToInt32(Math.Sqrt(totalAvailableMemoryKiloBytes * 1024 * 0.8 / 8)) (This value is dependent on memory of machine, uses 80% of available memory)
    BlockSizeNBThe partitioning blocking factor256
    PerformanceLibraryOptional. This parameter allows you to specify machine-specific performance libraries. You can assign values such as ARM, AMD, and INTEL to utilize the corresponding performance libraries.null
    PerformanceLibraryVersionRequired when using PerformanceLibrary parameter. Specify the version of the performance libraries you would like to use.

    Curently, the supported configurations are :
    ARM - 23.04.1 , 24.10
    null
    BindToCoresIf you want to bind the process to single corefalse
    NumberOfProcessesNumber of processes to be launched for the parallel programNo. of logical cores

    There are two other input values for HPLinpack. They are

    • P (The number of process rows)
    • Q (The number of process columns)

    These values are machine dependent and are calculated by 3 rules

  • Profile Runtimes
    See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile actions. These timings can be used to determine minimum required runtimes for the Virtual Client in order to get results. These are often estimates based on the number of system cores.

  • Usage Examples
    The following section provides a few basic examples of how to use the workload profile.

    sudo ./VirtualClient --profile=PERF-CPU-HPLINPACK.json --system=Demo --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}"

    If you want to use performance libraries for the supported platforms and distribution run following command.

    sudo ./VirtualClient --profile=PERF-CPU-HPLINPACK.json --system=Demo --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}" --parameters=PerformanceLibrary=ARM,,,PerformanceLibraryVersion=23.04.1

  • Resources

  • [Performance Libraries for ARM] (https://developer.arm.com/downloads/-/arm-performance-libraries)

  • [HPLinpack related links] (https://netlib.org/benchmark/hpl/links.html)