|
| 1 | +export FI_UNIVERSE_SIZE=10000 |
| 2 | +export HG_NA_LOG_LEVEL=error |
| 3 | +export HG_LOG_LEVEL=debug |
| 4 | +#SstVerbose=5 # (1-5, 5 most verbose) |
| 5 | +#export MARGO_ENABLE_PROFILING=1 |
| 6 | +export FI_LOG_LEVEL=Debug |
| 7 | + |
| 8 | +#Note: This configuration file is sourced into the bash environment for Chimbuko startup scripts, thus the user must follow correct shell conventions |
| 9 | +#Please do not remove any of the variables! |
| 10 | + |
| 11 | +#IMPORTANT NOTE: Variables that cannot be left as default are marked as <------------ ***SET ME*** |
| 12 | + |
| 13 | +service_node_iface=enp71s0 #network interface upon which communication to the service node is performed <------------ ***SET ME*** |
| 14 | + |
| 15 | +#################################### |
| 16 | +#Options for visualization module |
| 17 | +#################################### |
| 18 | +use_viz=0 #enable or disable the visualization |
| 19 | +viz_root=/home/ckelly/src/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.3.0/chimbuko-visualization2-master-c5vwtxt7gv2jsyrxymg6toveszc6dfbg #the root directory of the visualization module <------------ ***SET ME (if using viz)*** |
| 20 | +viz_worker_port=6379 #the port on which to run the redis server for the visualization backend |
| 21 | +viz_port=5002 #the port on which to run the webserver |
| 22 | +#export C_FORCE_ROOT=1 #required only for docker runs, allows celery to execute properly as root user <----------------- *** SET ME (if using Docker) |
| 23 | + |
| 24 | +############################################################ |
| 25 | +#General options for Chimbuko backend (pserver, ad, provdb) |
| 26 | +############################################################ |
| 27 | +backend_root="infer" #The root install directory of the PerformanceAnalysis libraries. If set to "infer" it will be inferred from the path of the executables |
| 28 | +chimbuko_services="infer" #The location of the Chimbuko service script. If set to "infer" it will be inferred from backend_root |
| 29 | + |
| 30 | +#################################### |
| 31 | +#Options for the provenance database |
| 32 | +#################################### |
| 33 | +use_provdb=0 #enable or disable the provDB. If disabled the provenance data will be written as JSON ASCII into the ${provdb_writedir} set below |
| 34 | +provdb_extra_args="" #any extra command line arguments to pass |
| 35 | +provdb_nshards=4 #number of database shards |
| 36 | +provdb_engine="sockets" #the OFI libfabric provider used for the Mochi stack |
| 37 | +provdb_port=5000 #the port of the provenance database |
| 38 | +provdb_nthreads=4 #number of worker threads; should be >= the number of shards |
| 39 | +provdb_writedir=chimbuko/provdb #the directory in which the provenance database is written. Chimbuko creates chimbuko/provdb which can be used as a default |
| 40 | +provdb_commit_freq=10000 #frequency ms at which the provenance database is committed to disk. If set to 0 it will commit only at the end |
| 41 | + |
| 42 | +#With "verbs" provider (used for infiniband, iWarp, etc) we need to also specify the domain, which can be found by running fi_info (on a compute node) |
| 43 | +provdb_domain=mlx5_0 #only needed for verbs provider <------------ ***SET ME (if using verbs)*** |
| 44 | + |
| 45 | + |
| 46 | +#################################### |
| 47 | +#Options for the parameter server |
| 48 | +#################################### |
| 49 | +use_pserver=1 #enable or disable the pserver |
| 50 | +pserver_extra_args="" #any extra command line arguments to pass |
| 51 | +pserver_port=5559 #port for parameter server |
| 52 | +pserver_nt=2 #number of worker threads |
| 53 | +#################################### |
| 54 | +#Options for the AD module |
| 55 | +#################################### |
| 56 | +ad_extra_args="-perf_outputpath chimbuko/logs -perf_step 1" #any extra command line arguments to pass. Note: chimbuko/logs is automatically created by services script |
| 57 | +ad_win_size=5 #number of events around an anomaly to store; provDB entry size is proportional to this so keep it small! |
| 58 | +ad_alg="hbos" #the anomaly detection algorithm. Valid values are "hbos" and "sstd" |
| 59 | +ad_outlier_hbos_threshold=0.99 #the percentile of events outside of which are considered anomalies by the HBOS algorithm |
| 60 | +ad_outlier_sstd_sigma=12 #number of standard deviations that defines an outlier in the SSTD algorithm |
| 61 | +#################################### |
| 62 | +#Options for TAU |
| 63 | +#Note: Only the TAU_ADIOS2_PATH, TAU_ADIOS2_FILE_PREFIX, EXE_NAME and TAU_ADIOS2_ENGINE variables are used by the Chimbuko services script and there only to generate the suggested |
| 64 | +# command to launch the AD (output to chimbuko/vars/chimbuko_ad_cmdline.var); they can be overridden by the run script if desired providing the appropriate modifications |
| 65 | +# are made to the AD launch command. The remainder of the variables are used only by TAU and can be freely overridden. |
| 66 | +#################################### |
| 67 | +export TAU_ADIOS2_ENGINE=BP4 #online communication engine (alternative BP4 although this goes through the disk system and may be slower unless the BPfiles are stored on a burst disk) |
| 68 | +export TAU_ADIOS2_ONE_FILE=FALSE #a different connection file for each rank |
| 69 | +export TAU_ADIOS2_PERIODIC=1 #enable/disable ADIOS2 periodic output |
| 70 | +export TAU_ADIOS2_PERIOD=1000000 #period in us between ADIOS2 io steps |
| 71 | +export TAU_THREAD_PER_GPU_STREAM=1 #force GPU streams to appear as different TAU virtual threads |
| 72 | +export TAU_THROTTLE=0 #enable/disable throttling of short-running functions |
| 73 | + |
| 74 | +#export TAU_MAKEFILE=/home/ckelly/install/tau/x86_64/lib/Makefile.tau-rocm-roctracer-clang-papi-mpi-pthread-pdt-adios2 #The TAU makefile to use <------------ ***SET ME*** |
| 75 | + |
| 76 | +#Note: the following 2 variables are not used by the service script but are included here for use from the user's run script allowing the application to be launched with either "${TAU_EXEC} <app>" or "${TAU_PYTHON} <app>" |
| 77 | +#Note: the "binding" -T ... is used by Tau to find the appropriate configuration. It can typically be inferred from the name of the Makefile. If using a non-MPI job the 'mpi' should be changed to 'serial' and a non-MPI build of |
| 78 | +# ADIOS2/TAU must exist |
| 79 | +#Suggestion: It is useful to test the command without Chimbuko first to ensure TAU picks up the correct binding; this can be done by 'export TAU_ADIOS2_ENGINE=BPFile' and then running the application with Tau but without Chimbuko. |
| 80 | + |
| 81 | + |
| 82 | +#-rw-rw-r-- 1 ckelly ckelly 98545 Aug 25 09:21 /home/ckelly/install/tau/x86_64/lib/Makefile.tau-rocm-roctracer-clang-papi-mpi-pthread-pdt-adios2 |
| 83 | +#-rw-rw-r-- 1 ckelly ckelly 98617 Aug 25 16:04 /home/ckelly/install/tau/x86_64/lib/Makefile.tau-rocm-roctracer-rocprofiler-clang-papi-mpi-pthread-pdt-adios2 |
| 84 | +#-rw-rw-r-- 1 ckelly ckelly 98561 Aug 25 16:06 /home/ckelly/install/tau/x86_64/lib/Makefile.tau-rocm-rocprofiler-clang-papi-mpi-pthread-pdt-adios2 |
| 85 | + |
| 86 | + |
| 87 | +TAU_EXEC="tau_exec -T rocm,roctracer,clang,papi,mpi,pthread,pdt,adios2 -rocm -adios2_trace" #how to execute tau_exec; the -T arguments should mirror the makefile name <------------ ***SET ME*** |
| 88 | +TAU_PYTHON="tau_python -T papi,mpi,pthread,pdt,adios2 -tau-python-interpreter=python3 -adios2_trace -tau-python-args=-u" #how to execute tau_python. Note that passing -u to python forces it to not buffer stdout so we can pipe it |
| 89 | + #to tee in realtime <--- SET ME (if !python3) |
| 90 | + |
| 91 | +export EXE_NAME=main #the name of the executable (without path) <------------ ***SET ME*** |
| 92 | + |
| 93 | +TAU_ADIOS2_PATH=chimbuko/adios2 #path where the adios2 files are to be stored. Chimbuko services creates the directory chimbuko/adios2 in the working directory and this should be used by default |
| 94 | +TAU_ADIOS2_FILE_PREFIX=tau-metrics #the prefix of tau adios2 files; full filename is ${TAU_ADIOS2_PREFIX}-${EXE_NAME}-${RANK}.bp |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | +########################################################################### |
| 109 | +# NON-USER VARIABLES BELOW = DON'T MODIFY THESE!! |
| 110 | +########################################################################### |
| 111 | +#Extra processing |
| 112 | +export TAU_ADIOS2_FILENAME="${TAU_ADIOS2_PATH}/${TAU_ADIOS2_FILE_PREFIX}" |
| 113 | + |
| 114 | +if [[ ${backend_root} == "infer" ]]; then |
| 115 | + if [[ $(which provdb_admin) == "" ]]; then |
| 116 | + echo "When inferring the backend root directory, could not find provdb_admin in PATH. Please add your Chimbuko bin directory to PATH" |
| 117 | + exit 1 |
| 118 | + fi |
| 119 | + |
| 120 | + backend_root=$( readlink -f $(which provdb_admin | sed 's/provdb_admin//')/../ ) |
| 121 | +fi |
| 122 | + |
| 123 | +if [[ ${chimbuko_services} == "infer" ]]; then |
| 124 | + chimbuko_services="${backend_root}/scripts/launch/run_services.sh" |
| 125 | + if [ ! -f "${chimbuko_services}" ]; then |
| 126 | + echo "Could not infer service script location: service script does not exist at ${chimbuko_services}!" |
| 127 | + exit 1 |
| 128 | + fi |
| 129 | +fi |
| 130 | + |
0 commit comments