Skip to content

Commit bccc931

Browse files
authored
Initial commit
0 parents  commit bccc931

File tree

211 files changed

+16039
-0
lines changed

Some content is hidden

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

211 files changed

+16039
-0
lines changed

.clang-format

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Language: Cpp
2+
Standard: c++20
3+
BasedOnStyle: Google
4+
ColumnLimit: 120
5+
UseTab: Never
6+
AllowShortFunctionsOnASingleLine: Empty
7+
IndentPPDirectives: AfterHash
8+
SortIncludes: true
9+
FixNamespaceComments: true
10+
InsertBraces: true
11+
QualifierAlignment: Left
12+
PointerAlignment: Right
13+
ReferenceAlignment: Right
14+
SortUsingDeclarations: LexicographicNumeric
15+
InsertNewlineAtEOF: true
16+
LambdaBodyIndentation: OuterScope
17+
MaxEmptyLinesToKeep: 1
18+
KeepEmptyLines:
19+
AtStartOfFile: false
20+
AtStartOfBlock: false
21+
AtEndOfFile: false
22+
LineEnding: LF

.clang-tidy

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
Checks: >
2+
bugprone-*,
3+
cert-dcl50-cpp,
4+
cert-dcl58-cpp,
5+
cert-env33-c,
6+
cert-err34-c,
7+
cert-err52-cpp,
8+
cert-err60-cpp,
9+
cert-flp30-c,
10+
cert-mem57-cpp,
11+
cert-msc50-cpp,
12+
cert-msc51-cpp,
13+
cert-oop57-cpp,
14+
cert-oop58-cpp,
15+
concurrency-*,
16+
cppcoreguidelines-*,
17+
google-*,
18+
llvm-include-order,
19+
llvm-namespace-comment,
20+
misc-*,
21+
modernize-*,
22+
mpi-*,
23+
openmp-*,
24+
performance-*,
25+
portability-*,
26+
readability-*,
27+
-bugprone-casting-through-void,
28+
-bugprone-easily-swappable-parameters,
29+
-cppcoreguidelines-avoid-magic-numbers,
30+
-cppcoreguidelines-non-private-member-variables-in-classes,
31+
-cppcoreguidelines-owning-memory,
32+
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
33+
-cppcoreguidelines-pro-type-reinterpret-cast,
34+
-cppcoreguidelines-pro-type-vararg,
35+
-cppcoreguidelines-special-member-functions,
36+
-misc-const-correctness,
37+
-misc-non-private-member-variables-in-classes,
38+
-modernize-avoid-c-arrays,
39+
-modernize-use-trailing-return-type,
40+
-portability-avoid-pragma-once,
41+
-portability-template-virtual-member-function,
42+
-readability-magic-numbers
43+
44+
WarningsAsErrors: "*"
45+
HeaderFilterRegex: '.*/(modules|tasks)/.*'
46+
47+
CheckOptions:
48+
- key: readability-identifier-naming.ClassCase
49+
value: CamelCase
50+
- key: readability-identifier-naming.ClassMemberCase
51+
value: lower_case
52+
- key: readability-identifier-naming.ConstexprVariableCase
53+
value: CamelCase
54+
- key: readability-identifier-naming.ConstexprVariablePrefix
55+
value: k
56+
- key: readability-identifier-naming.EnumCase
57+
value: CamelCase
58+
- key: readability-identifier-naming.EnumConstantCase
59+
value: CamelCase
60+
- key: readability-identifier-naming.EnumConstantPrefix
61+
value: k
62+
- key: readability-identifier-naming.FunctionCase
63+
value: CamelCase
64+
- key: readability-identifier-naming.GlobalConstantCase
65+
value: CamelCase
66+
- key: readability-identifier-naming.GlobalConstantPrefix
67+
value: k
68+
- key: readability-identifier-naming.StaticConstantCase
69+
value: CamelCase
70+
- key: readability-identifier-naming.StaticConstantPrefix
71+
value: k
72+
- key: readability-identifier-naming.StaticVariableCase
73+
value: lower_case
74+
- key: readability-identifier-naming.MacroDefinitionCase
75+
value: UPPER_CASE
76+
- key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
77+
value: '^[A-Z]+(_[A-Z]+)*_$'
78+
- key: readability-identifier-naming.MemberCase
79+
value: lower_case
80+
- key: readability-identifier-naming.PrivateMemberSuffix
81+
value: _
82+
- key: readability-identifier-naming.PublicMemberSuffix
83+
value: ''
84+
- key: readability-identifier-naming.NamespaceCase
85+
value: lower_case
86+
- key: readability-identifier-naming.ParameterCase
87+
value: lower_case
88+
- key: readability-identifier-naming.TypeAliasCase
89+
value: CamelCase
90+
- key: readability-identifier-naming.TypedefCase
91+
value: CamelCase
92+
- key: readability-identifier-naming.VariableCase
93+
value: lower_case
94+
- key: readability-identifier-naming.IgnoreMainLikeFunctions
95+
value: 1
96+
# Functions with scores beyond 15 are typically flagged as potentially problematic (empirically)
97+
- key: readability-function-cognitive-complexity.Threshold
98+
value: 15 # default: 25
99+
- key: readability-identifier-length.MinimumVariableNameLength
100+
value: 1
101+
- key: readability-identifier-length.MinimumParameterNameLength
102+
value: 1
103+
- key: misc-include-cleaner.IgnoreHeaders
104+
value: '(__chrono/.*|stdlib\.h|3rdparty/.*)'

