[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b4-211-gf91baf0

Service Account noreply at mpich.org
Fri Sep 4 17:13:02 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  f91baf0296ce0f0a9fd198e7f5f78321abb8179c (commit)
      from  de6df61e8ceb2bbfc9bda82a66c6531c1ebd34ab (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/f91baf0296ce0f0a9fd198e7f5f78321abb8179c

commit f91baf0296ce0f0a9fd198e7f5f78321abb8179c
Author: Yanfei Guo <yanf.guo at gmail.com>
Date:   Wed Sep 2 13:52:38 2015 -0500

    Add build scripts for Jenkins test jobs
    
    The build scripts are maintained in one place to ensure the
    consistency. These scripts will be submitted as SLURM jobs and
    executed on SLURM nodes.  Relationship between the build scripts and
    jobs:
      test-worker-abi-prolog.sh - mpich-master-abi-prolog
      test-worker-abi.sh        - mpich-master-abi
      test-worker-tarball.sh    - mpich-tarball
      test-worker-armci.sh      - All armci jobs
      test-worker.sh            - All other jobs
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/maint/jenkins/test-worker-abi-prolog.sh b/maint/jenkins/test-worker-abi-prolog.sh
new file mode 100755
index 0000000..52dd32f
--- /dev/null
+++ b/maint/jenkins/test-worker-abi-prolog.sh
@@ -0,0 +1,253 @@
+#!/bin/zsh -xe
+
+WORKSPACE=""
+compiler="gnu"
+jenkins_configure="default"
+queue="ib64"
+netmod="default"
+ofi_prov="sockets"
+N_MAKE_JOBS=8
+
+#####################################################################
+## Initialization
+#####################################################################
+
+while getopts ":h:c:o:q:m:n:" opt; do
+    case "$opt" in
+        h)
+            WORKSPACE=$OPTARG ;;
+        c)
+            compiler=$OPTARG ;;
+        o)
+            jenkins_configure=$OPTARG ;;
+        q)
+            queue=$OPTARG ;;
+        m)
+            _netmod=${OPTARG%%,*}
+            if [[ "$_netmod" == "ofi" ]]; then
+                netmod=$_netmod
+                ofi_prov=${OPTARG/$_netmod,}
+            else
+                netmod=$_netmod
+            fi
+            ;;
+        n)
+            N_MAKE_JOBS=$OPTARG ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            exit 1
+    esac
+done
+
+cd $WORKSPACE
+
+TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
+SRC=$WORKSPACE
+TMP_SRC=$TMP_WORKSPACE
+
+tar zxvf mpich-master.tar.gz
+SRC=$WORKSPACE/mpich-master
+TMP_SRC=$TMP_WORKSPACE/mpich-master
+cp -a $WORKSPACE/mpich-master $TMP_WORKSPACE/
+
+
+#####################################################################
+## Functions
+#####################################################################
+
+PrepareEnv() {
+    case "$queue" in
+        "ubuntu32" | "ubuntu64" )
+            source /software/common/adm/etc/softenv-aliases.sh
+            source /software/common/adm/etc/softenv-load.sh
+            soft add +intel
+            soft add +pgi
+            soft add +absoft
+            soft add +nagfor
+            soft add +solarisstudio-12.4
+            soft add +ekopath
+            ;;
+        "freebsd64" | "freebsd32")
+            PATH=/usr/local/bin:$PATH
+            LD_LIBRARY_PATH=/usr/local/lib/gcc46:$LD_LIBRARY_PATH
+            export LD_LIBRARY_PATH
+            ;;
+        "solaris")
+            PATH=/usr/gcc/4.3/bin:/usr/gnu/bin:/usr/sbin:$PATH
+            CONFIG_SHELL=/usr/gnu/bin/sh
+            export CONFIG_SHELL
+            ;;
+    esac
+    PATH=$HOME/software/autotools/bin:$PATH
+    export PATH
+    echo "$PATH"
+}
+
+SetCompiler() {
+    case "$compiler" in
+        "gnu")
+            CC=gcc
+            CXX=g++
+            F77=gfortran
+            FC=gfortran
+            ;;
+        "clang")
+            CC=clang
+            CXX=clang++
+            F77=gfortran
+            FC=gfortran
+            ;;
+        "intel")
+            CC=icc
+            CXX=icpc
+            F77=ifort
+            FC=ifort
+            ;;
+        "pgi")
+            CC=pgcc
+            CXX=pgcpp
+            F77=pgf77
+            FC=pgfortran
+            ;;
+        "absoft")
+            CC=gcc
+            CXX=g++
+            F77=af77
+            FC=af90
+            ;;
+        "nag")
+            CC=gcc
+            CXX=g++
+            F77=nagfor
+            FC=nagfor
+            FFLAGS="-mismatch"
+            FCFLAGS="-mismatch"
+            export FFLAGS
+            export FCFLAGS
+            ;;
+        "solstudio")
+            CC=suncc
+            CXX=sunCC
+            F77=sunf77
+            FC=sunf90
+            ;;
+        "pathscale")
+            CC=pathcc
+            CXX=pathCC
+            F77=pathf95
+            FC=pathf95
+            ;;
+        *)
+            echo "Unknown compiler suite"
+            exit 1
+    esac
+
+    export CC
+    export CXX
+    export F77
+    export FC
+
+    which $CC
+    which $CXX
+    which $F77
+    which $FC
+}
+
+SetConfigOpt() {
+    config_opt="__TO_BE_FILLED__"
+    case "$jenkins_configure" in
+        "default")
+            config_opt=
+            ;;
+        "strict")
+            config_opt="--enable-strict"
+            ;;
+        "fast")
+            config_opt="--enable-fast=all"
+            ;;
+        "nofast")
+            config_opt="--disable-fast"
+            ;;
+        "noshared")
+            config_opt="--disable-shared"
+            ;;
+        "debug")
+            config_opt="--enable-g=all"
+            ;;
+        "noweak")
+            config_opt="--disable-weak-symbols"
+            ;;
+        "strictnoweak")
+            config_opt="--enable-strict --disable-weak-symbols"
+            ;;
+        "nofortran")
+            config_opt="--disable-f77 --disable-fc"
+            ;;
+        "nocxx")
+            config_opt="--disable-cxx"
+            ;;
+        "multithread")
+            config_opt="--enable-threads=multiple"
+            ;;
+        "debuginfo")
+            config_opt="--enable-debuginfo"
+            ;;
+        "noerrorchecking")
+            config_opt="--disable-error-checking"
+            ;;
+        "sock") # for solaris + sock
+            config_opt="--with-device=ch3:sock --disable-ft-tests --disable-comm-overlap-tests"
+            ;;
+        "mpd")
+            config_opt="--with-pm=mpd --with-namepublisher=file"
+            ;;
+        "gforker")
+            config_opt="--with-pm=gforker --with-namepublisher=file"
+            ;;
+        "shmem")
+            config_opt=
+            ;;
+        "async")
+            config_opt=
+            ;;
+        "random")
+            config_opt=$(RandArgs)
+            ;;
+        *)
+            echo "Bad configure option: $jenkins_configure"
+            exit 1
+    esac
+
+    if test "$jenkins_configure" != "shmem" ; then
+      config_opt="$config_opt --enable-nemesis-dbg-localoddeven"
+    fi
+
+    if test "$queue" = "osx" -a "$FC" = "ifort"; then
+        config_opt="$config_opt lv_cv_ld_force_load=no"
+    fi
+
+    export config_opt
+    echo "$config_opt"
+}
+
+rm -rf $HOME/mpi/installs/mpich-master/$compiler/$jenkins_configure
+
+PrepareEnv
+
+SetCompiler "$compiler"
+
+pushd "$TMP_SRC"
+
+./configure --prefix=$HOME/mpi/installs/mpich-master/$compiler/$jenkins_configure $(SetConfigOpt $jenkins_configure)
+make -j8 install
+
+popd
+
+if test "$compiler" = "gnu" -a "$jenkins_configure" = "default" ; then
+  cd /home/autotest/mpi/tests/mpich-tests
+  git clean -x -d -f
+  git pull
+  ./autogen.sh
+fi
+
+exit 0
diff --git a/maint/jenkins/test-worker-abi.sh b/maint/jenkins/test-worker-abi.sh
new file mode 100755
index 0000000..1722558
--- /dev/null
+++ b/maint/jenkins/test-worker-abi.sh
@@ -0,0 +1,363 @@
+#!/bin/zsh -x
+
+WORKSPACE=""
+build_mpi="mpich-master"
+compiler="gnu"
+run_conf="default"
+run_mpi="mpich-master"
+
+#####################################################################
+## Initialization
+#####################################################################
+
+while getopts ":h:c:o:b:r:" opt; do
+    case "$opt" in
+        h)
+            WORKSPACE=$OPTARG ;;
+        c)
+            compiler=$OPTARG ;;
+        o)
+            run_conf=$OPTARG ;;
+        b)
+            build_mpi=$OPTARG ;;
+        r)
+            run_mpi=$OPTARG ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            exit 1
+    esac
+done
+
+cd $WORKSPACE
+TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
+
+# $build_mpi -- MPI libraries used to build the tests
+# $run_mpi   -- MPI libraries used to run the tests
+# $compiler  -- gcc or icc. Compilers used to build $build_mpi _and_ $run_mpi.
+#               Intel MPI provides mpigcc, mpiicc etc.
+# $run_conf  -- debug or default. Options used to build $build_mpi _and_ $run_mpi
+
+#####################################################################
+## Setup the paths for the compilers
+#####################################################################
+source /software/common/adm/etc/softenv-aliases.sh
+source /software/common/adm/etc/softenv-load.sh
+soft add +intel
+
+if test "$compiler" = "gnu" ; then
+  CC=gcc
+  CXX=g++
+  F77=gfortran
+  FC=gfortran
+elif test "$compiler" = "intel" ; then
+  CC=icc
+  CXX=icpc
+  F77=ifort
+  FC=ifort
+else
+  echo "Unknown compiler suite"
+  exit 1
+fi
+
+export CC
+export CXX
+export F77
+export FC
+
+which $CC
+which $CXX
+which $F77
+which $FC
+
+## Setup tmp directory
+mkdir ${TMP_WORKSPACE}/_tmp
+
+## Setup binaries in MPICH
+if test "$build_mpi" != "impi-5.0"; then
+  cp -a ${HOME}/mpi/installs/${build_mpi}/${compiler}/${run_conf} ${TMP_WORKSPACE}/_tmp/${build_mpi}-inst
+  MPICH_BUILD_PATH=${TMP_WORKSPACE}/_tmp/${build_mpi}-inst
+  export MPICH_BUILD_PATH
+  cd ${MPICH_BUILD_PATH}/bin
+  for x in mpif77 mpif90 mpicc mpicxx ; do
+    sed -i "s+^libdir=.*+libdir=${MPICH_BUILD_PATH}/lib+g" $x
+    sed -i "s+^prefix=.*+prefix=${MPICH_BUILD_PATH}+g" $x
+    sed -i "s+^includedir=.*+includedir=${MPICH_BUILD_PATH}/include+g" $x
+  done
+fi
+if test "$run_mpi" != "impi-5.0"; then
+  if test "$build_mpi" != "$run_mpi"; then
+    cp -a ${HOME}/mpi/installs/${run_mpi}/${compiler}/${run_conf} ${TMP_WORKSPACE}/_tmp/${run_mpi}-inst
+  fi
+  MPICH_RUN_PATH=${TMP_WORKSPACE}/_tmp/${run_mpi}-inst
+  export MPICH_RUN_PATH
+fi
+
+## Setup binaries in IMPI
+cp -a /home/autotest/intel/impi/5.0.1.035 ${TMP_WORKSPACE}/_tmp/impi-inst
+IMPI_PATH=${TMP_WORKSPACE}/_tmp/impi-inst
+export IMPI_PATH
+cd ${IMPI_PATH}/intel64/bin
+for x in mpif77 mpif90 mpigcc mpigxx mpiicc mpiicpc mpiifort ; do
+  sed -i "s+^prefix=.*+prefix=${IMPI_PATH}+g" $x
+done
+
+
+## Setup compiler paths
+if test "$build_mpi" = "mpich-master" -o "$build_mpi" = "mpich-3.1" ; then
+  MPICC=${MPICH_BUILD_PATH}/bin/mpicc
+  MPICXX=${MPICH_BUILD_PATH}/bin/mpicxx
+  MPIF77=${MPICH_BUILD_PATH}/bin/mpif77
+  MPIFC=${MPICH_BUILD_PATH}/bin/mpif90
+elif test "$build_mpi" = "impi-5.0" ; then
+  if test "$compiler" = "gnu" ; then
+    MPICC=${IMPI_PATH}/intel64/bin/mpigcc
+    MPICXX=${IMPI_PATH}/intel64/bin/mpigxx
+    MPIF77=${IMPI_PATH}/intel64/bin/mpif77
+    MPIFC=${IMPI_PATH}/intel64/bin/mpif90
+  elif test "$compiler" = "intel" ; then
+    MPICC=${IMPI_PATH}/intel64/bin/mpiicc
+    MPICXX=${IMPI_PATH}/intel64/bin/mpiicpc
+    MPIF77=${IMPI_PATH}/intel64/bin/mpiifort
+    MPIFC=${IMPI_PATH}/intel64/bin/mpiifort
+  fi
+fi
+export MPICC
+export MPICXX
+export MPIF77
+export MPIFC
+
+if test "$run_mpi" = "mpich-master" -o "$run_mpi" = "mpich-3.1" ; then
+  MPIEXEC=${MPICH_RUN_PATH}/bin/mpiexec
+elif test "$run_mpi" = "impi-5.0"; then
+  MPIEXEC=${IMPI_PATH}/intel64/bin/mpiexec.hydra
+fi
+export MPIEXEC
+
+cp -a /home/autotest/mpi/tests/mpich-tests ${TMP_WORKSPACE}/_tmp
+
+MPICH_TESTS_PATH=${TMP_WORKSPACE}/_tmp/mpich-tests/test/mpi
+export MPICH_TESTS_PATH
+
+cd ${MPICH_TESTS_PATH}
+./configure --disable-ft-tests --disable-dependency-tracking
+make -j16 --keep-going
+
+## Some tests require special compilation
+cd f77/ext
+make allocmemf
+cd ${MPICH_TESTS_PATH}
+
+cd f90/ext
+make allocmemf90
+cd ${MPICH_TESTS_PATH}
+
+cd f90/profile
+make profile1f90
+cd ${MPICH_TESTS_PATH}
+
+cd impls/mpich
+make
+cd ${MPICH_TESTS_PATH}
+
+# these tests will compile with old MPIs, but produce the wrong result at runtime
+if test "$run_mpi" = "impi-5.0" -o "$run_mpi" = "mpich-3.1" ; then
+  sed -i "s+\(^gather_big .*\)+\1 xfail=ticket0+g" coll/testlist
+  sed -i "s+\(^comm_idup_comm .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_comm2 .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_iallreduce .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_isend .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_mul .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_nb .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^comm_idup_overlap .*\)+\1 xfail=ticket0+g" comm/testlist
+  sed -i "s+\(^dynamic_errcode_predefined_errclass .*\)+\1 xfail=ticket0+g" errhan/testlist
+  sed -i "s+\(^errstring2 .*\)+\1 xfail=ticket0+g" errhan/testlist
+  sed -i "s+\(^noalias2 .*\)+\1 xfail=ticket0+g" errors/coll/testlist
+  sed -i "s+\(^noalias3 .*\)+\1 xfail=ticket0+g" errors/coll/testlist
+  sed -i "s+\(^too_many_icomms .*\)+\1 xfail=ticket0+g" errors/comm/testlist
+  sed -i "s+\(^too_many_icomms2 .*\)+\1 xfail=ticket0+g" errors/comm/testlist
+  sed -i "s+\(^file_errhdl .*\)+\1 xfail=ticket0+g" errors/io/testlist
+  sed -i "s+\(^cas_type_check .*\)+\1 xfail=ticket0+g" errors/rma/testlist
+  sed -i "s+\(^win_sync_lock_fence .*\)+\1 xfail=ticket0+g" errors/rma/testlist
+  sed -i "s+\(^unpub .*\)+\1 xfail=ticket0+g" errors/spawn/testlist
+  sed -i "s+\(^bottom .*\)+\1 xfail=ticket0+g" f77/datatype/testlist
+  sed -i "s+\(^bottom .*\)+\1 xfail=ticket0+g" f90/datatype/testlist
+  sed -i "s+\(^createf90types .*\)+\1 xfail=ticket0+g" f90/f90types/testlist
+  sed -i "s+\(^infoget .*\)+\1 xfail=ticket0+g" info/testlist
+  sed -i "s+\(^bigtype .*\)+\1 xfail=ticket0+g" io/testlist
+  sed -i "s+\(^hindexed_io .*\)+\1 xfail=ticket0+g" io/testlist
+  sed -i "s+\(^resized2 .*\)+\1 xfail=ticket0+g" io/testlist
+  sed -i "s+\(^acc-pairtype .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^accfence1 .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^accpscw1 .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^atomic_get .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^epochtest .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^large-acc-flush_local .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lock_contention_dt .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lock_dt .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lock_dt_flush .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lock_dt_flushlocal .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lockall_dt .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lockall_dt_flush .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lockall_dt_flushall .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lockall_dt_flushlocal .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^lockall_dt_flushlocalall .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^putfence1 .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^putpscw1 .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^win_info .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^win_shared_cas_flush_load .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^win_shared_gacc_flush_load .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^win_shared_zerobyte .*\)+\1 xfail=ticket0+g" rma/testlist
+
+  # regression tests added after mpich-3.1
+  sed -i "s+\(^manyrma2_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^nullpscw_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^pscw_ordering_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^test2_am_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^test3_am_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^test2_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^test3_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^transpose3_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+  sed -i "s+\(^wintest_shm .*\)+\1 xfail=ticket0+g" rma/testlist
+fi
+
+# MPI-3.1 version
+sed -i "s+\(^version .*\)+\1 xfail=ticket0+g" init/testlist
+sed -i "s+\(^baseenvf .*\)+\1 xfail=ticket0+g" f77/init/testlist
+sed -i "s+\(^baseenv .*\)+\1 xfail=ticket0+g" cxx/init/testlist
+sed -i "s+\(^baseenvf90 .*\)+\1 xfail=ticket0+g" f90/init/testlist
+
+## Remove the MPI library that is not being used for running
+if test "$build_mpi" = "mpich-master" -a "$run_mpi" = "mpich-master" ; then
+  rm -rf ${IMPI_PATH}
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+elif test "$build_mpi" = "mpich-master" -a "$run_mpi" = "mpich-3.1" ; then
+  rm -rf ${MPICH_BUILD_PATH}
+  rm -rf ${IMPI_PATH}
+
+  cd ${MPICH_RUN_PATH}/lib
+
+  ln -s libmpich.so.12.0.0 libmpi.so.0
+  ln -s libmpichcxx.so.12.0.0 libmpicxx.so.0
+  ln -s libmpichf90.so.12.0.0 libmpifort.so.0
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+  LD_PRELOAD=${MPICH_RUN_PATH}/lib/libmpich.so.12:${MPICH_RUN_PATH}/lib/libmpichf90.so.12
+  export LD_PRELOAD
+
+elif test "$build_mpi" = "mpich-master" -a "$run_mpi" = "impi-5.0"; then
+  rm -rf ${MPICH_BUILD_PATH}
+
+  cd ${IMPI_PATH}/intel64/lib
+
+  if test "$run_conf" = "debug" ; then
+    ln -s debug/libmpi.so.12.0 libmpi.so.0
+  else
+    ln -s release/libmpi.so.12.0 libmpi.so.0
+  fi
+  ln -s libmpicxx.so.12.0 libmpicxx.so.0
+  ln -s libmpifort.so.12.0 libmpifort.so.0
+
+  LD_LIBRARY_PATH=${IMPI_PATH}/intel64/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+  LD_PRELOAD=${IMPI_PATH}/intel64/lib/libmpi.so.12:${IMPI_PATH}/intel64/lib/libmpifort.so.12
+  export LD_PRELOAD
+
+elif test "$build_mpi" = "impi-5.0" -a "$run_mpi" = "mpich-master" ; then
+  rm -rf ${IMPI_PATH}
+
+  cd ${MPICH_RUN_PATH}/lib
+
+  ln -s libmpi.so.0.0.0 libmpi.so.12
+  mkdir release
+  ln -s libmpi.so.0.0.0 release/libmpi.so.12
+  mkdir debug
+  ln -s libmpi.so.0.0.0 debug/libmpi.so.12
+  ln -s libmpicxx.so.0.0.0 libmpicxx.so.12
+  ln -s libmpifort.so.0.0.0 libmpifort.so.12
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+elif test "$build_mpi" = "impi-5.0" -a "$run_mpi" = "mpich-3.1" ; then
+  rm -rf ${IMPI_PATH}
+
+  cd ${MPICH_RUN_PATH}/lib
+
+  ln -s libmpich.so.12.0.0 libmpi.so.12
+  ln -s libmpichcxx.so.12.0.0 libmpicxx.so.12
+  ln -s libmpichf90.so.12.0.0 libmpifort.so.12
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+elif test "$build_mpi" = "impi-5.0" -a "$run_mpi" = "impi-5.0" ; then
+  LD_LIBRARY_PATH=${IMPI_PATH}/intel64/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+elif test "$build_mpi" = "mpich-3.1" -a "$run_mpi" = "mpich-master" ; then
+  rm -rf ${IMPI_PATH}
+  rm -rf ${MPICH_BUILD_PATH}
+
+  cd ${MPICH_RUN_PATH}/lib
+
+  ln -s libmpi.so.0.0.0 libmpich.so.12
+  ln -s libmpicxx.so.0.0.0 libmpichcxx.so.12
+  ln -s libmpifort.so.0.0.0 libmpichf90.so.12
+  ln -s libmpi.so.0.0.0 libmpl.so.1
+  ln -s libmpi.so.0.0.0 libopa.so.1
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+  LD_PRELOAD=${MPICH_RUN_PATH}/lib/libmpich.so.12:${MPICH_RUN_PATH}/lib/libmpichf90.so.12
+  export LD_PRELOAD
+
+elif test "$build_mpi" = "mpich-3.1" -a "$run_mpi" = "mpich-3.1" ; then
+  rm -rf ${IMPI_PATH}
+
+  LD_LIBRARY_PATH=${MPICH_RUN_PATH}/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+elif test "$build_mpi" = "mpich-3.1" -a "$run_mpi" = "impi-5.0" ; then
+  rm -rf ${MPICH_BUILD_PATH}
+
+  cd ${IMPI_PATH}/intel64/lib
+
+  if test "$run_conf" = "debug" ; then
+    ln -s debug/libmpi.so.12.0 libmpich.so.12
+  else
+    ln -s release/libmpi.so.12.0 libmpich.so.12
+  fi
+  ln -s libmpicxx.so.12.0 libmpichcxx.so.12
+  ln -s libmpifort.so.12.0 libmpichf90.so.12
+  ln -s libmpich.so.12 libmpl.so.1
+  ln -s libmpich.so.12 libopa.so.1
+
+  LD_LIBRARY_PATH=${IMPI_PATH}/intel64/lib:$LD_LIBRARY_PATH
+  export LD_LIBRARY_PATH
+
+  LD_PRELOAD=${IMPI_PATH}/intel64/lib/libmpich.so.12:${IMPI_PATH}/intel64/lib/libmpichf90.so.12
+  export LD_PRELOAD
+
+else
+  echo "Unknown combination"
+  exit 1
+fi
+
+## Run tests for MPI version 3.0
+cd ${MPICH_TESTS_PATH}
+./runtests -mpiversion=3.0 -srcdir=. -tests=testlist -junitfile=summary.junit.xml -tapfile=summary.tap -xmlfile=summary.xml
+
+mv summary.junit.xml ${WORKSPACE}
+mv summary.tap ${WORKSPACE}
+mv summary.xml ${WORKSPACE}
+cd ${WORKSPACE}
+rm -rf ${TMP_WORKSPACE}
+exit 0
+
diff --git a/maint/jenkins/test-worker-armci.sh b/maint/jenkins/test-worker-armci.sh
new file mode 100755
index 0000000..d11164c
--- /dev/null
+++ b/maint/jenkins/test-worker-armci.sh
@@ -0,0 +1,86 @@
+#!/bin/zsh -xe
+
+WORKSPACE=""
+GIT_BRANCH=""
+BUILD_MODE="per-commit"
+
+#####################################################################
+## Initialization
+#####################################################################
+
+while getopts ":h:b:" opt; do
+    case "$opt" in
+        h)
+            WORKSPACE=$OPTARG ;;
+        b)
+            GIT_BRANCH=$OPTARG ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            exit 1
+    esac
+done
+
+cd $WORKSPACE
+
+TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
+SRC=$WORKSPACE
+TMP_SRC=$TMP_WORKSPACE
+
+if test "$GIT_BRANCH" = "" ; then
+    BUILD_MODE="nightly"
+fi
+
+# Preparing the source
+case "$BUILD_MODE" in
+    "nightly")
+        tar zxvf mpich-master.tar.gz
+        SRC=$WORKSPACE/mpich-master
+        TMP_SRC=$TMP_WORKSPACE/mpich-master
+        cp -a $WORKSPACE/mpich-master $TMP_WORKSPACE/
+        ;;
+    "per-commit")
+        cp -a $WORKSPACE/* $TMP_WORKSPACE/
+        ;;
+    *)
+        echo "Invalid BUILD_MODE $BUILD_MODE. Set by mistake?"
+        exit 1
+esac
+
+PATH=$HOME/software/autotools/bin:$PATH
+export PATH
+
+#####################################################################
+## Main() { Setup Environment and Build
+#####################################################################
+
+pushd "$TMP_SRC"
+
+if test "$BUILD_MODE" = "per-commit" ; then
+    ./autogen.sh 2>&1 | tee autogen.log
+fi
+
+./configure --prefix="$TMP_SRC/_inst" CC=gcc CXX=g++ FC=gfortran 2>&1 | tee c.txt
+make -j16 install 2>&1 | tee mi.txt
+
+#####################################################################
+## Run tests
+#####################################################################
+
+rm -rf ./armci-mpi
+git clone -b mpi3rma git://git.mpich.org/armci-mpi
+
+export PATH=$TMP_SRC/_inst/bin:$PATH
+
+pushd $TMP_SRC/armci-mpi
+
+./autogen.sh
+./configure
+make -j8
+make check
+
+popd
+popd
+
+rm -rf $TMP_WORKSPACE
+exit 0
+
diff --git a/maint/jenkins/test-worker-tarball.sh b/maint/jenkins/test-worker-tarball.sh
new file mode 100755
index 0000000..ee443a6
--- /dev/null
+++ b/maint/jenkins/test-worker-tarball.sh
@@ -0,0 +1,17 @@
+#!/bin/zsh -xe
+
+export PATH=$HOME/software/autotools/bin:$HOME/software/sowing/bin:$PATH
+export DOCTEXT_PATH=$HOME/software/sowing/share/doctext
+export CC=gcc
+export CXX=g++
+export FC=gfortran
+
+cd $WORKSPACE
+git clean -x -d -f
+
+mkdir build
+cd build
+
+../maint/release.pl --branch=master --version=master --git-repo=git://git.mpich.org/mpich.git
+
+exit 0
diff --git a/maint/jenkins/test-worker.sh b/maint/jenkins/test-worker.sh
new file mode 100755
index 0000000..7f94495
--- /dev/null
+++ b/maint/jenkins/test-worker.sh
@@ -0,0 +1,497 @@
+#!/bin/zsh -xe
+
+WORKSPACE=""
+compiler="gnu"
+jenkins_configure="default"
+queue="ib64"
+netmod="default"
+ofi_prov="sockets"
+N_MAKE_JOBS=8
+GIT_BRANCH=""
+BUILD_MODE="per-commit"
+
+#####################################################################
+## Initialization
+#####################################################################
+
+while getopts ":h:c:o:q:m:n:b:" opt; do
+    case "$opt" in
+        h)
+            WORKSPACE=$OPTARG ;;
+        c)
+            compiler=$OPTARG ;;
+        o)
+            jenkins_configure=$OPTARG ;;
+        q)
+            queue=$OPTARG ;;
+        m)
+            _netmod=${OPTARG%%,*}
+            if [[ "$_netmod" == "ofi" ]]; then
+                netmod=$_netmod
+                ofi_prov=${OPTARG/$_netmod,}
+            else
+                netmod=$_netmod
+            fi
+            ;;
+        n)
+            N_MAKE_JOBS=$OPTARG ;;
+        b)
+            GIT_BRANCH=$OPTARG ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            exit 1
+    esac
+done
+
+cd $WORKSPACE
+
+TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
+SRC=$WORKSPACE
+TMP_SRC=$TMP_WORKSPACE
+
+if test "$GIT_BRANCH" = "" ; then
+    BUILD_MODE="nightly"
+fi
+
+# Preparing the source
+case "$BUILD_MODE" in
+    "nightly")
+        tar zxvf mpich-master.tar.gz
+        SRC=$WORKSPACE/mpich-master
+        TMP_SRC=$TMP_WORKSPACE/mpich-master
+        cp -a $WORKSPACE/mpich-master $TMP_WORKSPACE/
+        ;;
+    "per-commit")
+        git clean -x -d -f
+        cp -a $WORKSPACE/* $TMP_WORKSPACE/
+        ;;
+    *)
+        echo "Invalid BUILD_MODE $BUILD_MODE. Set by mistake?"
+        exit 1
+esac
+
+
+#####################################################################
+## Functions
+#####################################################################
+
+CollectResults() {
+    # TODO: copy saved test binaries (for failed cases)
+    find . \
+        \( -name "filtered-make.txt" -o \
+        -name "autogen.log" -o \
+        -name "config.log" -o \
+        -name "c.txt" -o \
+        -name "m.txt" -o \
+        -name "mi.txt" -o \
+        -name "summary.junit.xml" \) \
+        -exec cp {} $SRC/{} \;
+}
+
+#####################################################################
+## Logic to generate random configure options
+#####################################################################
+RandArgs() {
+    # Chosen *without* replacement.  If an option is chosen twice,
+    # then there will be fewer options
+    n_choice=$1
+    array=(${(P)${2}})
+    optname=$3
+    negoptname=$4
+    chosen=()
+    args=""
+    ret_args=""
+    array_len=$#array
+    idx=0
+
+    for i in `seq $array_len`; do
+        chosen[$i]=0
+    done
+
+    for i in `seq $n_choice`; do
+        let idx=$[RANDOM % $array_len]+1
+        if [ $chosen[$idx] -eq 1 ]; then continue; fi
+        chosen[$idx]=1
+        args=("${(s/;/)array[$idx]}")
+        name=$args[1]
+        if [ $#args -eq 1 ]; then
+            # Only the name is provided.  Choose one of three
+            # choices:
+            #    No option (skip this one)
+            #    just --$optname-$name
+            #    just --$negoptname-$name
+            let idx=$[RANDOM % 3]+1
+            if [ $idx -eq 1 ]; then
+                ret_args="$ret_args --$optname-$name"
+            elif [ $idx -eq 2 ]; then
+                ret_args="$ret_args --$negoptname-$name"
+            fi
+        else
+            let idx=$[RANDOM % ($#args-1)]+2
+            # Special cases
+            if [ "$args[$idx]" = "ch3:sock" ]; then
+                ret_args="$ret_args --disable-ft-tests --disable-comm-overlap-tests"
+            elif [ "$args[$idx]" = "gforker" ]; then
+                if [ $chosen[4] -eq 1 ]; then
+                    continue
+                else
+                    ret_args="$ret_args --with-namepublisher=file"
+                    chosen[4]=1
+                fi
+            elif [ "$name" = "namepublisher" -a "$args[$idx]" = "no" ]; then
+                if [ $chosen[3] -eq 1 ]; then
+                    continue
+                fi
+            elif [ "$args[$idx]" = "ndebug" -a "$CC" = "suncc" -a "$label" = "ubuntu32" ]; then
+                # On ubuntu32, suncc has a bug whose workaround is to add -O flag (ticket #2105)
+                CFLAGS="-O1"
+                export CFLAGS
+            fi
+            ret_args="$ret_args --$optname-$name=$args[$idx]"
+        fi
+    done
+    echo $ret_args
+}
+
+RandConfig() {
+    # WARNING: If moving anything in the two following arrays, check the indices in "Special cases" above
+    enable_array=(
+        'error-checking;no;runtime;all'
+        'error-messages;all;generic;class;none'
+        'timer-type;linux86_cycle;clock_gettime;gettimeofday'
+        'timing;none;all;runtime;log;log_detailed'
+        'g;none;all;handle;dbg;log;meminit;handlealloc;instr;mem;mutex;mutexnesting'
+        'fast;O0;O1;O2;O3;ndebug;all;yes;none'
+        'fortran'
+        'cxx'
+        'romio'
+        'check-compiler-flags'
+        'strict;c99;posix'
+        'debuginfo'
+        'weak-symbols;no;yes'
+        'threads;single;multiple;runtime'
+        'thread-cs;global'
+        'refcount;lock-free;none'
+        'mutex-timing'
+        'handle-allocation;tls;mutex'
+        'multi-aliases'
+        'predefined-refcount'
+        'alloca'
+        'yield;sched_yield;select'
+        'runtimevalues'
+    )
+    with_array=(
+        'logging;none'
+        'pmi;simple'
+        'pm;gforker'
+        'namepublisher;no;file'
+        'device;ch3;ch3:sock'
+    )
+    let n_enable=$#enable_array+1
+    let n_with=$#with_array+1
+    enable_args=$(RandArgs $n_enable "enable_array" "enable" "disable")
+    with_args=$(RandArgs $n_with "with_array" "with" "without")
+    echo "$enable_args $with_args"
+}
+
+PrepareEnv() {
+    case "$queue" in
+        "ubuntu32" | "ubuntu64" )
+            source /software/common/adm/etc/softenv-aliases.sh
+            source /software/common/adm/etc/softenv-load.sh
+            soft add +intel
+            soft add +pgi
+            soft add +absoft
+            soft add +nagfor
+            soft add +solarisstudio-12.4
+            soft add +ekopath
+            ;;
+        "freebsd64" | "freebsd32")
+            PATH=/usr/local/bin:$PATH
+            LD_LIBRARY_PATH=/usr/local/lib/gcc46:$LD_LIBRARY_PATH
+            export LD_LIBRARY_PATH
+            ;;
+        "solaris")
+            PATH=/usr/gcc/4.3/bin:/usr/gnu/bin:/usr/sbin:$PATH
+            CONFIG_SHELL=/usr/gnu/bin/sh
+            export CONFIG_SHELL
+            ;;
+    esac
+    PATH=$HOME/software/autotools/bin:$PATH
+    export PATH
+    echo "$PATH"
+}
+
+SetCompiler() {
+    case "$compiler" in
+        "gnu")
+            CC=gcc
+            CXX=g++
+            F77=gfortran
+            FC=gfortran
+            ;;
+        "clang")
+            CC=clang
+            CXX=clang++
+            F77=gfortran
+            FC=gfortran
+            ;;
+        "intel")
+            CC=icc
+            CXX=icpc
+            F77=ifort
+            FC=ifort
+            ;;
+        "pgi")
+            CC=pgcc
+            CXX=pgcpp
+            F77=pgf77
+            FC=pgfortran
+            ;;
+        "absoft")
+            CC=gcc
+            CXX=g++
+            F77=af77
+            FC=af90
+            ;;
+        "nag")
+            CC=gcc
+            CXX=g++
+            F77=nagfor
+            FC=nagfor
+            FFLAGS="-mismatch"
+            FCFLAGS="-mismatch"
+            export FFLAGS
+            export FCFLAGS
+            ;;
+        "solstudio")
+            CC=suncc
+            CXX=sunCC
+            F77=sunf77
+            FC=sunf90
+            ;;
+        "sunstudio")
+            CC=cc
+            CXX=CC
+            F77=f77
+            FC=f90
+            ;;
+        "pathscale")
+            CC=pathcc
+            CXX=pathCC
+            F77=pathf95
+            FC=pathf95
+            ;;
+        *)
+            echo "Unknown compiler suite"
+            exit 1
+    esac
+
+    export CC
+    export CXX
+    export F77
+    export FC
+
+    which $CC
+    which $CXX
+    which $F77
+    which $FC
+}
+
+SetNetmod() {
+    netmod_opt="__NULL__"
+    case "$netmod" in
+        "default") # for solaris, may use with sock
+            netmod_opt=
+            ;;
+        "mxm")
+            netmod_opt="--with-device=ch3:nemesis:mxm --with-mxm=$HOME/software/mellanox/mxm --disable-spawn --disable-ft-tests"
+            ;;
+        "ofi")
+            netmod_opt="--with-device=ch3:nemesis:ofi --with-ofi=$HOME/software/libfabric/$ofi_prov --disable-spawn --disable-ft-tests LD_LIBRARY_PATH=$HOME/software/libfabric/lib"
+            ;;
+        "portals4")
+            netmod_opt="--with-device=ch3:nemesis:portals4 --with-portals4=$HOME/software/portals4 --disable-spawn --disable-ft-tests"
+            ;;
+        "sock")
+            netmod_opt="--with-device=ch3:sock --disable-ft-tests --disable-comm-overlap-tests"
+            ;;
+        "tcp")
+            netmod_opt=
+            ;;
+        *)
+            echo "Unknown netmod type"
+            exit 1
+    esac
+    export netmod_opt
+    echo "$netmod_opt"
+}
+
+SetConfigOpt() {
+    config_opt="__TO_BE_FILLED__"
+    case "$jenkins_configure" in
+        "default")
+            config_opt=
+            ;;
+        "strict")
+            config_opt="--enable-strict"
+            ;;
+        "fast")
+            config_opt="--enable-fast=all"
+            ;;
+        "nofast")
+            config_opt="--disable-fast"
+            ;;
+        "noshared")
+            config_opt="--disable-shared"
+            ;;
+        "debug")
+            config_opt="--enable-g=all"
+            ;;
+        "noweak")
+            config_opt="--disable-weak-symbols"
+            ;;
+        "strictnoweak")
+            config_opt="--enable-strict --disable-weak-symbols"
+            ;;
+        "nofortran")
+            config_opt="--disable-fortran"
+            ;;
+        "nocxx")
+            config_opt="--disable-cxx"
+            ;;
+        "multithread")
+            config_opt="--enable-threads=multiple"
+            ;;
+        "debuginfo")
+            config_opt="--enable-debuginfo"
+            ;;
+        "noerrorchecking")
+            config_opt="--disable-error-checking"
+            ;;
+        "sock") # for solaris + sock
+            config_opt="--with-device=ch3:sock --disable-ft-tests --disable-comm-overlap-tests"
+            ;;
+        "mpd")
+            config_opt="--with-pm=mpd --with-namepublisher=file"
+            ;;
+        "gforker")
+            config_opt="--with-pm=gforker --with-namepublisher=file"
+            ;;
+        "shmem")
+            config_opt=
+            ;;
+        "async")
+            config_opt=
+            ;;
+        "random")
+            config_opt=$(RandArgs)
+            ;;
+        *)
+            echo "Bad configure option: $jenkins_configure"
+            exit 1
+    esac
+
+    if test "$jenkins_configure" != "shmem" ; then
+      config_opt="$config_opt --enable-nemesis-dbg-localoddeven"
+    fi
+
+    if test "$queue" = "osx" -a "$FC" = "ifort"; then
+        config_opt="$config_opt lv_cv_ld_force_load=no"
+    fi
+
+    export config_opt
+    echo "$config_opt"
+}
+
+#####################################################################
+## Main() { Setup Environment and Build
+#####################################################################
+# determine if this is a nightly job or a per-commit job
+PrepareEnv
+
+SetCompiler "$compiler"
+
+pushd "$TMP_SRC"
+
+if test "$BUILD_MODE" = "per-commit" ; then
+    ./autogen.sh 2>&1 | tee autogen.log
+fi
+
+./configure --prefix="$TMP_SRC/_inst" $(SetNetmod $netmod) $(SetConfigOpt $jenkins_configure) \
+    --disable-perftest \
+    2>&1 | tee c.txt
+make -j$N_MAKE_JOBS 2>&1 | tee m.txt
+if test "${pipestatus[-2]}" != "0"; then
+    CollectResults
+    exit 1
+fi
+make -j$N_MAKE_JOBS install 2>&1 | tee mi.txt
+if test "${pipestatus[-2]}" != "0"; then
+    CollectResults
+    exit 1
+fi
+cat m.txt mi.txt | ./maint/clmake > filtered-make.txt 2>&1
+
+#####################################################################
+## Run tests
+#####################################################################
+
+# Preparation
+case "$jenkins_configure" in
+    "mpd")
+        $TMP_SRC/_inst/bin/mpd &
+        sleep 1
+        ;;
+    "async")
+        MPIR_CVAR_ASYNC_PROGRESS=1
+        export MPIR_CVAR_ASYNC_PROGRESS
+        ;;
+    "multithread")
+        MPIR_CVAR_DEFAULT_THREAD_LEVEL=MPI_THREAD_MULTIPLE
+        export MPIR_CVAR_DEFAULT_THREAD_LEVEL
+        ;;
+esac
+
+case "$netmod" in
+    "mxm")
+        MXM_LOG_LEVEL=error
+        export MXM_LOG_LEVEL
+        MXM_SHM_KCOPY_MODE=off
+        export MXM_SHM_KCOPY_MODE
+        ;;
+    "ofi" | "portals4")
+        MXM_LOG_LEVEL=error
+        export MXM_LOG_LEVEL
+        ;;
+esac
+
+# run only the minimum level of datatype tests
+MPITEST_DATATYPE_TEST_LEVEL=min
+export MPITEST_DATATYPE_TEST_LEVEL
+make testing
+
+# Cleanup
+case "$jenkins_configure" in
+    "mpd")
+        $TMP_SRC/_inst/bin/mpdallexit
+        ;;
+    "async")
+        unset MPIR_CVAR_ASYNC_PROGRESS
+        ;;
+esac
+
+if killall -9 hydra_pmi_proxy; then
+  echo "leftover hydra_pmi_proxy processes killed"
+fi
+
+#####################################################################
+## Copy Test results and Cleanup
+#####################################################################
+
+CollectResults
+
+popd
+rm -rf $TMP_WORKSPACE
+exit 0
+

-----------------------------------------------------------------------

Summary of changes:
 maint/jenkins/test-worker-abi-prolog.sh |  253 ++++++++++++++++
 maint/jenkins/test-worker-abi.sh        |  363 ++++++++++++++++++++++
 maint/jenkins/test-worker-armci.sh      |   86 ++++++
 maint/jenkins/test-worker-tarball.sh    |   17 +
 maint/jenkins/test-worker.sh            |  497 +++++++++++++++++++++++++++++++
 5 files changed, 1216 insertions(+), 0 deletions(-)
 create mode 100755 maint/jenkins/test-worker-abi-prolog.sh
 create mode 100755 maint/jenkins/test-worker-abi.sh
 create mode 100755 maint/jenkins/test-worker-armci.sh
 create mode 100755 maint/jenkins/test-worker-tarball.sh
 create mode 100755 maint/jenkins/test-worker.sh


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list