... | ... | @@ -13,7 +13,7 @@ HPL is a software package that solves a (random) dense linear system in double p |
|
|
|
|
|
# Versions
|
|
|
[HPL 2.2 with Arm] (#build-details-with-arm) -
|
|
|
|
|
|
[HPL 2.2 with GCC] (#build-details-with-arm) -
|
|
|
|
|
|
# Build details with Arm
|
|
|
|
... | ... | @@ -38,7 +38,7 @@ cd hpl-2.2 |
|
|
|
|
|
### Configure
|
|
|
|
|
|
The `setup` directory contains a number of config files. To build with the Arm compiler you will need to generate an Arm config file. In the `setup` use the `make_generic` script to generate a new config for an 'unknown' architecture, `Make.UNKNOWN`, then rename this to `Make.Linux_Arm`:
|
|
|
The `setup` directory contains a number of config files. To build with the Arm compiler you will need to generate an Arm config file. In the directory `setup` use the `make_generic` script to generate a new config for an 'unknown' architecture, `Make.UNKNOWN`, then rename this to `Make.Linux_Arm`:
|
|
|
|
|
|
```
|
|
|
cd setup
|
... | ... | @@ -66,7 +66,68 @@ ln -s setup/Make.Linux_Arm Make.Linux_Arm |
|
|
|
|
|
Run make, selecting `arch=Linux_Arm`:
|
|
|
```
|
|
|
make arch=Linux.Arm
|
|
|
make arch=Linux_Arm
|
|
|
```
|
|
|
|
|
|
### Test
|
|
|
|
|
|
To run HPL over `$np` cores, change to the directory containing the new executable and run `xhpl`:
|
|
|
|
|
|
```
|
|
|
cd bin/Linux.Arm
|
|
|
mpirun -np $np ./xhpl
|
|
|
```
|
|
|
|
|
|
# Build details with GCC
|
|
|
|
|
|
## Configuration
|
|
|
1. [HPL 2.2] (http://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz)
|
|
|
2. GCC version 7.1.0
|
|
|
3. Arm PL version 18.1
|
|
|
3. [OpenMPI version 3.0.0] (https://www.open-mpi.org/software/ompi/v3.0.0/downloads/openmpi-3.0.0.tar.gz)
|
|
|
4. Last updated 9/3/18
|
|
|
|
|
|
## Build instructions
|
|
|
|
|
|
### Download the source
|
|
|
|
|
|
HPL can be downloaded from Netlib:
|
|
|
|
|
|
```
|
|
|
wget http://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz
|
|
|
tar -zxvf hpl-2.2.tar.hz
|
|
|
cd hpl-2.2
|
|
|
```
|
|
|
|
|
|
### Configure
|
|
|
|
|
|
The `setup` directory contains a number of config files. You may need to generate a new config file. In the directory `setup` use the `make_generic` script to generate a new config for an 'unknown' architecture, `Make.UNKNOWN`, then rename this to `Make.Linux_GCC`:
|
|
|
|
|
|
```
|
|
|
cd setup
|
|
|
source make_generic
|
|
|
mv Make.UNKNOWN Make.Linux_GCC
|
|
|
```
|
|
|
|
|
|
Make the following changes to `Make.Linux_Arm`:
|
|
|
|
|
|
1. Set the name for the architecture: `ARCH = Linux_Arm`.
|
|
|
2. Ensure that `TOPdir` points to the HPL directory, e.g. `TOPdir = $(HOME)/hpl-2.2`.
|
|
|
3. Give the install location (`$ARMPL_DIR`) of Arm PL for BLAS: `LAdir = ${ARMPL_DIR}`, `LAinc = -I${LAdir}/include` and `LAlib = -L${LAdir}/lib -larmpl -lflang -lflangrti`.]
|
|
|
4. Ensure that `CC = mpicc` and `LINKER = mpifort`.
|
|
|
|
|
|
### Build
|
|
|
|
|
|
Move back to the HPL directory make a link to, or copy of, `setup/Make.Linux_GCC`.
|
|
|
|
|
|
```
|
|
|
cd ..
|
|
|
ln -s setup/Make.Linux_Arm Make.Linux_GCC
|
|
|
```
|
|
|
|
|
|
Run make, selecting `arch=Linux_GCC`:
|
|
|
```
|
|
|
make arch=Linux_GCC
|
|
|
```
|
|
|
|
|
|
### Test
|
... | ... | |