Skip to content

Commit f4fcf46

Browse files
authored
Convert Markdown to RST (#187)
1 parent ffe4589 commit f4fcf46

File tree

9 files changed

+179
-140
lines changed

9 files changed

+179
-140
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
build*
1+
/build*
22
out
33
mpich
44
cmake-build-*

docs/build.md

Lines changed: 0 additions & 28 deletions
This file was deleted.

docs/build.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Build the Project with ``CMake``
2+
================================
3+
4+
Navigate to a source code folder.
5+
6+
1. **Configure the build**: ``Makefile``, ``.sln``, etc.
7+
8+
.. code-block:: bash
9+
10+
mkdir build && cd build
11+
cmake -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release ..
12+
13+
*Help on CMake keys:*
14+
15+
- ``-D USE_SEQ=ON`` enable ``Sequential`` labs (based on OpenMP's CMakeLists.txt).
16+
- ``-D USE_MPI=ON`` enable ``MPI`` labs.
17+
- ``-D USE_OMP=ON`` enable ``OpenMP`` labs.
18+
- ``-D USE_TBB=ON`` enable ``TBB`` labs.
19+
- ``-D USE_STL=ON`` enable ``std::thread`` labs.
20+
- ``-D USE_FUNC_TESTS=ON`` enable functional tests.
21+
- ``-D USE_PERF_TESTS=ON`` enable performance tests.
22+
- ``-D CMAKE_BUILD_TYPE=Release`` required parameter for stable work of repo.
23+
24+
*A corresponding flag can be omitted if it's not needed.*
25+
26+
2. **Build the project**:
27+
28+
.. code-block:: bash
29+
30+
cmake --build . --config Release --parallel
31+
32+
3. **Check the task**:
33+
34+
* Run ``<project's folder>/build/bin``

docs/download.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

docs/download.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Download all submodules
2+
=======================
3+
4+
.. code-block:: bash
5+
6+
git submodule update --init --recursive --depth=1

docs/environment.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

docs/environment.rst

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
Set Up Your Environment
2+
========================
3+
4+
Code Style Analysis
5+
--------------------
6+
Please follow the `Google C++ Style Guide <https://google.github.io/styleguide/cppguide.html>`_.
7+
8+
Code style is checked using the `clang-format <https://clang.llvm.org/docs/ClangFormat.html>`_ tool.
9+
10+
Parallel Programming Technologies
11+
---------------------------------
12+
13+
``MPI``
14+
~~~~~~~
15+
- **Windows (MSVC)**:
16+
17+
`Installers link <https://www.microsoft.com/en-us/download/details.aspx?id=105289>`_. You have to install ``msmpisdk.msi`` and ``msmpisetup.exe``.
18+
19+
- **Linux (gcc and clang)**:
20+
21+
.. code-block:: bash
22+
23+
sudo apt install -y mpich openmpi-bin libopenmpi-dev
24+
25+
- **MacOS (apple clang)**:
26+
27+
.. code-block:: bash
28+
29+
brew install open-mpi
30+
31+
``OpenMP``
32+
~~~~~~~~~~
33+
``OpenMP`` is included in ``gcc`` and ``msvc``, but some components should be installed additionally:
34+
35+
- **Linux (gcc and clang)**:
36+
37+
.. code-block:: bash
38+
39+
sudo apt install -y libomp-dev
40+
41+
- **MacOS (llvm)**:
42+
43+
.. code-block:: bash
44+
45+
brew install llvm
46+
brew install libomp
47+
48+
``TBB``
49+
~~~~~~~
50+
- **Windows (MSVC)**, **Linux (gcc and clang)**, **MacOS (apple clang)**:
51+
Build as 3rdparty in the current project.
52+
53+
``std::thread``
54+
~~~~~~~~~~~~~~~
55+
``std::thread`` is included in STL libraries.

docs/submit_work.md

Lines changed: 0 additions & 65 deletions
This file was deleted.

docs/submit_work.rst

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
How to submit your work
2+
========================
3+
4+
- There are ``mpi``, ``omp``, ``seq``, ``stl``, ``tbb`` folders in the ``tasks`` directory. Move to a folder of your task. Create a directory named ``<last name>_<first letter of name>_<short task name>``.
5+
6+
Example: ``seq/nesterov_a_vector_sum``. Please name all tasks **with the same** name directory. If the ``seq`` task is named ``seq/nesterov_a_vector_sum``, then the ``omp`` task must be named ``omp/nesterov_a_vector_sum``.
7+
8+
- Navigate into the newly created folder and begin your work on the task. The folder must contain only 4 directories with files:
9+
10+
- ``func_tests`` - Directory with Google tests for functional testing of the task.
11+
- ``include`` - Directory for header files with function prototypes.
12+
- ``perf_tests`` - Directory with Google tests for performance testing. The number of tests must be 2: ``run_task`` and ``run_pipeline``.
13+
- ``src`` - Directory with source files containing the function implementations.
14+
15+
- There must be 10 executable files for running:
16+
17+
- ``<mpi, omp, seq, stl, tbb>_<func, perf>_tests``. For example, ``omp_perf_tests`` - an executable file for performance tests of OpenMP practice tasks.
18+
19+
- All prototypes and classes in the ``include`` directory must be namespace-escaped. Name your namespace as follows:
20+
21+
.. code-block:: cpp
22+
23+
namespace <last name>_<first letter of name>_<short task name>_<technology> {
24+
...
25+
}
26+
e.g.
27+
namespace nesterov_a_test_task_seq {
28+
29+
class TestTaskSequential : public ppc::core::Task {
30+
...
31+
};
32+
33+
} // namespace nesterov_a_test_task_seq
34+
35+
- Name your group of tests and individual test cases as follows:
36+
37+
- For functional tests (for maximum coverage):
38+
39+
.. code-block:: cpp
40+
41+
TEST(<last name>_<first letter of name>_<short task name>_<technology>, <any_name_of_test_case>) {
42+
...
43+
}
44+
e.g.
45+
TEST(nesterov_a_vector_sum_omp, test_sum) {
46+
...
47+
}
48+
49+
- For performance tests (only 2 tests - ``pipeline`` and ``task`` - no more no less):
50+
51+
.. code-block:: cpp
52+
53+
TEST(<last name>_<first letter of name>_<short task name>_<technology>, <type_of_performance_validation>) {
54+
...
55+
}
56+
e.g.
57+
TEST(nesterov_a_vector_sum_stl, test_pipeline_run) {
58+
...
59+
}
60+
TEST(nesterov_a_vector_sum_stl, test_task_run) {
61+
...
62+
}
63+
64+
- Name your pull request as follows:
65+
66+
- For tasks:
67+
68+
.. code-block::
69+
70+
<Last Name First Name>. Task <Number of task>. Variant <Number of variant>. Technology <Name of technology>. <Full name of task>.
71+
Нестеров Александр. Задача 1. Вариант 123. Технология MPI. Сумма элементов вектора.
72+
73+
- Provide the full task definition in the pull request's description.
74+
75+
Example pull request can be found in the repository's pull requests.
76+
77+
- Work on your forked repository. Keep your work on a separate branch (not on ``master``)!!! Name your branch the same as your task's folder. To create a branch, run:
78+
79+
.. code-block:: bash
80+
81+
git checkout -b nesterov_a_vector_sum_mpi
82+
83+
**Failing to follow the rules will result in a red project build.**

0 commit comments

Comments
 (0)