.devcontainer/devcontainer.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "Parallel Programming Course",
3+
"image": "ghcr.io/learning-process/ppc-ubuntu:1.1",
4+
"customizations": {
5+
"vscode": {
6+
"extensions": [
7+
"ms-vscode.cpptools-extension-pack",
8+
"ms-vscode.cmake-tools",
9+
"ms-python.python"
10+
],
11+
"settings": {
12+
"cmake.configureOnOpen": true,
13+
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
14+
}
15+
}
16+
},
17+
"postCreateCommand": "python3 -m pip install -r requirements.txt"
18+
}

.editorconfig

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
indent_style = space
9+
indent_size = 4
10+
11+
[*.{cpp,h,hpp,c}]
12+
indent_size = 2
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2
16+
17+
[*.py]
18+
indent_size = 4
19+
20+
[Makefile]
21+
indent_style = tab
22+
23+
[{CMakeLists.txt,*.cmake}]
24+
indent_size = 2
25+
26+
[*.{md,rst}]
27+
trim_trailing_whitespace = false

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @aobolensk @allnes

.github/CODE_OF_CONDUCT.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
.
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.0, available at
119+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at
128+
https://www.contributor-covenant.org/translations.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<!--
2+
Pull request title requirement:
3+
4+
"<LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Full Task Name>. Variant <Number>"
5+
-->
6+
7+
## Description
8+
<!--
9+
Please provide a detailed description of your implementation, including:
10+
- key solution details (chosen algorithm description)
11+
- parallelism technology application (if applicable)
12+
-->
13+
14+
- **Task**: _Enter the full task name here_
15+
- **Variant**: _Enter the variant number here_
16+
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI)_
17+
- **Description** of your implementation and report.
18+
_Provide a concise summary of your implementation and report here._
19+
20+
---
21+
22+
## Checklist
23+
<!--
24+
Please ensure the following items are completed **before** submitting your pull request and requesting a review:
25+
-->
26+
27+
- [ ] **CI Status**: All CI jobs (build, tests, report generation) are passing on my branch in my fork
28+
- [ ] **Task Directory & Naming**: I have created a directory named `<lastName>_<firstInitial>_<short_task_name>`
29+
- [ ] **Full Task Definition**: I have provided the complete task description in the pull request body.
30+
- [ ] **clang-format**: My changes pass `clang-format` locally in my fork (no formatting errors)
31+
- [ ] **clang-tidy**: My changes pass `clang-tidy` locally in my fork (no warnings/errors)
32+
- [ ] **Functional Tests**: All functional tests are passing locally on my machine
33+
- [ ] **Performance Tests**: All performance tests are passing locally on my machine
34+
- [ ] **Branch**: I am working on a branch named exactly as my task directory (e.g., `nesterov_a_vector_sum`), not on `master`.
35+
- [ ] **Truthful Content**: I confirm that every detail provided in this pull request is accurate and truthful to the best of my knowledge.
36+
37+
<!--
38+
NOTE: Untruthful entries in this checklist may result in PR rejection and zero points for the associated task.
39+
-->
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<!--
2+
Требования к названию pull request:
3+
4+
"<Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Полное название задачи>. Вариант <Номер>"
5+
-->
6+
7+
## Описание
8+
<!--
9+
Пожалуйста, предоставьте подробное описание вашей реализации, включая:
10+
- основные детали решения (описание выбранного алгоритма)
11+
- применение технологии параллелизма (если применимо)
12+
-->
13+
14+
- **Задача**: _Введите здесь полное название задачи_
15+
- **Вариант**: _Введите здесь номер варианта_
16+
- **Технология**: _Введите технологию (например, SEQ, OMP, TBB, STL, MPI)_
17+
- **Описание** вашей реализации и отчёта.
18+
_Кратко опишите вашу реализацию и содержание отчёта здесь._
19+
20+
---
21+
22+
## Чек-лист
23+
<!--
24+
Пожалуйста, убедитесь, что следующие пункты выполнены **до** отправки pull request'а и запроса его ревью:
25+
-->
26+
27+
- [ ] **Статус CI**: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
28+
- [ ] **Директория и именование задачи**: Я создал директорию с именем `<фамилия>_<первая_буква_имени>_<короткое_название_задачи>`
29+
- [ ] **Полное описание задачи**: Я предоставил полное описание задачи в теле pull request
30+
- [ ] **clang-format**: Мои изменения успешно проходят `clang-format` локально в моем форке (нет ошибок форматирования)
31+
- [ ] **clang-tidy**: Мои изменения успешно проходят `clang-tidy` локально в моем форке (нет предупреждений/ошибок)
32+
- [ ] **Функциональные тесты**: Все функциональные тесты успешно проходят локально на моей машине
33+
- [ ] **Тесты производительности**: Все тесты производительности успешно проходят локально на моей машине
34+
- [ ] **Ветка**: Я работаю в ветке, названной точно так же, как директория моей задачи (например, `nesterov_a_vector_sum`), а не в `master`
35+
- [ ] **Правдивое содержание**: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и достоверными
36+
37+
<!--
38+
ПРИМЕЧАНИЕ: Ложные сведения в этом чек-листе могут привести к отклонению PR и получению нулевого балла за соответствующую задачу.
39+
-->

0 commit comments

Comments
 (0)