<br><br>On Wednesday, May 11, 2011 11:05:03 PM UTC-4, Ross, Sun wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div><div style="font-size:13pt">Hi,<br>1. For openmp (1.4.2):<br>./configure --prefix=.../openmpi142 --enable-mpi-threads --enable-shared --with-threads=posix --enable-mpi-f90 CC=cc cpp=cpp CXX=c++ FC=ifort<br></div></div></blockquote><div><br></div><div>there no need to hook ifort permanently into the OpenMPI installation.</div><div>the more elegant way is to do a symlink from opal_wrapper to, e.g., mpiifort</div><div>and then add a file mpiifort-wrapper-data.txt to $OMPI_HOME/share/openmpi:</div><div><div>project=Open MPI</div><div>project_short=OMPI</div><div>version=1.4.3</div><div>language=Fortran 77</div><div>compiler_env=F77</div><div>compiler_flags_env=FFLAGS</div><div>compiler=ifort</div><div>extra_includes=</div><div>preprocessor_flags=</div><div>compiler_flags=</div><div>linker_flags= -static-intel -threads</div><div>libs=-lmpi_f77 -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl </div><div>required_file=</div><div>includedir=${includedir}</div><div>libdir=${libdir}</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div><div style="font-size:13pt">2. for cp2k.popt:<br></div></div></blockquote><div><br></div><div>we're after getting cp2k.psmp  working. not cp2k.popt</div><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div><div style="font-size:13pt">INTEL_INC=/opt/intel/Compiler/<wbr>11.1/072/mkl/include<br>FFTW3_INC=.../fftw322/include<br><br>CC       = cc<br>CPP      = <br>FC       = mpif90 -FR<br>#FC       = mpif90 <br>LD = mpif90 -i_dynamic -openmp<br>AR       = ar -r<br>#DFLAGS   = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3<br>DFLAGS = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3 -D__LIBINT<br>CPPFLAGS = -C -traditional $(DFLAGS) -I$(INTEL_INC)<br>FCFLAGS
 = $(DFLAGS) -I$(INTEL_INC) -I$(FFTW3_INC) -O2 -xW -heap-arrays 64 -funroll-loops -fpp -free<br>FCFLAGS2 = $(DFLAGS) -I$(INTEL_INC) -I$(FFTW3_INC) -O1 -xW -heap-arrays 64 -funroll-loops -fpp -free<br>LDFLAGS = $(FCFLAGS) -I$(INTEL_INC) -L/opt/intel/mkl/<a href="http://10.1.0.015/lib/em64t" target="_blank">10.1.0.015/<wbr>lib/em64t</a> <br>#<br>LIBS = -L/opt/intel/mkl/<a href="http://10.1.0.015/lib/em64t" target="_blank">10.1.0.015/<wbr>lib/em64t</a> -lmkl_scalapack -lmkl_em64t -lmkl_blacs_openmpi_lp64 -lguide -lpthread -lstdc++\<br></div></div></blockquote><div><br></div><div>this may cause some issues unless you define OMP_NUM_THREADS=1 by default. an IMO better</div><div>solution is to link all intel libraries statically (so you don't have to mess with LD_LIBRARY_PATH</div><div>after the compile) and use the sequential interface. e.g.</div><div><br></div><div>LDFLAGS  = $(FCFLAGS) -static-intel<br></div><div><div>LIBS     = -L/opt/intel/Compiler/11.1/072/mkl/lib/em64t -Wl,--start-group,-Bstatic \</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 \</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group,-Bdynamic \</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>-lfftw3</div></div><div><br></div><div>this also works nicely for gfortran:</div><div><div>LDFLAGS  = $(FCFLAGS) </div><div>LIBS     = -L/opt/intel/Compiler/11.1/072/mkl/lib/em64t -Wl,--start-group,-Bstatic \</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 \</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group,-Bdynamic \</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>-lfftw3</div></div><div><br></div><div>the resulting executables work very well on our clusters. with and without</div><div>thread support in OpenMPI (n.b.: one of the really nice things about OpenMPI</div><div>is that i can swap the two MPI compiles without having to relink cp2k).</div><div><br></div><div>now if only the cp2k.psmp binary would work, too. i would be a very happy</div><div>camper and my colleagues would have no more excuse to not run cp2k jobs fast.</div><div><br></div><div>cheers,</div><div>    axel.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div><div style="font-size:13pt">.../fftw322/lib/libfftw3.a \<br>.../libint114/lib/libderiv.a \<br>.../libint114/lib/libint.a <br><br>OBJECTS_ARCHITECTURE = machine_intel.o<br><br><br>graphcon.o: graphcon.F<br>        $(FC) -c $(FCFLAGS2) <br>------------------------------<wbr>------------------------------<wbr>----<br>"..." stands for your own direction. <br><br><br>Best regards,<br><br></div></div></blockquote>