src/test/checkmpi.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    # checks the consistency of send/receive buffers
    
    echo "checkmpi" > /dev/stderr
    
    t=""
    npe=`ls mpi-level-rcv-$t* | wc -l | awk '{print $1 - 1}'`
    for i in `seq 0 1 $npe`; do
        for j in `seq 0 1 $npe`; do
    	for op in level level-root restriction; do
    	    awk -v j=$j '{if ($4 == j) print $1,$2,$3;}' \
    		< mpi-$op-rcv-$t$i > rcv-$op-$i-$j
    	    awk -v i=$i '{if ($4 == i) print $1,$2,$3;}' \
    		< mpi-$op-snd-$t$j > snd-$op-$j-$i
    	    if ! diff rcv-$op-$i-$j snd-$op-$j-$i > diff; then
    		echo \'rcv-$op-$i-$j\', \'snd-$op-$j-$i\' > /dev/stderr
    		cat diff > /dev/stderr
    	    else
    		rm -f rcv-$op-$i-$j snd-$op-$j-$i
    	    fi
    	    rm -f diff
    	done
        done
    done
    
    cat depth-$t* | sort -r | awk '
    /^depth:/ { depth[$2] = $3; }
    {
      if ($1 != "=======")
        if ($3 > depth[$2])
          printf ("process %d thinks process %d is deeper than it really is! (%d > %d)\n",
                  $1, $2, $3, depth[$2]) > "/dev/stderr";
    }
    '