Задание № 1900

Студент

Коломоец Владислав

Задача

Многопоточные вычисления

Состояние

Завершено

Баллов

4

Назначено

02.12.2019, 14:45

Завершено

22.01.2020, 13:28

Постановка задачи

В директории лежат входные текстовые файлы, проименованные следующим образом: in_\<N>.dat, где N - натуральное число. Каждый файл состоит из одной строки. Формат строки следующий: Cmd value1 value2. В начале идет команда, обозначающая действие. Далее указываются два числа с плавающей точкой. В качестве разделителя используется пробел.

Команды могут быть следующими:

  • add: сложение.
  • mult: умножение.
  • add_sq: сумма квадратов.
  • sq_add: квадрат суммы.
  • sub: вычитание.
  • div: деление.

Необходимо написать многопоточное приложение, которое выполнит требуемые действия над числами и сумму результатов запишет в файл out.dat. Названия рабочей директории и выходного файла указываются в конфигурационном файле.

Кроме того, необходимо реализовать потокобезопасный (thread-safety) класс logger для логирования сообщений в поток (std::ostream). Вся информация должна логироваться. Необходимость логирования также указывается в конфигурационном файле.

Требования

  1. Написать unit test'ы для реализованных классов и функций.
  2. Провести замеры времени выполнения многопоточного подхода и последовательного.
  3. При решении задачи должны применяться паттерны проектирования, полиморфизм, stl алгоритмы.

Примечания

Отсутсвуют тесты

Действия