Ok below an arch.make which works, and lets siesta run in parallel, apparently -openmp is required, otherwise I get errors of the type (full output included below the arch.make)
/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_fini_8' kmpc appears to be library coming with openmp. *********************************************************************** SIESTA_ARCH=x86_64-unknown-linux-gnu--Intel FPP= FPP_OUTPUT= FC=mpiifort RANLIB=ranlib SYS=nag SP_KIND=4 DP_KIND=8 KINDS=$(SP_KIND) $(DP_KIND) FFLAGS=-g -check all -traceback -openmp FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT LDFLAGS=-static-intel -openmp ARFLAGS_EXTRA= FCFLAGS_fixed_f= FCFLAGS_free_f90= FPPFLAGS_fixed_F= FPPFLAGS_free_F90= BLAS_LIBS=-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core LAPACK_LIBS=-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core BLACS_LIBS=-lmkl_blacs_lp64 -lmkl_blacs_intelmpi_lp64 SCALAPACK_LIBS= -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 COMP_LIBS=dc_lapack.a NETCDF_LIBS= NETCDF_INTERFACE= LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) #SIESTA needs an F90 interface to MPI #This will give you SIESTA's own implementation #If your compiler vendor offers an alternative, you may change #to it here. #MPI_INTERFACE=/opt/intel/impi/4.0.3.008/intel64/lib/libmpiif.a MPI_INTERFACE=libmpi_f90.a MPI_INCLUDE=. ************************************************************************************************************* siesta.o: In function `siesta': /home/borghi/marzari/siesta/siesta-ldau/Src/siesta.F:1: undefined reference to `__kmpc_begin' /home/borghi/marzari/siesta/siesta-ldau/Src/siesta.F:37: undefined reference to `__kmpc_end' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ok_to_fork' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_single' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ordered' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_init_8' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_get_thread_num' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_barrier' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_get_num_threads' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_get_num_procs' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_next_4' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_reduce_nowait' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_critical' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_fini_8' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_cmplx8_add' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_float4_add' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_serialized_parallel' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_critical' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_init_8' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `ompc_set_nested' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_get_nested' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_fini_4' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_in_parallel' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_push_num_threads' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_reduce_nowait' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `omp_get_max_threads' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_init_4' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_serialized_parallel' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_flush' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_single' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_next_8' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_float8_add' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_init_4' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_global_thread_num' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_ordered' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_fork_call' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_fixed8_add' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_fini' /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_cmplx4_add' ________________________________________ De : siesta-l-requ...@uam.es [siesta-l-requ...@uam.es] de la part de Nick Papior Andersen [nickpap...@gmail.com] Envoyé : mardi 13 mai 2014 10:57 À : siesta-l@uam.es Objet : Re: [SIESTA-L] compiling Siesta in parallel with intelmpi Add -DMPI to FPPFLAGS and try again... 2014-05-13 7:48 GMT+00:00 Borghi Giovanni <giovanni.bor...@epfl.ch<mailto:giovanni.bor...@epfl.ch>>: Dear all, I am trying to compile Siesta in parallel using intel mpi and mpiifort. However, when running with mpirun -np 6 siesta_rootdir/Obj/siesta The code starts in serial mode. Can anyone suggest me what is wrong? Does anyone have an example arch.make I may draw inspiration from? I paste the main part of the arch.make below... Thank you very much! Giovanni ******************************************************************************* SIESTA_ARCH=x86_64-unknown-linux-gnu--unknown FPP= FPP_OUTPUT= FC=mpiifort RANLIB=ranlib SYS=nag SP_KIND=4 DP_KIND=8 KINDS=$(SP_KIND) $(DP_KIND) FFLAGS= -O2 -openmp FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT LDFLAGS= -static-intel -openmp ARFLAGS_EXTRA= FCFLAGS_fixed_f= FCFLAGS_free_f90= FPPFLAGS_fixed_F= FPPFLAGS_free_F90= BLAS_LIBS=-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core LAPACK_LIBS=-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core BLACS_LIBS=-lmkl_blacs_lp64 -lmkl_blacs_intelmpi_lp64 SCALAPACK_LIBS= -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 COMP_LIBS=dc_lapack.a NETCDF_LIBS= NETCDF_INTERFACE= LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) #SIESTA needs an F90 interface to MPI #This will give you SIESTA's own implementation #If your compiler vendor offers an alternative, you may change #to it here. #MPI_INTERFACE=/opt/intel/impi/4.0.3.008/intel64/lib/libmpiif.a<http://4.0.3.008/intel64/lib/libmpiif.a> MPI_INTERFACE=/usr/lib/openmpi/lib/libmpi_f90.a MPI_INCLUDE=/opt/intel/impi/4.0.3.008/intel64/include/<http://4.0.3.008/intel64/include/> -- Kind regards Nick