#!/bin/sh # BEGIN_ICS_COPYRIGHT8 **************************************** # # Copyright (c) 2015-2017, Intel Corporation # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Intel Corporation nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # END_ICS_COPYRIGHT8 **************************************** # [ICS VERSION STRING: unknown] # helper script to select MPICH_PREFIX # this script should be . included in a run_ script # Input: # MPICH_PREFIX - path to MPICH tools (optional) # Output: # MPICH_PREFIX - path to MPICH tools valid_mpich_prefix() { if [ -z "$MPICH_PREFIX" -o ! -e "$MPICH_PREFIX" -o ! -e "$MPICH_PREFIX"/bin ] then return 1 fi if [ -e "$MPICH_PREFIX/bin/mpirun" -o -e "$MPICH_PREFIX/bin/mpdtrace" \ -o -e "$MPICH_PREFIX/bin/mpirun_mpd" -o -e "$MPICH_PREFIX/bin/mpiexec" \ -o -e "$MPICH_PREFIX/bin/mpirun_rsh" ] then return 0 else return 1 fi } # check all MPIs which start with $1 pathname and pick the 1st valid one find_mpi() { for MPICH_PREFIX in $(ls -d $* 2>/dev/null) do if valid_mpich_prefix then break else MPICH_PREFIX="" fi done } # defaults we use for MPI (intelMPI, openmpi, mvapich2) if [ -z "$MPICH_PREFIX" ] then prefix=${prefix:-/usr} if ! valid_mpich_prefix then find_mpi $(ls -d $prefix/mpi/gcc/openmpi*hfi | grep -v cuda) fi if ! valid_mpich_prefix then find_mpi $prefix/mpi/gcc/openmpi*cuda*hfi fi if ! valid_mpich_prefix then find_mpi $prefix/mpi/gcc/mvapich2-*hfi fi if ! valid_mpich_prefix then find_mpi $prefix/mpi/gcc/openmpi* fi if ! valid_mpich_prefix then find_mpi $prefix/mpi/gcc/mvapich2-* fi if ! valid_mpich_prefix then find_mpi $prefix/mpi/gcc/mvapich-2* fi if ! valid_mpich_prefix then MPICH_PREFIX="" fi fi export MPICH_PREFIX