Skip to content

Commit d3b6469

Browse files
committed
Add OSH process technology
1 parent 5f1e6ac commit d3b6469

58 files changed

Lines changed: 1847 additions & 798 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE/task_fix_submission_en.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
Pull request title requirement:
33
4-
"Fix: <LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Full Task Name>. Variant <Number>"
4+
"Fix: <LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI|OSH>. <Full Task Name>. Variant <Number>"
55
-->
66

77
## Description
@@ -15,7 +15,7 @@ Please provide:
1515

1616
- **Task**: _Enter the full task name here_
1717
- **Variant**: _Enter the variant number here_
18-
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI)_
18+
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI, OSH)_
1919
- **Student directory**: _Enter the directory name (e.g., `nesterov_a_vector_sum`)_
2020
- **Original PR / commit / issue link**: _Paste link(s) here_
2121
- **Original task definition**: _Paste the full task statement here_

.github/PULL_REQUEST_TEMPLATE/task_fix_submission_ru.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
Требования к названию pull request:
33
4-
Исправление: <Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>.
4+
Исправление: <Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI|OSH>.
55
<Полное название задачи>. Вариант <Номер>
66
-->
77

@@ -16,7 +16,7 @@
1616

1717
- **Задача**: _Введите здесь полное название задачи_
1818
- **Вариант**: _Введите здесь номер варианта_
19-
- **Технология**: _Введите технологию (например, SEQ, OMP, TBB, STL, MPI)_
19+
- **Технология**: _Введите технологию (например, SEQ, OMP, TBB, STL, MPI, OSH)_
2020
- **Директория студента**: _Введите имя директории (например, `nesterov_a_vector_sum`)_
2121
- **Ссылка на исходный PR / коммит / issue**: _Вставьте ссылку(и)_
2222
- **Полное описание исходной задачи**: _Вставьте полный текст условия_

.github/PULL_REQUEST_TEMPLATE/task_submission_en.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
Pull request title requirement:
33
4-
"<LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Full Task Name>. Variant <Number>"
4+
"<LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI|OSH>. <Full Task Name>. Variant <Number>"
55
-->
66

77
## Description
@@ -13,7 +13,7 @@ Please provide a detailed description of your implementation, including:
1313

1414
- **Task**: _Enter the full task name here_
1515
- **Variant**: _Enter the variant number here_
16-
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI)_
16+
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI, OSH)_
1717
- **Description** of your implementation and report.
1818
_Provide a concise summary of your implementation and report here._
1919

.github/PULL_REQUEST_TEMPLATE/task_submission_ru.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
Требования к названию pull request:
33
4-
"<Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Полное название задачи>. Вариант <Номер>"
4+
"<Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI|OSH>. <Полное название задачи>. Вариант <Номер>"
55
-->
66

77
## Описание
@@ -13,7 +13,7 @@
1313

1414
- **Задача**: _Введите здесь полное название задачи_
1515
- **Вариант**: _Введите здесь номер варианта_
16-
- **Технология**: _Введите технологию (например, SEQ, OMP, TBB, STL, MPI)_
16+
- **Технология**: _Введите технологию (например, SEQ, OMP, TBB, STL, MPI, OSH)_
1717
- **Описание** вашей реализации и отчёта.
1818
_Кратко опишите вашу реализацию и содержание отчёта здесь._
1919

.github/workflows/mac.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
with:
6464
path: install
6565
name: macos-clang-install
66-
- name: Run func tests (MPI)
66+
- name: Run func tests (MPI/OSH)
6767
run: scripts/run_tests.py --running-type="processes" --counts 1 2 3 4
6868
env:
6969
PPC_NUM_THREADS: 1

