Ломоносов

  • В корне есть директория _scratch запус программ надо делать в этой директории.
  • Интересные директории с предустановленными программам можно найти в /opt Например:
    ls /opt
    baqus    Accelrys.old  ccoe  cuda-5.0  dislib    install  mellanox     molpro2010.1       mpi  nmon  octo     pathscale  pdde      pgi             software  toolworks  VRTSpbx  xcat
    Accelrys  acml5.3.0     cuda  dimonta   distribs  intel    modulefiles  molpro2010.1.orig  MS   nvc   old-opt  pdag       pdshared  pgi-backup.tgz  Symantec  VASP       wien2k
    

    ls /opt/software
    DL_POLY  FF8  FlowVision  ga-5-1  Gromacs  netCDF  OpenFOAM  openfoam-2.1  OpenFOAM-2.1  OpenFOAM-2.1.1-impi41  openfoam-2.2  OpenFOAM-2.2  TURBOMOLE  wrapper
    

Сборка Gromacs:

  • Надо зайти на
    ssh compiler
  • Задать параметры компилятора и mpi
    └─> module load 
    dot                impi/4.0.3         mkl/4.0.2.146      module-info        null               openmpi/1.5.5-pgi  use.own            
    ekopath/4.0.11     impi/4.1.0-32bit   module-cvs         modules            openmpi/1.5.5-icc  pgi/12.9           
    
    └─> module list 
    Currently Loaded Modulefiles:
      1) impi/4.1.0          2) intel/13.1.0        3) cuda/5.0.35       
    
  • Скачать и распаковать Gromacs
  • Конфигурация и компиляция
    mkdir build 
    cd build
    cmake28 .. -DCMAKE_INSTALL_PREFIX=/home/users/golovin/progs/gmx-4.6.1-mpi -DGMX_X11=OFF -DGMX_MPI=OFF -DGMX_PREFER_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DGMX_DEFAULT_SUFFIX=OFF -GMX_BINARY_SUFFIX=_plu -DGMX_LIBS_SUFFIX=_plumed -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=OFF
    make
    make install
    make clean
    cmake28 .. -DCMAKE_INSTALL_PREFIX=/home/users/golovin/progs/gmx-4.6.1-mpi -DGMX_X11=OFF -DGMX_MPI=ON -DGMX_PREFER_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DGMX_DEFAULT_SUFFIX=OFF -GMX_BINARY_SUFFIX=_plu -DGMX_LIBS_SUFFIX=_plumed -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=ON
    make mdrun
    make install-mdrun
    
  • Надо выйти из среды compiler
    exit
  • Добавить исполняймы файлы в путь
     
    export PATH=${PATH}:/home/users/golovin/progs/gmx-4.6.1-mpi
    
  • И тут нечто странное, надо скопировать
    cp -r ~/progs ~/_scratch
  • Вот оно и должно работать
    sbatch -n 32 -e md.out -t 2400 impi /home/users/golovin/progs/gmx-4.6.3-impi-gpu/bin/mdrun_gpu -deffnm tro_md -cpi tro_md -noappend -v
    
  • Новое для сборки gromacs 5.0.4 c plumed gpu impi, основная новость, то что собрать c intel compiler не получится в принципе, собираем с gcc. Лучше всего, конечно использовать версии 4.7 и 4.8, но не сегодня (27.2.15). Cmake установленый в системе стар как гумно мамонта, собрал свой в ~/progs/bin/cmake. Он неправильно определяет кой чего в системе, поэтому надо править CMakeCache.txt, отключаем HAVE__ALIGNED_MALLOC:INTERNAL= и _finite_compile_ok:INTERNAL= :
    1374c1423
    < HAVE__ALIGNED_MALLOC:INTERNAL=
    ---
    > HAVE__ALIGNED_MALLOC:INTERNAL=1
    
    1511,1513c1560,1562
    < _finite_compile_ok:INTERNAL=
    < //Result of isfinite check
    < isfinite_compile_ok:INTERNAL=
    ---
    > _finite_compile_ok:INTERNAL=1
    > //Result of _isfinite check
    > _isfinite_compile_ok:INTERNAL=1
    
    ┌─[golovin @ compiler-1 ~/distr/gromacs-5.0.4/build ] 
    └─> module list 
    Currently Loaded Modulefiles:
      1) slurm/2.5.6      2) impi/5.0.1-ofa   3) cuda/6.5.14
    
    

Сборка СPMD

  • Важный кусок Makefile
SRC  = .
DEST = .
BIN  = .
FFLAGS = -i-static -O2  
LFLAGS = -L/opt/intel/mkl/lib/intel64  -Wl,--start-group \
             -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group \
             -lm -lpthread  -liomp5
CFLAGS = -D__alpha
CPP = /lib/cpp -P -C -traditional
CPPFLAGS = -D__alpha -DPOINTER8 -DFFT_DEFAULT -DALPHALINUX -D__HPC \
         -DMYRINET -DPARALLEL=parallel -DLINUX_IA64_INTEL -DINTEL_MKL  
NOOPT_FLAG = 
CC = mpicc -c -O
FC = mpif90 -c
LD = mpif90
AR = /usr/bin/ar -r

Сборка Gromacs+libMOPA2012+Plumed и запуск

Итак сборка:

Currently Loaded Modulefiles:
  1) slurm/2.5.6         2) intel/15.0.090      3) mkl/11.2.0          4) openmpi/1.8.4-ic

MPI нам нужен для массового multidir

Вероятно придется собрать MPI Plumed:

make clean
./configure --enable-mpi --prefix=$HOME/progs && make && make install

Патчим Gromacs Артура:

cd ~/distr/gromacs-5.0.4-mopac-new
~/progs/bin/plumed patch -r
~/progs/bin/plumed patch -p

Собираем :

mkdir build-mpi && cd build-mpi
rm -rf *
### это интуиция + grep ####
export MOPAC_LIBRARY=/mnt/data/users/dm3/vol5/golovin/progs/mopac_static.a
cmake  .. -DGMX_QMMM_PROGRAM=MOPAC2012 -DGMX_MPI=ON -DGMX_DOUBLE=yes -DBUILD_SHARED_LIBS=OFF  -DGMX_BUILD_MDRUN_ONLY=ON -DGMX_BUILD_OWN_FFTW=ON
make  -j8
cp bin/mdrun_mpi_d ~/_scratch/progs/bin/mdrun_504_plumed_mopac_mpi_icc

Используем:

└─> module list 
Currently Loaded Modulefiles:
  1) slurm/2.5.6         2) mkl/11.2.0          3) openmpi/1.8.4-icc   4) intel/15.0.090

parallel --gnu "cd {1};ln -s ../meta.dat; ln -s ../2_meta_amd.tpr meta_amd.tpr" ::: {1..64}
sbatch -t 800 -N8 --ntasks-per-node=8 ompi /home/users/golovin/progs/bin/mdrun_504_plumed_mopac_mpi_icc -deffnm meta_amd -plumed meta.dat -v  -multidir {1..64}

Обратите внимание на COLVAR.0 ... COLVAR.64

и реально полезная ссылка про извращения со слурмом (Futurama(c))

http://www.nersc.gov/users/computational-systems/cori/running-jobs/example-batch-scripts/

Мои практикумы и лекции: