diff --git a/vlbi/DigiCertCA.crt b/vlbi/DigiCertCA.crt new file mode 100644 index 0000000000000000000000000000000000000000..d4634e0286af8734686e2842ac85fb25d1bdc449 --- /dev/null +++ b/vlbi/DigiCertCA.crt @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG +EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt +MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio +Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS +lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10 +VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct +85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8 +mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA +AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG +CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu +Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln +aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw +Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js +MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk +SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo +dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS +JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd +xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ +WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC +J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ ++hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5 +hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng== +-----END CERTIFICATE----- diff --git a/vlbi/Dockerfile b/vlbi/Dockerfile index c761a1645ecd8dfa89e622cd65c9228289cbf472..e99960ad15881756d46481abe88bcc72d38a31da 100644 --- a/vlbi/Dockerfile +++ b/vlbi/Dockerfile @@ -1,12 +1,11 @@ -FROM morgan1971/vlbi-base:0.0.1 +FROM git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-base:latest MAINTAINER Giuliano Taffoni <giuliano.taffoni@inaf.it> ENV CONTAINER_NAME='lovarVLBISoftware' USER root - - -ENV J=40 -ENV INSTALLDIR=/opt/lofar +# +# Environmental variables +# ENV PYTHON_VERSION=2.7 # Path to where the patch for python-casacore's setup is stored. ENV PYTHON_CASACORE_PATCH=$INSTALLDIR/python-casacore/python_casacore_setup_patch.patch @@ -42,38 +41,53 @@ ENV WSCLEAN_VERSION=latest ENV WCSLIB_VERSION=6.4 ENV HDF5_USE_FILE_LOCKING=FALSE -# Symlinks required for Fedora 31 -RUN ln -s /usr/lib64/libboost_python37.so /usr/lib64/libboost_python3.so -RUN ln -s /usr/lib64/libboost_numpy37.so /usr/lib64/libboost_numpy3.so -RUN ln -s /usr/lib64/libboost_python27.so /usr/lib64/libboost_python.so -RUN ln -s /usr/lib64/libboost_numpy27.so /usr/lib64/libboost_numpy.so -RUN ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so - # -# Setup the compiliong enviroment +# Setup the compiling enviroment # - -#ARG CFLAGS="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" -#ARG CXXFLAGS="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" -# Use below to optimize for a specific architecture -#export CFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" -#export CXXFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" +ARG CMAKE_C_COMPILER=/usr/bin/gcc +ARG CMAKE_CXX_COMPILER=/usr/bin/g++ +ARG CC_GLOBAL=/usr/bin/gcc +ARG CXX_GLOBAL=/usr/bin/g++ +ARG MPICC=/usr/lib64/openmpi/bin/mpicc +ARG MPICXX=/usr/lib64/openmpi/bin/mpic++ +ARG CFLAGS_GLOBAL="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" +ARG CXXFLAGS_GLOBAL="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" +ARG CASA_CXXFLAGS +ARG CASA_CFLAGS ARG CPLUS_INCLUDE_PATH="/usr/include/openmpi-x86_64:/usr/include/c++/9:$CPLUS_INCLUDE_PATH:/usr/include/python2.7:$INSTALLDIR/casacore/include:/usr/include/boost:/usr/include/cfitsio:$INSTALLDIR/EveryBeam/include" ARG CPATH="/usr/include/openmpi-x86_64/:/opt/intel/mkl/include:${INSTALLDIR}/casacore/include:$INSTALLDIR/LOFARBeam/include:$INSTALLDIR/idg/include:$INSTALLDIR/aoflagger/include:$INSTALLDIR/EveryBeam/include:$CPATH" ARG CMAKE_PREFIX_PATH="$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/lofar:$INSTALLDIR/LOFARBeam:/usr/lib64/openmpi:$INSTALLDIR/EveryBeam" ARG LD_LIBRARY_PATH="$INSTALLDIR/aoflagger/lib:$INSTALLDIR/casacore/lib:$INSTALLDIR/idg/lib:$INSTALLDIR/LOFARBeam/lib:/usr/lib64/openmpi/lib/:$INSTALLDIR/EveryBeam/lib:LD_LIBRARY_PATH" ARG PATH="/usr/lib64/openmpi/bin:$PATH" -#ARG make=`which make` ARG OLD_PYTHONPATH=$PYTHONPATH +ARG NCORES=40 +ARG INSTALLDIR=/opt/lofar + +# +# Env to set at building +# +ENV CC=${CC_GLOBAL} +ENV CXX=${CXX_GLOBAL} +ENV CFLAGS=${CFLAGS_GLOBAL} +ENV CXXFLAGS=${CXXFLAGS_GLOBAL} +# + +# +# Symlinks required for Fedora 31 +# +RUN ln -s /usr/lib64/libboost_python37.so /usr/lib64/libboost_python3.so +RUN ln -s /usr/lib64/libboost_numpy37.so /usr/lib64/libboost_numpy3.so +RUN ln -s /usr/lib64/libboost_python27.so /usr/lib64/libboost_python.so +RUN ln -s /usr/lib64/libboost_numpy27.so /usr/lib64/libboost_numpy.so +RUN ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so # # Setup the Python environment. # RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements.txt -O $INSTALLDIR/requirements.txt RUN wget https://raw.githubusercontent.com/tikk3r/lofar-grid-hpccloud/fedora/requirements3.txt -O $INSTALLDIR/requirements3.txt -RUN pip install xmlrunner -RUN pip3 install xmlrunner +RUN pip install xmlrunner && pip3 install xmlrunner RUN echo lofar-h5plot >> $INSTALLDIR/requirements3.txt RUN pip --no-cache-dir install "virtualenv<20" RUN virtualenv $INSTALLDIR/pyenv-py3 --python=python3 @@ -88,7 +102,7 @@ RUN source $INSTALLDIR/pyenv-py2/bin/activate && export HDF5_VERSION=1.10.5 & # Install Montage # RUN mkdir -p /opt/montage && cd /opt/montage && wget https://github.com/Caltech-IPAC/Montage/archive/v6.0.tar.gz -O Montage_v6.0.tar.gz && \ - tar xf Montage_v6.0.tar.gz && cd Montage-6.0 && make -j $J + tar xf Montage_v6.0.tar.gz && cd Montage-6.0 && make -j $NCORES # # Install difmap @@ -105,43 +119,44 @@ RUN rm -rf $INSTALLDIR/difmap/*.tar.gz # # Install PyBDSF # -#ARG CFLAGS="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" +ENV CFLAGS=${CFLAGS_GLOBAL} RUN mkdir -p ${INSTALLDIR}/pybdsf && cd ${INSTALLDIR}/pybdsf && git clone https://github.com/lofar-astron/pybdsf pybdsf RUN if [ "${PYBDSF_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/pybdsf/pybdsf && git checkout ${PYBDSF_VERSION}; fi -RUN cd ${INSTALLDIR}/pybdsf/pybdsf && python setup.py install -RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/pybdsf/pybdsf +RUN cd ${INSTALLDIR}/pybdsf/pybdsf && python setup.py install && cd $INSTALLDIR && rm -rf $INSTALLDIR/pybdsf/pybdsf # # Install CASAcore # # Casacore 2.4.1 does not seem to deal well with AVX512 instructions, so disable them if needed -#export CFLAGS="-march=skylake -mtune=skylake -mno-avx512f" -#export CXXFLAGS="-march=skylake -mtune=skylake -mno-avx512f" -RUN mkdir -p ${INSTALLDIR}/casacore/build && mkdir -p ${INSTALLDIR}/casacore/data -RUN cd $INSTALLDIR/casacore && git clone https://github.com/casacore/casacore.git src -RUN if [ "${CASACORE_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/casacore/src && git checkout tags/${CASACORE_VERSION}; fi +ENV CFLAGS=$CASA_CFLAGS +ENV CXXFLAGS=$CASA_CXXFLAGS +RUN mkdir -p ${INSTALLDIR}/casacore/build && mkdir -p ${INSTALLDIR}/casacore/data && \ + cd $INSTALLDIR/casacore && git clone https://github.com/casacore/casacore.git src && \ + if [ "${CASACORE_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/casacore/src && git checkout tags/${CASACORE_VERSION}; fi # Backport patch UVFITS for LOFAR. This is fixed in recent versions > May 26 2020 # wget https://patch-diff.githubusercontent.com/raw/casacore/casacore/pull/1033.patch -O $INSTALLDIR/casacore/1033.patch # cd $INSTALLDIR/casacore/src && patch --fuzz 3 -p1 < $INSTALLDIR/casacore/1033.patch -RUN cd ${INSTALLDIR}/casacore/data && wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar -RUN cd ${INSTALLDIR}/casacore/data && tar xf WSRT_Measures.ztar && rm WSRT_Measures.ztar -RUN cd ${INSTALLDIR}/casacore/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/casacore/ -DDATA_DIR=${INSTALLDIR}/casacore/data -DBUILD_PYTHON=True -DUSE_OPENMP=True -DUSE_FFTW3=TRUE -DUSE_HDF5=True -DBUILD_PYTHON3=False ../src/ -RUN cd ${INSTALLDIR}/casacore/build && make -s -j ${J} && make install -RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/casacore/build && rm -rf $INSTALLDIR/casacore/src +RUN cd ${INSTALLDIR}/casacore/data && wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar && \ + cd ${INSTALLDIR}/casacore/data && tar xf WSRT_Measures.ztar && rm WSRT_Measures.ztar && \ + cd ${INSTALLDIR}/casacore/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/casacore/ -DDATA_DIR=${INSTALLDIR}/casacore/data -DBUILD_PYTHON=True -DUSE_OPENMP=True -DUSE_FFTW3=TRUE -DUSE_HDF5=True -DBUILD_PYTHON3=False ../src/ +RUN cd ${INSTALLDIR}/casacore/build && make -s -j ${NCORES} && make install && cd $INSTALLDIR && rm -rf $INSTALLDIR/casacore/build && rm -rf $INSTALLDIR/casacore/src # # Install Python-CASAcore # -RUN mkdir ${INSTALLDIR}/python-casacore && cd ${INSTALLDIR}/python-casacore && git clone https://github.com/casacore/python-casacore -RUN if [ "$PYTHON_CASACORE_VERSION" != "latest" ]; then cd ${INSTALLDIR}/python-casacore/python-casacore && git checkout tags/${PYTHON_CASACORE_VERSION}; fi +RUN mkdir ${INSTALLDIR}/python-casacore && cd ${INSTALLDIR}/python-casacore && git clone https://github.com/casacore/python-casacore && \ + if [ "$PYTHON_CASACORE_VERSION" != "latest" ]; then cd ${INSTALLDIR}/python-casacore/python-casacore && git checkout tags/${PYTHON_CASACORE_VERSION}; fi RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/python-casacore/python-casacore && python setup.py build_ext -I${INSTALLDIR}/casacore/include/:/usr/include/python2.7:/usr/include/cfitsio -L${INSTALLDIR}/casacore/lib/:/usr/lib64/ && python setup.py install #--prefix=${INSTALLDIR}/python-casacore/ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore -# and then reset the flags again if needed -#export CFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" -#export CXXFLAGS="-march=skylake-avx512 -mtune=skylake-avx512" + +# +# reset to global +# +ENV CFLAGS=${CFLAGS_GLOBAL} +ENV CXXFLAGS=${CXXFLAGS_GLOBAL} # # Install Dysco @@ -149,7 +164,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/python-casacore/python-casacore RUN mkdir -p $INSTALLDIR/dysco/build RUN cd $INSTALLDIR/dysco && git clone https://github.com/aroffringa/dysco.git src && cd src RUN if [ "$DYSCO_VERSION" != "latest" ]; then cd $INSTALLDIR/dysco/src && git checkout $DYSCO_VERSION; fi -RUN cd $INSTALLDIR/dysco/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/dysco -DCASACORE_ROOT_DIR=$INSTALLDIR/casacore -DPORTABLE=True ../src && make -s -j $J && make install +RUN cd $INSTALLDIR/dysco/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/dysco -DCASACORE_ROOT_DIR=$INSTALLDIR/casacore -DPORTABLE=True ../src && make -s -j ${NCORES} && make install RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco/src # @@ -158,7 +173,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/dysco/build && rm -rf $INSTALLDIR/dysco RUN mkdir -p ${INSTALLDIR}/aoflagger/build && cd ${INSTALLDIR}/aoflagger && git clone git://git.code.sf.net/p/aoflagger/code aoflagger && cd ${INSTALLDIR}/aoflagger/aoflagger RUN if [ "${AOFLAGGER_VERSION}" != "latest" ]; then cd ${INSTALLDIR}/aoflagger/aoflagger && git checkout tags/${AOFLAGGER_VERSION}; fi RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/aoflagger/ -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore -DBUILD_SHARED_LIBS=ON -DPORTABLE=True ../aoflagger -RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && make -s -j ${J} && make install +RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/aoflagger/build && make -s -j ${NCORES} && make install RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/aoflagger/aoflagger && rm -rf $INSTALLDIR/aoflagger/build && rm -rf $INSTALLDIR/aoflagger/src # @@ -172,11 +187,7 @@ RUN cd $INSTALLDIR/lofar/ && wget https://raw.githubusercontent.com/tikk3r/lofar patch $INSTALLDIR/lofar/src/CMake/variants/GNUCXX11.cmake $PATCH_LOFAR && \ cd ${INSTALLDIR}/lofar/build/gnucxx11_opt #cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="StationResponse pystationresponse ParmDB pyparmdb Pipeline MS" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True ${INSTALLDIR}/lofar/src/ -ARG CMAKE_C_COMPILER=/usr/bin/gcc -ARG CMAKE_CXX_COMPILER=/usr/bin/g++ -ARG CC=/usr/bin/gcc -ARG CXX=/usr/bin/g++ -RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/lofar/build/gnucxx11_opt && CC=/usr/bin/gcc && CXX=/usr/bin/g++ && cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="Pipeline" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True -DBUILD_PYTHON3=OFF ${INSTALLDIR}/lofar/src/ && make -s -j $J && make install +RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/lofar/build/gnucxx11_opt && cmake -DCMAKE_PREFIX_PATH=$INSTALLDIR/aoflagger:$INSTALLDIR/casacore:$INSTALLDIR/dysco -DBUILD_PACKAGES="Pipeline" -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar/ -DUSE_LOG4CPLUS=OFF -DUSE_OPENMP=True -DBUILD_PYTHON3=OFF ${INSTALLDIR}/lofar/src/ && make -s -j ${NCORES} && make install RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/lofar/build && rm -rf $INSTALLDIR/lofar/src # @@ -192,7 +203,7 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/msoverview # Install the standalone StationResponse libraries. # RUN mkdir -p $INSTALLDIR/LOFARBeam/build && cd $INSTALLDIR/LOFARBeam && git clone https://github.com/lofar-astron/LOFARBeam.git src -RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd $INSTALLDIR/LOFARBeam/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar ../src && make -j $J && make install +RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd $INSTALLDIR/LOFARBeam/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/lofar ../src && make -j ${NCORES} && make install RUN touch /opt/lofar/lofar/lib64/python2.7/site-packages/lofar/__init__.py RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/LOFARBeam/build && rm -rf $INSTALLDIR/LOFARBeam/src @@ -203,14 +214,14 @@ RUN mkdir -p $INSTALLDIR/EveryBeam/build && cd $INSTALLDIR/EveryBeam && git clon cd src && git checkout $EVERYBEAM_VERSION && \ cd $INSTALLDIR/EveryBeam/build && \ cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/EveryBeam ../src && \ - make -j $J && make install + make -j ${NCORES} && make install # # Install DPPP # RUN mkdir -p $INSTALLDIR/DPPP/build && git clone https://github.com/lofar-astron/DP3.git $INSTALLDIR/DPPP/src && \ cd $INSTALLDIR/DPPP/src && git checkout tags/${DPPP_VERSION} -RUN cd $INSTALLDIR/DPPP/build && cmake3 -DCMAKE_CXX_FLAGS="-D_GLIB_USE_CXX_ABI=1 -DBOOST_NO_CXX11_SCOPED_ENUMS" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLDIR/DPPP -DLOFAR_STATION_RESPONSE_DIR:PATH=$INSTALLDIR/lofar/include -DLOFAR_STATION_RESPONSE_LIB:FILEPATH=$INSTALLDIR/lofar/lib/libstationresponse.so -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include -DAOFLAGGER_INCLUDE_DIR=$INSTALLDIR/aoflagger/include -DAOFLAGGER_LIB=$INSTALLDIR/aoflagger/lib/libaoflagger.so ../src && make -s -j $J && make install +RUN cd $INSTALLDIR/DPPP/build && cmake3 -DCMAKE_CXX_FLAGS="-D_GLIB_USE_CXX_ABI=1 -DBOOST_NO_CXX11_SCOPED_ENUMS" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLDIR/DPPP -DLOFAR_STATION_RESPONSE_DIR:PATH=$INSTALLDIR/lofar/include -DLOFAR_STATION_RESPONSE_LIB:FILEPATH=$INSTALLDIR/lofar/lib/libstationresponse.so -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include -DAOFLAGGER_INCLUDE_DIR=$INSTALLDIR/aoflagger/include -DAOFLAGGER_LIB=$INSTALLDIR/aoflagger/lib/libaoflagger.so ../src && make -s -j ${NCORES} && make install RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/DPPP/build && rm -rf $INSTALLDIR/DPPP/src ############################################ @@ -266,16 +277,16 @@ RUN cd $INSTALLDIR && rm -rf $INSTALLDIR/losoto RUN mkdir $INSTALLDIR/wsclean && cd ${INSTALLDIR}/wsclean && git clone https://gitlab.com/aroffringa/wsclean.git && \ if [ "$WSCLEAN_VERSION" != "latest" ]; then cd ${INSTALLDIR}/wsclean/wsclean && git checkout $WSCLEAN_VERSION; fi RUN cd ${INSTALLDIR}/wsclean/wsclean && mkdir build && cd build -ARG CC=/usr/lib64/openmpi/bin/mpicc -ARG CXX=/usr/lib64/openmpi/bin/mpic++ +ENV CC=${MPICC} +ENV CXX=${MPICXX} RUN source $INSTALLDIR/pyenv-py2/bin/activate && cd ${INSTALLDIR}/wsclean/wsclean/build && cmake -DCMAKE_INSTALL_PREFIX=$INSTALLDIR/wsclean -DPORTABLE=True -DIDGAPI_LIBRARIES=$INSTALLDIR/idg/lib/libidg-api.so -DIDGAPI_INCLUDE_DIRS=$INSTALLDIR/idg/include .. && \ - make -j ${J} && \ + make -j ${NCORES} && \ make install && \ cd $INSTALLDIR && rm -rf $INSTALLDIR/wsclean/wsclean # # Switch back to normal compilers -ARG CC=/usr/bin/gcc -ARG CXX=/usr/bin/g++ +ENV CC=${CC_GLOBAL} +ENV CXX=${CXX_GLOBAL} # # # Install DS9 diff --git a/vlbi/build-base.sh b/vlbi/build-base.sh index 5411b69183ba9f5c826433bb9ef1fcb7784e8f45..533a474e6a5eb037de77c0dc40c3148e1126b85a 100644 --- a/vlbi/build-base.sh +++ b/vlbi/build-base.sh @@ -1,10 +1,14 @@ #!/bin/bash -if [ 'xxx${VERSION}' == 'xxx' ]; then +export SSL_CERT_FILE=${PWD}/DigiCertCA.crt + +docker login git.ia2.inaf.it:5050 + +if [ "xxx${VERSION}" = "xxx" ]; then VERSION='latest' fi -docker build -t morgan1971/vlbi-base:${VERSION} -f Dockerfile.base . +docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-base:${VERSION} -f Dockerfile.base . diff --git a/vlbi/build-sw.sh b/vlbi/build-sw.sh index 485d2355d2377c96e6facf8399d2cd0973d12336..eae8b0e1ebc12b188c78075035d4def79655ec45 100644 --- a/vlbi/build-sw.sh +++ b/vlbi/build-sw.sh @@ -1,10 +1,29 @@ #!/bin/bash -if [ 'xxx${VERSION}' == 'xxx' ]; then +if [ "xxx${VERSION}" = "xxx" ]; then VERSION='latest' fi +export SSL_CERT_FILE=${PWD}/DigiCertCA.crt +docker login git.ia2.inaf.it:5050 -docker build -t morgan1971/skadc-software:${VERSION} -f Dockerfile . +# Use below to optimize for a specific architecture +# docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw:${VERSION} --build-arg CFLAGS_GLOBAL="-march=skylake-avx512 -mtune=skylake-avx512" \ +# --build-arg CXXFLAGS_GLOBAL="-march=skylake-avx512 -mtune=skylake-avx512" -f Dockerfile . +# +# Default values +# +# CMAKE_C_COMPILER=/usr/bin/gcc +# CMAKE_CXX_COMPILER=/usr/bin/g++ +# CC_GLOBAL=/usr/bin/gcc +# CXX_GLOBAL=/usr/bin/g++ +# MPICC=/usr/lib64/openmpi/bin/mpicc +# MPICXX=/usr/lib64/openmpi/bin/mpic++ +# CFLAGS_GLOBAL="-mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" +# CXXFLAGS_GLOBAL="-std=c++11 -mno-avx512f -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512ifma -mno-avx512vbmi" +# CASA_CXXFLAGS +# CASA_CFLAGS + +docker build -t git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw:${VERSION} -f Dockerfile . diff --git a/vlbi/run_singularity.sh b/vlbi/run_singularity.sh new file mode 100644 index 0000000000000000000000000000000000000000..805efe6fa846c5d3353fe9768b2ff2be13e7f7b5 --- /dev/null +++ b/vlbi/run_singularity.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# This Script allows to execute the container using singularity +# in an isolated enviroment, home directory and tmp are not +# shared directly and removed at the end of the run, persistent data +# is saved in /data +# +# author <giuliano.taffoni@inaf.it> +# + +export CONTAINER_NAME=git.ia2.inaf.it:5050/lofarit/containers/vlbi-inaf-sw +export CONTAINER_VERSION=0.1.0 +export BASE_PORT= +if [ 'XXX'$1 = 'XXX' ]; then + COMMAND= +else + COMMAND=$1 +fi + +export SINGULARITYENV_AUTH_USER=testpass + +HOMEDIR=`mktemp -d -t singularity_XXXXXXX` +mkdir $HOMEDIR/tmp +mkdir $HOMEDIR/home +singularity run --pid --no-home --home=/home/skauser --workdir ${HOMEDIR}/tmp -B${HOMEDIR}:/home/ -B`pwd`:/data --containall --cleanenv docker://${CONTAINER_NAME}:${CONTAINER_VERSION} $COMMAND +rm -fr ${HOMEDIR}