Blame test/mpi/coll/test_coll_algos.sh

Packit Service c5cf8c
#!/bin/sh
Packit Service c5cf8c
#
Packit Service c5cf8c
# (C) 2018 by Argonne National Laboratory.
Packit Service c5cf8c
#     See COPYRIGHT in top-level directory.
Packit Service c5cf8c
#
Packit Service c5cf8c
nl='
Packit Service c5cf8c
'
Packit Service c5cf8c
Packit Service c5cf8c
coll_algo_tests=""
Packit Service c5cf8c
Packit Service c5cf8c
########## Add tests for bcast algorithms ############
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for bcast to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_BCAST_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_BCAST_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="tree scatter_recexch_allgather ring"
Packit Service c5cf8c
tree_types="kary knomial_1 knomial_2"
Packit Service c5cf8c
kvalues="3"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        if [ ${algo_name} = "tree" ]; then
Packit Service c5cf8c
            for tree_type in ${tree_types}; do
Packit Service c5cf8c
                #set the environment
Packit Service c5cf8c
                env="${testing_env} env=MPIR_CVAR_IBCAST_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
                env+="env=MPIR_CVAR_IBCAST_TREE_TYPE=${tree_type} "
Packit Service c5cf8c
                env+="env=MPIR_CVAR_IBCAST_TREE_KVAL=${kval} env=MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE=4096 "
Packit Service c5cf8c
                env+="env=MPIR_CVAR_IBCAST_RING_CHUNK_SIZE=4096 "
Packit Service c5cf8c
Packit Service c5cf8c
                coll_algo_tests+="bcasttest 10 ${env}${nl}"
Packit Service c5cf8c
                coll_algo_tests+="bcastzerotype 5 ${env}${nl}"
Packit Service c5cf8c
            done
Packit Service c5cf8c
        else
Packit Service c5cf8c
            #set the environment
Packit Service c5cf8c
            env="${testing_env} env=MPIR_CVAR_IBCAST_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
            env+="env=MPIR_CVAR_IBCAST_SCATTER_KVAL=${kval} env=MPIR_CVAR_IBCAST_ALLGATHER_RECEXCH_KVAL=${kval} "
Packit Service c5cf8c
Packit Service c5cf8c
            coll_algo_tests+="bcasttest 10 ${env}${nl}"
Packit Service c5cf8c
            coll_algo_tests+="bcastzerotype 5 ${env}${nl}"
Packit Service c5cf8c
        fi
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
########## Add tests for reduce algorithms ############
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for reduce to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_REDUCE_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="tree ring"
Packit Service c5cf8c
tree_types="kary knomial_1 knomial_2"
Packit Service c5cf8c
kvalues="3"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    if [ ${algo_name} = "tree" ]; then
Packit Service c5cf8c
        for tree_type in ${tree_types}; do
Packit Service c5cf8c
            for kval in ${kvalues}; do
Packit Service c5cf8c
                #set the environment
Packit Service c5cf8c
                env="${testing_env} env=MPIR_CVAR_IREDUCE_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
                env+="env=MPIR_CVAR_IREDUCE_TREE_TYPE=${tree_type} "
Packit Service c5cf8c
                env+="env=MPIR_CVAR_IREDUCE_TREE_KVAL=${kval} env=MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE=4096 "
Packit Service c5cf8c
Packit Service c5cf8c
                coll_algo_tests+="reduce 5 ${env}${nl}"
Packit Service c5cf8c
                coll_algo_tests+="reduce 10 ${env}${nl}"
Packit Service c5cf8c
                coll_algo_tests+="red3 10 ${env}${nl}"
Packit Service c5cf8c
                coll_algo_tests+="red4 10 ${env}${nl}"
Packit Service c5cf8c
            done
Packit Service c5cf8c
        done
Packit Service c5cf8c
    else #ring algorithm
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IREDUCE_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE=4096 "
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="reduce 5 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="reduce 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red3 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red4 10 ${env}${nl}"
Packit Service c5cf8c
    fi
Packit Service c5cf8c
done
Packit Service c5cf8c
######### Add tests for Allreduce algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for allreduce to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="recexch_single_buffer recexch_multiple_buffer tree_kary tree_knomial"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL=${kval} env=MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE=4096 "
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="allred 4 arg=100 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred 7 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allredmany 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred2 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred3 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred4 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred5 5 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred6 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allred6 7 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Allgather algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for allgather to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="recexch_distance_doubling recexch_distance_halving gentran_brucks"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IALLGATHER_RECEXCH_KVAL=${kval} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IALLGATHER_BRUCKS_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="allgather2 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allgather3 10 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Allgatherv algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for allgatherv to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="recexch_distance_doubling recexch_distance_halving gentran_ring"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    if [ "${algo_name}" != "gentran_ring" ]; then
Packit Service c5cf8c
        for kval in ${kvalues}; do
Packit Service c5cf8c
            env="${testing_env} env=MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
            env+="env=MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
            coll_algo_tests+="allgatherv2 10 ${env}${nl}"
Packit Service c5cf8c
            coll_algo_tests+="allgatherv3 10 ${env}${nl}"
Packit Service c5cf8c
            coll_algo_tests+="allgatherv4 4 timeLimit=600 ${env}${nl}"
Packit Service c5cf8c
        done
Packit Service c5cf8c
    else
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        coll_algo_tests+="allgatherv2 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allgatherv3 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="allgatherv4 4 timeLimit=600 ${env}${nl}"
Packit Service c5cf8c
    fi
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Reduce_scatter_block algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for reduce_scatter_block to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="recexch"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block 4 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block 5 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block 8 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block2 4 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block2 5 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="red_scat_block2 10 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscatblk3 8 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscatblk3 10 mpiversion=2.2 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Reduce_scatter algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for reduce_scatter to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="recexch"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="redscat 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscat 6 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscat2 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscat2 5 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscat2 10 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="redscat3 8 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Scatter algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for scatter to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_SCATTER_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="tree"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_ISCATTER_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_ISCATTER_TREE_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="scattern 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="scatter2 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="scatter3 4 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
######### Add tests for Gather algorithms ###########
Packit Service c5cf8c
Packit Service c5cf8c
#disable device collectives for gather to test MPIR algorithms
Packit Service c5cf8c
testing_env="env=MPIR_CVAR_GATHER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
Packit Service c5cf8c
#test nb algorithms
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_GATHER_INTRA_ALGORITHM=nb "
Packit Service c5cf8c
testing_env+="env=MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE=0 "
Packit Service c5cf8c
algo_names="tree"
Packit Service c5cf8c
kvalues="2 3 4"
Packit Service c5cf8c
Packit Service c5cf8c
for algo_name in ${algo_names}; do
Packit Service c5cf8c
    for kval in ${kvalues}; do
Packit Service c5cf8c
        #set the environment
Packit Service c5cf8c
        env="${testing_env} env=MPIR_CVAR_IGATHER_INTRA_ALGORITHM=${algo_name} "
Packit Service c5cf8c
        env+="env=MPIR_CVAR_IGATHER_TREE_KVAL=${kval}"
Packit Service c5cf8c
Packit Service c5cf8c
        coll_algo_tests+="gather 4 ${env}${nl}"
Packit Service c5cf8c
        coll_algo_tests+="gather2 4 ${env}${nl}"
Packit Service c5cf8c
    done
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
export coll_algo_tests