To explain the principles - Hill Granville High Performance Computing courses HPL & HPCC software to achieve rapid installation script

Prior to his girlfriend wrote a HPL & HPCC software quick installation script, and then sent to the Internet for everyone to use ==> link here
where the record about the process of writing, as well as some of the harvest.

1. HPCC or HPL is what?

On these two things essentially benchmark (run sub-tool) used to test the performance of the computer. But the difference between these two things and "entertainment guru" is that these two things the main measure of parallel computing power of high-performance computers.
Both also linked very closely, and I understand HPCCfor the HPLexpansion pack, HPCCon the library directly use the HPLlatest HPCC-1.5.0using HPL-2.0(launched in 2016, after HPCCnot continue to be updated to guess that there is a better benchmark software.

HPL:High Performance Linpack

Wherein the term represents the meaning of the LINPACK (Linear System Package), linear system package, a floating point performance was evaluated by the computer so that the computer-membered N solving dense linear equations using a Gaussian elimination method.

HPCC: HPC Challenge

As the name suggests, is a packaged, integrated a number of other ways, including benchmark assessment tool

2. how to install?

We can both get on the Internet source code, and then need to compile the code, to get an executable file. This time it created a problem -

Why not just pack up, like we usually use the software as direct issue an executable file?

This is because both are designed to assess the operational performance of computer software, highly specialized, and must be closely integrated environment of the computer in order to play the best results. In fact, HPLafter decompression, we can find at the root of the existence of a configurefile, which can automatically detect and compile environment. But there is one condition, that is, in which the operating system must be configured the HPLall environment variables required.

When you run the file on our fleet, it will detect the CPU for the fleet Intel Xeon E5-2620, which use a template Make.Linux_Intel64 try to compile, but it does not find the required MKLlibraries, compilers fail. Not really our environment variable is not MKL, but because of the different versions, resulting in the case of the version number is not recognized as a directory to. Take, for example, is the template think it should go SOFTWARE, and we fleet directorySOFTWARE-2.0

We all know that HPLthe package in order to compile successfully, you need to have the system MPIenvironment, and there is the underlying linear algebra subprograms package BLASsupport (or vector signal image processing library VSIPL), as well as some basic tools gcc, gcc-gfortranand so on.

The required environment

For the build environment, there is a common combination

  • Intel® Parallel Studio XE + HPL (intel compiler intel MKL + intel-+ MPI)
    intel kit includes Math Library (mkl), various compilers (such as icc, gcc) and intel mpi.
    In addition, the Intel installation kit, in its installation directory mkl/benchmarks/linpackand mkl/benchmarks/mp_linpackfolder has compiled linpack and test scripts can be used directly;
  • HPL + ACML + GNU compiler openmpi +
    ACML introduced by AMD, for AMD's cpu.
  • HPL + GNU compiler, or the like lapack + blas + openmpi Math Library
    math library: blas / lapack the like
    described above can also be used in openmpi mpich

Because our fleet is Intel Xeon E5-2620the CPU, so the use of Intelthe most appropriate solutions.
The directory where we are /home/train/stuxxin /trainthe directory, you can discover the existence of a bashrcfile

# .bashrc
# source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific aliases and functions

source /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64
source /opt/intel/impi/5.0.2.044/bin64/mpivars.sh
source /opt/intel/mkl/bin/intel64/mklvars_intel64.sh

View the contents of the file shows that the file when we start the terminal, execute the three .shfiles, view these three files shows that they will base runtime MPI, MKLwere written in the environment variable.
What does this mean my brothers?
This means that we do not have to go online to download a mess do not understand BLAS, CBLASthis mpi mpi that, we just use the existing fleet on it.

Insert a message, I try to use the Intel Early official MKL-2020results 2020version actually can not RHEL 6(我们机群的操作系统)run, can only run in a future version of Red Hat 7. 2019Yes, but now with the machine, but also no need to download.

Compile file modification

Now that you know these, as long as according to setup/the template directory Make.Linux_Intel64, where the path slightly modified position, you can compile the (as I said before, because we are E5-2620(almost that time of the dedicated server U), so choose Intel64
on this part of the network tutorial many, also speaks very careful, here in just saying that only a list of some modifications:

ARCH         = sduwhhpl     #改成你想取的名字,随便什么都行
TOPdir       = $(HPL_HOME)  #HPL的目录,这个HPL_HOME变量是我定义的,下面有详细讲解
MPdir        = $(I_MPI_ROOT)#MPI的目录
LAdir        = $(MKLROOT)   #MKL的目录,其实这个不用改,本来就是这个,我只是放在这说明比较重要

Really change these, so do not look at the online tutorial along with his hands to do, it is recommended to understand why each step, and then combine their machine environment to do it. Because many of our environment are configured, shining modify online but made a mistake (found some account operations lead to environmental variables change, so adding environment variables in the script of the second version of the heavy import statement)

There is more interesting is this TOPdir, this directory is HPLa directory, following many operations will call this directory. We know he's run directory is ../stuxx/201800xxxxxx/under, but everyone's student number is not the same, I do not want to use every time we are entering a student number as a parameter passed in. Later thought, it adds a temporary environment variable HPL_HOME, as follows:

HPL_HOME=$(pwd)     #以当前所在目录作为值,其实就是你学号的目录
export HPL_HOME
source /etc/profile

unset HPL_HOME      #销毁变量

HPCC pits

HPCCThe compilation process is actually a compilation HPL-2.0process, only a few points to note:

TOPdir       = ../../..     # HPL的目录不要改动,就用这个(因为本身是集成了HPL,它自己知道在哪

# 下面这两个需要注意,后面加上-std=c99,见下方解释
CCFLAGS  = $(HPL_DEFS) -O3 -w -ansi-alias -i-static -z noexecstack -z relro -z now -nocompchk -Wall -std=c99
LINKFLAGS    = $(CCFLAGS) $(OMP_DEFS) -mt_mpi -std=c99

The first compilation error, suggesting STREAM/stream.c(178): error: expected a ";"that this is the wrong sort of thing? Program can not be wrong? Or lack of such a ;mistake?
Then check the data found that HPCC-1.5.0convection has been modified, added to the array in which the keyword limits, in order to compile stream, you must use c99, so add-std=c99

3. Other

Overall, frustrating the process is still very cool. File using the FTPprotocol transmission, in the script wgetacquisition, and finally the middle of the download source archive deleted so that the results clean. Overall I feel pretty good, homework go.

Finally, say, this thing is really just the beginning in order to help his girlfriend was installed engage.

Released two original articles · won praise 7 · views 638

Guess you like

Origin blog.csdn.net/duchenhe/article/details/104861020