From c8f2c369f97060db29a3b247c1c9231d42e708bf Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Sat, 24 Jun 2023 15:47:13 -0500 Subject: [PATCH 01/21] Add working hello world example --- build-examples-new.sh | 36 ++++++++++++++++++++++++++++++++++++ hpx_example/CMakeLists.txt | 23 +++++++++++++++++++++++ hpx_example/hello.cpp | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100755 build-examples-new.sh create mode 100644 hpx_example/CMakeLists.txt create mode 100644 hpx_example/hello.cpp diff --git a/build-examples-new.sh b/build-examples-new.sh new file mode 100755 index 0000000..971114c --- /dev/null +++ b/build-examples-new.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Copyright (c) 2023 R. Tohid (@rtohid) +# +# SPDX-License-Identifier: BSL-1.0 +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +module load gcc/12.3.0 boost + +CURRENT_DIR=$1 +PREFIX="${CURRENT_DIR:=$(pwd)}" + +EXAMPLE_PATH=${PREFIX}/hpx_example +BUILD_TYPE=Debug +HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib64/cmake/HPX + +mkdir -p ${PREFIX} + +rm -rf ${EXAMPLE_PATH}/cmake-build-hpxmp + +cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=gcc \ + -DHPX_DIR=${HPX_DIR} \ + -DWITH_HPXC=ON \ + -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-hpxmp/${BUILD_TYPE}/lib/libomp.so \ + -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE} + +cmake --build ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --parallel +cmake --install ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-hpxmp/${BUILD_TYPE} + diff --git a/hpx_example/CMakeLists.txt b/hpx_example/CMakeLists.txt new file mode 100644 index 0000000..4b16a55 --- /dev/null +++ b/hpx_example/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (c) 2023 R. Tohid (@rtohid) +# +# SPDX-License-Identifier: BSL-1.0 +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +cmake_minimum_required(VERSION 3.18) + +project(hpxMP C CXX) +option(WITH_HPXC "Use HPX threading system." OFF) +if (WITH_HPXC) + find_package(HPX REQUIRED) + add_definitions(-DHPXC) +endif() + +set(CMAKE_CXX_FLAGS "-fopenmp") + +add_executable(hello_world hello.cpp) +if (WITH_HPXC) + target_link_libraries(hello_world ${OMP_LIB_PATH} pthread HPX::hpx HPX::wrap_main) +else() + target_link_libraries(hello_world ${OMP_LIB_PATH} pthread) +endif() diff --git a/hpx_example/hello.cpp b/hpx_example/hello.cpp new file mode 100644 index 0000000..5a520cb --- /dev/null +++ b/hpx_example/hello.cpp @@ -0,0 +1,32 @@ +// Copyright (c) 2023 R. Tohid (@rtohid) +// +// SPDX-License-Identifier: BSL-1.0 +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include +#include + +#include +#include +#include +int hello() { + + std::cout << "Starting ..." << std::endl; + +#pragma omp parallel + { + std::cout << "Hello World, from thread: " << omp_get_thread_num() + << std::endl; + } + + return 0; +} + +int main(int argc, char* argv[]) +{ + hpx::start(nullptr, argc, argv); + hpx::post(&hello); + hpx::post([]() { hpx::disconnect(); }); + //return hpx::disconnect(); +} From d2012dc5a4d35bd19f9d4d0451c753121df94268 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Thu, 6 Jul 2023 00:12:38 +0530 Subject: [PATCH 02/21] Clone hpxmp-v16 branch for hpxmp using http link --- build-hpxmp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-hpxmp.sh b/build-hpxmp.sh index 86405c8..ff5e73f 100755 --- a/build-hpxmp.sh +++ b/build-hpxmp.sh @@ -25,7 +25,7 @@ BUILD_DIR=${OMP_DIR}/cmake-build-${PROJECT}/${BUILD_TYPE}/ mkdir -p ${PREFIX} if [ ! -d ${LLVM_DIR} ]; then - git clone --depth=1 -b hpxc git@github.com:light2802/llvm-project.git ${LLVM_DIR} + git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} fi rm -rf ${BUILD_DIR} From 5162824cb1a3eccfb7f63e546909d9c34fc49025 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Thu, 6 Jul 2023 00:13:08 +0530 Subject: [PATCH 03/21] Add testing workflow --- .github/workflows/test.yml | 157 +++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..4c29b93 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,157 @@ +# Copyright (c) 2023 Aarya Chaumal +# +# SPDX-License-Identifier: BSL-1.0 +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +name: Test examples + +on: + push: + branches: + - main + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + container: stellargroup/build_env:latest + + steps: + - uses: actions/checkout@v3 + - name: Install HPX + shell: bash + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + HPX_DIR=${PREFIX}/hpx/ + mkdir -p ${PREFIX} + + git clone https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} + + cd ${HPX_DIR} + cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -DHPX_WITH_THREAD_IDLE_RATES=ON \ + -DHPX_WITH_MALLOC=tcmalloc \ + -DHPX_WITH_EXAMPLES=OFF \ + -DHPX_WITH_APEX=ON \ + -DHPX_WITH_FETCH_ASIO=ON \ + -DHPX_WITH_DYNAMIC_HPX_MAIN=OFF \ + -Wdev -S ${HPX_DIR} -B ${HPX_DIR}/cmake-build/${BUILD_TYPE} + + cmake --build ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --parallel + cmake --install ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPX_DIR}/cmake-install/${BUILD_TYPE} + + - name: Install HPXC + shell: bash + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + HPXC_DIR=${PREFIX}/hpxc + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + + mkdir -p ${PREFIX} + + git clone https://github.com/STEllAR-GROUP/hpxc.git ${HPXC_DIR} + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DHPX_DIR=${HPX_DIR} \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -Wdev -S ${HPXC_DIR} -B ${HPXC_DIR}/cmake-build/${BUILD_TYPE} \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + + cmake --build ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --parallel + cmake --install ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPXC_DIR}/cmake-install/${BUILD_TYPE} + + - name: Build hpxmp + shell: bash + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + LLVM_DIR=${PREFIX}/llvm-project + LLVM_VERSION=16.0.6 + OMP_DIR=${LLVM_DIR}/openmp + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + HPXC_DIR=${PREFIX}/hpxc + PROJECT=hpxmp + BUILD_DIR=${OMP_DIR}/cmake-build-${PROJECT}/${BUILD_TYPE}/ + + mkdir -p ${PREFIX} + + git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -DHPX_DIR=${HPX_DIR} \ + -DWITH_HPXC=ON \ + -DHPXC_DIR=${HPXC_DIR} \ + -DOPENMP_ENABLE_LIBOMPTARGET=OFF \ + -DLIBOMP_OMPD_SUPPORT=OFF \ + -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE \ + -DCMAKE_INSTALL_PREFIX=${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} \ + -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} + + cmake --build ${BUILD_DIR} --parallel + cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} + + # - name: Build OMP examples + # shell: bash + # run: | + # PREFIX="${CURRENT_DIR:=$(pwd)}" + + # EXAMPLE_PATH=${PREFIX}/running_examples + # BUILD_TYPE=Debug + # PROJECT=examples + + # mkdir -p ${PREFIX} + + # rm -rf ${EXAMPLE_PATH}/cmake-build-omp + + # cmake \ + # -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + # -DCMAKE_VERBOSE_MAKEFILE=ON \ + # -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + # -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + # -DCMAKE_CXX_COMPILER=g++ \ + # -DCMAKE_C_COMPILER=gcc \ + # -DHPX_DIR=${HPX_DIR} \ + # -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-omp/${BUILD_TYPE}/lib/libomp.so \ + # -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE} + + # cmake --build ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE}/ --parallel + # cmake --install ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-omp/${BUILD_TYPE} + + - name: Build HPXMP examples + shell: bash + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + EXAMPLE_PATH=${PREFIX}/running_examples + BUILD_TYPE=Release + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + + mkdir -p ${PREFIX} + + rm -rf ${EXAMPLE_PATH}/cmake-build-hpxmp + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + -DHPX_DIR=${HPX_DIR} \ + -DWITH_HPXC=ON \ + -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-hpxmp/${BUILD_TYPE}/lib/libomp.so \ + -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE} + + cmake --build ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --parallel + cmake --install ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-hpxmp/${BUILD_TYPE} From d7c301e712e2f4de4bf3443a24903b343b535676 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Mon, 10 Jul 2023 12:25:33 +0530 Subject: [PATCH 04/21] Add windows workflow --- .github/workflows/test_windows.yml | 153 +++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 .github/workflows/test_windows.yml diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml new file mode 100644 index 0000000..a135a8e --- /dev/null +++ b/.github/workflows/test_windows.yml @@ -0,0 +1,153 @@ +# Copyright (c) 2023 Aarya Chaumal +# +# SPDX-License-Identifier: BSL-1.0 +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +name: Test examples + +on: + push: + branches: + - main + pull_request: + +jobs: + build: + runs-on: windows-latest + container: stellargroup/build_env:latest + + steps: + - uses: actions/checkout@v3 + - name: Install HPX + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + HPX_DIR=${PREFIX}/hpx/ + mkdir -p ${PREFIX} + + git clone https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} + + cd ${HPX_DIR} + cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -DHPX_WITH_THREAD_IDLE_RATES=ON \ + -DHPX_WITH_MALLOC=tcmalloc \ + -DHPX_WITH_EXAMPLES=OFF \ + -DHPX_WITH_APEX=ON \ + -DHPX_WITH_FETCH_ASIO=ON \ + -DHPX_WITH_DYNAMIC_HPX_MAIN=OFF \ + -Wdev -S ${HPX_DIR} -B ${HPX_DIR}/cmake-build/${BUILD_TYPE} + + cmake --build ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --parallel + cmake --install ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPX_DIR}/cmake-install/${BUILD_TYPE} + + - name: Install HPXC + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + HPXC_DIR=${PREFIX}/hpxc + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + + mkdir -p ${PREFIX} + + git clone https://github.com/STEllAR-GROUP/hpxc.git ${HPXC_DIR} + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DHPX_DIR=${HPX_DIR} \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -Wdev -S ${HPXC_DIR} -B ${HPXC_DIR}/cmake-build/${BUILD_TYPE} \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + + cmake --build ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --parallel + cmake --install ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPXC_DIR}/cmake-install/${BUILD_TYPE} + + - name: Build hpxmp + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + BUILD_TYPE=Release + LLVM_DIR=${PREFIX}/llvm-project + LLVM_VERSION=16.0.6 + OMP_DIR=${LLVM_DIR}/openmp + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + HPXC_DIR=${PREFIX}/hpxc + PROJECT=hpxmp + BUILD_DIR=${OMP_DIR}/cmake-build-${PROJECT}/${BUILD_TYPE}/ + + mkdir -p ${PREFIX} + + git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17" \ + -DHPX_DIR=${HPX_DIR} \ + -DWITH_HPXC=ON \ + -DHPXC_DIR=${HPXC_DIR} \ + -DOPENMP_ENABLE_LIBOMPTARGET=OFF \ + -DLIBOMP_OMPD_SUPPORT=OFF \ + -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE \ + -DCMAKE_INSTALL_PREFIX=${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} \ + -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} + + cmake --build ${BUILD_DIR} --parallel + cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} + + # - name: Build OMP examples + # shell: bash + # run: | + # PREFIX="${CURRENT_DIR:=$(pwd)}" + + # EXAMPLE_PATH=${PREFIX}/running_examples + # BUILD_TYPE=Debug + # PROJECT=examples + + # mkdir -p ${PREFIX} + + # rm -rf ${EXAMPLE_PATH}/cmake-build-omp + + # cmake \ + # -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + # -DCMAKE_VERBOSE_MAKEFILE=ON \ + # -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + # -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + # -DCMAKE_CXX_COMPILER=g++ \ + # -DCMAKE_C_COMPILER=gcc \ + # -DHPX_DIR=${HPX_DIR} \ + # -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-omp/${BUILD_TYPE}/lib/libomp.so \ + # -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE} + + # cmake --build ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE}/ --parallel + # cmake --install ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-omp/${BUILD_TYPE} + + - name: Build HPXMP examples + run: | + PREFIX="${CURRENT_DIR:=$(pwd)}" + + EXAMPLE_PATH=${PREFIX}/running_examples + BUILD_TYPE=Release + HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + + mkdir -p ${PREFIX} + + rm -rf ${EXAMPLE_PATH}/cmake-build-hpxmp + + cmake \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + -DHPX_DIR=${HPX_DIR} \ + -DWITH_HPXC=ON \ + -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-hpxmp/${BUILD_TYPE}/lib/libomp.so \ + -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE} + + cmake --build ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --parallel + cmake --install ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-hpxmp/${BUILD_TYPE} From d54272b91a63414b13d28d881554f22acf50d0b1 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Mon, 10 Jul 2023 12:27:04 +0530 Subject: [PATCH 05/21] Name worflows appropriately --- .github/workflows/test.yml | 2 +- .github/workflows/test_windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4c29b93..08062bb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ # Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -name: Test examples +name: Test examples on Linux on: push: diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index a135a8e..e85f026 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -4,7 +4,7 @@ # Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -name: Test examples +name: Test examples on Windows on: push: From d3958b3aa9cf7ba618c2ea030e3a77eadcac1e10 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Mon, 10 Jul 2023 12:31:59 +0530 Subject: [PATCH 06/21] Changes to windows workflow --- .github/workflows/test_windows.yml | 75 ++++++++++++++++++------------ 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index e85f026..c6069d4 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -1,8 +1,8 @@ -# Copyright (c) 2023 Aarya Chaumal +# Copyright c 2023 Aarya Chaumal # # SPDX-License-Identifier: BSL-1.0 -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# Distributed under the Boost Software License, Version 1.0. See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt name: Test examples on Windows @@ -15,41 +15,58 @@ on: jobs: build: runs-on: windows-latest - container: stellargroup/build_env:latest steps: - uses: actions/checkout@v3 + - uses: jwlawson/actions-setup-cmake@v1.14 + with: + cmake-version: "3.22.x" + - name: Install dependencies + run: | + md C:\projects + $client = new-object System.Net.WebClient + $client.DownloadFile("https://rostam.cct.lsu.edu/download/builder/vcpkg-export-hpx-dependencies-2022.7z","C:\projects\vcpkg-export-hpx-dependencies.7z") + 7z x C:\projects\vcpkg-export-hpx-dependencies.7z -y -oC:\projects\vcpkg + perl -MCPAN -e shell + + - name: install cpanm and multiple modules + uses: perl-actions/install-with-cpanm@stable + with: + install: | + Pod::Usage + - name: Install HPX + shell: bash run: | PREFIX="${CURRENT_DIR:=$(pwd)}" - + BUILD_TYPE=Release - HPX_DIR=${PREFIX}/hpx/ - mkdir -p ${PREFIX} + HPX_DIR=${PREFIX}/hpx/ + rm -rf ${HPX_DIR} + #mkdir -p ${PREFIX} git clone https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} - + cd ${HPX_DIR} cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ - -DCMAKE_CXX_FLAGS="-std=c++17" \ + -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DHPX_WITH_THREAD_IDLE_RATES=ON \ - -DHPX_WITH_MALLOC=tcmalloc \ -DHPX_WITH_EXAMPLES=OFF \ - -DHPX_WITH_APEX=ON \ -DHPX_WITH_FETCH_ASIO=ON \ -DHPX_WITH_DYNAMIC_HPX_MAIN=OFF \ - -Wdev -S ${HPX_DIR} -B ${HPX_DIR}/cmake-build/${BUILD_TYPE} - - cmake --build ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --parallel - cmake --install ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPX_DIR}/cmake-install/${BUILD_TYPE} + -Wdev -S ${HPX_DIR} -B ${HPX_DIR}/cmake-build/${BUILD_TYPE} \ + -G'Visual Studio 17 2022' + + cmake --build ${HPX_DIR}/cmake-build/${BUILD_TYPE}/ --parallel - name: Install HPXC + shell: bash run: | PREFIX="${CURRENT_DIR:=$(pwd)}" BUILD_TYPE=Release HPXC_DIR=${PREFIX}/hpxc - HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + HPX_DIR=${PREFIX}/hpx/cmake-build/${BUILD_TYPE}/lib/cmake/HPX mkdir -p ${PREFIX} @@ -57,16 +74,16 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DHPX_DIR=${HPX_DIR} \ - -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DCMAKE_CXX_FLAGS="-std=c++17" \ -Wdev -S ${HPXC_DIR} -B ${HPXC_DIR}/cmake-build/${BUILD_TYPE} \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON cmake --build ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --parallel - cmake --install ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPXC_DIR}/cmake-install/${BUILD_TYPE} + #cmake --install ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPXC_DIR}/cmake-install/${BUILD_TYPE} - name: Build hpxmp + shell: bash run: | PREFIX="${CURRENT_DIR:=$(pwd)}" @@ -74,31 +91,32 @@ jobs: LLVM_DIR=${PREFIX}/llvm-project LLVM_VERSION=16.0.6 OMP_DIR=${LLVM_DIR}/openmp - HPX_DIR=${PREFIX}/hpx/cmake-install/${BUILD_TYPE}/lib/cmake/HPX + HPX_DIR=${PREFIX}/hpx/cmake-build/${BUILD_TYPE}/lib/cmake/HPX HPXC_DIR=${PREFIX}/hpxc PROJECT=hpxmp BUILD_DIR=${OMP_DIR}/cmake-build-${PROJECT}/${BUILD_TYPE}/ mkdir -p ${PREFIX} + pip install psutil + cpan Pod::Usage + git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} cmake \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ - -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DCMAKE_CXX_FLAGS="-std=c++17" \ -DHPX_DIR=${HPX_DIR} \ -DWITH_HPXC=ON \ -DHPXC_DIR=${HPXC_DIR} \ -DOPENMP_ENABLE_LIBOMPTARGET=OFF \ -DLIBOMP_OMPD_SUPPORT=OFF \ -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE \ + -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DCMAKE_INSTALL_PREFIX=${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} \ -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} cmake --build ${BUILD_DIR} --parallel - cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} + #cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} # - name: Build OMP examples # shell: bash @@ -128,6 +146,7 @@ jobs: # cmake --install ${EXAMPLE_PATH}/cmake-build-omp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-omp/${BUILD_TYPE} - name: Build HPXMP examples + shell: bash run: | PREFIX="${CURRENT_DIR:=$(pwd)}" @@ -141,13 +160,11 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ - -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DCMAKE_CXX_FLAGS="-std=c++17 -fopenmp" \ + -DCMAKE_CXX_FLAGS="-fopenmp" \ -DHPX_DIR=${HPX_DIR} \ -DWITH_HPXC=ON \ - -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-install-hpxmp/${BUILD_TYPE}/lib/libomp.so \ + -DOMP_LIB_PATH=${PREFIX}/llvm-project/openmp/cmake-build-hpxmp/${BUILD_TYPE}/lib/libomp.so \ -Wdev -S ${EXAMPLE_PATH} -B ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE} cmake --build ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --parallel - cmake --install ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-hpxmp/${BUILD_TYPE} + #cmake --install ${EXAMPLE_PATH}/cmake-build-hpxmp/${BUILD_TYPE}/ --prefix ${EXAMPLE_PATH}/cmake-install-hpxmp/${BUILD_TYPE} From e08fbeef57cb46af3da999faddb26ed28362645d Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 22:45:36 +0530 Subject: [PATCH 07/21] Add perl deps --- .github/workflows/test_windows.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index c6069d4..9ce2ba7 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -29,11 +29,11 @@ jobs: 7z x C:\projects\vcpkg-export-hpx-dependencies.7z -y -oC:\projects\vcpkg perl -MCPAN -e shell - - name: install cpanm and multiple modules - uses: perl-actions/install-with-cpanm@stable - with: - install: | - Pod::Usage + - name: Install deps + shell: bash + run: | + cpan Pod::Usage + cpan CPAN::Author - name: Install HPX shell: bash @@ -99,7 +99,6 @@ jobs: mkdir -p ${PREFIX} pip install psutil - cpan Pod::Usage git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} From 28a81f28f697d4398577a7b33f133236fdb1fd5e Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:00:57 +0530 Subject: [PATCH 08/21] Correct order of perl modules installation --- .github/workflows/test_windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 9ce2ba7..154f121 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -32,8 +32,8 @@ jobs: - name: Install deps shell: bash run: | - cpan Pod::Usage cpan CPAN::Author + cpan Pod::Usage - name: Install HPX shell: bash From 86418b97f975f8c38f2508f0e8a30db0155706fa Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:06:13 +0530 Subject: [PATCH 09/21] Try installing prtl modules using cpanm --- .github/workflows/test_windows.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 154f121..d1b7537 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -21,6 +21,12 @@ jobs: - uses: jwlawson/actions-setup-cmake@v1.14 with: cmake-version: "3.22.x" + - name: Install deps + shell: bash + run: | + cpan install App::cpanminus + cpanm Pod::Usage + - name: Install dependencies run: | md C:\projects @@ -29,12 +35,6 @@ jobs: 7z x C:\projects\vcpkg-export-hpx-dependencies.7z -y -oC:\projects\vcpkg perl -MCPAN -e shell - - name: Install deps - shell: bash - run: | - cpan CPAN::Author - cpan Pod::Usage - - name: Install HPX shell: bash run: | From 1d4dd053c6d94e3ca62b82c696d329a0dc387d72 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:11:47 +0530 Subject: [PATCH 10/21] Try install modules using CPAN --- .github/workflows/test_windows.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index d1b7537..9196e72 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -24,8 +24,7 @@ jobs: - name: Install deps shell: bash run: | - cpan install App::cpanminus - cpanm Pod::Usage + perl -MCPAN -e "install Pod::Usage" - name: Install dependencies run: | From d3356acf458138dbab23ae409671f2b9ba47aef7 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:18:28 +0530 Subject: [PATCH 11/21] Try installing from powershell --- .github/workflows/test_windows.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 9196e72..6d580f1 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -21,10 +21,10 @@ jobs: - uses: jwlawson/actions-setup-cmake@v1.14 with: cmake-version: "3.22.x" - - name: Install deps - shell: bash - run: | - perl -MCPAN -e "install Pod::Usage" + # - name: Install deps + # shell: bash + # run: | + # perl -MCPAN -e "install Pod::Usage" - name: Install dependencies run: | @@ -32,7 +32,7 @@ jobs: $client = new-object System.Net.WebClient $client.DownloadFile("https://rostam.cct.lsu.edu/download/builder/vcpkg-export-hpx-dependencies-2022.7z","C:\projects\vcpkg-export-hpx-dependencies.7z") 7z x C:\projects\vcpkg-export-hpx-dependencies.7z -y -oC:\projects\vcpkg - perl -MCPAN -e shell + perl -MCPAN -e "install Pod::Usage" - name: Install HPX shell: bash From f54d274749a8fe0789ba982989754617d3fa1ab3 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:34:57 +0530 Subject: [PATCH 12/21] Add Visual Studio as generator for hpxmp --- .github/workflows/test_windows.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 6d580f1..d325a29 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -111,7 +111,8 @@ jobs: -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE \ -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DCMAKE_INSTALL_PREFIX=${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} \ - -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} + -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} \ + -G'Visual Studio 17 2022' cmake --build ${BUILD_DIR} --parallel #cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} From c20f1943f7347accfc92554213b1e64db8c13433 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:42:43 +0530 Subject: [PATCH 13/21] Clone repos with latest changes --- .github/workflows/test_windows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index d325a29..f7fa87b 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -44,7 +44,7 @@ jobs: rm -rf ${HPX_DIR} #mkdir -p ${PREFIX} - git clone https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} + git clone -b on_finalize https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} cd ${HPX_DIR} cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ @@ -69,7 +69,7 @@ jobs: mkdir -p ${PREFIX} - git clone https://github.com/STEllAR-GROUP/hpxc.git ${HPXC_DIR} + git clone -b hpxmp https://github.com/light2802/hpxc.git ${HPXC_DIR} cmake \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ From 7ae25f3a4f1bbd72329ca5f322bf5421e13e3f36 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Tue, 11 Jul 2023 23:57:08 +0530 Subject: [PATCH 14/21] Clone hpx from personal repo --- .github/workflows/test_windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index f7fa87b..7fee286 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -44,7 +44,7 @@ jobs: rm -rf ${HPX_DIR} #mkdir -p ${PREFIX} - git clone -b on_finalize https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} + git clone -b on_finalize https://github.com/light2802/hpx.git ${HPX_DIR} cd ${HPX_DIR} cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ From ee2c2ce10ab7786cd66665c0258b0b3c44d4ab3b Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 10:48:02 +0530 Subject: [PATCH 15/21] Change repo URLs for linux workflow --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 08062bb..d96a37b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: HPX_DIR=${PREFIX}/hpx/ mkdir -p ${PREFIX} - git clone https://github.com/STEllAR-GROUP/hpx.git ${HPX_DIR} + git clone -b on_finalize https://github.com/light2802/hpx.git ${HPX_DIR} cd ${HPX_DIR} cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ @@ -55,7 +55,7 @@ jobs: mkdir -p ${PREFIX} - git clone https://github.com/STEllAR-GROUP/hpxc.git ${HPXC_DIR} + git clone -b hpxmp https://github.com/light2802/hpxc.git ${HPXC_DIR} cmake \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ From a4cbc4ca2bfc16758c23ea273aa94c33f86bdc64 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 11:20:48 +0530 Subject: [PATCH 16/21] Add strawberry perl to path --- .github/workflows/test_windows.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 7fee286..60e148e 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -98,6 +98,7 @@ jobs: mkdir -p ${PREFIX} pip install psutil + export PATH=/c/Strawberry/perl/bin:$PATH git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} From ddb90696f453405e79bcd183d103de401784381b Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 14:47:37 +0530 Subject: [PATCH 17/21] Try to install hpxmp in powershell --- .github/workflows/test_windows.yml | 58 ++++++++++++++---------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index 60e148e..fc0e379 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -82,41 +82,37 @@ jobs: #cmake --install ${HPXC_DIR}/cmake-build/${BUILD_TYPE}/ --prefix ${HPXC_DIR}/cmake-install/${BUILD_TYPE} - name: Build hpxmp - shell: bash run: | - PREFIX="${CURRENT_DIR:=$(pwd)}" - - BUILD_TYPE=Release - LLVM_DIR=${PREFIX}/llvm-project - LLVM_VERSION=16.0.6 - OMP_DIR=${LLVM_DIR}/openmp - HPX_DIR=${PREFIX}/hpx/cmake-build/${BUILD_TYPE}/lib/cmake/HPX - HPXC_DIR=${PREFIX}/hpxc - PROJECT=hpxmp - BUILD_DIR=${OMP_DIR}/cmake-build-${PROJECT}/${BUILD_TYPE}/ + $PREFIX = pwd - mkdir -p ${PREFIX} + $BUILD_TYPE = "Release" + $LLVM_DIR = "$($PREFIX)/llvm-project" + $LLVM_VERSION = "16.0.6" + $OMP_DIR = "$($LLVM_DIR)/openmp" + $HPX_DIR = "$($PREFIX)/hpx/cmake-build/$($BUILD_TYPE)/lib/cmake/HPX" + $HPXC_DIR = "$($PREFIX)/hpxc" + $PROJECT = "hpxmp" + $BUILD_DIR= "$($OMP_DIR)/cmake-build-$($PROJECT)/$($BUILD_TYPE)/" pip install psutil - export PATH=/c/Strawberry/perl/bin:$PATH - - git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git ${LLVM_DIR} - - cmake \ - -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ - -DHPX_DIR=${HPX_DIR} \ - -DWITH_HPXC=ON \ - -DHPXC_DIR=${HPXC_DIR} \ - -DOPENMP_ENABLE_LIBOMPTARGET=OFF \ - -DLIBOMP_OMPD_SUPPORT=OFF \ - -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE \ - -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" \ - -DCMAKE_INSTALL_PREFIX=${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} \ - -Wdev -S ${OMP_DIR} -B ${BUILD_DIR} \ - -G'Visual Studio 17 2022' - - cmake --build ${BUILD_DIR} --parallel - #cmake --install ${BUILD_DIR}/ --prefix ${OMP_DIR}/cmake-install-${PROJECT}/${BUILD_TYPE} + + git clone --depth=1 -b hpxmp-v16 https://github.com/light2802/llvm-project.git $($LLVM_DIR) + + cmake ` + -DCMAKE_BUILD_TYPE=$($BUILD_TYPE) ` + -DHPX_DIR=$($HPX_DIR) ` + -DWITH_HPXC=ON ` + -DHPXC_DIR=$($HPXC_DIR) ` + -DOPENMP_ENABLE_LIBOMPTARGET=OFF ` + -DLIBOMP_OMPD_SUPPORT=OFF ` + -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE ` + -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" ` + -DCMAKE_INSTALL_PREFIX="$($OMP_DIR)/cmake-install-$($PROJECT)/$($BUILD_TYPE)" ` + -Wdev -S $($OMP_DIR) -B $($BUILD_DIR) ` + -G'Visual Studio 17 2022' + + cmake --build $($BUILD_DIR) --parallel + cmake --install $($BUILD_DIR) --prefix "$($OMP_DIR)/cmake-install-$($PROJECT)/$($BUILD_TYPE)" # - name: Build OMP examples # shell: bash From 88ab3c72154668bca2004d5e7a02412b685bccad Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 16:07:46 +0530 Subject: [PATCH 18/21] try adding "" around path vars --- .github/workflows/test_windows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index fc0e379..f18fc20 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -100,9 +100,9 @@ jobs: cmake ` -DCMAKE_BUILD_TYPE=$($BUILD_TYPE) ` - -DHPX_DIR=$($HPX_DIR) ` + -DHPX_DIR="$($HPX_DIR)" ` -DWITH_HPXC=ON ` - -DHPXC_DIR=$($HPXC_DIR) ` + -DHPXC_DIR="$($HPXC_DIR)" ` -DOPENMP_ENABLE_LIBOMPTARGET=OFF ` -DLIBOMP_OMPD_SUPPORT=OFF ` -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE ` From d2f1e2aaa789577912e96466dccd65deaff1be60 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 16:55:05 +0530 Subject: [PATCH 19/21] Dont install, just buld hpxmp --- .github/workflows/test_windows.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index f18fc20..ce95463 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -107,12 +107,11 @@ jobs: -DLIBOMP_OMPD_SUPPORT=OFF ` -DLIBOMP_USE_STDCPPLIB:BOOL=TRUE ` -DCMAKE_TOOLCHAIN_FILE="C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" ` - -DCMAKE_INSTALL_PREFIX="$($OMP_DIR)/cmake-install-$($PROJECT)/$($BUILD_TYPE)" ` -Wdev -S $($OMP_DIR) -B $($BUILD_DIR) ` -G'Visual Studio 17 2022' cmake --build $($BUILD_DIR) --parallel - cmake --install $($BUILD_DIR) --prefix "$($OMP_DIR)/cmake-install-$($PROJECT)/$($BUILD_TYPE)" + #cmake --install $($BUILD_DIR) --prefix "$($OMP_DIR)/cmake-install-$($PROJECT)/$($BUILD_TYPE)" # - name: Build OMP examples # shell: bash From 4fe5111a86cf26891fc04efc1af6d6d48c5c4cac Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Wed, 12 Jul 2023 21:29:31 +0530 Subject: [PATCH 20/21] Build examples using gcc --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d96a37b..5dd5468 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,6 +132,9 @@ jobs: - name: Build HPXMP examples shell: bash + env: + CC: gcc + CXX: g++ run: | PREFIX="${CURRENT_DIR:=$(pwd)}" From 3e714cf295b439f6bbe31706ce20485afdc52ee6 Mon Sep 17 00:00:00 2001 From: Aarya Chaumal Date: Mon, 17 Jul 2023 10:01:13 -0500 Subject: [PATCH 21/21] Add more pragma example codes --- running_examples/CMakeLists.txt | 23 +++++++++++++++++++++++ running_examples/atomic.cpp | 20 ++++++++++++++++++++ running_examples/barrier.cpp | 25 +++++++++++++++++++++++++ running_examples/for.cpp | 17 +++++++++++++++++ running_examples/hello.cpp | 1 + 5 files changed, 86 insertions(+) create mode 100644 running_examples/atomic.cpp create mode 100644 running_examples/barrier.cpp create mode 100644 running_examples/for.cpp diff --git a/running_examples/CMakeLists.txt b/running_examples/CMakeLists.txt index 4b16a55..3def2ee 100644 --- a/running_examples/CMakeLists.txt +++ b/running_examples/CMakeLists.txt @@ -21,3 +21,26 @@ if (WITH_HPXC) else() target_link_libraries(hello_world ${OMP_LIB_PATH} pthread) endif() + +add_executable(barrier barrier.cpp) +if (WITH_HPXC) + target_link_libraries(barrier ${OMP_LIB_PATH} pthread HPX::hpx HPX::wrap_main) +else() + target_link_libraries(barrier ${OMP_LIB_PATH} pthread) +endif() + +add_executable(for for.cpp) +if (WITH_HPXC) + target_link_libraries(for ${OMP_LIB_PATH} pthread HPX::hpx HPX::wrap_main) +else() + target_link_libraries(for ${OMP_LIB_PATH} pthread) +endif() + +add_executable(atomic atomic.cpp) +if (WITH_HPXC) + target_link_libraries(atomic ${OMP_LIB_PATH} pthread HPX::hpx HPX::wrap_main) +else() + target_link_libraries(atomic ${OMP_LIB_PATH} pthread) +endif() + + diff --git a/running_examples/atomic.cpp b/running_examples/atomic.cpp new file mode 100644 index 0000000..86dd112 --- /dev/null +++ b/running_examples/atomic.cpp @@ -0,0 +1,20 @@ +#include +#include + +#ifdef HPXC +#include +#endif // HPXC + + +int main() { + int x=0; +#pragma omp parallel for + for (int i = 0; i<10000000; i++) + { + #pragma omp atomic + x++; + } + printf("x = %d\n", x); + if(x != 10000000) return 1; + return 0; +} diff --git a/running_examples/barrier.cpp b/running_examples/barrier.cpp new file mode 100644 index 0000000..4baac3e --- /dev/null +++ b/running_examples/barrier.cpp @@ -0,0 +1,25 @@ +#include +#include + +#ifdef HPXC +#include +#endif // HPXC + +int main () { + + int th_id, nthreads; + + #pragma omp parallel private(th_id) + { + th_id = omp_get_thread_num(); + printf("Hello World from thread %d\n", th_id); + + #pragma omp barrier + if ( th_id == 0 ) { + nthreads = omp_get_num_threads(); + printf("There are %d threads\n",nthreads); + } + } + + return 0; +} diff --git a/running_examples/for.cpp b/running_examples/for.cpp new file mode 100644 index 0000000..68c25f6 --- /dev/null +++ b/running_examples/for.cpp @@ -0,0 +1,17 @@ +#include +#include + +#ifdef HPXC +#include +#endif // HPXC + +int main () { + int a[1000]; + #pragma omp parallel for + for(int i = 1; i < 1000; ++i) + { + a[i] = i; + } + + return 0; +} diff --git a/running_examples/hello.cpp b/running_examples/hello.cpp index 4c1f3ab..e54f765 100644 --- a/running_examples/hello.cpp +++ b/running_examples/hello.cpp @@ -21,5 +21,6 @@ int main(int argc, char *argv[]) { << std::endl; } + //std::cout << "Threads running " << hpx::threads::get_thread_manager().get_thread_count() << std::endl; return 0; }