⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runtests.in

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 IN
字号:
#! /bin/sh## Run some of the tests.  If any arguments are provided, pass them to the# test programs.## -mvhome is needed for the ANL SP, and is ignored by othersargs=@MPIRUNARGS@device=@DEVICE@top_srcdir=@top_srcdir@srcdir=@srcdir@MPICH_VERSION=@MPICH_VERSION@STOPFILE=$HOME/.stopmpichtestsmpirun=${MPIRUN:-"@MPIRUN@"}MAKE="@MAKE@"MPIRUNMVBACK="@MPIRUNMVBACK@"## Load basic procedures. ${top_srcdir}/runbase## Set mpirun to the name/path of the mpirun programFindMPIRUN## If the programs are not available, run make.runtests=1makeeach=0writesummaryfile=nocheck_at_once=1quiet=0check_canrun=0CheckOutputWhileRunning="yes"# Using shifts should  remove args from the list.for arg in "$@" ; do    case $arg in 	-checkonly)	shift	runtests=0	;;        -margs=*)	shift	margs=`echo $arg | sed 's/-margs=//'`	args="$args $margs"	;;	-summaryfile=*)	writesummaryfile=yes	summaryfile=`echo A$arg | sed 's/A-summaryfile=//'`	;;	-echo)	shift	set -x	;;	-check)	check_canrun=1	;;	-quiet)	shift	quiet=1	;;	-small)	shift	makeeach=1	;;	-atend)	shift	check_at_once=0	;;	-help|-u)	shift	echo "runtests [-checkonly] [-margs='...'] [-atend] [-check]"	echo "run tests in this directory.  If -checkonly set, just run"	echo "the differences check (do NO rerun the test programs)."	echo "If -margs is used, these options are passed to mpirun."	echo "If -small is used, the examples are built, run, and deleted."	echo "If -atend is used, the success of the tests is checked only"	echo "at the end of the test rather than also after each test."	echo "If -check is used, only a single simple test is run; this"	echo "is used to check that mpirun can run an MPI program."	exit 1	;;	*)	if test -n "$arg" ; then	    echo "Passing remaining arguments to programs ($*)"	    break        fi	;;    esacdone# Do this because we're writing the output while runningsavewritesummaryfile=$writesummaryfilewritesummaryfile=no# If cannot run test, do that and exitif [ $check_canrun = 1 ] ; then    MakeExe third    /bin/rm -f third.out    echo '*** Testing Unexpected messages ***' >> third.out    $mpirun $args -np 2 ./third </dev/null >> third.out 2>&1    echo '*** Testing Unexpected messages ***' >> third.out    rm -f third.stdo    cat >>third.stdo <<EOF*** Testing Unexpected messages *** No Errors*** Testing Unexpected messages ***EOF    if diff -b third.out third.stdo > /dev/null ; then	rc=0    else	echo "Failed to run simple program!"	echo "Output from run attempt was"	cat third.out        echo "mpirun program was $mpirun"	echo "mpirun command was "	echo "$mpirun $args -np 2 ./third </dev/null >>third.out 2>&1"	rc=1    fi    CleanExe third    /bin/rm -f third.out     exit $rcfi# If the programs are not available, run make.if [ ! -x sendrecv -a $makeeach = 0 -a $runtests = 1 ] ; then    $MAKE defaultfitestfiles=""if [ $runtests = 1 ] ; thenecho '**** Testing MPI Point-to-point routines ****'RunTest sendrecv 2 "**** Testing MPI_Send and MPI_Recv ****" "" "sendrecv-0.out sendrecv-1.out"RunTest sendrecv2 2 "**** Testing MPI_Send and MPI_Recv (2) ****"RunTest sendrecv3 2 "**** Testing MPI_Send and MPI_Recv (3) ****"RunTest sendrecv4 2 "**** Testing MPI_Send and MPI_Recv (4) ****"RunTest bsendtest 2 "**** Testing MPI_Bsend and MPI_Recv (4) ****" "" "bsendtest-0.out bsendtest-1.out"RunTest isndrcv 2 "**** Testing MPI_Isend and MPI_Irecv ****" "" "isndrcv-0.out isndrcv-1.out"RunTest irsend 2 "**** Testing MPI_Irsend ****"RunTest irsendinit 2 "**** Testing MPI_Rsend_init ****"RunTest longmsgs 2 "**** Testing long messages ****"RunTest testsome 2 "**** Testing MPI_Testsome/Testany/Waitsome ****"RunTest testall 2 "**** Testing MPI_Testall ****"RunTest cancel 2 "**** Checking MPI_Cancel (Irecv's) ****"RunTest cancel2 2 "**** Checking MPI_Cancel (Persistent Recv's) ****"RunTest cancel3 2 "**** Checking MPI_Cancel (Persistent Send's) ****"RunTest cancelmessages 2 "**** Checking MPI_Cancel (short/eager/rndv) ****"RunTest cancelibm 2 "**** Checking MPI_Cancel (successful/nonsuccessful) ****"RunTest sndrcv 2 "**** Testing MPI_Sendrecv ****"RunTest sndrcvrep 2 "**** Testing MPI_Sendrecv_replace ****"RunTest sndrcvrpl2 2 "**** Testing MPI_Sendrecv_replace (long) ****"RunTest getelm 2 "**** Testing MPI_Get_elements ****"RunTest overtake 2 "**** Verifying that messages are non-overtaking ****" "" "overtake-0.out overtake-1.out"RunTest ssendtest 2 "**** Verifying ssend ****"RunTest ssendtest2 2 "**** Verifying ssend (2) ****"RunTest issendtest 2 "**** Verifying Issend ****" "" "issendtest-1.out"RunTest issend2 2 "**** Verifying Issend (2) ****"RunTest reqcreate 1 "**** Checking the request creation routines ****"RunTest reqfree 2 "**** Checking request free ****" "-req 2048"RunTest typebase 1 "**** Checking the type (sizes) routines ****"RunTest typecreate 1 "**** Checking the type creation routines ****"RunTest typetest 2 "**** Checking the type routines ****" "" "typetest-0.out typetest-1.out"RunTest typeub 2 "**** Checking the type routines: MPI_UB ****"RunTest typeub2 1 "**** Checking the type routines: MPI_UB(2) ****"RunTest typeub3 1 "**** Checking the type routines: MPI_UB(3) ****"RunTest typelb 1 "**** Checking the type routines: MPI_LB ****"RunTest structlb 1 "**** Checking Type_struct routines: MPI_LB ****"RunTest dtypelife 2 "**** Checking the type routines: MPI_Type_free ****"RunTest dataalign 2 "**** Checking the type alignment ****"RunTest dtyperecv 2 "**** Checking the type recv ****"RunTest commit 1 "**** Checking the type routines: MPI_Type_commit ****"RunTest third 2 "*** Testing Unexpected messages ***"RunTest fourth 4 "*** Testing Irecv/Isend/Wait ***"RunTest fifth 4 "*** Testing Irecv/Isend/Waitall ***"RunTest sixth 2 "*** Testing attribute manipulation ***"RunTest nblock 4 "*** Testing Isend/Irecv (large numbers) ***"RunTest nbtest 4 "*** Testing Isend/Probe/Recv (large numbers) ***"RunTest sendmany 8 "*** Testing Send (many procs) ***"RunTest order 2 "*** Testing Recv ordering ***"RunTest sendorder 2 "**** Checking Message Ordering ****"RunTest exittest 3 "**** Checking Exit Processing ****"RunTest trunc 2 "*** Testing Message truncation ***"RunTest truncmult 2 '*** Testing Message trunction in multiple completions ***'RunTest nullproc 2 "*** Testing handling of MPI_PROC_NULL ***"RunTest nullproc2 2 "*** Testing handling of MPI_PROC_NULL in blocking Recv ***"RunTest relrank 2 "*** Testing handling of relative rank ***"RunTest hvectest 2 "*** Testing Vector type ***"RunTest hvectest2 2 "*** Testing struct type for vectors (MPI_UB) ***"RunTest hvec 2 "*** Testing Type_Hvector ***"RunTest hindexed 1 "*** Testing Type_Hindexed ***"RunTest probe 2 "*** Testing Probe and Get_count ***"RunTest probe1 2 "*** Testing Iprobe and Get_count ***"RunTest self 1 "*** Testing send to self ***"RunTest selfvsworld 2 "*** Testing COMM_SELF and COMM_WORLD ***"RunTest testtest1 2 "*** Testing MPI_Test ***"RunTest persistent 4 "*** Testing MPI_Recv_init ***"RunTest persist 4 "*** Testing MPI_Startall/Request_free ***"RunTest persist2 4 "*** Testing MPI_Startall(Bsend)/Request_free ***"RunTest waitall 4 "*** Testing MPI_Waitall ***"RunTest waitall2 2 "*** Testing MPI_Waitall (order) ***"RunTest waitall3 4 "*** Testing MPI_Waitall (order-irecv) ***"RunTest waitall4 4 "*** Testing MPI_Waitall (order-isend) ***"RunTest waitany 4 "*** Testing MPI_Waitany ***"RunTest pack 2 "*** Testing MPI_Pack ***"RunTest flood 2 "**** Testing large messages ****"#RunTest flood2 2 "**** Testing large numbers of messages ****"## Run Fortran tests ONLY if Fortran availableif [ @HAS_FORTRAN@ = 1 ] ; then     echo "FORTRAN TESTS"    #    #echo "*** secondf ***" >> pt2pt.out    #$mpirun $args -np 2 ./secondf "$@" >> pt2pt.out 2>&1    #    RunTest isendf 2 "*** Testing isend from Fortran ***"    RunTest allpair 2 "*** Testing pt-2-pt from Fortran ***"    RunTest allpair2 2 "*** Testing pt-2-pt from Fortran (many calls) ***"    #    OutTime    testfiles="$testfiles structf.out"    /bin/rm -f structf.out    MakeExe structf    echo '*** Testing Type_struct from Fortran ***'    echo '*** Testing Type_struct from Fortran ***' >> structf.out    # This is tricky.  Because of a bug in IRIX64, we need to direct     # input from /dev/null (so that we can know that we need a new process    # group).  This should be ok for everyone, but SunOS 4.1.4 tends to    # panic (!!) in this case.  Since both behaviors represent broken    # operating systems, we test for ARCH=IRIX64     if [ "@ARCH@" = "IRIX64" ] ; then       $mpirun $args -np 2 ./structf "$@" >> structf.out 2>&1 < /dev/null    else      $mpirun $args -np 2 ./structf "$@" >> structf.out 2>&1    fi    echo '*** Testing Type_struct from Fortran ***' >> structf.out    CheckOutput structf    CleanExe structf    #    RunTest send1 2 "*** Testing pt-2-pt from Fortran (2) ***"    RunTest sendfort 2 "*** Testing Fortran logical datatype ***"    ##    testfiles="$testfiles pingpong.out"#    /bin/rm -f pingpong.out#    MakeExe pingpong#    echo '*** Testing pt-2-pt from Fortran (3) ***'#    echo '*** Testing pt-2-pt from Fortran (3) ***' >> pingpong.out#    $mpirun $args -np 2 ./pingpong "$@" >> pingpong.out 2>&1#    echo '*** Testing pt-2-pt from Fortran (3) ***' >> pingpong.out#    CheckOutput pingpong#    CleanExe pingpong    #    echo "END OF FORTRAN TESTS"fi#else    # Just run checks    testfiles=`echo *.out`    if test "$testfiles" = "*.out" ; then	echo "No output files remain from previous test!"	exit 1    fifi#writesummaryfile=$savewritesummaryfileecho '*** Checking for differences from expected output ***'CheckAllOutput pt2pt.diffexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -