Transfer files from RAD repository

This commit is contained in:
Brandon Potter
2024-07-01 09:57:08 -05:00
rodzic a30da178c1
commit ea8f264a11
382 zmienionych plików z 67034 dodań i 1 usunięć
+5
Wyświetl plik
@@ -0,0 +1,5 @@
gdb scripts allow launching rocshmem tests repeatedly with gdb
and dump backtrace on error
- gdbscript - consists of commands which are executed on gdb launch
- gdbrun - run script, launches test in loop with gdb enabled
e.g ./gdbrun 14 10 launches pingPong 10 times
+342
Wyświetl plik
@@ -0,0 +1,342 @@
#!/usr/bin/python3
import argparse
import itertools
import os
import re
import subprocess
import sys
###############################################################################
############################ TEST SUITE VARIABLES #############################
###############################################################################
algorithms = {
0: 'get',
1: 'get_nbi',
2: 'put',
3: 'put_nbi',
4: 'get_swarm',
5: 'reduction',
6: 'amo_fadd',
7: 'amo_finc',
8: 'amo_fetch',
9: 'amo_fcswap',
10: 'amo_add',
11: 'amo_inc',
12: 'amo_cswap',
13: 'init',
14: 'ping_pong',
15: 'barrier',
16: 'random',
17: 'barrier_all',
18: 'sync_all',
19: 'sync_test',
20: 'broadcast',
21: 'collect',
22: 'fcollect',
23: 'all_to_all',
24: 'all_to_alls'
}
primitives = [0, 1, 2, 3]
threaded = [4]
atomics = [6, 7, 8, 9, 10, 11, 12]
inits = [13]
point_to_points = [14]
collectives = [5, 15, 17, 18, 19, 20, 21, 22, 23, 24]
single_thread_algorithms = primitives + \
atomics + \
inits + \
point_to_points + \
[5] # reduction
multi_thread_algorithms = primitives + \
threaded + \
atomics + \
inits + \
point_to_points + \
[5] # reduction
reverse_offload_algorithms = primitives + \
threaded + \
inits + \
point_to_points + \
[5]
###############################################################################
############################## PARSER FUNCTIONS ###############################
###############################################################################
def parse_command_line():
parser = argparse.ArgumentParser(
description='Execute rocshmem integration tests.')
parser.add_argument('--mpirun_procs',
dest='mpirun_procs',
type=int,
nargs='+',
default=[2, 4, 8])
parser.add_argument('--mpirun_machines',
dest='mpirun_machines',
type=str,
nargs='+',
default=['ast-rocm1',
'ast-rocm2',
'ast-rocm3',
'ast-rocm4'])
parser.add_argument('--library_build_config_type',
dest='library_build_config_type',
type=str,
default='rc_single')
parser.add_argument('--client_binary_path',
dest='client_binary_path',
type=str,
default=os.getcwd()+'/build/rocshmem_example_driver')
parser.add_argument('--output_directory_path',
dest='output_directory_path',
type=str,
default=os.getcwd()+'/build')
parser.add_argument('--number_threads',
dest='number_threads',
type=int,
nargs='+',
default=1)
parser.add_argument('--number_workgroups',
dest='number_workgroups',
type=int,
nargs='+',
default=1)
parser.add_argument('--workgroup_size',
dest='workgroup_size',
type=int,
nargs='+',
default=[64, 1024])
parser.add_argument('--workgroup_context_type',
dest='workgroup_context_type',
type=int,
nargs='+',
default=[0, 8])
parser.add_argument('--max_message_size',
dest='max_message_size',
type=int,
default=1048576)
parser.add_argument('--algorithms',
dest='algorithms',
type=int,
nargs='*',
default=None)
return parser.parse_args()
def convert_arguments_to_dictionary(args):
return vars(args)
def determine_algos_from_library_config_type(config):
if config['algorithms']:
return config
gpu_ib = re.match('^[rd]c_', config['library_build_config_type'])
thread_single = re.match('.*single.*', config['library_build_config_type'])
if not gpu_ib:
config['algorithms'] = reverse_offload_algorithms
elif thread_single:
config['algorithms'] = single_thread_algorithms
else:
config['algorithms'] = multi_thread_algorithms
return config
def process_arguments(args):
config = convert_arguments_to_dictionary(args)
config = determine_algos_from_library_config_type(config)
return config
###############################################################################
######################## OPTION CONVERSION DICTIONARY #########################
###############################################################################
option_keyword_dictionary = {
'mpirun_procs' : '-np',
'mpirun_machines' : '--host',
'number_threads' : '-t',
'number_workgroups' : '-w',
'max_message_size' : '-s',
'algorithms' : '-a',
'workgroup_size' : '-z',
'workgroup_context_type' : '-x',
}
###############################################################################
########################## TEST GENERATION FUNCTIONS ##########################
###############################################################################
def separate_dictionaries(dictionary):
library_build_config = {}
mpirun = {}
path = {}
driver = {}
library_build_config_keys = [
'library_build_config_type'
]
mpirun_keys = [
'mpirun_machines',
'mpirun_procs'
]
path_keys = [
'output_directory_path',
'client_binary_path'
]
for key, value in dictionary.items():
if key in library_build_config_keys:
library_build_config[key] = value
elif key in mpirun_keys:
mpirun[key] = value
elif key in path_keys:
path[key] = value
else:
driver[key] = value
return library_build_config, mpirun, path, driver
def convert_dict_values_to_list_of_lists(dictionary):
values = dictionary.values()
list_of_lists = []
for element in values:
if isinstance(element, list):
list_of_lists.append(element)
else:
single_element_list = [element]
list_of_lists.append(single_element_list)
return list_of_lists
def cartesian_product(list_of_lists):
return list(itertools.product(*list_of_lists))
def create_config_combinations(dictionary):
keys = []
for k,v in dictionary.items():
keys.append(k)
values_list_of_lists = convert_dict_values_to_list_of_lists(dictionary)
combinations = cartesian_product(values_list_of_lists)
return keys, combinations
def create_all_mpirun_machine_combinations(mpirun_dict):
mpirun_machine_combinations = []
number_of_machines = len(mpirun_dict['mpirun_machines'])
for i in range(1, number_of_machines + 1):
combinations_object = \
itertools.combinations(mpirun_dict['mpirun_machines'], i)
combinations_list = list(combinations_object)
mpirun_machine_combinations += combinations_list
machine_combo_strings = stringify_machines(mpirun_machine_combinations)
mpirun_dict['mpirun_machines'] = machine_combo_strings
return mpirun_dict
def stringify_machines(machine_list_of_tuples):
list_of_strings = []
for tup in machine_list_of_tuples:
list_of_strings.append(','.join(map(str, tup)))
return list_of_strings
def stringify_config(keys, combo_list):
string_list = []
for combo_tuple in combo_list:
one_string = ''
for position in range(len(keys)):
substr = '{key} {combo}'.format(key=keys[position],
combo=combo_tuple[position])
one_string += substr + ' '
string_list.append(one_string)
return string_list
def generate_test_commands(config_templates):
(build_config, mpirun, path, driver) = \
separate_dictionaries(config_templates)
driver_keys, driver_combos = create_config_combinations(driver)
driver_commands = stringify_config(driver_keys, driver_combos)
mpirun = create_all_mpirun_machine_combinations(mpirun)
mpirun_keys, mpirun_combos = create_config_combinations(mpirun)
mpirun_commands = stringify_config(mpirun_keys, mpirun_combos)
commands = []
for mpirun_command in mpirun_commands:
for driver_command in driver_commands:
mpirun_bin = 'mpirun '
driver_bin = path['client_binary_path'] + ' '
command = mpirun_bin + \
mpirun_command + \
driver_bin + \
driver_command
commands.append(command)
return commands
def replace_option_keywords(commands):
altered_commands = []
for command in commands:
for k,v in option_keyword_dictionary.items():
command = command.replace(k, v)
altered_commands.append(command)
return altered_commands
def generate_tests():
command_line_arguments = parse_command_line()
config_template = process_arguments(command_line_arguments)
commands = generate_test_commands(config_template)
commands = replace_option_keywords(commands)
return commands
###############################################################################
############################ FILE HELPER FUNCTIONS ############################
###############################################################################
def open_output_file(filepath):
try:
f = open(filepath, 'r')
except IOError:
sys.exit('failed to open: ' + filepath)
return f
def create_file_name():
return
def write_output():
return
###############################################################################
########################## TEST EXECUTION FUNCTIONS ###########################
###############################################################################
def single_test(test):
try:
subprocess.run(test, shell=True, check=True)
except subprocess.CalledProcessError as e:
print(e)
return
def all_tests():
for test in generate_tests():
print(test)
#single_test(test)
return
###############################################################################
############################## SCRIPT MAIN BODY ###############################
###############################################################################
all_tests()
+443
Wyświetl plik
@@ -0,0 +1,443 @@
# Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#!/bin/bash
if [ $# -eq 0 ] ; then
echo "This script must be run with at least 2 arguments."
echo 'Usage: ${0} argument1 argument2 [argument3] [argument4] [argument5]'
echo " argument1 : path to the tester driver"
echo " argument2 : test type to run, e.g put"
echo " argument3 : directory to put the output logs"
echo " argument4 : enable gdb debug"
echo " argument5 : shmem context type"
exit 1
fi
shm_ctx=4 # run tests with SHMEM_CONTEXT_WG_PRIVATE
if [ $# -eq 5 ] ; then
shm_ctx=$5
fi
ENABLE_DBG=false
if [ $# -ge 4 ] ; then
ENABLE_DBG=$4
fi
if [ "$ENABLE_DBG" = true ]
then
gdb_cmd="xterm -e gdb -x gdbscript --args"
else
gdb_cmd=""
fi
echo "Test Name ${2} (with shmem context: ${shm_ctx})"
check() {
if [ $? -ne 0 ]
then
echo "Failed $1" >&2
exit 1
fi
}
case $2 in
*"single_thread")
echo "get"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 0 -x ${shm_ctx} > $3/get.log
check get
echo "get_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 0 -x ${shm_ctx} > $3/get_th.log
check get_th
echo "get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 1 -x ${shm_ctx} > $3/get_nbi.log
check get_nbi
echo "get_nbi_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 1 -x ${shm_ctx} > $3/get_nbi_th.log
check get_nbi_th
echo "put"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 2 -x ${shm_ctx} > $3/put.log
check put
echo "put_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 2 -x ${shm_ctx} > $3/put_th.log
check put_th
echo "put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 3 -x ${shm_ctx} > $3/put_nbi.log
check put_nbi
echo "put_nbi_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 3 -x ${shm_ctx} > $3/put_nbi_th.log
check put_nbi_th
# echo "team_ctx_infra"
# mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 42 -x ${shm_ctx} > $3/team_ctx_infra.log
# check team_ctx_infra
echo "team_ctx_put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 41 -x ${shm_ctx} > $3/team_ctx_put_nbi.log
check team_ctx_put_nbi
echo "team_ctx_put_nbi_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 41 -x ${shm_ctx} > $3/team_ctx_put_nbi_th.log
check team_ctx_put_nbi_th
echo "team_ctx_get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 39 -x ${shm_ctx} > $3/team_ctx_get_nbi.log
check team_ctx_get_nbi
echo "team_ctx_get_nbi_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 39 -x ${shm_ctx} > $3/team_ctx_get_nbi_th.log
check team_ctx_get_nbi_th
echo "reduction"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 5 -x ${shm_ctx} > $3/reduction.log
check reduction
echo "amo_fadd"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 6 -x ${shm_ctx} > $3/amo_fadd.log
check amo_fadd
echo "amo_fadd_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 6 -x ${shm_ctx} > $3/amo_fadd_th.log
check amo_fadd_th
echo "amo_finc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 7 -x ${shm_ctx} > $3/amo_finc.log
check amo_finc
echo "amo_finc_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 7 -x ${shm_ctx} > $3/amo_finc_th.log
check amo_finc_th
echo "amo_fetch"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 8 -x ${shm_ctx} > $3/amo_fetch.log
check amo_fetch
echo "amo_fetch_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 8 -x ${shm_ctx} > $3/amo_fetch_th.log
check amo_fetch_th
echo "amo_fcswap"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 9 -x ${shm_ctx} > $3/amo_fcswap.log
check amo_fcswap
echo "amo_fcswap_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 9 -x ${shm_ctx} > $3/amo_fcswap_th.log
check amo_fcswap_th
echo "amo_add"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 10 -x ${shm_ctx} > $3/amo_add.log
check amo_add
echo "amo_add_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 10 -x ${shm_ctx} > $3/amo_add_th.log
check amo_add_th
echo "amo_set"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 44 -x ${shm_ctx} > $3/amo_set.log
check amo_set
echo "amo_set_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 44 -x ${shm_ctx} > $3/amo_set_th.log
check amo_set_th
echo "amo_inc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 11 -x ${shm_ctx} > $3/amo_inc.log
check amo_inc
echo "amo_inc_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 11 -x ${shm_ctx} > $3/amo_inc_th.log
check amo_inc_th
echo "init"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 13 -x ${shm_ctx} > $3/init.log
check init
echo "ping_pong"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 14 -x ${shm_ctx} > $3/ping_pong.log
check ping_pong
echo "ping_pong_th"
mpirun -np 2 ${gdb_cmd} $1 -t 1024 -w 25 -s 32768 -a 14 -x ${shm_ctx} > $3/ping_pong_th.log
check ping_pong_th
echo "barrier_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 17 -x ${shm_ctx} > $3/barrier_all.log
check barrier_all
echo "sync_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 18 -x ${shm_ctx} > $3/sync_all.log
check sync_all
echo "sync"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 19 -x ${shm_ctx} > $3/sync.log
check sync
echo "alltoall"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 23 -x ${shm_ctx} > $3/alltoall.log
check alltoall
echo "fcollect"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 22 -x ${shm_ctx} > $3/fcollect.log
check fcollect
;;
*"multi_thread")
echo "get"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 0 -x ${shm_ctx} > $3/get.log
check get
echo "get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 1 -x ${shm_ctx} > $3/get_nbi.log
check get_nbi
echo "put"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 2 -x ${shm_ctx} > $3/put.log
check put
echo "put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 3 -x ${shm_ctx} > $3/put_nbi.log
check put_nbi
# echo "team_ctx_infra"
# mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 42 -x ${shm_ctx} > $3/team_ctx_infra.log
# check team_ctx_infra
echo "team_ctx_put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 41 -x ${shm_ctx} > $3/team_ctx_put_nbi.log
check team_ctx_put_nbi
echo "team_ctx_get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 39 -x ${shm_ctx} > $3/team_ctx_get_nbi.log
check team_ctx_get_nbi
echo "get_swarm"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 4 -x ${shm_ctx} > $3/get_swarm.log
check get_swarm
echo "reduction"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 5 -x ${shm_ctx} > $3/reduction.log
check reduction
echo "amo_fadd"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 6 -x ${shm_ctx} > $3/amo_fadd.log
check amo_fadd
echo "amo_finc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 7 -x ${shm_ctx} > $3/amo_finc.log
check amo_finc
echo "amo_fetch"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 8 -x ${shm_ctx} > $3/amo_fetch.log
check amo_fetch
echo "amo_fcswap"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 9 -x ${shm_ctx} > $3/amo_fcswap.log
check amo_fcswap
echo "amo_add"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 10 -x ${shm_ctx} > $3/amo_add.log
check amo_add
echo "amo_set"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 44 -x ${shm_ctx} > $3/amo_set.log
check amo_set
echo "amo_inc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 11 -x ${shm_ctx} > $3/amo_inc.log
check amo_inc
echo "init"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 13 -x ${shm_ctx} > $3/init.log
check init
echo "ping_pong"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 14 -x ${shm_ctx} > $3/ping_pong.log
check ping_pong
echo "barrier_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 17 -x ${shm_ctx} > $3/barrier_all.log
check barrier_all
echo "sync_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 18 -x ${shm_ctx} > $3/sync_all.log
check sync_all
echo "sync"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 19 -x ${shm_ctx} > $3/sync.log
check sync
echo "alltoall"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 23 -x ${shm_ctx} > $3/alltoall.log
check alltoall
echo "fcollect"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 22 -x ${shm_ctx} > $3/fcollect.log
check fcollect
;;
*"ro")
echo "get"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 0 -x ${shm_ctx} > $3/get.log
check get
echo "get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 1 -x ${shm_ctx} > $3/get_nbi.log
check get_nbi
echo "put"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 2 -x ${shm_ctx} > $3/put.log
check put
echo "put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 3 -x ${shm_ctx} > $3/put_nbi.log
check put_nbi
# echo "team_ctx_infra"
# mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 42 -x ${shm_ctx} > $3/team_ctx_infra.log
# check team_ctx_infra
echo "team_ctx_put_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 41 -x ${shm_ctx} > $3/team_ctx_put_nbi.log
check team_ctx_put_nbi
echo "team_ctx_get_nbi"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 39 -x ${shm_ctx} > $3/team_ctx_get_nbi.log
check team_ctx_get_nbi
# mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 4 -x ${shm_ctx} > $3/get_swarm.log
# check get_swarm
#mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 5 -x ${shm_ctx} > $3/reduction.log
echo "amo_fadd"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 6 -x ${shm_ctx} > $3/amo_fadd.log
check amo_fadd
echo "amo_finc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 7 -x ${shm_ctx} > $3/amo_finc.log
check amo_finc
echo "amo_fetch"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 8 -x ${shm_ctx} > $3/amo_fetch.log
check amo_fetch
echo "amo_fcswap"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 9 -x ${shm_ctx} > $3/amo_fcswap.log
check amo_fcswap
echo "amo_add"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 10 -x ${shm_ctx} > $3/amo_add.log
check amo_add
echo "amo_set"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 44 -x ${shm_ctx} > $3/amo_set.log
check amo_set
echo "amo_swap"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 45 -x ${shm_ctx} > $3/amo_swap.log
check amo_swap
echo "amo_fetch_and"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 46 -x ${shm_ctx} > $3/amo_fetch_and.log
check amo_fetch_and
echo "amo_and"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 49 -x ${shm_ctx} > $3/amo_and.log
check amo_and
echo "amo_fetch_or"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 47 -x ${shm_ctx} > $3/amo_fetch_or.log
check amo_fetch_or
echo "amo_or"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 50 -x ${shm_ctx} > $3/amo_or.log
check amo_or
echo "amo_fetch_xor"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 47 -x ${shm_ctx} > $3/amo_fetch_xor.log
check amo_fetch_xor
echo "amo_xor"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 50 -x ${shm_ctx} > $3/amo_xor.log
check amo_xor
echo "amo_inc"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 11 -x ${shm_ctx} > $3/amo_inc.log
check amo_inc
echo "init"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 13 -x ${shm_ctx} > $3/init.log
check init
echo "ping_pong"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 14 -x ${shm_ctx} > $3/ping_pong.log
check ping_pong
echo "barrier_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 17 -x ${shm_ctx} > $3/barrier_all.log
check barrier_all
echo "sync_all"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 18 -x ${shm_ctx} > $3/sync_all.log
check sync_all
echo "sync"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 19 -x ${shm_ctx} > $3/sync.log
check sync
echo "alltoall"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 23 -x ${shm_ctx} > $3/alltoall.log
check alltoall
echo "fcollect"
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 22 -x ${shm_ctx} > $3/fcollect.log
check fcollect
;;
*"team_ctx_get")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 38 -x ${shm_ctx}
;;
*"team_ctx_get_nbi")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 39 -x ${shm_ctx}
;;
*"team_ctx_put")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 40 -x ${shm_ctx}
;;
*"team_ctx_put_nbi")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 41 -x ${shm_ctx}
;;
*"get")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 0 -x ${shm_ctx}
;;
*"get_nbi")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 1 -x ${shm_ctx}
;;
*"put")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 2 -x ${shm_ctx}
;;
*"put_nbi")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 3 -x ${shm_ctx}
;;
*"get_swarm")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 4 -x ${shm_ctx}
;;
*"team_reduction")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 37 -x ${shm_ctx}
;;
*"reduction")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 5 -x ${shm_ctx}
;;
*"amo_fadd")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 6 -x ${shm_ctx}
;;
*"amo_finc")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 7 -x ${shm_ctx}
;;
*"amo_fetch")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 8 -x ${shm_ctx}
;;
*"amo_fcswap")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 9 -x ${shm_ctx}
;;
*"amo_add")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 10 -x ${shm_ctx}
;;
*"amo_set")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 44 -x ${shm_ctx}
;;
*"amo_swap")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 45 -x ${shm_ctx}
;;
*"amo_fetch_and")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 46 -x ${shm_ctx}
;;
*"amo_and")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 49 -x ${shm_ctx}
;;
*"amo_fetch_or")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 47 -x ${shm_ctx}
;;
*"amo_or")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 50 -x ${shm_ctx}
;;
*"amo_fetch_xor")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 48 -x ${shm_ctx}
;;
*"amo_xor")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 51 -x ${shm_ctx}
;;
*"amo_inc")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 11 -x ${shm_ctx}
;;
*"init")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 13 -x ${shm_ctx}
;;
*"ping_pong")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 32768 -a 14 -x ${shm_ctx}
;;
*"team_broadcast")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 36 -x ${shm_ctx}
;;
*"alltoall")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 23 -x ${shm_ctx}
;;
*"fcollect")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 22 -x ${shm_ctx}
;;
*"broadcast")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 512 -a 20 -x ${shm_ctx}
;;
*"barrier_all")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 17 -x ${shm_ctx}
;;
*"sync_all")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 18 -x ${shm_ctx}
;;
*"sync")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 19 -x ${shm_ctx}
;;
*"ctx_infra")
mpirun -np 2 ${gdb_cmd} $1 -t 1 -w 1 -s 8 -a 42 -x ${shm_ctx}
;;
*)
echo "UNKNOWN TEST TYPE: $2"
exit -1
;;
esac
exit $?
+10
Wyświetl plik
@@ -0,0 +1,10 @@
# argument1 - operation to run
# argument2 - loop count
# e.g ./gdbrun 14 10 (launches pingpong for 10 times)
set -e
for i in {1..$2};
do
mpirun -np 2 xterm -e gdb -x gdbscript --args build/rocshmem_example_driver -t 1 -w 1 -s 32768 -a $1 -x 8
test $? -eq 0 || exit 1
done
+16
Wyświetl plik
@@ -0,0 +1,16 @@
set pagination off
set print frame-arguments all
set logging file log.dat
set logging on
set $_exitcode = -1
run
if $_exitcode != -1
quit
else
#backtrace
# backtrace for all threads
thread apply all bt full
quit
end
@@ -0,0 +1,115 @@
#!/bin/bash
###############################################
# Script : shmem_allLib_build_and_test.sh
# Description : the script is to build and execute test for
# given libraries as parameter to the script.
# the script used in math_ci jenkins pipeline
# version 1.0 (Version 1)
# Assumption : the script is placed under clients/functional_tests
###############################################
echo ""
echo ""
echo "Starting script .."$0
echo ""
#check parameters. parameter of libs that need to be built and tested will be passed
if [ $# -ne 1 ]
then
echo "Invalid Options for $0 ";
echo "Usage : $0 <liblist> "
echo "example : $0 RC_SINGLE,RC_MULTI "
exit 1
fi
liblist=$1
tliblist=`echo $liblist | sed 's/,/ /g'` # replace , with space, so that can be passed for loop
echo "Parameters passed ==> $tliblist"
echo
for libi in $tliblist
do
echo
echo "==> Processing Lib...$libi"
case $libi in
RC_SINGLE)
libnm=rc_single
libBuildDir=$libnm"_build"
threadType="single_thread"
;;
RC_MULTI)
libnm=rc_multi
libBuildDir=$libnm"_build"
threadType="multi_thread"
;;
RC_MULTI_WF_COAL)
libnm=rc_multi_wf_coal
libBuildDir=$libnm"_build"
threadType="multi_thread"
;;
DC_SINGLE)
libnm=dc_single
libBuildDir=$libnm"_build"
threadType="single_thread"
;;
DC_MULTI)
libnm=dc_multi
libBuildDir=$libnm"_build"
threadType="multi_thread"
;;
RO_NET)
libnm=ro_net
libBuildDir=$libnm"_build"
threadType="single_thread"
;;
*)
echo "Unable to find the option for $libi. Plesae check shmem admin"
echo "** warning ** Skipping the process for $libi "
;;
esac
if [ "$libnm" != "" ] #process only if libname found
then
echo "+-------------------------------------------------------------------------------------------------+"
echo `date +%Y%m%d%H%M%S`" ==> Start | $threadType - build_configs/$libnm <=="
echo "starting with params==> $libnm ; $libBuildDir ; $threadType"
echo
echo "Library build at ==> "$libBuildDir
mkdir $libBuildDir
cd $libBuildDir
../scripts/build_configs/$libnm # from build directory generating the build
# test exeuction based on lib
if [ "$libnm" == "ro_net" ]
then
ROC_SHMEM_RO=1
ROC_NET_CPU_QUEUE=1
UCX_TLS=rc
#echo $ROC_SHMEM_RO"--"$ROC_NET_CPU_QUEUE "--"$UCX_TLS
../scripts/functional_tests/driver.sh tests/functional_tests/rocshmem_example_driver $threadType .
else
../scripts/functional_tests/driver.sh tests/functional_tests/rocshmem_example_driver $threadType .
fi
if [ $? -ne 0 ]
then
echo "Lib $libnm functional Test exited with ** error $? **"
else
echo "Lib $libnm sucessfull "
fi
cd ../ # move to base directory
echo
echo `date +%Y%m%d%H%M%S`" ==> End | $threadType - build_configs/$libnm <=="
echo "+-------------------------------------------------------------------------------------------------+"
fi
libnm="" #reset the parameter after completion of build
libBuildDir=""
threadType=""
done
echo
echo "Script execution ==> $0 <== is done"
echo