Loading cli/CMakeLists.txt +5 −0 Original line number Diff line number Diff line Loading @@ -51,3 +51,8 @@ target_link_libraries(scord_query install(TARGETS scord_query RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) set_target_properties( scord_query PROPERTIES __INSTALLED_PATH ${CMAKE_INSTALL_FULL_BINDIR}/scord_query ) cmake/scord-utils.cmake +8 −0 Original line number Diff line number Diff line Loading @@ -142,3 +142,11 @@ function(mark_variables_as_advanced) mark_as_advanced(${_var}) endforeach() endfunction() # Define a custom target property so that we can store and retrieve the # installed path of a target. define_property( TARGET PROPERTY __INSTALLED_PATH BRIEF_DOCS "Full path to a target's installed location" FULL_DOCS "Full path to a target's installed location" ) plugins/slurm/CMakeLists.txt +5 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,8 @@ find_package(Slurm REQUIRED) add_library(slurm-plugin SHARED) get_target_property(SCORD_CTL_BIN scord-ctl SCORD_CTL_BINARY) get_target_property(SCORDCTL_PROGRAM scord-ctl __INSTALLED_PATH) get_target_property(SCORD_QUERY_PROGRAM scord_query __INSTALLED_PATH) configure_file(defaults.h.in defaults.h @ONLY) Loading Loading @@ -64,6 +65,9 @@ find_program(MPIEXEC_EXECUTABLE PATH_SUFFIXES bin sbin DOC "MPI launcher executable") set(SCORD_SERVICE_ADDRESS ${SCORD_TRANSPORT_PROTOCOL}://${SCORD_BIND_ADDRESS}:${SCORD_BIND_PORT}) configure_file(scord_common.sh.in scord_common.sh @ONLY) configure_file(scord_prolog.sh.in scord_prolog.sh @ONLY) configure_file(scord_epilog.sh.in scord_epilog.sh @ONLY) Loading plugins/slurm/scord_common.sh.in +3 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,9 @@ function get_addrs { } # shellcheck disable=SC2034 export SCORDCTL_PROGRAM="@SCORD_CTL_BIN@" export SCORD_SERVICE_ADDRESS="@SCORD_SERVICE_ADDRESS@" export SCORD_QUERY_PROGRAM="@SCORD_QUERY_PROGRAM@" export SCORDCTL_PROGRAM="@SCORDCTL_PROGRAM@" export SCORDCTL_PROTO="@SCORD_TRANSPORT_PROTOCOL@" export SCORDCTL_PORT="@SCORD_CTL_BIND_PORT@" export CARGO_PORT="@CARGO_PORT@" plugins/slurm/scord_prolog.sh.in +7 −2 Original line number Diff line number Diff line Loading @@ -174,10 +174,15 @@ fi # generate a specific configuration file each Cargo service. CARGO_ID=$(echo "cargo_$SLURM_JOB_ID.$SLURM_JOB_UID" | sha256sum | awk '{ print $1 }') CARGO_CONFIG_FILE=$CARGO_CONFIG_DIRECTORY/$CARGO_ID.cfg CARGO_NUM_NODES=1 #TODO: ask scord CARGO_MASTER_ADDRESS="$SCORDCTL_PROTO://$ADDRESS:$CARGO_PORT" CARGO_INSTANCE_NAME=$(systemd-escape --template cargo@.service "$CARGO_ID") if ! CARGO_NUM_NODES=$(@SCORD_QUERY_PROGRAM@ -s @SCORD_SERVICE_ADDRESS@ "$SLURM_JOB_ID" | grep io_procs | awk '{ print $2 }'); then echo "Failed to determine the number of I/O processes for job $SLURM_JOB_ID" else CARGO_NUM_NODES=${#hostnames[@]} fi cat <<EOT >>"$CARGO_CONFIG_FILE" CARGO_ID=$CARGO_ID CARGO_HOSTS=$hostnames_csv Loading Loading
cli/CMakeLists.txt +5 −0 Original line number Diff line number Diff line Loading @@ -51,3 +51,8 @@ target_link_libraries(scord_query install(TARGETS scord_query RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) set_target_properties( scord_query PROPERTIES __INSTALLED_PATH ${CMAKE_INSTALL_FULL_BINDIR}/scord_query )
cmake/scord-utils.cmake +8 −0 Original line number Diff line number Diff line Loading @@ -142,3 +142,11 @@ function(mark_variables_as_advanced) mark_as_advanced(${_var}) endforeach() endfunction() # Define a custom target property so that we can store and retrieve the # installed path of a target. define_property( TARGET PROPERTY __INSTALLED_PATH BRIEF_DOCS "Full path to a target's installed location" FULL_DOCS "Full path to a target's installed location" )
plugins/slurm/CMakeLists.txt +5 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,8 @@ find_package(Slurm REQUIRED) add_library(slurm-plugin SHARED) get_target_property(SCORD_CTL_BIN scord-ctl SCORD_CTL_BINARY) get_target_property(SCORDCTL_PROGRAM scord-ctl __INSTALLED_PATH) get_target_property(SCORD_QUERY_PROGRAM scord_query __INSTALLED_PATH) configure_file(defaults.h.in defaults.h @ONLY) Loading Loading @@ -64,6 +65,9 @@ find_program(MPIEXEC_EXECUTABLE PATH_SUFFIXES bin sbin DOC "MPI launcher executable") set(SCORD_SERVICE_ADDRESS ${SCORD_TRANSPORT_PROTOCOL}://${SCORD_BIND_ADDRESS}:${SCORD_BIND_PORT}) configure_file(scord_common.sh.in scord_common.sh @ONLY) configure_file(scord_prolog.sh.in scord_prolog.sh @ONLY) configure_file(scord_epilog.sh.in scord_epilog.sh @ONLY) Loading
plugins/slurm/scord_common.sh.in +3 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,9 @@ function get_addrs { } # shellcheck disable=SC2034 export SCORDCTL_PROGRAM="@SCORD_CTL_BIN@" export SCORD_SERVICE_ADDRESS="@SCORD_SERVICE_ADDRESS@" export SCORD_QUERY_PROGRAM="@SCORD_QUERY_PROGRAM@" export SCORDCTL_PROGRAM="@SCORDCTL_PROGRAM@" export SCORDCTL_PROTO="@SCORD_TRANSPORT_PROTOCOL@" export SCORDCTL_PORT="@SCORD_CTL_BIND_PORT@" export CARGO_PORT="@CARGO_PORT@"
plugins/slurm/scord_prolog.sh.in +7 −2 Original line number Diff line number Diff line Loading @@ -174,10 +174,15 @@ fi # generate a specific configuration file each Cargo service. CARGO_ID=$(echo "cargo_$SLURM_JOB_ID.$SLURM_JOB_UID" | sha256sum | awk '{ print $1 }') CARGO_CONFIG_FILE=$CARGO_CONFIG_DIRECTORY/$CARGO_ID.cfg CARGO_NUM_NODES=1 #TODO: ask scord CARGO_MASTER_ADDRESS="$SCORDCTL_PROTO://$ADDRESS:$CARGO_PORT" CARGO_INSTANCE_NAME=$(systemd-escape --template cargo@.service "$CARGO_ID") if ! CARGO_NUM_NODES=$(@SCORD_QUERY_PROGRAM@ -s @SCORD_SERVICE_ADDRESS@ "$SLURM_JOB_ID" | grep io_procs | awk '{ print $2 }'); then echo "Failed to determine the number of I/O processes for job $SLURM_JOB_ID" else CARGO_NUM_NODES=${#hostnames[@]} fi cat <<EOT >>"$CARGO_CONFIG_FILE" CARGO_ID=$CARGO_ID CARGO_HOSTS=$hostnames_csv Loading