Задание № 2901

Студент

Бахарев Георгий

Задача

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

Состояние

Завершено

Баллов

5

Назначено

17.12.2020, 04:23

Завершено

24.12.2020, 11:39

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

В директории лежат входные текстовые файлы, проименованные следующим образом: 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 алгоритмы.

Действия