|
| 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