Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 5.38 KB

exercises.md

File metadata and controls

52 lines (39 loc) · 5.38 KB

Курс лекций "Архитектура и ПО высокопроизводительных систем"

Требования к программе

В рамках данного курса:

  1. Создать свой репозиторий c задачей на https://github.com.
  • Получится Ваш первый открытый проект, который можно показывать будущему работодателю, что характеризует Вас, как специалиста.
  1. Тесты
  • Отладка багов
  • Доказательство работоспособности решения
  1. Подумать, чем отличаются следующие виды описаний и для чего нужны:
  • комментарии,
  • readme (цель проекта, решаемая задача),
  • getting-started (шаги установки/развёртывания, метод и способ использования в своём коде),
  • список зависимостей,
  • документация
  1. Документация

Задачи для самостоятельной работы

  1. Класс ThreadSafeList2D – thread safe двусвязный список, шаблонный класс, который может хранить произвольное число пользовательских классов, обращаться на вставку, чтение и удаление элемента могут одновременно несколько потоков.
  2. Класс LockFreeQueue – thread safe очередь, шаблонный класс, который может хранить произвольное число пользовательских классов, обращаться на вставку в конец, чтение сначала, забор элемента сначала могут одновременно несколько потоков. В реализации нельзя использовать любые методы синхронизации, кроме atomic.
  3. Разработайте многопоточное приложение, выполняющее вычисление произведения матриц С = A×B, где A (m×n) и B (n×k) (размер матриц динамический). (приветствуется реализация cache-friendly рекурсивного алгоритма)
  4. Параллельная реализация обращение матрицы A (m×n) (размер матрицы динамический). (приветствуется реализация cache-friendly рекурсивного алгоритма)
  5. Параллельная реализация сортировки слиянием.
  6. Параллельная реализация сортировки QuickSort.
  7. Параллельная реализация сортировки пузырьком.
  8. Параллельная реализация вычисления N-мерного интеграла методом прямоугольников или трапеций с заданной точностью. N задаётся в runtime при старте нужного теста.
  9. Параллельная реализация вычисления N-мерного интеграла методом Симпсона с заданной точностью. N задаётся в runtime при старте нужного теста.
  10. Параллельная реализация Фурье преобразование сигнала.
  11. Параллельная реализация Вейвлет преобразование сигнала.
  12. Параллельная реализация свёртки сигнала.
  13. Параллельная реализация метода Гаусса решения СЛАУ.
  14. Параллельная реализация метода Крамера решения СЛАУ.
  15. Параллельная реализация метода Холецкого решения СЛАУ.
  16. Параллельная реализация решения систем нелинейных уравнений методом Ньютона.
  17. Параллельная реализация решение систем нелинейных уравнений методом Зейделя.