From 6e911763b7abf923451b30845777fab04460eecf Mon Sep 17 00:00:00 2001 From: Kidd_9561 Date: Tue, 16 Sep 2025 08:44:52 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E5=88=86=E6=94=AF=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kidd_9561 --- config/ompi_config_files.m4 | 2 + ompi/mca/coll/tuned/Makefile.am | 2 + ompi/mca/coll/tuned/etc/Makefile.am | 62 +++ .../etc/coll_tuned_default_decision.conf | 410 ++++++++++++++++++ 4 files changed, 476 insertions(+) create mode 100644 ompi/mca/coll/tuned/etc/Makefile.am create mode 100644 ompi/mca/coll/tuned/etc/coll_tuned_default_decision.conf diff --git a/config/ompi_config_files.m4 b/config/ompi_config_files.m4 index e0a968b3ac7..5fc9e116993 100644 --- a/config/ompi_config_files.m4 +++ b/config/ompi_config_files.m4 @@ -57,5 +57,7 @@ AC_DEFUN([OMPI_CONFIG_FILES],[ ompi/tools/wrappers/ompi-fort.pc ompi/tools/wrappers/mpijavac.pl ompi/tools/mpisync/Makefile + + ompi/mca/coll/tuned/etc/Makefile ]) ]) diff --git a/ompi/mca/coll/tuned/Makefile.am b/ompi/mca/coll/tuned/Makefile.am index 82be7bb72aa..7d0b3cc4fce 100644 --- a/ompi/mca/coll/tuned/Makefile.am +++ b/ompi/mca/coll/tuned/Makefile.am @@ -20,6 +20,8 @@ # $HEADER$ # +SUBDIRS = etc + sources = \ coll_tuned.h \ coll_tuned_dynamic_file.h \ diff --git a/ompi/mca/coll/tuned/etc/Makefile.am b/ompi/mca/coll/tuned/etc/Makefile.am new file mode 100644 index 00000000000..6b8e409e626 --- /dev/null +++ b/ompi/mca/coll/tuned/etc/Makefile.am @@ -0,0 +1,62 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +coll_tuned_config_files = \ + coll_tuned_default_decision.conf + +EXTRA_DIST = $(coll_tuned_config_files) + +# Steal a little trickery from a generated Makefile to only install +# files if they do not already exist at the target. Be sure to read +# thread starting here +# (http://www.open-mpi.org/community/lists/devel/2008/06/4080.php) for +# details why the mkdir is in install-data-local. + +install-data-local: + $(MKDIR_P) $(DESTDIR)$(sysconfdir) + @ p="$(coll_tuned_config_files)"; \ + for file in $$p; do \ + if test -f $(DESTDIR)$(sysconfdir)/$$file; then \ + echo "******************************* WARNING ************************************"; \ + echo "*** Not installing new $$file over existing file in:"; \ + echo "*** $(DESTDIR)$(sysconfdir)/$$file"; \ + echo "******************************* WARNING ************************************"; \ + else \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$file | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f"; \ + $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f; \ + fi; \ + done + +# Only remove if exactly the same as what in our tree +# NOTE TO READER: Bourne shell if ... fi evaluates the body if +# the return of the evaluted command is 0 (as opposed to non-zero +# as used by everyone else) +uninstall-local: + @ p="$(coll_tuned_config_files)"; \ + for file in $$p; do \ + if test -f "$(DESTDIR)$(sysconfdir)/$$file"; then \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + if diff "$(DESTDIR)$(sysconfdir)/$$file" "$$d$$file" > /dev/null 2>&1 ; then \ + echo "rm -f $(DESTDIR)$(sysconfdir)/$$file" ; \ + rm -f "$(DESTDIR)$(sysconfdir)/$$file" ; \ + fi ; \ + fi ; \ + done \ No newline at end of file diff --git a/ompi/mca/coll/tuned/etc/coll_tuned_default_decision.conf b/ompi/mca/coll/tuned/etc/coll_tuned_default_decision.conf new file mode 100644 index 00000000000..5f84d816660 --- /dev/null +++ b/ompi/mca/coll/tuned/etc/coll_tuned_default_decision.conf @@ -0,0 +1,410 @@ +####################################################################################### +############################## RULES FILE TEMPLATE #################################### +####################################################################################### + +9 # num of collectives + +####################################################################################### +############################### 1st COLLECTIVE RULES ################################## +####################################################################################### + +# Start 1st collective rules + +0 # ID = 0 ALLGATHER collective +5 # number of com sizes + +############################## 1st COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +2 # number of msg sizes +0 2 0 0 # for message size 0, bruck 2, topo 0, 0 segmentation +524288 3 0 0 # for message size 524288, recursive_doubling 3, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +3 # number of msg sizes +0 2 0 0 # for message size 0, bruck 2, topo 0, 0 segmentation +2048 3 0 0 # for message size 2048, recursive_doubling 3, topo 0, 0 segmentation +524288 5 0 0 # for message size 524288, neighbor 5, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 1st communicator + +####################################################################################### +############################## 2nd COLLECTIVE RULES ################################### +####################################################################################### + +# Start 2nd collective rules + +1 # ID = 1 ALLGATHERV collective +5 # number of com sizes + +############################## 2nd COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +3 # number of msg sizes +0 1 0 0 # for message size 0, default 1, topo 0, 0 segmentation +262144 2 0 0 # for message size 262144, bruck 2, topo 0, 0 segmentation +524288 1 0 0 # for message size 524288, default 1, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +1 # number of msg sizes +0 2 0 0 # for message size 0, bruck 2, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 2nd communicator + +####################################################################################### +############################## 3rd COLLECTIVE RULES ################################### +####################################################################################### + +# Start 3rd collective rules + +2 # ID = 2 ALLREDUCE collective +5 # number of com sizes + +############################## 3rd COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +3 # number of msg sizes +0 4 0 0 # for message size 0, ring 4, topo 0, 0 segmentation +8 3 0 0 # for message size 8, recursive_doubling 3, topo 0, 0 segmentation +2048 6 0 0 # for message size 2048, rabenseifner 6, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +3 # number of msg sizes +0 5 0 0 # for message size 0, segmented_ring 5, topo 0, 0 segmentation +8 3 0 0 # for message size 8, recursive_doubling 3, topo 0, 0 segmentation +64 2 0 0 # for message size 64, nonoverlapping 2, topo 0, 0 segmentation +16384 6 0 0 # for message size 16384, rabenseifner 6, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 3rd communicator + +####################################################################################### +############################## 4th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 4th collective rules + +3 # ID = 3 ALLTOALL collective +5 # number of com sizes + +############################## 4th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +6 # number of msg sizes +0 3 0 0 # for message size 0, modified_bruck 3, topo 0, 0 segmentation +256 1 0 0 # for message size 256, linear 1, topo 0, 0 segmentation +512 4 0 0 # for message size 512, linear_sync 4, topo 0, 0 segmentation +2048 1 0 0 # for message size 2048, linear 1, topo 0, 0 segmentation +8192 4 0 0 # for message size 8192, linear_sync 4, topo 0, 0 segmentation +32768 1 0 0 # for message size 32768, linear 1, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +5 # number of msg sizes +0 3 0 0 # for message size 0, modified_bruck 3, topo 0, 0 segmentation +512 4 0 0 # for message size 512, linear_sync 4, topo 0, 0 segmentation +16384 2 0 0 # for message size 16384, pairwise 2, topo 0, 0 segmentation +262144 4 0 0 # for message size 262144, linear_sync 4, topo 0, 0 segmentation +524288 2 0 0 # for message size 524288, pairwise 2, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 4th communicator + +####################################################################################### +############################## 5th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 5th collective rules + +4 # ID = 4 ALLTOALLV collective +5 # number of com sizes + +############################## 5th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +3 # number of msg sizes +0 1 0 0 # for message size 0, basic_linear 1, topo 0, 0 segmentation +16384 2 0 0 # for message size 16384, pairwise 2, topo 0, 0 segmentation +32768 1 0 0 # for message size 32768, basic_linear 1, topo 0, 0 segmentation + + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +2 # number of msg sizes +0 1 0 0 # for message size 0, basic_linear 1, topo 0, 0 segmentation +8192 2 0 0 # for message size 8192, pairwise 2, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 5th communicator + +####################################################################################### +############################## 6th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 6th collective rules + +7 # ID = 7 BCAST collective +5 # number of com sizes + +############################## 6th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +5 # number of msg sizes +0 6 0 0 # for message size 0, binomial 6, topo 0, 0 segmentation +16384 4 0 0 # for message size 16384, split_binary_tree 4, topo 0, 0 segmentation +32768 8 0 0 # for message size 32768, scatter_allgather 8, topo 0, 0 segmentation +65536 7 0 0 # for message size 65536, knomial 7, topo 0, 0 segmentation +524288 6 0 0 # for message size 524288, binomial 6, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +4 # number of msg sizes +0 6 0 0 # for message size 0, binomial 6, topo 0, 0 segmentation +16384 4 0 0 # for message size 16384, split_binary_tree 4, topo 0, 0 segmentation +32768 8 0 0 # for message size 32768, scatter_allgather 8, topo 0, 0 segmentation +1048576 4 0 0 # for message size 1048576, split_binary_tree 4, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 6th communicator + +####################################################################################### +############################## 7th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 7th collective rules + +9 # ID = 9 GATHER collective +5 # number of com sizes + +############################## 7th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +3 # number of msg sizes +0 1 0 0 # for message size 0, basic_linear 1, topo 0, 0 segmentation +262144 2 0 0 # for message size 262144, binomial 2, topo 0, 0 segmentation +524288 1 0 0 # for message size 524288, basic_linear 1, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +2 # number of msg sizes +0 1 0 0 # for message size 0, basic_linear 1, topo 0, 0 segmentation +65536 2 0 0 # for message size 65536, binomial 2, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 7th communicator + +####################################################################################### +############################## 8th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 8th collective rules + +11 # ID = 11 REDUCE collective +5 # number of com sizes + +############################## 8th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +3 # number of msg sizes +0 7 0 0 # for message size 0, rabenseifner 7, topo 0, 0 segmentation +256 1 0 0 # for message size 256, linear 1, topo 0, 0 segmentation +262144 5 0 0 # for message size 262144, binomial 5, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +7 # number of msg sizes +0 1 0 0 # for message size 0, linear 1, topo 0, 0 segmentation +128 7 0 0 # for message size 128, rabenseifner 7, topo 0, 0 segmentation +512 1 0 0 # for message size 512, linear 1, topo 0, 0 segmentation +32768 4 0 0 # for message size 32768, binary 4, topo 0, 0 segmentation +65536 5 0 0 # for message size 65536, binomial 5, topo 0, 0 segmentation +131072 4 0 0 # for message size 131072, binary 4, topo 0, 0 segmentation +262144 5 0 0 # for message size 262144, binomial 5, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 8th communicator + +####################################################################################### +############################## 9th COLLECTIVE RULES ################################### +####################################################################################### + +# Start 9th collective rules + +15 # ID = 15 SCATTER collective +5 # number of com sizes + +############################## 9th COMMUNICATOR ##################################### + +# Thresholds for COMM_SIZE_1 + +0 # comm sizes 0 (comm_size < 128) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_2 + +128 # comm sizes 128 (128 <= comm_size < 256) +4 # number of msg sizes +0 2 0 0 # for message size 0, binomial 2, topo 0, 0 segmentation +1024 1 0 0 # for message size 1024, basic_linear 1, topo 0, 0 segmentation +2048 2 0 0 # for message size 2048, binomial 2, topo 0, 0 segmentation +32768 3 0 0 # for message size 32768, linear_nb 3, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_3 + +256 # comm sizes 256 (256 <= comm_size < 512) +0 # number of msg sizes + +# Thresholds for COMM_SIZE_4 + +512 # comm sizes 512 (512 <= comm_size < 1024) +2 # number of msg sizes +0 2 0 0 # for message size 0, binomial 2, topo 0, 0 segmentation +8192 1 0 0 # for message size 128, basic_linear 1, topo 0, 0 segmentation + +# Thresholds for COMM_SIZE_5 + +1024 # comm sizes 1024 (1024 <= comm_size) +0 # number of msg sizes + +# End of 9th communicator \ No newline at end of file -- Gitee