Как создать, открыть и отправить на проверку Вашу работу
Существуют следующие типы
all
,mpi
,omp
,seq
,stl
,tbb
поддиректорий (типов задач) вtasks
директории. Ваша директория будет размещаться в директории согласно типу Вашей задачи. Создайте поддиректорию и назовите ее латинскими буквами следующим образом -<фамилия>_<первая буква имени>_<краткое название задачи>
.Пример:
seq/nesterov_a_vector_sum
. Пожалуйста называйте все задачи одинаково, если у вас одна задача и несколько технологий. Если Ваша задачаseq
то задача будет размещена следующим образом -seq/nesterov_a_vector_sum
, еслиomp
то такomp/nesterov_a_vector_sum
.Перейдите в созданную Вами, директорию и начните работу. Директория должна содержать 4 обязательных поддиректории с файлами и 1 опциональную:
data
- Опциональная директория с тестовыми файлами для экспериментов и тестовfunc_tests
- Директория с Google тестами для функционального тестирования.include
- Директория с header файлами, в которых содержатся чаще всего прототипы ваших функций и классов.perf_tests
- Директория с Google тестами для тестов на производительность. Должно быть всего 2 теста:run_task
иrun_pipeline
.src
- Директория с исходными кодами, содержащая основную реализацию задач.
При максимальной конфигурации должно быть 12 исполняемых файлов для запуска:
<all, mpi, omp, seq, stl, tbb>_<func, perf>_tests
. К примеру,omp_perf_tests
- исполняемый файл запуска тестов на производительность, задач, связанных с технологией OpenMP.
Все Ваши прототипы и классы в
include
директории должны быть экранированы с помощью namespace. Имя namespace должно соотвествовать следующему примеру:namespace <last name>_<first letter of name>_<short task name>_<technology> { ... } e.g. namespace nesterov_a_test_task_seq { class TestTaskSequential : public ppc::core::Task { ... }; } // namespace nesterov_a_test_task_seq
Имя вашей группы тестов и одного ндивидуального тест кейса должно именоваться так:
Для функциональных тестов (для максимального покрытия):
TEST(<last name>_<first letter of name>_<short task name>_<technology>, <any_name_of_test_case>) { ... } e.g. TEST(nesterov_a_vector_sum_omp, test_sum) { ... }
Для тестов на производительность (только 2 теста -
pipeline
andtask
- ни больше, ни меньше):TEST(<last name>_<first letter of name>_<short task name>_<technology>, <type_of_performance_validation>) { ... } e.g. TEST(nesterov_a_vector_sum_stl, test_pipeline_run) { ... } TEST(nesterov_a_vector_sum_stl, test_task_run) { ... }
Имя вашего pull request должно называться следующим образом:
Для задач:
<Last Name First Name>. Task <Number of task>. Variant <Number of variant>. Technology <Name of technology>. <Full name of task>. Нестеров Александр. Задача 1. Вариант 123. Технология MPI. Сумма элементов вектора.
Приведите полную формулировку задачи в описании pull request.
Пример pull request может быть найден в основном репозитории в разделе pull requests.
Работайте в своем собственном fork-репозитории. Каждую задачу нужно делать на новой ветке (не на
master
ветке)!!! Имя ветки такое же как и имя директории Вашей задачи. Для создания ветки воспользуйтесь следующей командой:git checkout -b nesterov_a_vector_sum_mpi
Несоблюдение правил приведет к падению сборки проекта.