From 30c688298720fd7d58b43331865ec86f82b66cd5 Mon Sep 17 00:00:00 2001 From: Alexander Pace <alexander.pace@Lligo.org> Date: Wed, 7 Mar 2018 18:11:47 -0800 Subject: [PATCH] Modified the optimized makefile for intel single dynamic library compilation --- .../Makefile.ligosoftware_icc_gstreamer-1.0 | 64 +++++++++++-------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/gstlal-inspiral/share/post_O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 b/gstlal-inspiral/share/post_O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 index be0784afd2..6725e07212 100644 --- a/gstlal-inspiral/share/post_O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 +++ b/gstlal-inspiral/share/post_O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0 @@ -72,9 +72,9 @@ GSTPLUGINSGOOD=gst-plugins-good-1.4.5 GSTPLUGINSBASE=gst-plugins-base-1.4.5 GSTREAMER=gstreamer-1.4.5 # CIT, LLO, LHO -#GINTRO=gobject-introspection-1.50.0 +GINTRO=gobject-introspection-1.50.0 #UWM -GINTRO=gobject-introspection-1.42.0 +#GINTRO=gobject-introspection-1.42.0 GSL=gsl-1.16 ORC=orc-0.4.26 PYFFTW=pyFFTW-0.9.0 @@ -113,9 +113,9 @@ GSL_2_TARGET=$(INSTALL_DIR)/lib/pkgconfig/gsl.pc.orig GSL_1_TARGET=$(INSTALL_DIR)/lib/libgsl.so ORC_TARGET=$(INSTALL_DIR)/lib/liborc-0.4.so # CIT, LLO, LHO -#PYFFTW_TARGET=$(INSTALL_DIR)/lib64/python2.7/site-packages/pyfftw/pyfftw.so +PYFFTW_TARGET=$(INSTALL_DIR)/lib64/python2.7/site-packages/pyfftw/pyfftw.so #UWM -PYFFTW_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/pyfftw/pyfftw.so +#PYFFTW_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/pyfftw/pyfftw.so FFTW_TARGET=$(INSTALL_DIR)/lib/libfftw3.so # tarballs @@ -175,7 +175,7 @@ WHITE="${esc}[m" # Determine cluster CLUSTER:=$(shell hostname -d) -ICC_CIT:=/ldcg/intel/2017u2/bin/compilervars.sh +ICC_CIT:=/ldcg/intel/2018u1/bin/compilervars.sh ICC_LHO:=/ldcg/intel/2017u2/bin/compilervars.sh ICC_LLO:=/ldcg/intel/2017u2/bin/compilervars.sh ICC_UWM:=/opt/intel/2017u4/bin/compilervars.sh @@ -192,33 +192,36 @@ env.sh : @echo 'unset GST_PLUGIN_PATH PYTHONPATH' > $@ @echo 'unset LD_LIBRARY_PATH LIBRARY_PATH LD_PRELOAD' >> $@ @echo 'LAL_PATH=${PWD}/opt' >> $@ - @echo 'export CFLAGS="-O3 -march=native -lfftw3 -lfftw3f -lfftw3_threads -lfftw3f_threads -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib"' >> $@ + @echo 'export CFLAGS="-O3 -march=native"' >> $@ + @echo 'export LDMKLFLAGS="-lmkl_rt -lpthread -lm -ldl"' >> $@ @echo 'export GCCFLAGS="-fPIC -O3 -march=native"' >> $@ @if [[ ${CLUSTER} == *"ligo.caltech.edu" ]] ; then \ echo "source ${ICC_CIT} intel64" >> $@ ; \ - echo 'LDFLAGS_INTEL="-L$${MKLROOT}/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L$${MKLROOT}/lib/intel64"' >> $@ ; \ elif [[ ${CLUSTER} == *"ligo-wa.caltech.edu" ]] ; then \ echo "source ${ICC_LHO} intel64" >> $@ ; \ - echo 'LDFLAGS_INTEL="-L$${MKLROOT}/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L$${MKLROOT}/lib/intel64"' >> $@ ; \ elif [[ ${CLUSTER} == *"ligo-la.caltech.edu" ]] ; then \ echo "source ${ICC_LLO} intel64" >> $@ ; \ - echo 'LDFLAGS_INTEL="-L$${MKLROOT}/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L$${MKLROOT}/lib/intel64"' >> $@ ; \ elif [[ ${CLUSTER} == *"nemo.uwm.edu" ]] ; then \ echo "source ${ICC_UWM} intel64" >> $@ ; \ - echo 'LDFLAGS_INTEL="-L$${MKLROOT}/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L$${MKLROOT}/lib/intel64"' >> $@ ; \ elif [[ ${CLUSTER} == *"psu.edu" ]] ; then \ echo "source ${ICC_PSU} intel64" >> $@ ; \ echo 'export LIBRARY_PATH=$${LD_LIBRARY_PATH}' >> $@ ; \ - echo 'LDFLAGS_INTEL="-L$${MKLROOT}/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L$${MKLROOT}/lib/intel64"' >> $@ ; \ elif [[ ${CLUSTER} == *"atlas.local" ]] ; then \ echo "source ${ICC_ATLAS} intel64" >> $@ ; \ - echo 'LDFLAGS_INTEL="-L/opt/intel/2015/lib/intel64 -L/opt/intel/2015/mkl/lib/intel64"' >> $@ ; \ + echo 'LDFLAGS_INTEL="$${LDMKLFLAGS} -L/opt/intel/2015/lib/intel64 -L/opt/intel/2015/mkl/lib/intel64"' >> $@ ; \ fi @echo 'export LD_LIBRARY_PATH=$${LAL_PATH}/lib:$${LD_LIBRARY_PATH}' >> $@ @echo 'export CC="icc"' >> $@ @echo 'export CXX="icpc"' >> $@ + @echo 'export MKL_THREADING_LAYER=SEQUENTIAL' >> $@ + @echo 'export MKL_INTERFACE_LAYER=ILP64' >> $@ @echo '# Force explicit linking of optimized FFTW libraries:' >> $@ - @echo 'LDFLAGS="$${LDFLAGS_INTEL} -L${PWD}/opt/lib "' >> $@ + @echo 'LDFLAGS="-lfftw3 -lfftw3f -lfftw3_threads -lfftw3f_threads $${LDFLAGS_INTEL} -L${PWD}/opt/lib "' >> $@ @echo '# These are environment variables that do get exported' >> $@ @echo 'PATH=$${LAL_PATH}/bin:$${PATH}' >> $@ @echo 'PKG_CONFIG_PATH=$${LAL_PATH}/lib/pkgconfig:$${LAL_PATH}/lib64/pkgconfig:$${PKG_CONFIG_PATH}' >> $@ @@ -373,12 +376,12 @@ $(LALINFER_TARGET) : $(LALPULSAR_TARGET) if [ "${LALSUITE_GIT}" = "1" ]; then \ cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ cd $(LALSUITE_REPO)/lalinference && ./00boot ; \ - cd $(LALSUITE_REPO)/lalinference && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(LALSUITE_REPO)/lalinference && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ cd $(LALSUITE_REPO)/lalinference && make -j$(CORES) && make install -j$(CORES) ; \ else \ tar -xf $(TAR_DIR)/$(LALINFERENCE).tar.xz -C $(SRC_DIR) ; \ cd $(SRC_DIR)/$(LALINFERENCE) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ - cd $(SRC_DIR)/$(LALINFERENCE) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(SRC_DIR)/$(LALINFERENCE) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ cd $(SRC_DIR)/$(LALINFERENCE) && make -j$(CORES) && make install -j$(CORES) ; \ fi ; @@ -388,12 +391,12 @@ $(LALPULSAR_TARGET) : $(LALINSPIRAL_TARGET) if [ "${LALSUITE_GIT}" = "1" ]; then \ cd $(LALSUITE_REPO)/lalapps && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ cd $(LALSUITE_REPO)/lalpulsar && ./00boot ; \ - cd $(LALSUITE_REPO)/lalpulsar && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(LALSUITE_REPO)/lalpulsar && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ cd $(LALSUITE_REPO)/lalpulsar && make -j$(CORES) && make install -j$(CORES) ; \ else \ tar -xf $(TAR_DIR)/$(LALPULSAR).tar.xz -C $(SRC_DIR) ; \ cd $(SRC_DIR)/$(LALPULSAR) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ - cd $(SRC_DIR)/$(LALPULSAR) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(SRC_DIR)/$(LALPULSAR) && ./configure --enable-swig-python --disable-lalxml --prefix=$(INSTALL_DIR) ; \ cd $(SRC_DIR)/$(LALPULSAR) && make -j$(CORES) && make install -j$(CORES) ; \ fi ; @@ -448,12 +451,12 @@ $(LALSIM_TARGET) : $(LALMETAIO_TARGET) if [ "${LALSUITE_GIT}" = "1" ]; then \ cd $(LALSUITE_REPO)/lalsimulation && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ cd $(LALSUITE_REPO)/lalsimulation && ./00boot ; \ - cd $(LALSUITE_REPO)/lalsimulation && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(LALSUITE_REPO)/lalsimulation && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) --disable-gcc-flags ; \ cd $(LALSUITE_REPO)/lalsimulation && make -j$(CORES) && make install -j$(CORES) ; \ else \ tar -xf $(TAR_DIR)/$(LALSIMULATION).tar.xz -C $(SRC_DIR) ; \ cd $(SRC_DIR)/$(LALSIMULATION) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ - cd $(SRC_DIR)/$(LALSIMULATION) && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" ; \ + cd $(SRC_DIR)/$(LALSIMULATION) && ./configure --disable-openmp --enable-swig-python --prefix=$(INSTALL_DIR) --disable-gcc-flags ; \ cd $(SRC_DIR)/$(LALSIMULATION) && make -j$(CORES) && make install -j$(CORES) ; \ fi ; @@ -473,17 +476,22 @@ $(LALMETAIO_TARGET) : $(LALFRAME_TARGET) fi ; # lalframe +# Adding the -Wall because of the following compilation error: +# In file included from ../include/lal/LALFrameL.h(28), +# from LALFrameL.c(34): +# /home/alexander.pace/builds/icc-master-180302/opt/include/FrameL.h(640): error #2959: function prototype is missing the argument types +# FrFile* FrFileIInMemoryNew(); $(LALFRAME_TARGET) : $(LAL_TARGET) @echo $(GREEN)lalframe$(WHITE) 1>&2 if [ "${LALSUITE_GIT}" = "1" ]; then \ cd $(LALSUITE_REPO)/lalframe && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac ; \ cd $(LALSUITE_REPO)/lalframe && ./00boot ; \ - cd $(LALSUITE_REPO)/lalframe && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(LALSUITE_REPO)/lalframe && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) --disable-gcc-flags ; \ cd $(LALSUITE_REPO)/lalframe && make -j$(CORES) && make install -j$(CORES) ; \ else \ tar -xf $(TAR_DIR)/$(LALFRAME).tar.xz -C $(SRC_DIR) ; \ cd $(SRC_DIR)/$(LALFRAME) && sed -i -e 's@AC_CHECK_LIB(\[gslcblas\]@#AC_CHECK_LIB(\[gslcblas\]@g' configure.ac && autoreconf ; \ - cd $(SRC_DIR)/$(LALFRAME) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) ; \ + cd $(SRC_DIR)/$(LALFRAME) && ./configure --enable-swig-python --prefix=$(INSTALL_DIR) --disable-gcc-flags ; \ cd $(SRC_DIR)/$(LALFRAME) && make -j$(CORES) && make install -j$(CORES) ; \ fi ; @@ -511,7 +519,7 @@ logs/gds.txt : $(LOGS_DIR)/ldas-tools-framecpp.txt $(GDS_TARGET) $(GDS_TARGET) : $(LDASTOOLSFRAMECPP_TARGET) @echo $(GREEN)gds$(WHITE) 1>&2 tar -xzf $(TAR_DIR)/$(GDS).tar.gz -C $(SRC_DIR) - cd $(SRC_DIR)/$(GDS) && ./configure --enable-online --prefix=$(INSTALL_DIR) CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS) -lfftw3_threads -lfftw3f_threads" + cd $(SRC_DIR)/$(GDS) && ./configure --enable-online --prefix=$(INSTALL_DIR) cd $(SRC_DIR)/$(GDS) && make && make install # ldas-tools-framecpp @@ -636,7 +644,7 @@ $(GSL_2_TARGET) : $(GSL_1_TARGET) $(GSL_1_TARGET) : $(ORC_TARGET) @echo $(GREEN)gsl$(WHITE) 1>&2 tar -xf $(TAR_DIR)/$(GSL).tar.gz -C $(SRC_DIR) - cd $(SRC_DIR)/$(GSL) && ./configure --prefix=$(INSTALL_DIR) CFLAGS="${CFLAGS}" CC="icc" CXX="icpc" GSL_CBLAS_LIB='-lmkl_intel_ilp64 -lmkl_core -lmkl_sequential' + cd $(SRC_DIR)/$(GSL) && ./configure --prefix=$(INSTALL_DIR) CFLAGS="${CFLAGS}" CC="icc" CXX="icpc" GSL_CBLAS_LIB='$(LDFLAGS_INTEL)' cd $(SRC_DIR)/$(GSL) && make -j$(CORES) && make install -j$(CORES) # ORC @@ -674,11 +682,11 @@ $(FFTW_TARGET) : $(LOGS_DIR)/patch.txt @echo $(GREEN)fftw$(WHITE) 1>&2 tar -xzf $(TAR_DIR)/$(FFTW).tar.gz -C $(SRC_DIR) cd $(SRC_DIR)/$(FFTW) && \ - ./configure CFLAGS="-O3 -march=native -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib" LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse --enable-sse2 --enable-avx --enable-float --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ + ./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse --enable-sse2 --enable-avx --enable-float --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ make -j$(CORES) && make install -j$(CORES) && make clean && \ - ./configure CFLAGS="-O3 -march=native -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib" LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse2 --enable-avx --enable-avx --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ + ./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse2 --enable-avx --enable-avx --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \ make -j$(CORES) && make install -j$(CORES) && make clean && \ - ./configure CFLAGS="-O3 -march=native -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lm -lpthread -Wno-write-strings -lirc -limf -Wl,-rpath,${PWD}/opt/lib" LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-fma --enable-threads --enable-long-double --prefix=$(INSTALL_DIR) && \ + ./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-fma --enable-threads --enable-long-double --prefix=$(INSTALL_DIR) && \ make -j$(CORES) && make install -j$(CORES) ######################### @@ -777,8 +785,8 @@ $(GSTREAMER_TAR_TARGET) : $(GINTRO_TAR_TARGET) wget --no-check-certificate http://gstreamer.freedesktop.org/src/gstreamer/$(GSTREAMER).tar.xz --directory-prefix=$(TAR_DIR) -nc $(GINTRO_TAR_TARGET) : $(GSL_TAR_TARGET) - #wget --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.50/$(GINTRO).tar.xz --directory-prefix=$(TAR_DIR) -nc - wget --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.42/$(GINTRO).tar.xz --directory-prefix=$(TAR_DIR) -nc + wget --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.50/$(GINTRO).tar.xz --directory-prefix=$(TAR_DIR) -nc + #wget --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.42/$(GINTRO).tar.xz --directory-prefix=$(TAR_DIR) -nc $(GSL_TAR_TARGET) : $(ORC_TAR_TARGET) wget --no-check-certificate http://ftp.gnu.org/gnu/gsl/$(GSL).tar.gz --directory-prefix=$(TAR_DIR) -nc -- GitLab