>>> "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.