Skip to content

Commit a3f027f

Browse files
authored
Initial commit
0 parents  commit a3f027f

214 files changed

Lines changed: 18778 additions & 0 deletions

File tree

Some content is hidden

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

.clang-format

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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+
EnumTrailingComma: Insert
19+
KeepEmptyLines:
20+
AtStartOfFile: false
21+
AtStartOfBlock: false
22+
AtEndOfFile: false
23+
LineEnding: LF

.clang-tidy

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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+
clang-*,
16+
concurrency-*,
17+
cppcoreguidelines-*,
18+
google-*,
19+
llvm-include-order,
20+
llvm-namespace-comment,
21+
misc-*,
22+
modernize-*,
23+
mpi-*,
24+
openmp-*,
25+
performance-*,
26+
portability-*,
27+
readability-*,
28+
-bugprone-casting-through-void,
29+
-bugprone-easily-swappable-parameters,
30+
-cppcoreguidelines-avoid-magic-numbers,
31+
-cppcoreguidelines-non-private-member-variables-in-classes,
32+
-cppcoreguidelines-owning-memory,
33+
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
34+
-cppcoreguidelines-pro-type-reinterpret-cast,
35+
-cppcoreguidelines-pro-type-vararg,
36+
-cppcoreguidelines-special-member-functions,
37+
-misc-const-correctness,
38+
-misc-non-private-member-variables-in-classes,
39+
-modernize-avoid-c-arrays,
40+
-modernize-use-trailing-return-type,
41+
-portability-avoid-pragma-once,
42+
-portability-template-virtual-member-function,
43+
-readability-magic-numbers
44+
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/.*)'
105+
- key: cppcoreguidelines-avoid-non-const-global-variables.AllowInternalLinkage
106+
value: 1
107+
- key: modernize-type-traits.IgnoreMacros
108+
value: 1
109+
- key: cppcoreguidelines-avoid-goto.IgnoreMacros
110+
value: 1

.devcontainer/devcontainer.json

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

.gitattributes

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
* text=auto eol=lf
2+
3+
*.bat text eol=crlf
4+
*.cmd text eol=crlf
5+
6+
*.png binary
7+
*.jpg binary
8+
*.jpeg binary
9+
*.gif binary
10+
*.pdf binary

.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: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<!--
2+
Pull request title requirement:
3+
4+
"Fix: <LastName> <FirstName>. Technology <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Full Task Name>. Variant <Number>"
5+
-->
6+
7+
## Description
8+
<!--
9+
Please provide:
10+
1) Original task details (what is being fixed)
11+
2) Fix details (what was wrong and what you changed)
12+
-->
13+
14+
### Original task details
15+
16+
- **Task**: _Enter the full task name here_
17+
- **Variant**: _Enter the variant number here_
18+
- **Technology**: _Enter technology (e.g., SEQ, OMP, TBB, STL, MPI)_
19+
- **Student directory**: _Enter the directory name (e.g., `nesterov_a_vector_sum`)_
20+
- **Original PR / commit / issue link**: _Paste link(s) here_
21+
- **Original task definition**: _Paste the full task statement here_
22+
23+
### Fix details
24+
25+
- **Problem**: _What is broken / incorrect? Include symptoms and expected behavior._
26+
- **Root cause**: _Why did it happen?_
27+
- **Fix summary**: _What exactly did you change?_
28+
- **Verification**: _What did you run locally?_
29+
30+
---
31+
32+
## Checklist
33+
<!--
34+
Please ensure the following items are completed **before** submitting your pull request and requesting a review:
35+
-->
36+
37+
- [ ] **CI Status**: All CI jobs (build, tests, report generation) are passing on my branch in my fork
38+
- [ ] **Task Directory & Naming**: I did not rename the existing task directory and did not introduce extra task
39+
directories
40+
- [ ] **Full Task Definition**: I have provided the complete original task description and the fix details in the pull
41+
request body
42+
- [ ] **clang-format**: My changes pass `clang-format` locally in my fork (no formatting errors)
43+
- [ ] **clang-tidy**: My changes pass `clang-tidy` locally in my fork (no warnings/errors)
44+
- [ ] **Functional Tests**: All functional tests are passing locally on my machine
45+
- [ ] **Performance Tests**: All performance tests are passing locally on my machine (if applicable)
46+
- [ ] **Branch**: I am working on a dedicated fix branch (not on `master`)
47+
- [ ] **Truthful Content**: I confirm that every detail provided in this pull request is accurate and truthful to the
48+
best of my knowledge.
49+
50+
<!--
51+
NOTE: Untruthful entries in this checklist may result in PR rejection and zero points for the associated task.
52+
-->

0 commit comments

Comments
 (0)