.github/workflows/ubuntu.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ jobs:
3535
key: ${{ runner.os }}-gcc
3636
create-symlink: true
3737
max-size: 1G
38+
- name: Install Open MPI source build dependencies
39+
run: >
40+
apt-get update &&
41+
apt-get install -y --no-install-recommends
42+
autoconf automake flex libtool libucx-dev make perl pkg-config zlib1g-dev
3843
- name: CMake configure
3944
run: >
4045
cmake -S . -B build -G Ninja
@@ -86,7 +91,7 @@ jobs:
8691
with:
8792
path: install
8893
name: ubuntu-gcc-install-${{ matrix.os }}
89-
- name: Run func tests (MPI)
94+
- name: Run func tests (MPI/OSH)
9095
run: scripts/run_tests.py --running-type="processes" --counts 1 2 3 4 --additional-mpi-args="--oversubscribe"
9196
env:
9297
PPC_NUM_THREADS: 1
@@ -139,6 +144,11 @@ jobs:
139144
key: ${{ runner.os }}-clang
140145
create-symlink: true
141146
max-size: 1G
147+
- name: Install Open MPI source build dependencies
148+
run: >
149+
apt-get update &&
150+
apt-get install -y --no-install-recommends
151+
autoconf automake flex libtool libucx-dev make perl pkg-config zlib1g-dev
142152
- name: CMake configure
143153
run: >
144154
cmake -S . -B build -G Ninja
@@ -182,7 +192,7 @@ jobs:
182192
with:
183193
path: install
184194
name: ubuntu-clang-install-${{ matrix.os }}
185-
- name: Run func tests (MPI)
195+
- name: Run func tests (MPI/OSH)
186196
run: scripts/run_tests.py --running-type="processes" --counts 1 2 3 4 --additional-mpi-args="--oversubscribe"
187197
env:
188198
PPC_NUM_THREADS: 1
@@ -237,6 +247,8 @@ jobs:
237247
key: ${{ runner.os }}-clang
238248
create-symlink: true
239249
max-size: 1G
250+
- name: Install OSH build dependencies
251+
run: apt-get update && apt-get install -y --no-install-recommends autoconf automake libtool
240252
- name: CMake configure
241253
run: >
242254
cmake -S . -B build -G Ninja
@@ -282,7 +294,7 @@ jobs:
282294
with:
283295
path: install
284296
name: ubuntu-clang-sanitizer-install-${{ matrix.os }}
285-
- name: Run tests (MPI)
297+
- name: Run tests (MPI/OSH)
286298
run: scripts/run_tests.py --running-type="processes" --counts 2 --additional-mpi-args="--oversubscribe"
287299
env:
288300
PPC_NUM_THREADS: 2
@@ -347,6 +359,8 @@ jobs:
347359
key: ${{ runner.os }}-gcc
348360
create-symlink: true
349361
max-size: 1G
362+
- name: Install OSH build dependencies
363+
run: apt-get update && apt-get install -y --no-install-recommends autoconf automake libtool
350364
- name: CMake configure
351365
run: >
352366
cmake -S . -B build -G Ninja
@@ -360,7 +374,7 @@ jobs:
360374
- name: Install project
361375
run: |
362376
cmake --build build --target install -- --quiet
363-
- name: Run tests (MPI)
377+
- name: Run tests (MPI/OSH)
364378
run: scripts/run_tests.py --running-type="processes" --additional-mpi-args="--oversubscribe"
365379
env:
366380
PPC_NUM_PROC: 2

.gitmodules

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,8 @@
1616
[submodule "3rdparty/benchmark"]
1717
path = 3rdparty/benchmark
1818
url = https://github.com/google/benchmark
19+
[submodule "3rdparty/openmpi"]
20+
path = 3rdparty/openmpi
21+
url = https://github.com/open-mpi/ompi
22+
branch = v5.0.7
23+
shallow = true

3rdparty/openmpi

Submodule openmpi added at 29341e5

CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@ if(PPC_BUILD_COMPONENTS)
3838
# ################ Parallel programming technologies #################
3939

4040
message(STATUS "PPC step: Setup parallel programming technologies")
41-
foreach(dep mpi openmp onetbb)
41+
set(PPC_PARALLEL_TECHNOLOGIES mpi openmp onetbb)
42+
set(ppc_osh_supported OFF)
43+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
44+
set(ppc_osh_supported ON)
45+
list(APPEND PPC_PARALLEL_TECHNOLOGIES osh)
46+
endif()
47+
foreach(dep ${PPC_PARALLEL_TECHNOLOGIES})
4248
include(cmake/${dep}.cmake)
4349
endforeach()
4450

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Resources:
2323
The following parallel programming technologies are considered in practice:
2424

2525
- [Message Passing Interface (MPI)](https://www.mpi-forum.org/)
26+
- [OSH](https://www.openshmem.org/) — PGAS / one-sided communication model for distributed-memory systems.
2627
- [OpenMP (Open Multi-Processing)](https://www.openmp.org/)
2728
- [oneAPI Threading Building Blocks (oneTBB)](https://github.com/oneapi-src/oneTBB)
2829
- [Multithreading in C++ (`std::thread`)](https://en.cppreference.com/w/cpp/thread/thread)

0 commit comments

Comments
 (0)