|
Packit Service |
c5cf8c |
[#] start of __file__
|
|
Packit Service |
c5cf8c |
dnl MPICH_SUBCFG_BEFORE=src/mpid/common/sched
|
|
Packit Service |
c5cf8c |
dnl MPICH_SUBCFG_BEFORE=src/mpid/common/datatype
|
|
Packit Service |
c5cf8c |
dnl MPICH_SUBCFG_BEFORE=src/mpid/common/thread
|
|
Packit Service |
c5cf8c |
dnl MPICH_SUBCFG_BEFORE=src/mpid/common/bc
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
dnl _PREREQ handles the former role of mpichprereq, setup_device, etc
|
|
Packit Service |
c5cf8c |
[#] expansion is: PAC_SUBCFG_PREREQ_[]PAC_SUBCFG_AUTO_SUFFIX
|
|
Packit Service |
c5cf8c |
AC_DEFUN([PAC_SUBCFG_PREREQ_]PAC_SUBCFG_AUTO_SUFFIX,[
|
|
Packit Service |
c5cf8c |
AM_CONDITIONAL([BUILD_CH4],[test "$device_name" = "ch4"])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AM_COND_IF([BUILD_CH4],[
|
|
Packit Service |
c5cf8c |
AC_MSG_NOTICE([RUNNING PREREQ FOR CH4 DEVICE])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
# the CH4 device depends on the common NBC scheduler code
|
|
Packit Service |
c5cf8c |
build_mpid_common_sched=yes
|
|
Packit Service |
c5cf8c |
build_mpid_common_datatype=yes
|
|
Packit Service |
c5cf8c |
build_mpid_common_thread=yes
|
|
Packit Service |
c5cf8c |
build_mpid_common_bc=yes
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPID_MAX_THREAD_LEVEL=MPI_THREAD_MULTIPLE
|
|
Packit Service |
c5cf8c |
MPID_MAX_PROCESSOR_NAME=128
|
|
Packit Service |
c5cf8c |
MPID_MAX_ERROR_STRING=512
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
# $device_args - contains the netmods
|
|
Packit Service |
c5cf8c |
if test -z "${device_args}" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmods="ofi"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
changequote(<<,>>)
|
|
Packit Service |
c5cf8c |
netmod_args=`echo ${device_args} | sed -e 's/^[^:]*//' -e 's/^://' -e 's/,/ /g'`
|
|
Packit Service |
c5cf8c |
changequote([,])
|
|
Packit Service |
c5cf8c |
ch4_netmods=`echo ${device_args} | sed -e 's/:.*$//' -e 's/,/ /g'`
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
export ch4_netmods
|
|
Packit Service |
c5cf8c |
export netmod_args
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#
|
|
Packit Service |
c5cf8c |
# reset DEVICE so that it (a) always includes the channel name, and (b) does not include channel options
|
|
Packit Service |
c5cf8c |
#
|
|
Packit Service |
c5cf8c |
DEVICE="${device_name}:${ch4_netmods}"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
ch4_nets_func_decl=""
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_decl=""
|
|
Packit Service |
c5cf8c |
ch4_nets_func_array=""
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_array=""
|
|
Packit Service |
c5cf8c |
ch4_nets_strings=""
|
|
Packit Service |
c5cf8c |
net_index=0
|
|
Packit Service |
c5cf8c |
for net in $ch4_netmods ; do
|
|
Packit Service |
c5cf8c |
if test ! -d $srcdir/src/mpid/ch4/netmod/${net} ; then
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR([Network module ${net} is unknown "$srcdir/src/mpid/ch4/netmod/${net}"])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
net_macro=`echo $net | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
|
Packit Service |
c5cf8c |
net_macro="MPIDI_CH4_${net_macro}"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_array" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_array="$net_macro"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_array="$ch4_nets_array, $net_macro"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_func_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_func_decl="MPIDI_NM_${net}_funcs"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_func_decl="${ch4_nets_func_decl}, MPIDI_NM_${net}_funcs"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_native_func_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_decl="MPIDI_NM_native_${net}_funcs"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_decl="${ch4_nets_native_func_decl}, MPIDI_NM_native_${net}_funcs"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_func_array" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_func_array="&MPIDI_NM_${net}_funcs"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_func_array="${ch4_nets_func_array}, &MPIDI_NM_${net}_funcs"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_native_func_array" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_array="&MPIDI_NM_native_${net}_funcs"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_native_func_array="${ch4_nets_native_func_array}, &MPIDI_NM_native_${net}_funcs"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_nets_strings" ; then
|
|
Packit Service |
c5cf8c |
ch4_nets_strings="\"$net\""
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_nets_strings="$ch4_nets_strings, \"$net\""
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_coll_globals_default" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_coll_globals_default="#include \"../netmod/${net}/${net}_coll_globals_default.c\""
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_coll_globals_default="${ch4_netmod_coll_globals_default}
|
|
Packit Service |
c5cf8c |
#include \"../netmod/${net}/${net}_coll_globals_default.c\""
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_pre_include" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_pre_include="#include \"../netmod/${net}/${net}_pre.h\""
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_pre_include="${ch4_netmod_pre_include}
|
|
Packit Service |
c5cf8c |
#include \"../netmod/${net}/${net}_pre.h\""
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_coll_params_include" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_coll_params_include="#include \"../netmod/${net}/${net}_coll_params.h\""
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_coll_params_include="${ch4_netmod_coll_params_include}
|
|
Packit Service |
c5cf8c |
#include \"../netmod/${net}/${net}_coll_params.h\""
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
net_upper=`echo ${net} | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_amrequest_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_amrequest_decl="MPIDI_${net_upper}_am_request_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_amrequest_decl="${ch4_netmod_amrequest_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_am_request_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_request_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_request_decl="MPIDI_${net_upper}_request_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_request_decl="${ch4_netmod_request_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_request_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_comm_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_comm_decl="MPIDI_${net_upper}_comm_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_comm_decl="${ch4_netmod_comm_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_comm_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_dt_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_dt_decl="MPIDI_${net_upper}_dt_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_dt_decl="${ch4_netmod_dt_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_dt_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_op_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_op_decl="MPIDI_${net_upper}_op_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_op_decl="${ch4_netmod_op_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_op_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_barrier_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_barrier_params_decl="MPIDI_${net_upper}_BARRIER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_barrier_params_decl="${ch4_netmod_barrier_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_BARRIER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_bcast_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_bcast_params_decl="MPIDI_${net_upper}_BCAST_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_bcast_params_decl="${ch4_netmod_bcast_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_BCAST_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_reduce_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_params_decl="MPIDI_${net_upper}_REDUCE_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_params_decl="${ch4_netmod_reduce_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_REDUCE_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_allreduce_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_allreduce_params_decl="MPIDI_${net_upper}_ALLREDUCE_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_allreduce_params_decl="${ch4_netmod_allreduce_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLREDUCE_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_alltoall_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoall_params_decl="MPIDI_${net_upper}_ALLTOALL_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoall_params_decl="${ch4_netmod_alltoall_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLTOALL_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_alltoallv_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoallv_params_decl="MPIDI_${net_upper}_ALLTOALLV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoallv_params_decl="${ch4_netmod_alltoallv_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLTOALLV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_alltoallw_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoallw_params_decl="MPIDI_${net_upper}_ALLTOALLW_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_alltoallw_params_decl="${ch4_netmod_alltoallw_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLTOALLW_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_allgather_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_allgather_params_decl="MPIDI_${net_upper}_ALLGATHER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_allgather_params_decl="${ch4_netmod_allgather_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLGATHER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_allgatherv_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_allgatherv_params_decl="MPIDI_${net_upper}_ALLGATHERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_allgatherv_params_decl="${ch4_netmod_allgatherv_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_ALLGATHERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_gather_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_gather_params_decl="MPIDI_${net_upper}_GATHER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_gather_params_decl="${ch4_netmod_gather_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_GATHER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_gatherv_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_gatherv_params_decl="MPIDI_${net_upper}_GATHERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_gatherv_params_decl="${ch4_netmod_gatherv_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_GATHERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_scatter_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_scatter_params_decl="MPIDI_${net_upper}_SCATTER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_scatter_params_decl="${ch4_netmod_scatter_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_SCATTER_PARAMS_DECL"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_scatterv_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_scatterv_params_decl="MPIDI_${net_upper}_SCATTERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_scatterv_params_decl="${ch4_netmod_scatterv_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_SCATTERV_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_reduce_scatter_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_scatter_params_decl="MPIDI_${net_upper}_REDUCE_SCATTER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_scatter_params_decl="${ch4_netmod_reduce_scatter_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_REDUCE_SCATTER_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_reduce_scatter_block_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_scatter_block_params_decl="MPIDI_${net_upper}_REDUCE_SCATTER_BLOCK_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_reduce_scatter_block_params_decl="${ch4_netmod_reduce_scatter_block_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_REDUCE_SCATTER_BLOCK_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_scan_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_scan_params_decl="MPIDI_${net_upper}_SCAN_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_scan_params_decl="${ch4_netmod_scan_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_SCAN_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_exscan_params_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_exscan_params_decl="MPIDI_${net_upper}_EXSCAN_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_exscan_params_decl="${ch4_netmod_exscan_params_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_EXSCAN_PARAMS_DECL;"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_win_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_win_decl="MPIDI_${net_upper}_win_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_win_decl="${ch4_netmod_win_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_win_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
if test -z "$ch4_netmod_addr_decl" ; then
|
|
Packit Service |
c5cf8c |
ch4_netmod_addr_decl="MPIDI_${net_upper}_addr_t ${net};"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
ch4_netmod_addr_decl="${ch4_netmod_addr_decl} \\
|
|
Packit Service |
c5cf8c |
MPIDI_${net_upper}_addr_t ${net};"
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
net_index=`expr $net_index + 1`
|
|
Packit Service |
c5cf8c |
done
|
|
Packit Service |
c5cf8c |
ch4_nets_array_sz=$net_index
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_SUBST(device_name)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmods)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_array)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_array_sz)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_func_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_native_func_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_func_array)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_native_func_array)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_nets_strings)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_pre_include)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_coll_globals_default)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_coll_params_include)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_amrequest_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_request_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_comm_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_dt_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_win_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_addr_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_op_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_barrier_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_bcast_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_reduce_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_allreduce_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_alltoall_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_alltoallv_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_alltoallw_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_allgather_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_allgatherv_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_gather_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_gatherv_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_scatter_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_scatterv_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_reduce_scatter_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_reduce_scatter_block_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_scan_params_decl)
|
|
Packit Service |
c5cf8c |
AC_SUBST(ch4_netmod_exscan_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_pre_include)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_coll_globals_default)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_coll_params_include)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_amrequest_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_request_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_comm_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_dt_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_win_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_addr_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_op_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_barrier_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_bcast_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_reduce_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_allreduce_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_alltoall_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_alltoallv_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_alltoallw_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_allgather_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_allgatherv_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_gather_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_gatherv_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_scatter_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_scatterv_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_reduce_scatter_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_reduce_scatter_block_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_scan_params_decl)
|
|
Packit Service |
c5cf8c |
AM_SUBST_NOTMAKE(ch4_netmod_exscan_params_decl)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-netmod-inline,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-netmod-inline
|
|
Packit Service |
c5cf8c |
Enables inlined netmod build when a single netmod is used
|
|
Packit Service |
c5cf8c |
level:
|
|
Packit Service |
c5cf8c |
yes - Enabled (default)
|
|
Packit Service |
c5cf8c |
no - Disabled (may improve build times and code size)
|
|
Packit Service |
c5cf8c |
],,enable_ch4_netmod_inline=yes)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-netmod-direct,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-netmod-direct
|
|
Packit Service |
c5cf8c |
(Deprecated in favor of ch4-netmod-inline)
|
|
Packit Service |
c5cf8c |
Enables inlined netmod build when a single netmod is used
|
|
Packit Service |
c5cf8c |
level:
|
|
Packit Service |
c5cf8c |
yes - Enabled (default)
|
|
Packit Service |
c5cf8c |
no - Disabled (may improve build times and code size)
|
|
Packit Service |
c5cf8c |
],,)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test "$ch4_nets_array_sz" = "1" && (test "$enable_ch4_netmod_inline" = "yes" || test "$enable_ch4_netmod_direct" = "yes") ; then
|
|
Packit Service |
c5cf8c |
PAC_APPEND_FLAG([-DNETMOD_INLINE=__netmod_inline_${ch4_netmods}__], [CPPFLAGS])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-direct,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-direct
|
|
Packit Service |
c5cf8c |
Defines the direct communication routine used in CH4 device
|
|
Packit Service |
c5cf8c |
level:
|
|
Packit Service |
c5cf8c |
netmod - Directly transfer data through the chosen netmode
|
|
Packit Service |
c5cf8c |
auto - The CH4 device controls whether transfer data through netmod
|
|
Packit Service |
c5cf8c |
or through shared memory based on locality
|
|
Packit Service |
c5cf8c |
],,enable_ch4_direct=default)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-shm-inline,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-shm-inline
|
|
Packit Service |
c5cf8c |
Enables inlined shared memory build when a single shared memory module is used
|
|
Packit Service |
c5cf8c |
level:
|
|
Packit Service |
c5cf8c |
yes - Enabled (default)
|
|
Packit Service |
c5cf8c |
no - Disabled (may improve build times and code size)
|
|
Packit Service |
c5cf8c |
],,enable_ch4_shm_inline=yes)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-shm-direct,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-shm-direct
|
|
Packit Service |
c5cf8c |
(Deprecated in favor of ch4-shm-inline)
|
|
Packit Service |
c5cf8c |
Enables inlined shared memory build when a single shared memory module is used
|
|
Packit Service |
c5cf8c |
level:
|
|
Packit Service |
c5cf8c |
yes - Enabled (default)
|
|
Packit Service |
c5cf8c |
no - Disabled (may improve build times and code size)
|
|
Packit Service |
c5cf8c |
],,)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test "$enable_ch4_shm_inline" = "yes" || test "$enable_ch4_shm_direct" = "yes" ; then
|
|
Packit Service |
c5cf8c |
PAC_APPEND_FLAG([-DSHM_INLINE=__shm_inline_${ch4_shm}__], [CPPFLAGS])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
# setup shared memory defaults
|
|
Packit Service |
c5cf8c |
# TODO: shm submodules should be chosen with similar configure option as that used for netmod.
|
|
Packit Service |
c5cf8c |
# We can add it when a shm submodule is added. Now we just simply set POSIX.
|
|
Packit Service |
c5cf8c |
ch4_shm=posix
|
|
Packit Service |
c5cf8c |
export ch4_shm
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
# setup default direct communication routine
|
|
Packit Service |
c5cf8c |
if test "${enable_ch4_direct}" = "default" ; then
|
|
Packit Service |
c5cf8c |
# ucx can only choose direct netmod because it does not handle any_src
|
|
Packit Service |
c5cf8c |
# receive when both nemod and shared memory are used.
|
|
Packit Service |
c5cf8c |
if test "${ch4_netmods}" = "ucx" ; then
|
|
Packit Service |
c5cf8c |
enable_ch4_direct=netmod
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
enable_ch4_direct=auto
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test "$enable_ch4_direct" != "auto" -a "$enable_ch4_direct" != "netmod"; then
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR([Direct comunication option ${enable_ch4_direct} is unknown])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test "$enable_ch4_direct" = "auto" ; then
|
|
Packit Service |
c5cf8c |
# This variable can be set either when CH4 controls the data transfer routine
|
|
Packit Service |
c5cf8c |
# or when the netmod doesn't want to implement its own locality information
|
|
Packit Service |
c5cf8c |
AC_DEFINE(MPIDI_BUILD_CH4_LOCALITY_INFO, 1, [CH4 should build locality info])
|
|
Packit Service |
c5cf8c |
elif test "$enable_ch4_direct" = "netmod" ; then
|
|
Packit Service |
c5cf8c |
AC_DEFINE(MPIDI_CH4_DIRECT_NETMOD, 1, [CH4 Directly transfers data through the chosen netmode])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
])dnl end AM_COND_IF(BUILD_CH4,...)
|
|
Packit Service |
c5cf8c |
])dnl end PREREQ
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_DEFUN([PAC_SUBCFG_BODY_]PAC_SUBCFG_AUTO_SUFFIX,[
|
|
Packit Service |
c5cf8c |
AM_COND_IF([BUILD_CH4],[
|
|
Packit Service |
c5cf8c |
AC_MSG_NOTICE([RUNNING CONFIGURE FOR CH4 DEVICE])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_WITH(ch4-rank-bits, [--with-ch4-rank-bits=16/32 Number of bits allocated to the rank field (16 or 32)],
|
|
Packit Service |
c5cf8c |
[ rankbits=$withval ],
|
|
Packit Service |
c5cf8c |
[ rankbits=32 ])
|
|
Packit Service |
c5cf8c |
if test "$rankbits" != "16" -a "$rankbits" != "32" ; then
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR(Only 16 or 32-bit ranks are supported)
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
AC_DEFINE_UNQUOTED(CH4_RANK_BITS,$rankbits,[Define the number of CH4_RANK_BITS])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4r-per-comm-msg-queue,
|
|
Packit Service |
c5cf8c |
[--enable-ch4r-per-comm-msg-queue=option
|
|
Packit Service |
c5cf8c |
Enable use of per-communicator message queues for posted recvs/unexpected messages
|
|
Packit Service |
c5cf8c |
yes - Use per-communicator message queue. (Default)
|
|
Packit Service |
c5cf8c |
no - Use global queue for posted recvs/unexpected messages.
|
|
Packit Service |
c5cf8c |
],,enable_ch4r_per_comm_msg_queue=yes)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if test "$enable_ch4r_per_comm_msg_queue" = "yes" ; then
|
|
Packit Service |
c5cf8c |
AC_DEFINE([MPIDI_CH4U_USE_PER_COMM_QUEUE], [1],
|
|
Packit Service |
c5cf8c |
[Define if CH4U will use per-communicator message queues])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_ARG_ENABLE(ch4-mt,
|
|
Packit Service |
c5cf8c |
[--enable-ch4-mt=model
|
|
Packit Service |
c5cf8c |
Select model for multi-threading
|
|
Packit Service |
c5cf8c |
direct - Each thread directly accesses lower-level fabric (default)
|
|
Packit Service |
c5cf8c |
handoff - Use the hand-off model (spawns progress thread)
|
|
Packit Service |
c5cf8c |
trylock - Use the trylock-enqueue model
|
|
Packit Service |
c5cf8c |
runtime - Determine the model at runtime through a CVAR
|
|
Packit Service |
c5cf8c |
],,enable_ch4_mt=direct)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
case $enable_ch4_mt in
|
|
Packit Service |
c5cf8c |
direct)
|
|
Packit Service |
c5cf8c |
AC_DEFINE([MPIDI_CH4_USE_MT_DIRECT], [1],
|
|
Packit Service |
c5cf8c |
[Define to enable direct multi-threading model])
|
|
Packit Service |
c5cf8c |
;;
|
|
Packit Service |
c5cf8c |
handoff)
|
|
Packit Service |
c5cf8c |
AC_DEFINE([MPIDI_CH4_USE_MT_HANDOFF], [1],
|
|
Packit Service |
c5cf8c |
[Define to enable hand-off multi-threading model])
|
|
Packit Service |
c5cf8c |
;;
|
|
Packit Service |
c5cf8c |
trylock)
|
|
Packit Service |
c5cf8c |
AC_DEFINE([MPIDI_CH4_USE_MT_TRYLOCK], [1],
|
|
Packit Service |
c5cf8c |
[Define to enable trylock-enqueue multi-threading model])
|
|
Packit Service |
c5cf8c |
;;
|
|
Packit Service |
c5cf8c |
runtime)
|
|
Packit Service |
c5cf8c |
AC_DEFINE([MPIDI_CH4_USE_MT_RUNTIME], [1],
|
|
Packit Service |
c5cf8c |
[Define to enable runtime multi-threading model])
|
|
Packit Service |
c5cf8c |
;;
|
|
Packit Service |
c5cf8c |
*)
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR([Multi-threading model ${enable_ch4_mt} is unknown])
|
|
Packit Service |
c5cf8c |
;;
|
|
Packit Service |
c5cf8c |
esac
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#
|
|
Packit Service |
c5cf8c |
# Dependency checks for CH4 MT modes
|
|
Packit Service |
c5cf8c |
# Currently, "handoff", "trylock", and "runtime" require the followings:
|
|
Packit Service |
c5cf8c |
# - izem linked in (--with-zm-prefix)
|
|
Packit Service |
c5cf8c |
# - enable-thread-cs=per-vni
|
|
Packit Service |
c5cf8c |
#
|
|
Packit Service |
c5cf8c |
if test "$enable_ch4_mt" != "direct"; then
|
|
Packit Service |
c5cf8c |
if test "${with_zm_prefix}" == "no" -o "${with_zm_prefix}" == "none" -o "${izem_queue}" != "yes" ; then
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR([Multi-threading model `${enable_ch4_mt}` requires izem queue. Set `--enable-izem={queue|all} --with-zm-prefix` and retry.])
|
|
Packit Service |
c5cf8c |
elif test "${enable_thread_cs}" != "per-vni" -a "${enable_thread_cs}" != "per_vni"; then
|
|
Packit Service |
c5cf8c |
AC_MSG_ERROR([Multi-threading model `${enable_ch4_mt}` requires `--enable-thread-cs=per-vni`.])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_CHECK_HEADERS(sys/mman.h sys/stat.h fcntl.h)
|
|
Packit Service |
c5cf8c |
AC_CHECK_FUNC(mmap, [], [AC_MSG_ERROR(mmap is required to build CH4)])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
gl_FUNC_RANDOM_R
|
|
Packit Service |
c5cf8c |
if test "$HAVE_RANDOM_R" = "1" -a "$HAVE_STRUCT_RANDOM_DATA" = "1" ; then
|
|
Packit Service |
c5cf8c |
AC_DEFINE(USE_SYM_HEAP,1,[Define if we can use a symmetric heap])
|
|
Packit Service |
c5cf8c |
AC_MSG_NOTICE([Using a symmetric heap])
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
AC_MSG_NOTICE([Using a non-symmetric heap])
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_CHECK_FUNCS(gethostname)
|
|
Packit Service |
c5cf8c |
if test "$ac_cv_func_gethostname" = "yes" ; then
|
|
Packit Service |
c5cf8c |
# Do we need to declare gethostname?
|
|
Packit Service |
c5cf8c |
PAC_FUNC_NEEDS_DECL([#include <unistd.h>],gethostname)
|
|
Packit Service |
c5cf8c |
fi
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
# make sure we support signal
|
|
Packit Service |
c5cf8c |
AC_CHECK_HEADERS(signal.h)
|
|
Packit Service |
c5cf8c |
AC_CHECK_FUNCS(signal)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AC_CONFIG_FILES([
|
|
Packit Service |
c5cf8c |
src/mpid/ch4/src/mpid_ch4_net_array.c
|
|
Packit Service |
c5cf8c |
src/mpid/ch4/include/netmodpre.h
|
|
Packit Service |
c5cf8c |
src/mpid/ch4/include/coll_algo_params.h
|
|
Packit Service |
c5cf8c |
src/mpid/ch4/src/ch4_coll_globals_default.c
|
|
Packit Service |
c5cf8c |
])
|
|
Packit Service |
c5cf8c |
])dnl end AM_COND_IF(BUILD_CH4,...)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
AM_CONDITIONAL([BUILD_CH4_COLL_TUNING],[test -e "$srcdir/src/mpid/ch4/src/ch4_coll_globals.c"])
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
])dnl end _BODY
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
[#] end of __file__
|