* [[developpement:activites:integration:|Intégration]] Modification le 6 mai 2014 : passage en 7.6.4 ====== Intégration de ABInit sur Debian Wheezy ====== La version disponible dans Wheezy, et même dans Sid, est très ancienne (5.3.4 pour une version courante 7.6.4 au 6 mai 2014). ===== Installation des prérequis ===== apt-get -y install libopenmpi-dev libnetcdff5 libnetcdf-dev openmpi-bin openmpi-common libhdf5-openmpi-dev libgsl0-dev libfftw3-dev openjdk-6-jdk python-numpy python-numpy-doc etsf-io gcc-4.7 g++-4.7 gfortran-4.7 libfftw3-mpi3 libfftw3-mpi-dev gcc gfortran g++ ===== Récupération des sources ===== cd /root wget http://ftp.abinit.org/abinit-7.6.4.tar.gz ===== Expansion de l'archive ===== cd /root tar xzf /root/abinit-7.6.4.tar.gz cd /root/abinit-7.6.4 Ce plus, de manière à pouvoir exécuter ces codes sur toutes les architectures, les ''mtune=native'' ont été remplacés. ===== Compilation & Installation ===== ==== Sur une machine 64 bits ==== === Compilation === OMPI_CC=/usr/bin/gcc-4.7 OMPI_CXX=/usr/bin/g++-4.7 OMPI_FC=/usr/bin/gfortran-4.7 CFLAGS="-mtune=generic -O3 -mssse3" FCFLAGS="-mtune=generic -O3 -mssse3 -ffree-form -ffree-line-length-none" CXXFLAGS="-mtune=generic -O3 -mssse3" FC_LDFLAGS_EXTRA="-fopenmp" CC=mpicc.openmpi CXX=mpic++.openmpi FC=mpif90.openmpi ./configure --prefix=/opt/abinit-7.6.4 --enable-openmp --enable-mpi --enable-mpi-io --enable-mpi-trace --enable-64bit-flags --with-fft-flavor=fftw3-mpi --with-fft-libs="-L/usr/lib/x86_64-linux-gnu -lfftw3f -lfftw3_mpi -lfftw3f_threads -lfftw3_threads -lfftw3" --enable-bigdft --enable-exports --enable-fallbacks --with-linalg-flavor=custom --with-linalg-incs="-I/usr/include/atlas" --with-linalg-libs="-L/usr/lib/atlas-base/atlas -llapack -lblas" --with-etsf-io-incs="-I/usr/include" --with-fft-incs="-I/usr/include" --enable-netcdf --with-netcdf-incs="-I/usr/include" --with-netcdf-libs="-L/usr/lib" time make mj4 === Installation === make install TEMP=$PWD cd /opt [ -d abinit ] && rm -f abinit ln -s abinit-7.6.4 abinit === Compilation & Installation des FallBacks === Les composants **linalg** et **bigdft** font péter la compilation. Ils en sont donc exclus sans ménagement ! cd $TEMP/fallbacks CC=/usr/bin/gcc-4.7 CXX=/usr/bin/g++-4.7 FC=/usr/bin/gfortran-4.7 CFLAGS="-mtune=generic -O3 -mssse3" FCFLAGS="-mtune=generic -O3 -mssse3 -ffree-form -ffree-line-length-none" CXXFLAGS="-mtune=generic -O3 -mssse3" FC_LDFLAGS_EXTRA="-fopenmp" ./configure --prefix=/opt/abinit-7.6.4 --enable-linalg=no --enable-bigdft=no make make install rsync -a $TEMP/fallbacks/exports/ /opt/abinit-7.6.4/ ==== Sur machine 64 bits avec GPU Nvidia ==== === Préparation (pas propre...) === Normalement, le ''configure'' permet de spécifier les localisations des différents composants, mais cela ne semble pas fonctionner. Autant recréer un dosser ''/tmp/cuda'' contenant l'arborescence vers tous les composants CUDA : mkdir /tmp/cuda ln -s /usr/lib/x86_64-linux-gnu /tmp/cuda/lib64 ln -s /usr/include/ /tmp/cuda/include ln -s /usr/bin /tmp/cuda/bin === Compilation === make distclean OMPI_CC=/usr/bin/gcc OMPI_CXX=/usr/bin/g++ OMPI_FC=/usr/bin/gfortran CFLAGS="-mtune=generic -O3 -mssse3" FCFLAGS="-mtune=generic -O3 -mssse3 -ffree-form -ffree-line-length-none" CXXFLAGS="-mtune=generic -O3 -mssse3" FC_LDFLAGS_EXTRA="-fopenmp" CC=mpicc.openmpi CXX=mpic++.openmpi FC=mpif90.openmpi ./configure --prefix=/opt/abinit-7.6.4-cuda --enable-openmp --enable-mpi --enable-mpi-io --enable-mpi-trace --enable-64bit-flags --with-fft-flavor=fftw3-mpi --with-fft-libs="-L/usr/lib/x86_64-linux-gnu -lfftw3f -lfftw3_mpi -lfftw3f_threads -lfftw3_threads" --enable-bigdft --with-linalg-flavor=custom --with-linalg-incs="-I/usr/include/atlas" --with-linalg-libs="-L/usr/lib/atlas-base/atlas -llapack -lblas" --with-etsf-io-incs="-I/usr/include" --with-fft-incs="-I/usr/include" --enable-netcdf --with-netcdf-incs="-I/usr/include" --with-netcdf-libs="-L/usr/lib" --enable-gpu --with-gpu-prefix="/tmp/cuda" make mj4 === Installation === make install TEMP=$PWD cd /opt cd $TEMP ==== Sur machine 64 bits, GPU Nvidia, librairie MAGMA ==== Par défaut, la librairie Magma est installée dans ''/opt/magma/lib'' et directement visible par le système : ''/etc/ld.so.conf.d/magma.conf'' avec ce chemin. Pour l'installation de Magma sous Debian Wheezy, le CBP propose cette [[developpement:activites:integration:magma4wheezy|documentation]]. === Compilation === make distclean OMPI_CC=/usr/bin/gcc OMPI_CXX=/usr/bin/g++ OMPI_FC=/usr/bin/gfortran CFLAGS="-mtune=generic -O3 -mssse3" FCFLAGS="-mtune=generic -O3 -mssse3 -ffree-form -ffree-line-length-none" CXXFLAGS="-mtune=generic -O3 -mssse3" FC_LDFLAGS_EXTRA="-fopenmp" CC=mpicc.openmpi CXX=mpic++.openmpi FC=mpif90.openmpi ./configure --prefix=/opt/abinit-7.6.4-magma --enable-openmp --enable-mpi --enable-mpi-io --enable-mpi-trace --enable-64bit-flags --with-fft-flavor=fftw3-mpi --with-fft-libs="-L/usr/lib/x86_64-linux-gnu -lfftw3f -lfftw3_mpi -lfftw3f_threads -lfftw3_threads" --enable-bigdft --with-linalg-flavor="custom+magma" --with-linalg-incs="-I/opt/magma/include" --with-linalg-libs="-L/opt/magma/lib -lmagma" --with-etsf-io-incs="-I/usr/include" --with-fft-incs="-I/usr/include" --enable-netcdf --with-netcdf-incs="-I/usr/include" --with-netcdf-libs="-L/usr/lib" --enable-gpu --with-gpu-prefix="/tmp/cuda" make mj4 ==== Sur une machine 32 bits ==== === Compilation === OMPI_CC=/usr/bin/gcc-4.7 OMPI_CXX=/usr/bin/g++-4.7 OMPI_FC=/usr/bin/gfortran-4.7 CFLAGS="-mtune=generic -O3 -mssse3" FCFLAGS="-mtune=generic -O3 -mssse3 -ffree-form -ffree-line-length-none" CXXFLAGS="-mtune=generic -O3 -mssse3" FC_LDFLAGS_EXTRA="-fopenmp" CC=mpicc.openmpi CXX=mpic++.openmpi FC=mpif90.openmpi ./configure --prefix=/opt/abinit-7.6.4 --enable-openmp --enable-mpi --enable-mpi-io --enable-mpi-trace --with-fft-flavor=fftw3-mpi --with-fft-libs="-L/usr/lib/i386-linux-gnu -lfftw3f -lfftw3_mpi -lfftw3f_threads -lfftw3_threads" --enable-bigdft --with-linalg-flavor=custom --with-linalg-incs="-I/usr/include/atlas" --with-linalg-libs="-L/usr/lib/atlas-base/atlas -llapack -lblas" --with-etsf-io-incs="-I/usr/include" --with-fft-incs="-I/usr/include" --enable-netcdf --with-netcdf-incs="-I/usr/include" --with-netcdf-libs="-L/usr/lib" time make mj4 === Installation === make install TEMP=$PWD cd /opt [ -d abinit ] && rm abinit ln -s abinit-7.6.4 abinit cd $TEMP ===== Exécution des tests ===== cd tests make tests_bench --- //[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2014/05/06 10:32//