Skip to content

Script that installs graph-dispatching on machines on which we don't have Docker #319

Description

@romintomasetti

It basically performs the same steps as the Dockerfile.

The main script.
set -ex
ROOT_DIR=$PWD
KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
KOKKOS_KERNELS_SHA=5.1.1
KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
GOOGLETEST_VERSION=1.17.0
GOOGLEBENCHMARK_VERSION=1.9.5
PYTHON_VERSION=3.12.11
VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
{
if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
mkdir -p $ROOT_DIR/github/kokkos
git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
git checkout $KOKKOS_SHA
rm -rf build-with-${PRESET}
cmake -S . -B build-with-${PRESET} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=20 \
-DCMAKE_CXX_EXTENSIONS=OFF \
-DCMAKE_CXX_COMPILER=g++ \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_C_COMPILER=should-not-be-needed \
-DKokkos_ENABLE_SERIAL=ON \
-DKokkos_ENABLE_OPENMP=ON \
-DKokkos_ENABLE_TESTS=OFF \
"${KOKKOS_OPTS[@]}" \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
cmake --build build-with-${PRESET} --verbose -j16 --target install
}
functioninstall_kokkos_kernels()
{
if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
mkdir -p $ROOT_DIR/github/kokkos
git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
git checkout $KOKKOS_KERNELS_SHA
rm -rf build-with-${PRESET}
cmake -S . -B build-with-${PRESET} \
"${KOKKOS_KERNELS_OPTS[@]}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=20 \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_C_COMPILER=should-not-be-needed \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
cmake --build build-with-${PRESET} -j16 --target install
}
functioninstall_kokkos_tools()
{
if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
mkdir -p $ROOT_DIR/github/kokkos
git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
git checkout $KOKKOS_TOOLS_SHA
rm -rf build
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=20 \
-DCMAKE_C_COMPILER=not-needed \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
cmake --build build -j16 --target install
}
functioninstall_kokkos_utils()
{
if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
mkdir -p $ROOT_DIR/github/uliegecsm
git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
git checkout $KOKKOS_UTILS_SHA
rm -rf build
cmake -S . -B build \
-DCMAKE_CXX_EXTENSIONS=OFF \
-DKokkosUtils_ENABLE_TESTS=OFF \
-DKokkosUtils_ENABLE_DOC=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=20 \
-DCMAKE_C_COMPILER=not-needed \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
cmake --build build -j16 --target install
}
functioninstall_nvidia_stdexec()
{
if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
mkdir -p $ROOT_DIR/github/nvidia
git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
git checkout $NVIDIA_STDEXEC_REF
}
functioninstall_google_test()
{
if [ !-d$ROOT_DIR/github/google/googletest ];then
mkdir -p $ROOT_DIR/github/google
git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
ficd$ROOT_DIR/github/google/googletest && git remote update
git checkout ${GOOGLETEST_VERSION}
rm -rf build
cmake -S . -B build \
"${GOOGLETEST_OPTS[@]}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
cmake --build build -j16 --target install
}
functioninstall_google_benchmark()
{
if [ !-d$ROOT_DIR/github/google/benchmark ];then
mkdir -p $ROOT_DIR/github/google
git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
ficd$ROOT_DIR/github/google/benchmark && git remote update
git checkout ${GOOGLEBENCHMARK_VERSION}
rm -rf build
cmake -S . -B build \
"${GOOGLETEST_OPTS[@]}" \
-DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
-DCMAKE_BUILD_TYPE=Release \
-DBENCHMARK_ENABLE_TESTING=OFF \
-DBENCHMARK_INSTALL_DOCS=OFF \
-DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
cmake --build build -j16 --target install
}
functioninstall_graph_dispatching()
{
if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
mkdir -p $ROOT_DIR/github/uliegecsm
git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
rm -rf build-with-${PRESET}
git remote update
git checkout origin/main
cmake -S . --preset=${PRESET} \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_DOXYGEN=OFF \
-DENABLE_HPX_TESTING=OFF \
-DENABLE_CLANG_TIDY=OFF \
-DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
-DCMAKE_CXX_COMPILER_LAUNCHER=
cmake --build --preset=${PRESET} -j16
}
functiongenerate_results()
{
echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
python -m pip install -r requirements/requirements.python.benchmarks.txt
python -m pip install typeguard scipy matplot2tikz pandas
export PYTHONPATH=$PWD:$PYTHONPATH
cmake --build --verbose --preset=${PRESET} -j16 \
--target=benchmarks_cg_compare \
--target=benchmarks_pcg_compare \
--target=benchmarks_newton_compare \
--target=benchmarks_graph_straight_line \
--target=benchmarks_graph_fork
# ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
# python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
}
# Load modules.
module load python/$PYTHON_VERSION# Create Python virtual environment.
python3 -m venv $VIRTUAL_ENV
PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
install_kokkos
export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
install_kokkos_kernels
export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
install_kokkos_tools
install_kokkos_utils
export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
install_nvidia_stdexec
export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
test -d $Stdexec_ROOT
install_google_test
export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
install_google_benchmark
export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
install_graph_dispatching
generate_results
intel-SYCL on headroom
set -ex
SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
PRESET=intel-SYCL
# If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
cmake --version
# GCC version, load from Spack.
GCC_VERSION=15
. spack/share/spack/setup-env.sh
spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
module load gcc/13.2.0
# Options for Kokkos.
KOKKOS_OPTS=(
"-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
)
# Options for Kokkos Kernels.
KOKKOS_KERNELS_OPTS=(
"-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
)
# Options for Google Test.
GOOGLETEST_OPTS=(
"-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
)
# Options for graph-dispatching.
GRAPH_DISPATCHING_OPTS=(
-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
)
# Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
# Libraries loading.
module load dpl/2022.8
.$SOURCE_DIR/prepare_graph_dispatching.sh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
       blocks
      (function() {
      function addCopyButtons() {
      document.querySelectorAll('pre code').forEach(function(codeBlock) {
      if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
      codeBlock.parentElement.setAttribute('data-copy-added', 'true');
      var btn = document.createElement('button');
      btn.textContent = 'Copy';
      btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
      btn.onmouseover = function() { this.style.opacity = '1'; };
      btn.onmouseout = function() { this.style.opacity = '0.7'; };
      btn.onclick = function() {
      navigator.clipboard.writeText(codeBlock.textContent).then(function() {
      btn.textContent = 'Copied!';
      setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
      });
      };
      codeBlock.parentElement.style.position = 'relative';
      codeBlock.parentElement.appendChild(btn);
      });
      }
      addCopyButtons();
      // Re-run on dynamic content
      var observer = new MutationObserver(addCopyButtons);
      observer.observe(document.body, { childList: true, subtree: true });
      })();
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
      Skip to content

      Script that installs graph-dispatching on machines on which we don't have Docker #319

      Description

      @romintomasetti

      It basically performs the same steps as the Dockerfile.

      The main script.
      set -ex
      ROOT_DIR=$PWD
      KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
      KOKKOS_KERNELS_SHA=5.1.1
      KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
      KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
      NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
      GOOGLETEST_VERSION=1.17.0
      GOOGLEBENCHMARK_VERSION=1.9.5
      PYTHON_VERSION=3.12.11
      VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
      {
      if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
      mkdir -p $ROOT_DIR/github/kokkos
      git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
      ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
      git checkout $KOKKOS_SHA
      rm -rf build-with-${PRESET}
      cmake -S . -B build-with-${PRESET} \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_CXX_STANDARD=20 \
      -DCMAKE_CXX_EXTENSIONS=OFF \
      -DCMAKE_CXX_COMPILER=g++ \
      -DBUILD_SHARED_LIBS=ON \
      -DCMAKE_C_COMPILER=should-not-be-needed \
      -DKokkos_ENABLE_SERIAL=ON \
      -DKokkos_ENABLE_OPENMP=ON \
      -DKokkos_ENABLE_TESTS=OFF \
      "${KOKKOS_OPTS[@]}" \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
      cmake --build build-with-${PRESET} --verbose -j16 --target install
      }
      functioninstall_kokkos_kernels()
      {
      if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
      mkdir -p $ROOT_DIR/github/kokkos
      git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
      ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
      git checkout $KOKKOS_KERNELS_SHA
      rm -rf build-with-${PRESET}
      cmake -S . -B build-with-${PRESET} \
      "${KOKKOS_KERNELS_OPTS[@]}" \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_CXX_STANDARD=20 \
      -DBUILD_SHARED_LIBS=ON \
      -DCMAKE_C_COMPILER=should-not-be-needed \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
      cmake --build build-with-${PRESET} -j16 --target install
      }
      functioninstall_kokkos_tools()
      {
      if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
      mkdir -p $ROOT_DIR/github/kokkos
      git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
      ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
      git checkout $KOKKOS_TOOLS_SHA
      rm -rf build
      cmake -S . -B build \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_CXX_STANDARD=20 \
      -DCMAKE_C_COMPILER=not-needed \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
      cmake --build build -j16 --target install
      }
      functioninstall_kokkos_utils()
      {
      if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
      mkdir -p $ROOT_DIR/github/uliegecsm
      git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
      ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
      git checkout $KOKKOS_UTILS_SHA
      rm -rf build
      cmake -S . -B build \
      -DCMAKE_CXX_EXTENSIONS=OFF \
      -DKokkosUtils_ENABLE_TESTS=OFF \
      -DKokkosUtils_ENABLE_DOC=OFF \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_CXX_STANDARD=20 \
      -DCMAKE_C_COMPILER=not-needed \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
      cmake --build build -j16 --target install
      }
      functioninstall_nvidia_stdexec()
      {
      if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
      mkdir -p $ROOT_DIR/github/nvidia
      git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
      ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
      git checkout $NVIDIA_STDEXEC_REF
      }
      functioninstall_google_test()
      {
      if [ !-d$ROOT_DIR/github/google/googletest ];then
      mkdir -p $ROOT_DIR/github/google
      git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
      ficd$ROOT_DIR/github/google/googletest && git remote update
      git checkout ${GOOGLETEST_VERSION}
      rm -rf build
      cmake -S . -B build \
      "${GOOGLETEST_OPTS[@]}" \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
      cmake --build build -j16 --target install
      }
      functioninstall_google_benchmark()
      {
      if [ !-d$ROOT_DIR/github/google/benchmark ];then
      mkdir -p $ROOT_DIR/github/google
      git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
      ficd$ROOT_DIR/github/google/benchmark && git remote update
      git checkout ${GOOGLEBENCHMARK_VERSION}
      rm -rf build
      cmake -S . -B build \
      "${GOOGLETEST_OPTS[@]}" \
      -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
      -DCMAKE_BUILD_TYPE=Release \
      -DBENCHMARK_ENABLE_TESTING=OFF \
      -DBENCHMARK_INSTALL_DOCS=OFF \
      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
      cmake --build build -j16 --target install
      }
      functioninstall_graph_dispatching()
      {
      if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
      mkdir -p $ROOT_DIR/github/uliegecsm
      git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
      ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
      rm -rf build-with-${PRESET}
      git remote update
      git checkout origin/main
      cmake -S . --preset=${PRESET} \
      -DCMAKE_BUILD_TYPE=Release \
      -DENABLE_DOXYGEN=OFF \
      -DENABLE_HPX_TESTING=OFF \
      -DENABLE_CLANG_TIDY=OFF \
      -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
      -DCMAKE_CXX_COMPILER_LAUNCHER=
      cmake --build --preset=${PRESET} -j16
      }
      functiongenerate_results()
      {
      echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
      python -m pip install -r requirements/requirements.python.benchmarks.txt
      python -m pip install typeguard scipy matplot2tikz pandas
      export PYTHONPATH=$PWD:$PYTHONPATH
      cmake --build --verbose --preset=${PRESET} -j16 \
      --target=benchmarks_cg_compare \
      --target=benchmarks_pcg_compare \
      --target=benchmarks_newton_compare \
      --target=benchmarks_graph_straight_line \
      --target=benchmarks_graph_fork
      # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
      python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
      # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
      }
      # Load modules.
      module load python/$PYTHON_VERSION# Create Python virtual environment.
      python3 -m venv $VIRTUAL_ENV
      PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
      install_kokkos
      export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
      install_kokkos_kernels
      export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
      install_kokkos_tools
      install_kokkos_utils
      export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
      install_nvidia_stdexec
      export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
      test -d $Stdexec_ROOT
      install_google_test
      export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
      install_google_benchmark
      export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
      install_graph_dispatching
      generate_results
      intel-SYCL on headroom
      set -ex
      SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
      PRESET=intel-SYCL
      # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
      cmake --version
      # GCC version, load from Spack.
      GCC_VERSION=15
      . spack/share/spack/setup-env.sh
      spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
      GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
      module load gcc/13.2.0
      # Options for Kokkos.
      KOKKOS_OPTS=(
      "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
      )
      # Options for Kokkos Kernels.
      KOKKOS_KERNELS_OPTS=(
      "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
      )
      # Options for Google Test.
      GOOGLETEST_OPTS=(
      "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
      )
      # Options for graph-dispatching.
      GRAPH_DISPATCHING_OPTS=(
      -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
      )
      # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
      spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
      # Libraries loading.
      module load dpl/2022.8
      .$SOURCE_DIR/prepare_graph_dispatching.sh

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
          Skip to content

          Script that installs graph-dispatching on machines on which we don't have Docker #319

          Description

          @romintomasetti

          It basically performs the same steps as the Dockerfile.

          The main script.
          set -ex
          ROOT_DIR=$PWD
          KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
          KOKKOS_KERNELS_SHA=5.1.1
          KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
          KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
          NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
          GOOGLETEST_VERSION=1.17.0
          GOOGLEBENCHMARK_VERSION=1.9.5
          PYTHON_VERSION=3.12.11
          VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
          {
          if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
          mkdir -p $ROOT_DIR/github/kokkos
          git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
          ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
          git checkout $KOKKOS_SHA
          rm -rf build-with-${PRESET}
          cmake -S . -B build-with-${PRESET} \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CXX_STANDARD=20 \
          -DCMAKE_CXX_EXTENSIONS=OFF \
          -DCMAKE_CXX_COMPILER=g++ \
          -DBUILD_SHARED_LIBS=ON \
          -DCMAKE_C_COMPILER=should-not-be-needed \
          -DKokkos_ENABLE_SERIAL=ON \
          -DKokkos_ENABLE_OPENMP=ON \
          -DKokkos_ENABLE_TESTS=OFF \
          "${KOKKOS_OPTS[@]}" \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
          cmake --build build-with-${PRESET} --verbose -j16 --target install
          }
          functioninstall_kokkos_kernels()
          {
          if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
          mkdir -p $ROOT_DIR/github/kokkos
          git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
          ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
          git checkout $KOKKOS_KERNELS_SHA
          rm -rf build-with-${PRESET}
          cmake -S . -B build-with-${PRESET} \
          "${KOKKOS_KERNELS_OPTS[@]}" \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CXX_STANDARD=20 \
          -DBUILD_SHARED_LIBS=ON \
          -DCMAKE_C_COMPILER=should-not-be-needed \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
          cmake --build build-with-${PRESET} -j16 --target install
          }
          functioninstall_kokkos_tools()
          {
          if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
          mkdir -p $ROOT_DIR/github/kokkos
          git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
          ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
          git checkout $KOKKOS_TOOLS_SHA
          rm -rf build
          cmake -S . -B build \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CXX_STANDARD=20 \
          -DCMAKE_C_COMPILER=not-needed \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
          cmake --build build -j16 --target install
          }
          functioninstall_kokkos_utils()
          {
          if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
          mkdir -p $ROOT_DIR/github/uliegecsm
          git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
          ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
          git checkout $KOKKOS_UTILS_SHA
          rm -rf build
          cmake -S . -B build \
          -DCMAKE_CXX_EXTENSIONS=OFF \
          -DKokkosUtils_ENABLE_TESTS=OFF \
          -DKokkosUtils_ENABLE_DOC=OFF \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CXX_STANDARD=20 \
          -DCMAKE_C_COMPILER=not-needed \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
          cmake --build build -j16 --target install
          }
          functioninstall_nvidia_stdexec()
          {
          if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
          mkdir -p $ROOT_DIR/github/nvidia
          git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
          ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
          git checkout $NVIDIA_STDEXEC_REF
          }
          functioninstall_google_test()
          {
          if [ !-d$ROOT_DIR/github/google/googletest ];then
          mkdir -p $ROOT_DIR/github/google
          git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
          ficd$ROOT_DIR/github/google/googletest && git remote update
          git checkout ${GOOGLETEST_VERSION}
          rm -rf build
          cmake -S . -B build \
          "${GOOGLETEST_OPTS[@]}" \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
          cmake --build build -j16 --target install
          }
          functioninstall_google_benchmark()
          {
          if [ !-d$ROOT_DIR/github/google/benchmark ];then
          mkdir -p $ROOT_DIR/github/google
          git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
          ficd$ROOT_DIR/github/google/benchmark && git remote update
          git checkout ${GOOGLEBENCHMARK_VERSION}
          rm -rf build
          cmake -S . -B build \
          "${GOOGLETEST_OPTS[@]}" \
          -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
          -DCMAKE_BUILD_TYPE=Release \
          -DBENCHMARK_ENABLE_TESTING=OFF \
          -DBENCHMARK_INSTALL_DOCS=OFF \
          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
          cmake --build build -j16 --target install
          }
          functioninstall_graph_dispatching()
          {
          if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
          mkdir -p $ROOT_DIR/github/uliegecsm
          git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
          ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
          rm -rf build-with-${PRESET}
          git remote update
          git checkout origin/main
          cmake -S . --preset=${PRESET} \
          -DCMAKE_BUILD_TYPE=Release \
          -DENABLE_DOXYGEN=OFF \
          -DENABLE_HPX_TESTING=OFF \
          -DENABLE_CLANG_TIDY=OFF \
          -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
          -DCMAKE_CXX_COMPILER_LAUNCHER=
          cmake --build --preset=${PRESET} -j16
          }
          functiongenerate_results()
          {
          echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
          python -m pip install -r requirements/requirements.python.benchmarks.txt
          python -m pip install typeguard scipy matplot2tikz pandas
          export PYTHONPATH=$PWD:$PYTHONPATH
          cmake --build --verbose --preset=${PRESET} -j16 \
          --target=benchmarks_cg_compare \
          --target=benchmarks_pcg_compare \
          --target=benchmarks_newton_compare \
          --target=benchmarks_graph_straight_line \
          --target=benchmarks_graph_fork
          # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
          python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
          # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
          }
          # Load modules.
          module load python/$PYTHON_VERSION# Create Python virtual environment.
          python3 -m venv $VIRTUAL_ENV
          PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
          install_kokkos
          export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
          install_kokkos_kernels
          export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
          install_kokkos_tools
          install_kokkos_utils
          export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
          install_nvidia_stdexec
          export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
          test -d $Stdexec_ROOT
          install_google_test
          export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
          install_google_benchmark
          export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
          install_graph_dispatching
          generate_results
          intel-SYCL on headroom
          set -ex
          SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
          PRESET=intel-SYCL
          # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
          cmake --version
          # GCC version, load from Spack.
          GCC_VERSION=15
          . spack/share/spack/setup-env.sh
          spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
          GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
          module load gcc/13.2.0
          # Options for Kokkos.
          KOKKOS_OPTS=(
          "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
          )
          # Options for Kokkos Kernels.
          KOKKOS_KERNELS_OPTS=(
          "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
          )
          # Options for Google Test.
          GOOGLETEST_OPTS=(
          "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
          )
          # Options for graph-dispatching.
          GRAPH_DISPATCHING_OPTS=(
          -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
          )
          # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
          spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
          # Libraries loading.
          module load dpl/2022.8
          .$SOURCE_DIR/prepare_graph_dispatching.sh

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
              Skip to content

              Script that installs graph-dispatching on machines on which we don't have Docker #319

              Description

              @romintomasetti

              It basically performs the same steps as the Dockerfile.

              The main script.
              set -ex
              ROOT_DIR=$PWD
              KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
              KOKKOS_KERNELS_SHA=5.1.1
              KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
              KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
              NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
              GOOGLETEST_VERSION=1.17.0
              GOOGLEBENCHMARK_VERSION=1.9.5
              PYTHON_VERSION=3.12.11
              VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
              {
              if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
              mkdir -p $ROOT_DIR/github/kokkos
              git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
              ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
              git checkout $KOKKOS_SHA
              rm -rf build-with-${PRESET}
              cmake -S . -B build-with-${PRESET} \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_CXX_STANDARD=20 \
              -DCMAKE_CXX_EXTENSIONS=OFF \
              -DCMAKE_CXX_COMPILER=g++ \
              -DBUILD_SHARED_LIBS=ON \
              -DCMAKE_C_COMPILER=should-not-be-needed \
              -DKokkos_ENABLE_SERIAL=ON \
              -DKokkos_ENABLE_OPENMP=ON \
              -DKokkos_ENABLE_TESTS=OFF \
              "${KOKKOS_OPTS[@]}" \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
              cmake --build build-with-${PRESET} --verbose -j16 --target install
              }
              functioninstall_kokkos_kernels()
              {
              if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
              mkdir -p $ROOT_DIR/github/kokkos
              git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
              ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
              git checkout $KOKKOS_KERNELS_SHA
              rm -rf build-with-${PRESET}
              cmake -S . -B build-with-${PRESET} \
              "${KOKKOS_KERNELS_OPTS[@]}" \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_CXX_STANDARD=20 \
              -DBUILD_SHARED_LIBS=ON \
              -DCMAKE_C_COMPILER=should-not-be-needed \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
              cmake --build build-with-${PRESET} -j16 --target install
              }
              functioninstall_kokkos_tools()
              {
              if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
              mkdir -p $ROOT_DIR/github/kokkos
              git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
              ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
              git checkout $KOKKOS_TOOLS_SHA
              rm -rf build
              cmake -S . -B build \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_CXX_STANDARD=20 \
              -DCMAKE_C_COMPILER=not-needed \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
              cmake --build build -j16 --target install
              }
              functioninstall_kokkos_utils()
              {
              if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
              mkdir -p $ROOT_DIR/github/uliegecsm
              git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
              ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
              git checkout $KOKKOS_UTILS_SHA
              rm -rf build
              cmake -S . -B build \
              -DCMAKE_CXX_EXTENSIONS=OFF \
              -DKokkosUtils_ENABLE_TESTS=OFF \
              -DKokkosUtils_ENABLE_DOC=OFF \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_CXX_STANDARD=20 \
              -DCMAKE_C_COMPILER=not-needed \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
              cmake --build build -j16 --target install
              }
              functioninstall_nvidia_stdexec()
              {
              if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
              mkdir -p $ROOT_DIR/github/nvidia
              git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
              ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
              git checkout $NVIDIA_STDEXEC_REF
              }
              functioninstall_google_test()
              {
              if [ !-d$ROOT_DIR/github/google/googletest ];then
              mkdir -p $ROOT_DIR/github/google
              git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
              ficd$ROOT_DIR/github/google/googletest && git remote update
              git checkout ${GOOGLETEST_VERSION}
              rm -rf build
              cmake -S . -B build \
              "${GOOGLETEST_OPTS[@]}" \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
              cmake --build build -j16 --target install
              }
              functioninstall_google_benchmark()
              {
              if [ !-d$ROOT_DIR/github/google/benchmark ];then
              mkdir -p $ROOT_DIR/github/google
              git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
              ficd$ROOT_DIR/github/google/benchmark && git remote update
              git checkout ${GOOGLEBENCHMARK_VERSION}
              rm -rf build
              cmake -S . -B build \
              "${GOOGLETEST_OPTS[@]}" \
              -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
              -DCMAKE_BUILD_TYPE=Release \
              -DBENCHMARK_ENABLE_TESTING=OFF \
              -DBENCHMARK_INSTALL_DOCS=OFF \
              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
              cmake --build build -j16 --target install
              }
              functioninstall_graph_dispatching()
              {
              if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
              mkdir -p $ROOT_DIR/github/uliegecsm
              git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
              ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
              rm -rf build-with-${PRESET}
              git remote update
              git checkout origin/main
              cmake -S . --preset=${PRESET} \
              -DCMAKE_BUILD_TYPE=Release \
              -DENABLE_DOXYGEN=OFF \
              -DENABLE_HPX_TESTING=OFF \
              -DENABLE_CLANG_TIDY=OFF \
              -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
              -DCMAKE_CXX_COMPILER_LAUNCHER=
              cmake --build --preset=${PRESET} -j16
              }
              functiongenerate_results()
              {
              echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
              python -m pip install -r requirements/requirements.python.benchmarks.txt
              python -m pip install typeguard scipy matplot2tikz pandas
              export PYTHONPATH=$PWD:$PYTHONPATH
              cmake --build --verbose --preset=${PRESET} -j16 \
              --target=benchmarks_cg_compare \
              --target=benchmarks_pcg_compare \
              --target=benchmarks_newton_compare \
              --target=benchmarks_graph_straight_line \
              --target=benchmarks_graph_fork
              # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
              python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
              # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
              }
              # Load modules.
              module load python/$PYTHON_VERSION# Create Python virtual environment.
              python3 -m venv $VIRTUAL_ENV
              PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
              install_kokkos
              export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
              install_kokkos_kernels
              export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
              install_kokkos_tools
              install_kokkos_utils
              export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
              install_nvidia_stdexec
              export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
              test -d $Stdexec_ROOT
              install_google_test
              export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
              install_google_benchmark
              export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
              install_graph_dispatching
              generate_results
              intel-SYCL on headroom
              set -ex
              SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
              PRESET=intel-SYCL
              # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
              cmake --version
              # GCC version, load from Spack.
              GCC_VERSION=15
              . spack/share/spack/setup-env.sh
              spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
              GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
              module load gcc/13.2.0
              # Options for Kokkos.
              KOKKOS_OPTS=(
              "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
              )
              # Options for Kokkos Kernels.
              KOKKOS_KERNELS_OPTS=(
              "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
              )
              # Options for Google Test.
              GOOGLETEST_OPTS=(
              "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
              )
              # Options for graph-dispatching.
              GRAPH_DISPATCHING_OPTS=(
              -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
              )
              # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
              spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
              # Libraries loading.
              module load dpl/2022.8
              .$SOURCE_DIR/prepare_graph_dispatching.sh

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
                  Skip to content

                  Script that installs graph-dispatching on machines on which we don't have Docker #319

                  Description

                  @romintomasetti

                  It basically performs the same steps as the Dockerfile.

                  The main script.
                  set -ex
                  ROOT_DIR=$PWD
                  KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
                  KOKKOS_KERNELS_SHA=5.1.1
                  KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
                  KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
                  NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
                  GOOGLETEST_VERSION=1.17.0
                  GOOGLEBENCHMARK_VERSION=1.9.5
                  PYTHON_VERSION=3.12.11
                  VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
                  {
                  if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
                  mkdir -p $ROOT_DIR/github/kokkos
                  git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
                  ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
                  git checkout $KOKKOS_SHA
                  rm -rf build-with-${PRESET}
                  cmake -S . -B build-with-${PRESET} \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DCMAKE_CXX_STANDARD=20 \
                  -DCMAKE_CXX_EXTENSIONS=OFF \
                  -DCMAKE_CXX_COMPILER=g++ \
                  -DBUILD_SHARED_LIBS=ON \
                  -DCMAKE_C_COMPILER=should-not-be-needed \
                  -DKokkos_ENABLE_SERIAL=ON \
                  -DKokkos_ENABLE_OPENMP=ON \
                  -DKokkos_ENABLE_TESTS=OFF \
                  "${KOKKOS_OPTS[@]}" \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
                  cmake --build build-with-${PRESET} --verbose -j16 --target install
                  }
                  functioninstall_kokkos_kernels()
                  {
                  if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
                  mkdir -p $ROOT_DIR/github/kokkos
                  git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
                  ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
                  git checkout $KOKKOS_KERNELS_SHA
                  rm -rf build-with-${PRESET}
                  cmake -S . -B build-with-${PRESET} \
                  "${KOKKOS_KERNELS_OPTS[@]}" \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DCMAKE_CXX_STANDARD=20 \
                  -DBUILD_SHARED_LIBS=ON \
                  -DCMAKE_C_COMPILER=should-not-be-needed \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
                  cmake --build build-with-${PRESET} -j16 --target install
                  }
                  functioninstall_kokkos_tools()
                  {
                  if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
                  mkdir -p $ROOT_DIR/github/kokkos
                  git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
                  ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
                  git checkout $KOKKOS_TOOLS_SHA
                  rm -rf build
                  cmake -S . -B build \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DCMAKE_CXX_STANDARD=20 \
                  -DCMAKE_C_COMPILER=not-needed \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
                  cmake --build build -j16 --target install
                  }
                  functioninstall_kokkos_utils()
                  {
                  if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
                  mkdir -p $ROOT_DIR/github/uliegecsm
                  git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
                  ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
                  git checkout $KOKKOS_UTILS_SHA
                  rm -rf build
                  cmake -S . -B build \
                  -DCMAKE_CXX_EXTENSIONS=OFF \
                  -DKokkosUtils_ENABLE_TESTS=OFF \
                  -DKokkosUtils_ENABLE_DOC=OFF \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DCMAKE_CXX_STANDARD=20 \
                  -DCMAKE_C_COMPILER=not-needed \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
                  cmake --build build -j16 --target install
                  }
                  functioninstall_nvidia_stdexec()
                  {
                  if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
                  mkdir -p $ROOT_DIR/github/nvidia
                  git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
                  ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
                  git checkout $NVIDIA_STDEXEC_REF
                  }
                  functioninstall_google_test()
                  {
                  if [ !-d$ROOT_DIR/github/google/googletest ];then
                  mkdir -p $ROOT_DIR/github/google
                  git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
                  ficd$ROOT_DIR/github/google/googletest && git remote update
                  git checkout ${GOOGLETEST_VERSION}
                  rm -rf build
                  cmake -S . -B build \
                  "${GOOGLETEST_OPTS[@]}" \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
                  cmake --build build -j16 --target install
                  }
                  functioninstall_google_benchmark()
                  {
                  if [ !-d$ROOT_DIR/github/google/benchmark ];then
                  mkdir -p $ROOT_DIR/github/google
                  git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
                  ficd$ROOT_DIR/github/google/benchmark && git remote update
                  git checkout ${GOOGLEBENCHMARK_VERSION}
                  rm -rf build
                  cmake -S . -B build \
                  "${GOOGLETEST_OPTS[@]}" \
                  -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DBENCHMARK_ENABLE_TESTING=OFF \
                  -DBENCHMARK_INSTALL_DOCS=OFF \
                  -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
                  cmake --build build -j16 --target install
                  }
                  functioninstall_graph_dispatching()
                  {
                  if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
                  mkdir -p $ROOT_DIR/github/uliegecsm
                  git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
                  ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
                  rm -rf build-with-${PRESET}
                  git remote update
                  git checkout origin/main
                  cmake -S . --preset=${PRESET} \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DENABLE_DOXYGEN=OFF \
                  -DENABLE_HPX_TESTING=OFF \
                  -DENABLE_CLANG_TIDY=OFF \
                  -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
                  -DCMAKE_CXX_COMPILER_LAUNCHER=
                  cmake --build --preset=${PRESET} -j16
                  }
                  functiongenerate_results()
                  {
                  echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
                  python -m pip install -r requirements/requirements.python.benchmarks.txt
                  python -m pip install typeguard scipy matplot2tikz pandas
                  export PYTHONPATH=$PWD:$PYTHONPATH
                  cmake --build --verbose --preset=${PRESET} -j16 \
                  --target=benchmarks_cg_compare \
                  --target=benchmarks_pcg_compare \
                  --target=benchmarks_newton_compare \
                  --target=benchmarks_graph_straight_line \
                  --target=benchmarks_graph_fork
                  # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
                  python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
                  # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
                  }
                  # Load modules.
                  module load python/$PYTHON_VERSION# Create Python virtual environment.
                  python3 -m venv $VIRTUAL_ENV
                  PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
                  install_kokkos
                  export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
                  install_kokkos_kernels
                  export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
                  install_kokkos_tools
                  install_kokkos_utils
                  export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
                  install_nvidia_stdexec
                  export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
                  test -d $Stdexec_ROOT
                  install_google_test
                  export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
                  install_google_benchmark
                  export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
                  install_graph_dispatching
                  generate_results
                  intel-SYCL on headroom
                  set -ex
                  SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
                  PRESET=intel-SYCL
                  # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
                  cmake --version
                  # GCC version, load from Spack.
                  GCC_VERSION=15
                  . spack/share/spack/setup-env.sh
                  spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
                  GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
                  module load gcc/13.2.0
                  # Options for Kokkos.
                  KOKKOS_OPTS=(
                  "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
                  )
                  # Options for Kokkos Kernels.
                  KOKKOS_KERNELS_OPTS=(
                  "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
                  )
                  # Options for Google Test.
                  GOOGLETEST_OPTS=(
                  "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
                  )
                  # Options for graph-dispatching.
                  GRAPH_DISPATCHING_OPTS=(
                  -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
                  )
                  # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
                  spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
                  # Libraries loading.
                  module load dpl/2022.8
                  .$SOURCE_DIR/prepare_graph_dispatching.sh

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
                      Skip to content

                      Script that installs graph-dispatching on machines on which we don't have Docker #319

                      Description

                      @romintomasetti

                      It basically performs the same steps as the Dockerfile.

                      The main script.
                      set -ex
                      ROOT_DIR=$PWD
                      KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
                      KOKKOS_KERNELS_SHA=5.1.1
                      KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
                      KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
                      NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
                      GOOGLETEST_VERSION=1.17.0
                      GOOGLEBENCHMARK_VERSION=1.9.5
                      PYTHON_VERSION=3.12.11
                      VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
                      {
                      if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
                      mkdir -p $ROOT_DIR/github/kokkos
                      git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
                      ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
                      git checkout $KOKKOS_SHA
                      rm -rf build-with-${PRESET}
                      cmake -S . -B build-with-${PRESET} \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DCMAKE_CXX_STANDARD=20 \
                      -DCMAKE_CXX_EXTENSIONS=OFF \
                      -DCMAKE_CXX_COMPILER=g++ \
                      -DBUILD_SHARED_LIBS=ON \
                      -DCMAKE_C_COMPILER=should-not-be-needed \
                      -DKokkos_ENABLE_SERIAL=ON \
                      -DKokkos_ENABLE_OPENMP=ON \
                      -DKokkos_ENABLE_TESTS=OFF \
                      "${KOKKOS_OPTS[@]}" \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
                      cmake --build build-with-${PRESET} --verbose -j16 --target install
                      }
                      functioninstall_kokkos_kernels()
                      {
                      if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
                      mkdir -p $ROOT_DIR/github/kokkos
                      git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
                      ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
                      git checkout $KOKKOS_KERNELS_SHA
                      rm -rf build-with-${PRESET}
                      cmake -S . -B build-with-${PRESET} \
                      "${KOKKOS_KERNELS_OPTS[@]}" \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DCMAKE_CXX_STANDARD=20 \
                      -DBUILD_SHARED_LIBS=ON \
                      -DCMAKE_C_COMPILER=should-not-be-needed \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
                      cmake --build build-with-${PRESET} -j16 --target install
                      }
                      functioninstall_kokkos_tools()
                      {
                      if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
                      mkdir -p $ROOT_DIR/github/kokkos
                      git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
                      ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
                      git checkout $KOKKOS_TOOLS_SHA
                      rm -rf build
                      cmake -S . -B build \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DCMAKE_CXX_STANDARD=20 \
                      -DCMAKE_C_COMPILER=not-needed \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
                      cmake --build build -j16 --target install
                      }
                      functioninstall_kokkos_utils()
                      {
                      if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
                      mkdir -p $ROOT_DIR/github/uliegecsm
                      git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
                      ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
                      git checkout $KOKKOS_UTILS_SHA
                      rm -rf build
                      cmake -S . -B build \
                      -DCMAKE_CXX_EXTENSIONS=OFF \
                      -DKokkosUtils_ENABLE_TESTS=OFF \
                      -DKokkosUtils_ENABLE_DOC=OFF \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DCMAKE_CXX_STANDARD=20 \
                      -DCMAKE_C_COMPILER=not-needed \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
                      cmake --build build -j16 --target install
                      }
                      functioninstall_nvidia_stdexec()
                      {
                      if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
                      mkdir -p $ROOT_DIR/github/nvidia
                      git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
                      ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
                      git checkout $NVIDIA_STDEXEC_REF
                      }
                      functioninstall_google_test()
                      {
                      if [ !-d$ROOT_DIR/github/google/googletest ];then
                      mkdir -p $ROOT_DIR/github/google
                      git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
                      ficd$ROOT_DIR/github/google/googletest && git remote update
                      git checkout ${GOOGLETEST_VERSION}
                      rm -rf build
                      cmake -S . -B build \
                      "${GOOGLETEST_OPTS[@]}" \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
                      cmake --build build -j16 --target install
                      }
                      functioninstall_google_benchmark()
                      {
                      if [ !-d$ROOT_DIR/github/google/benchmark ];then
                      mkdir -p $ROOT_DIR/github/google
                      git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
                      ficd$ROOT_DIR/github/google/benchmark && git remote update
                      git checkout ${GOOGLEBENCHMARK_VERSION}
                      rm -rf build
                      cmake -S . -B build \
                      "${GOOGLETEST_OPTS[@]}" \
                      -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DBENCHMARK_ENABLE_TESTING=OFF \
                      -DBENCHMARK_INSTALL_DOCS=OFF \
                      -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
                      cmake --build build -j16 --target install
                      }
                      functioninstall_graph_dispatching()
                      {
                      if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
                      mkdir -p $ROOT_DIR/github/uliegecsm
                      git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
                      ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
                      rm -rf build-with-${PRESET}
                      git remote update
                      git checkout origin/main
                      cmake -S . --preset=${PRESET} \
                      -DCMAKE_BUILD_TYPE=Release \
                      -DENABLE_DOXYGEN=OFF \
                      -DENABLE_HPX_TESTING=OFF \
                      -DENABLE_CLANG_TIDY=OFF \
                      -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
                      -DCMAKE_CXX_COMPILER_LAUNCHER=
                      cmake --build --preset=${PRESET} -j16
                      }
                      functiongenerate_results()
                      {
                      echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
                      python -m pip install -r requirements/requirements.python.benchmarks.txt
                      python -m pip install typeguard scipy matplot2tikz pandas
                      export PYTHONPATH=$PWD:$PYTHONPATH
                      cmake --build --verbose --preset=${PRESET} -j16 \
                      --target=benchmarks_cg_compare \
                      --target=benchmarks_pcg_compare \
                      --target=benchmarks_newton_compare \
                      --target=benchmarks_graph_straight_line \
                      --target=benchmarks_graph_fork
                      # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
                      python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
                      # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
                      }
                      # Load modules.
                      module load python/$PYTHON_VERSION# Create Python virtual environment.
                      python3 -m venv $VIRTUAL_ENV
                      PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
                      install_kokkos
                      export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
                      install_kokkos_kernels
                      export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
                      install_kokkos_tools
                      install_kokkos_utils
                      export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
                      install_nvidia_stdexec
                      export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
                      test -d $Stdexec_ROOT
                      install_google_test
                      export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
                      install_google_benchmark
                      export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
                      install_graph_dispatching
                      generate_results
                      intel-SYCL on headroom
                      set -ex
                      SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
                      PRESET=intel-SYCL
                      # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
                      cmake --version
                      # GCC version, load from Spack.
                      GCC_VERSION=15
                      . spack/share/spack/setup-env.sh
                      spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
                      GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
                      module load gcc/13.2.0
                      # Options for Kokkos.
                      KOKKOS_OPTS=(
                      "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
                      )
                      # Options for Kokkos Kernels.
                      KOKKOS_KERNELS_OPTS=(
                      "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
                      )
                      # Options for Google Test.
                      GOOGLETEST_OPTS=(
                      "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
                      )
                      # Options for graph-dispatching.
                      GRAPH_DISPATCHING_OPTS=(
                      -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
                      )
                      # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
                      spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
                      # Libraries loading.
                      module load dpl/2022.8
                      .$SOURCE_DIR/prepare_graph_dispatching.sh

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
                          Skip to content

                          Script that installs graph-dispatching on machines on which we don't have Docker #319

                          Description

                          @romintomasetti

                          It basically performs the same steps as the Dockerfile.

                          The main script.
                          set -ex
                          ROOT_DIR=$PWD
                          KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
                          KOKKOS_KERNELS_SHA=5.1.1
                          KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
                          KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
                          NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
                          GOOGLETEST_VERSION=1.17.0
                          GOOGLEBENCHMARK_VERSION=1.9.5
                          PYTHON_VERSION=3.12.11
                          VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
                          {
                          if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
                          mkdir -p $ROOT_DIR/github/kokkos
                          git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
                          ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
                          git checkout $KOKKOS_SHA
                          rm -rf build-with-${PRESET}
                          cmake -S . -B build-with-${PRESET} \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_CXX_STANDARD=20 \
                          -DCMAKE_CXX_EXTENSIONS=OFF \
                          -DCMAKE_CXX_COMPILER=g++ \
                          -DBUILD_SHARED_LIBS=ON \
                          -DCMAKE_C_COMPILER=should-not-be-needed \
                          -DKokkos_ENABLE_SERIAL=ON \
                          -DKokkos_ENABLE_OPENMP=ON \
                          -DKokkos_ENABLE_TESTS=OFF \
                          "${KOKKOS_OPTS[@]}" \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
                          cmake --build build-with-${PRESET} --verbose -j16 --target install
                          }
                          functioninstall_kokkos_kernels()
                          {
                          if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
                          mkdir -p $ROOT_DIR/github/kokkos
                          git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
                          ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
                          git checkout $KOKKOS_KERNELS_SHA
                          rm -rf build-with-${PRESET}
                          cmake -S . -B build-with-${PRESET} \
                          "${KOKKOS_KERNELS_OPTS[@]}" \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_CXX_STANDARD=20 \
                          -DBUILD_SHARED_LIBS=ON \
                          -DCMAKE_C_COMPILER=should-not-be-needed \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
                          cmake --build build-with-${PRESET} -j16 --target install
                          }
                          functioninstall_kokkos_tools()
                          {
                          if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
                          mkdir -p $ROOT_DIR/github/kokkos
                          git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
                          ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
                          git checkout $KOKKOS_TOOLS_SHA
                          rm -rf build
                          cmake -S . -B build \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_CXX_STANDARD=20 \
                          -DCMAKE_C_COMPILER=not-needed \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
                          cmake --build build -j16 --target install
                          }
                          functioninstall_kokkos_utils()
                          {
                          if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
                          mkdir -p $ROOT_DIR/github/uliegecsm
                          git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
                          ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
                          git checkout $KOKKOS_UTILS_SHA
                          rm -rf build
                          cmake -S . -B build \
                          -DCMAKE_CXX_EXTENSIONS=OFF \
                          -DKokkosUtils_ENABLE_TESTS=OFF \
                          -DKokkosUtils_ENABLE_DOC=OFF \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_CXX_STANDARD=20 \
                          -DCMAKE_C_COMPILER=not-needed \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
                          cmake --build build -j16 --target install
                          }
                          functioninstall_nvidia_stdexec()
                          {
                          if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
                          mkdir -p $ROOT_DIR/github/nvidia
                          git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
                          ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
                          git checkout $NVIDIA_STDEXEC_REF
                          }
                          functioninstall_google_test()
                          {
                          if [ !-d$ROOT_DIR/github/google/googletest ];then
                          mkdir -p $ROOT_DIR/github/google
                          git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
                          ficd$ROOT_DIR/github/google/googletest && git remote update
                          git checkout ${GOOGLETEST_VERSION}
                          rm -rf build
                          cmake -S . -B build \
                          "${GOOGLETEST_OPTS[@]}" \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
                          cmake --build build -j16 --target install
                          }
                          functioninstall_google_benchmark()
                          {
                          if [ !-d$ROOT_DIR/github/google/benchmark ];then
                          mkdir -p $ROOT_DIR/github/google
                          git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
                          ficd$ROOT_DIR/github/google/benchmark && git remote update
                          git checkout ${GOOGLEBENCHMARK_VERSION}
                          rm -rf build
                          cmake -S . -B build \
                          "${GOOGLETEST_OPTS[@]}" \
                          -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DBENCHMARK_ENABLE_TESTING=OFF \
                          -DBENCHMARK_INSTALL_DOCS=OFF \
                          -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
                          cmake --build build -j16 --target install
                          }
                          functioninstall_graph_dispatching()
                          {
                          if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
                          mkdir -p $ROOT_DIR/github/uliegecsm
                          git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
                          ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
                          rm -rf build-with-${PRESET}
                          git remote update
                          git checkout origin/main
                          cmake -S . --preset=${PRESET} \
                          -DCMAKE_BUILD_TYPE=Release \
                          -DENABLE_DOXYGEN=OFF \
                          -DENABLE_HPX_TESTING=OFF \
                          -DENABLE_CLANG_TIDY=OFF \
                          -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
                          -DCMAKE_CXX_COMPILER_LAUNCHER=
                          cmake --build --preset=${PRESET} -j16
                          }
                          functiongenerate_results()
                          {
                          echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
                          python -m pip install -r requirements/requirements.python.benchmarks.txt
                          python -m pip install typeguard scipy matplot2tikz pandas
                          export PYTHONPATH=$PWD:$PYTHONPATH
                          cmake --build --verbose --preset=${PRESET} -j16 \
                          --target=benchmarks_cg_compare \
                          --target=benchmarks_pcg_compare \
                          --target=benchmarks_newton_compare \
                          --target=benchmarks_graph_straight_line \
                          --target=benchmarks_graph_fork
                          # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
                          python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
                          # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
                          }
                          # Load modules.
                          module load python/$PYTHON_VERSION# Create Python virtual environment.
                          python3 -m venv $VIRTUAL_ENV
                          PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
                          install_kokkos
                          export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
                          install_kokkos_kernels
                          export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
                          install_kokkos_tools
                          install_kokkos_utils
                          export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
                          install_nvidia_stdexec
                          export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
                          test -d $Stdexec_ROOT
                          install_google_test
                          export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
                          install_google_benchmark
                          export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
                          install_graph_dispatching
                          generate_results
                          intel-SYCL on headroom
                          set -ex
                          SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
                          PRESET=intel-SYCL
                          # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
                          cmake --version
                          # GCC version, load from Spack.
                          GCC_VERSION=15
                          . spack/share/spack/setup-env.sh
                          spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
                          GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
                          module load gcc/13.2.0
                          # Options for Kokkos.
                          KOKKOS_OPTS=(
                          "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
                          )
                          # Options for Kokkos Kernels.
                          KOKKOS_KERNELS_OPTS=(
                          "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
                          )
                          # Options for Google Test.
                          GOOGLETEST_OPTS=(
                          "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
                          )
                          # Options for graph-dispatching.
                          GRAPH_DISPATCHING_OPTS=(
                          -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
                          )
                          # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
                          spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
                          # Libraries loading.
                          module load dpl/2022.8
                          .$SOURCE_DIR/prepare_graph_dispatching.sh

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Script that installs `graph-dispatching` on machines on which we don't have `Docker` · Issue #319 · uliegecsm/graph-dispatching · GitHub
                              Skip to content

                              Script that installs graph-dispatching on machines on which we don't have Docker #319

                              Description

                              @romintomasetti

                              It basically performs the same steps as the Dockerfile.

                              The main script.
                              set -ex
                              ROOT_DIR=$PWD
                              KOKKOS_SHA=d61242a6ed983727202cfa5d67e8346c96491b44
                              KOKKOS_KERNELS_SHA=5.1.1
                              KOKKOS_TOOLS_SHA=6493964271d2e887432489f20559b72757db02b0
                              KOKKOS_UTILS_SHA=6f861f019050b47570ba0b54097b89fba357f0c7
                              NVIDIA_STDEXEC_REF=0758df65c6571076d67276362c07146e13958740
                              GOOGLETEST_VERSION=1.17.0
                              GOOGLEBENCHMARK_VERSION=1.9.5
                              PYTHON_VERSION=3.12.11
                              VIRTUAL_ENV=$ROOT_DIR/${PRESET}/venv-${PYTHON_VERSION}functioninstall_kokkos()
                              {
                              if [ !-d$ROOT_DIR/github/kokkos/kokkos ];then
                              mkdir -p $ROOT_DIR/github/kokkos
                              git clone https://github.com/kokkos/kokkos $ROOT_DIR/github/kokkos/kokkos
                              ficd$ROOT_DIR/github/kokkos/kokkos && git remote update
                              git checkout $KOKKOS_SHA
                              rm -rf build-with-${PRESET}
                              cmake -S . -B build-with-${PRESET} \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DCMAKE_CXX_STANDARD=20 \
                              -DCMAKE_CXX_EXTENSIONS=OFF \
                              -DCMAKE_CXX_COMPILER=g++ \
                              -DBUILD_SHARED_LIBS=ON \
                              -DCMAKE_C_COMPILER=should-not-be-needed \
                              -DKokkos_ENABLE_SERIAL=ON \
                              -DKokkos_ENABLE_OPENMP=ON \
                              -DKokkos_ENABLE_TESTS=OFF \
                              "${KOKKOS_OPTS[@]}" \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/$PRESET
                              cmake --build build-with-${PRESET} --verbose -j16 --target install
                              }
                              functioninstall_kokkos_kernels()
                              {
                              if [ !-d$ROOT_DIR/github/kokkos/kokkos-kernels ];then
                              mkdir -p $ROOT_DIR/github/kokkos
                              git clone https://github.com/kokkos/kokkos-kernels $ROOT_DIR/github/kokkos/kokkos-kernels
                              ficd$ROOT_DIR/github/kokkos/kokkos-kernels && git remote update
                              git checkout $KOKKOS_KERNELS_SHA
                              rm -rf build-with-${PRESET}
                              cmake -S . -B build-with-${PRESET} \
                              "${KOKKOS_KERNELS_OPTS[@]}" \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DCMAKE_CXX_STANDARD=20 \
                              -DBUILD_SHARED_LIBS=ON \
                              -DCMAKE_C_COMPILER=should-not-be-needed \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/$PRESET
                              cmake --build build-with-${PRESET} -j16 --target install
                              }
                              functioninstall_kokkos_tools()
                              {
                              if [ !-d$ROOT_DIR/github/kokkos/kokkos-tools ];then
                              mkdir -p $ROOT_DIR/github/kokkos
                              git clone https://github.com/kokkos/kokkos-tools $ROOT_DIR/github/kokkos/kokkos-tools
                              ficd$ROOT_DIR/github/kokkos/kokkos-tools && git remote update
                              git checkout $KOKKOS_TOOLS_SHA
                              rm -rf build
                              cmake -S . -B build \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DCMAKE_CXX_STANDARD=20 \
                              -DCMAKE_C_COMPILER=not-needed \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/kokkos/kokkos-tools-${KOKKOS_TOOLS_SHA}/$PRESET
                              cmake --build build -j16 --target install
                              }
                              functioninstall_kokkos_utils()
                              {
                              if [ !-d$ROOT_DIR/github/uliegecsm/kokkos-utils ];then
                              mkdir -p $ROOT_DIR/github/uliegecsm
                              git clone https://github.com/uliegecsm/kokkos-utils $ROOT_DIR/github/uliegecsm/kokkos-utils
                              ficd$ROOT_DIR/github/uliegecsm/kokkos-utils && git remote update
                              git checkout $KOKKOS_UTILS_SHA
                              rm -rf build
                              cmake -S . -B build \
                              -DCMAKE_CXX_EXTENSIONS=OFF \
                              -DKokkosUtils_ENABLE_TESTS=OFF \
                              -DKokkosUtils_ENABLE_DOC=OFF \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DCMAKE_CXX_STANDARD=20 \
                              -DCMAKE_C_COMPILER=not-needed \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESET
                              cmake --build build -j16 --target install
                              }
                              functioninstall_nvidia_stdexec()
                              {
                              if [ !-d$ROOT_DIR/github/nvidia/stdexec ];then
                              mkdir -p $ROOT_DIR/github/nvidia
                              git clone https://github.com/nvidia/stdexec $ROOT_DIR/github/nvidia/stdexec
                              ficd$ROOT_DIR/github/nvidia/stdexec && git remote update
                              git checkout $NVIDIA_STDEXEC_REF
                              }
                              functioninstall_google_test()
                              {
                              if [ !-d$ROOT_DIR/github/google/googletest ];then
                              mkdir -p $ROOT_DIR/github/google
                              git clone --depth=1 --branch=v${GOOGLETEST_VERSION} https://github.com/google/googletest $ROOT_DIR/github/google/googletest
                              ficd$ROOT_DIR/github/google/googletest && git remote update
                              git checkout ${GOOGLETEST_VERSION}
                              rm -rf build
                              cmake -S . -B build \
                              "${GOOGLETEST_OPTS[@]}" \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}
                              cmake --build build -j16 --target install
                              }
                              functioninstall_google_benchmark()
                              {
                              if [ !-d$ROOT_DIR/github/google/benchmark ];then
                              mkdir -p $ROOT_DIR/github/google
                              git clone --depth=1 --branch=v${GOOGLEBENCHMARK_VERSION} https://github.com/google/benchmark $ROOT_DIR/github/google/benchmark
                              ficd$ROOT_DIR/github/google/benchmark && git remote update
                              git checkout ${GOOGLEBENCHMARK_VERSION}
                              rm -rf build
                              cmake -S . -B build \
                              "${GOOGLETEST_OPTS[@]}" \
                              -DCMAKE_CXX_FLAGS="-Wno-error=suggest-override" \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DBENCHMARK_ENABLE_TESTING=OFF \
                              -DBENCHMARK_INSTALL_DOCS=OFF \
                              -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}
                              cmake --build build -j16 --target install
                              }
                              functioninstall_graph_dispatching()
                              {
                              if [ !-d$ROOT_DIR/github/uliegecsm/graph-dispatching ];then
                              mkdir -p $ROOT_DIR/github/uliegecsm
                              git clone --recurse-submodules https://github.com/uliegecsm/graph-dispatching $ROOT_DIR/github/uliegecsm/graph-dispatching
                              ficd$ROOT_DIR/github/uliegecsm/graph-dispatching
                              rm -rf build-with-${PRESET}
                              git remote update
                              git checkout origin/main
                              cmake -S . --preset=${PRESET} \
                              -DCMAKE_BUILD_TYPE=Release \
                              -DENABLE_DOXYGEN=OFF \
                              -DENABLE_HPX_TESTING=OFF \
                              -DENABLE_CLANG_TIDY=OFF \
                              -DGRAPH_DISPATCHING_ENABLE_STDEXEC_TESTS=OFF \
                              -DCMAKE_CXX_COMPILER_LAUNCHER=
                              cmake --build --preset=${PRESET} -j16
                              }
                              functiongenerate_results()
                              {
                              echo"----------------------------------------------------------------"cd$ROOT_DIR/github/uliegecsm/graph-dispatching
                              python -m pip install -r requirements/requirements.python.benchmarks.txt
                              python -m pip install typeguard scipy matplot2tikz pandas
                              export PYTHONPATH=$PWD:$PYTHONPATH
                              cmake --build --verbose --preset=${PRESET} -j16 \
                              --target=benchmarks_cg_compare \
                              --target=benchmarks_pcg_compare \
                              --target=benchmarks_newton_compare \
                              --target=benchmarks_graph_straight_line \
                              --target=benchmarks_graph_fork
                              # ctest --preset=${PRESET} --verbose -R tests_cg_graph# ctest --preset=${PRESET} --verbose -R tests_pcg_graph# ctest --preset=${PRESET} --verbose -R tests_newton_JacobiPCG# python3 benchmarks/cg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/cg/benchmarks_cg_compare -- --v=0# python3 benchmarks/pcg/benchmark_compare.py --target build-with-${PRESET}/benchmarks/pcg/benchmarks_pcg_compare -- --v=3# python3 benchmarks/newton/benchmark_compare.py --target build-with-gcc-Cuda/benchmarks/newton/benchmarks_newton_compare -- --v=3
                              python3 benchmarks/graph/benchmark_straight_line.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_straight_line -- --v=0
                              # python3 benchmarks/graph/benchmark_fork.py --target build-with-${PRESET}/benchmarks/graph/benchmarks_graph_fork -- --v=0
                              }
                              # Load modules.
                              module load python/$PYTHON_VERSION# Create Python virtual environment.
                              python3 -m venv $VIRTUAL_ENV
                              PATH=$VIRTUAL_ENV/bin:$PATHexport PATH=$VIRTUAL_ENV/bin:$PATH
                              install_kokkos
                              export Kokkos_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-${KOKKOS_SHA}/${PRESET}test -d $Kokkos_ROOT
                              install_kokkos_kernels
                              export KokkosKernels_ROOT=$ROOT_DIR/libraries/kokkos/kokkos-kernels-${KOKKOS_KERNELS_SHA}/${PRESET}test -d $KokkosKernels_ROOT
                              install_kokkos_tools
                              install_kokkos_utils
                              export KokkosUtils_ROOT=$ROOT_DIR/libraries/uliegecsm/kokkos-utils-${KOKKOS_UTILS_SHA}/$PRESETtest -d $KokkosUtils_ROOT
                              install_nvidia_stdexec
                              export Stdexec_ROOT=$ROOT_DIR/github/nvidia/stdexec
                              test -d $Stdexec_ROOT
                              install_google_test
                              export GTest_ROOT=$ROOT_DIR/libraries/google/googletest-${GOOGLETEST_VERSION}/${PRESET}test -d $GTest_ROOT
                              install_google_benchmark
                              export benchmark_ROOT=$ROOT_DIR/libraries/google/benchmark-${GOOGLEBENCHMARK_VERSION}/${PRESET}test -d $benchmark_ROOT
                              install_graph_dispatching
                              generate_results
                              intel-SYCL on headroom
                              set -ex
                              SOURCE_DIR="$(dirname "$0")"echo"Directory of the script is $SOURCE_DIR."# The preset we'll use.
                              PRESET=intel-SYCL
                              # If you need to install CMake.# wget https://github.com/Kitware/CMake/releases/download/v4.2.3/cmake-4.2.3-linux-x86_64.sh# bash cmake-4.2.3-linux-x86_64.shexport PATH=$PWD/cmake-4.2.3-linux-x86_64/bin:${PATH}
                              cmake --version
                              # GCC version, load from Spack.
                              GCC_VERSION=15
                              . spack/share/spack/setup-env.sh
                              spack load gcc@${GCC_VERSION}# 'icpx' is an llvm-based compiler, so we need to tell it the# GCC toolchain we want to use (for the standard library headers).# Note that we also need to load the machine gcc 13 to avoid runtime issues like# GLIBCXX_... not found
                              GCC_TOOLCHAIN="--gcc-toolchain=$(spack location -i gcc@15)"echo"GCC toolchain is $GCC_TOOLCHAIN."
                              module load gcc/13.2.0
                              # Options for Kokkos.
                              KOKKOS_OPTS=(
                              "-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -Werror -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'""-DKokkos_ENABLE_SYCL=ON""-DKokkos_ARCH_INTEL_PVC=ON""-DKokkos_ARCH_SPR=ON"
                              )
                              # Options for Kokkos Kernels.
                              KOKKOS_KERNELS_OPTS=(
                              "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS='${GCC_TOOLCHAIN} -Wno-zero-length-array -fsycl-device-code-split=per_kernel -fp-model=precise'""-DCMAKE_EXE_LINKER_FLAGS='-fsycl -flink-huge-device-code'"
                              )
                              # Options for Google Test.
                              GOOGLETEST_OPTS=(
                              "-DCMAKE_C_COMPILER=icx""-DCMAKE_CXX_COMPILER=icpx""-DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}"
                              )
                              # Options for graph-dispatching.
                              GRAPH_DISPATCHING_OPTS=(
                              -DCMAKE_CXX_FLAGS=${GCC_TOOLCHAIN}
                              )
                              # Compiler loading.# We could load one of the modules of the machine, such as:# module load compiler-intel-llvm/2025.1.0# but since there are recent developments in SYCL command graph, let's be bleeding edge.# Note that loading a recent gcc is required, otherwise 'icpx' will use whatever (very) old GNU standard library headers# it will find and the compilation will likely fail.. spack/share/spack/setup-env.sh
                              spack load gcc@${GCC_VERSION} intel-oneapi-compilers@2026.0.0
                              # Libraries loading.
                              module load dpl/2022.8
                              .$SOURCE_DIR/prepare_graph_dispatching.sh

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions