[CPMD-list] OpenMP or OpenMP+MPI

Axel Kohlmeyer axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Wed Oct 6 19:28:22 CEST 2004


>>> "IK" == I Kozin <Kozin> writes:

IK> Hello,
IK> was anybody lucky enough to be able to build and run
IK> CPMD using OpenMP or (better yet) OpenMP+MPI on a platform
IK> other than IBM Power4?

IK> Not a problem to build the code but it always crashes.
IK> I remember somebody was asking a similar question but
IK> don't think it was answered. 

hi,

that must have been me. openmp is really tricky, since
there are obviously differences in the openmp implementations
between platforms. also, you should keep in mind, that for
almost all platforms using openmp only makes sense, when 
MPI has scaled out. especially on linux pcs, the penalty 
for thread creation kills most of the performance gain
from the openmp (be sure to compare wall time and not
TCPU). some level of threaded speedup can already be 
achieved by just using a multi-threaded BLAS/LAPACK
(e.g. intel MKL or a mt-enabled ATLAS).

the matter is current being investigated,
but don't hold your breath. the best workaround, that i have
found so far, is to compile only a small subset with openmp
enabled. the respective objects are: 

util.o mltfft.o azzero.o fftutil.o rortv.o rortog.o vofrho.o velupi.o velupa.o 
these seem safe to be compiled with openmp on x86 machines.


below is the top part of a modified makefile, that i
have used to assemble the list of 'usable' objects and 
test to the impact of using an mt-enabled atlas.

some additional info is at.
http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/cpmd-linux.html


best regards,
     axel kohlmeyer.

-------


SRC  = .
DEST = .
BIN  = .
#QMMM_FLAGS = -D__QMECHCOUPL
#QMMM_LIBS  = -L. -lmm
LAPACK = -L. -latlas_athlon
#FFLAGS = -c -zero -r8 -w95 -O3 -pc64 -tpp6 -unroll -cm -tune pn3 -arch pn3
 
FFLAGS = -c -zero -w95 -O3 -pc64 -tpp6 -unroll -cm -tune pn3 -arch pn3 
LFLAGS = $(LAPACK) -Vaxlib -static-libcxa $(QMMM_LIBS) 
CFLAGS = -c -O2 -Wall
CPP = /lib/cpp -P -C -traditional
CPPFLAGS = -D__Linux -D__PGI -DLAPACK -DFFT_DEFAULT -DLINUX_IFC  
NOOPT_FLAG = 
CC = icc -O -pc64 -tpp6 -tune pn3 -arch pn3 -unroll
OPENMP= 
OMP_OBJ=util.o mltfft.o azzero.o fftutil.o rortv.o rortog.o \
        vofrho.o velupi.o velupa.o 
FC = ifort $(OPENMP)
LD = ifort $(OPENMP)
AR = 
#----------------------------------------------------------------------------

CFGDEST = .
CFGMACH = PC-IFC
# OpenMP test hack
default:
        -rm -f cpmd.x cpmd-normal.x cpmd-omp.x cpmd-mt.x cpmd-omp-mt.x
        -rm -f $(OMP_OBJ)
        $(MAKE) $(MFLAGS) cpmd.x
        mv cpmd.x cpmd-normal.x
        $(MAKE) $(MFLAGS) LAPACK='-L. -latlas_athlon' cpmd.x
        mv cpmd.x cpmd-mt.x
        -rm -f $(OMP_OBJ)
        $(MAKE) $(MFLAGS) OPENMP=' -fpp -openmp' LAPACK='-L. -latlas_athlon_mt' 
cpmd.x
        mv cpmd.x cpmd-omp-mt.x
        $(MAKE) $(MFLAGS) OPENMP=' -fpp -openmp' cpmd.x
        mv cpmd.x cpmd-omp.x




IK> TIA,

IK> Igor

IK> i. kozin at dl.ac.uk
IK> +44 (0) 1925 603308
IK> http://www.cse.clrc.ac.uk/disco
IK> _______________________________________________
IK> CPMD-list mailing list
IK> CPMD-list at cpmd.org
IK> http://cpmd.org/mailman/listinfo/cpmd-list



--

=======================================================================
Axel Kohlmeyer       e-mail: axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Lehrstuhl fuer Theoretische Chemie          Phone: ++49 (0)234/32-26673
Ruhr-Universitaet Bochum - NC 03/53         Fax:   ++49 (0)234/32-14045
D-44780 Bochum  http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.



More information about the CPMD-list mailing list