Wiki de l'usage de xHPL

CQQCOQP du projet

Importation initiale du projet

Récupération de HPL

Cette opération a été utilisée pour récupérer le code source de HPL sur le site de Netlib.

wget http://www.netlib.org/benchmark/hpl/hpl-2.0.tar.gz
tar xzf hpl-2.0.tar.gz
mv hpl-2.0 hpl-2.0.orig
cd hpl-2.0.orig

Importation SVN du projet

Voici la commande utilisée pour créer l'archive subversion originelle.

svn import $(pwd)/hpl-2.0.orig/ https://forge.cbp.ens-lyon.fr/svn/hpl4all/ -m 'Importation de la version originelle'

Récupération SVN du projet

svn checkout http://forge.cbp.ens-lyon.fr/svn/hpl4all/

Compilation et exécution du projet sous Linux Debian :

  1. Installation des paquets Debian nécessaires
  2. Récupération de l'archive SVN
  3. Changement de dossier et définition d'un variable d'environnement

Opérations communes quel que soit le couple librairie BLAS/librairie MPI

# Installation des paquets Debian nécessaires
sudo apt-get install gcc gfortran

# Récupération de l'archive HPL
svn checkout http://forge.cbp.ens-lyon.fr/svn/hpl4all/

# Passage dans le dossier de HPL
cd hpl4all
export HPLROOT=$PWD

Avec le couple Atlas/OpenMPI

  1. Installation des paquets Debian complémentaires
  2. Création de liens pour les fichiers de configuration
  3. Compilation
  4. Exécution
# Installation des paquets Debian nécessaires

# Installation les paquets associes a MPI
sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev

# Installation des paquets associes a BLAS

# Sur une architecture i386
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev libatlas-sse2-dev libatlas3gf-sse2
# Sur une architecture amd64
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev

# Création des liens symboliques
ln -s setup/Make.Debian_CBLAS_OpenMPI Make.Debian_CBLAS_OpenMPI
ln -s setup/Make.Debian_FBLAS_OpenMPI Make.Debian_FBLAS_OpenMPI

# Compilation
make arch=Debian_CBLAS_OpenMPI
make arch=Debian_FBLAS_OpenMPI

# Exécution
cd $HPLROOT/bin/Debian_CBLAS_OpenMPI
orterun -np 2 ./xhpl

cd $HPLROOT/bin/Debian_FBLAS_OpenMPI
orterun -np 2 ./xhpl

Avec le couple Atlas/LAM

  1. Installation des paquets Debian complémentaires
  2. Création de liens pour les fichiers de configuration
  3. Compilation
  4. Lancement du démon MPI
  5. Exécution
# Installation des paquets Debian nécessaire

# Installation les paquets associes a MPI
sudo apt-get install lam4-dev lam-runtime

# Installation des paquets associes a BLAS

# Sur une architecture i386
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev libatlas-sse2-dev libatlas3gf-sse2
# Sur une architecture amd64
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev

# Création des liens symboliques
ln -s setup/Make.Debian_CBLAS_LAM Make.Debian_CBLAS_LAM
ln -s setup/Make.Debian_FBLAS_LAM Make.Debian_FBLAS_LAM

# Compilation
make arch=Debian_CBLAS_LAM
make arch=Debian_FBLAS_LAM

# Lancement du démon de contrôle MPI
lamboot

# Exécution 
cd $HPLROOT/bin/Debian_CBLAS_LAM
mpirun.lam -np 2 ./xhpl

cd $HPLROOT/bin/Debian_FBLAS_LAM
mpirun.lam -np 2 ./xhpl

Avec le couple Atlas/Mpich2 : disponible sur la version Squeeze de Debian

  1. Installation des paquets Debian complémentaires
  2. Création de liens pour les fichiers de configuration
  3. Compilation
  4. Lancement du démon MPI
  5. Exécution
# Installation des paquets Debian nécessaire

# Installation les paquets associes a MPI
sudo apt-get install mpich2 libmpich2-dev libmpich2-1.2

# Installation des paquets associes a BLAS

# Sur une architecture i386
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev libatlas-sse2-dev libatlas3gf-sse2
# Sur une architecture amd64
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev

# Récupération de l'archive HPL
svn checkout http://forge.cbp.ens-lyon.fr/svn/hpl4all/

# Passage dans le dossier de HPL
cd hpl4all
export HPLROOT=$PWD

# Création des liens symboliques
ln -s setup/Make.Debian_CBLAS_Mpich2 Make.Debian_CBLAS_Mpich2
ln -s setup/Make.Debian_FBLAS_Mpich2 Make.Debian_FBLAS_Mpich2

# Compilation
make arch=Debian_CBLAS_Mpich2
make arch=Debian_FBLAS_Mpich2

# Paramétrage du démon MPI
touch $HOME/.mpd.conf
chmod 600 $HOME/.mpd.conf
echo -e "MPD_SECRETWORD=DescartesInutileIncertain" >> $HOME/.mpd.conf

# Lancement du démon de contrôle MPI
mpd &

# Exécution 
cd $HPLROOT/bin/Debian_CBLAS_Mpich2
mpirun.mpich2 -np 2 ./xhpl

cd $HPLROOT/bin/Debian_FBLAS_Mpich2
mpirun.mpich2 -np 2 ./xhpl

Avec le couple Atlas/Mpich : disponible sur la version Lenny de Debian

  1. Installation des paquets Debian complémentaires
  2. Création de liens pour les fichiers de configuration
  3. Compilation
  4. Lancement du démon MPI
  5. Exécution

/!\ Partie en construction /!\

# Installation des paquets Debian nécessaire

# Installation les paquets associes a MPI
sudo apt-get install libmpich-mpd1.0gf libmpich1.0-dev mpich-mpd-bin

# Installation des paquets associes a BLAS
# Sur une architecture i386
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev libatlas-sse2-dev libatlas3gf-sse2
# Sur une architecture amd64
sudo apt-get install libatlas-test libatlas3gf-base libatlas-headers libatlas-base-dev

# Création des liens symboliques
ln -s setup/Make.Debian_CBLAS_Mpich2 Make.Debian_CBLAS_Mpich2
ln -s setup/Make.Debian_FBLAS_Mpich2 Make.Debian_FBLAS_Mpich2

# Compilation
make arch=Debian_CBLAS_Mpich
make arch=Debian_FBLAS_Mpich

# Paramétrage du démon MPI
touch $HOME/.mpd.conf
chmod 600 $HOME/.mpd.conf
echo -e "secretword=DescartesInutileIncertain" > $HOME/.mpd.conf

# Lancement du démon de contrôle MPI
mpd &

# Exécution 
cd $HPLROOT/bin/Debian_CBLAS_Mpich
mpirun.mpich-mpd -np 2 ./xhpl

cd $HPLROOT/bin/Debian_FBLAS_Mpich
mpirun.mpich-mpd -np 2 ./xhpl