Подробная инструкция по конфигурированию GROMACS на Blue Gene/P доступна здесь: http://wiki.gromacs.org/index.php/GROMACS_on_BlueGene
Установка FFTW:
CC=mpixlc_r \ CFLAGS="-O3 -qarch=450d -qtune=450" \ MPICC=mpixlc_r \ CXX=mpixlC_r \ CXXFLAGS="-O3 -qarch=450d -qtune=450" \ F77=mpixlf77_r \ FFLAGS="-O3 -qarch=450d -qtune=450" \ LIBS="-lmass" \ ./configure --enable-mpi --enable-openmp --enable-fma --prefix=/home/oz/gro/fftw
FFTW на фронтэнде:
CC=xlc_r \ CFLAGS="-q64" \ CXX=xlC_r \ CXXFLAGS="-q64" F77="xlf77_r -q64" \ ./configure --prefix=/gpfs/data/oz/fftw.fen --disable-fortran
Установка GROMACS:
CC=mpixlc_r \ CFLAGS="-O3 -qarch=450d -qtune=450" \ MPICC=mpixlc_r \ CXX=mpixlC_r \ CXXFLAGS="-O3 -qarch=450d -qtune=450" \ F77=mpixlf77_r \ FFLAGS="-O3 -qarch=450d -qtune=450" \ LIBS="-lmass" \ CPPFLAGS="-I/home/oz/gro/fftw/include" \ LDFLAGS="-L/home/oz/gro/fftw/lib" \ ./configure \ --prefix=/home/oz/gro/gromacs \ --host=ppc \ --build=ppc64 \ --enable-ppc-sqrt=1 \ --enable-bluegene \ --enable-mpi \ --with-fft=fftw2 \ --without-x \ --enable-double \ --disable-ia32-3dnow \ --disable-ia32-sse \ --disable-x86-64-sse \ --disable-ia64-asm \ --disable-apple-64bit
Установка GROMACS на фронтэнде:
CC=xlc_r \ CFLAGS="-q64" \ CXX=xlC_r \ CXXFLAGS="-q64" \ F77=xlf77_r \ FFLAGS="-q64" \ CPPFLAGS="-I/home/oz/gro/fftw.fen/include" \ LDFLAGS="-L/home/oz/gro/fftw.fen/lib" \ ./configure \ --prefix=/home/oz/gro/gromacs.fen \ --host=ppc \ --build=ppc64 \ --enable-ppc-sqrt=1 \ --with-fft=fftw2 \ --without-x \ --enable-double \ --disable-ia32-3dnow \ -disable-ia32-sse \ --disable-x86-64-sse \ --disable-ia64-asm \ --disable-apple-64bit
В конфигурационных файлах нужно прописать:
export PATH=$PATH:/gpfs/data/oz/gromacs.fen/bin/
Более стабильный вариант:
не использовать опцию --bluegene и применить ключи -qstrict -qarch=450 (вместо 450d).
Успешно работает на 512 ядрах (128 вычислительных узлов в VN-режиме или 512 — в SMP-режиме).