Метод автоматизації розробки багатопоточної програми мовою C++ на прикладі конвертації зображень у DDS текстури

Автор(и)

  • К. Нестеренко КПІ ім. Ігоря Сікорського, Україна
  • І. Стеценко КПІ ім. Ігоря Сікорського, Україна

DOI:

https://doi.org/10.20535/1560-8956.42.2023.279168

Ключові слова:

С , стандартна бібліотека С , багатопоточність

Анотація

На сьогоднішній день використання багатопоточності є одним з основних методів оптимізації програмного забезпечення. Не в останню чергу це спричинено тим, що персональні комп’ютери, ноутбуки та навіть смартфони
отримують все потужніше апаратне забезпечення, у тому числі процесори, кількість і потужність ядер яких ще кілька десятиліть назад вважалися абсолютно недосяжними. Під час розробки програмного забезпечення необхідно враховувати, які ресурси наявні у кінцевого користувача, і відповідно використовувати їх для найшвидшого отримання
результату. У даному дослідженні пропонується метод автоматизації розробки багатопоточної програми мовою С++, що дає змогу організувати виконання задач пулом потоків з можливістю задати порядок виконання задач відносно одна одної, за допомогою механізму залежностей. Дослідження ефективності запропонованого методу виконано на прикладі розробки багатопоточної програми конвертації зображень у DDS текстури.

Бібл. 10, іл. 5.

Посилання

NVIDIA CUDA. NVIDIA Documentation Center | NVIDIA Developer. URL: https://docs.nvidia.com/cuda/ (дата звернення: 07.02.2023).

C++ Thread Pool. EDUCBA. URL: https://www.educba.com/c-plus-plusthread-pool/ (дата звернення: 07.02.2023).

C++ Concurrency support library. cppreference.com. URL: https://en.cppreference.com/w/cpp/thread (date of access: 07.02.2023).

C++ Parallel execution. cppreference.com. URL: https://en.cppreference. com/w/cpp/algorithm/execution_policy_tag_t (дата звернення: 07.02.2023).

Modern multithreading and concurrency in C++. Educative. URL: https://www.educative.io/blog/modern-multithreading-and-concurrency-in-cpp (date of access: 07.02.2023).

Boost.Threads. Boost C++ Libraries. URL: https://www.boost.org/doc/libs/1_31_0/libs/thread/doc/overview.html (дата звернення: 07.02.2023).

GitHub - David-Haim/concurrencpp. GitHub. URL: https://github.com/David-Haim/concurrencpp (дата звернення: 07.02.2023).

An Empirical Study on C++ Concurrency Constructs / D. Wu et al. IEEE Xplore. URL: https://ieeexplore.ieee.org/document/7321187 (date of access: 07.02.2023).

Structured Concurrency in C++. ACCU. URL: https://accu.org/journals/overload/30/168/teodorescu/ (дата звернення: 07.02.2023).

Block Compression. Microsoft Learn. URL: https://learn.microsoft.com/en-us/windows/win32/direct3d10/d3d10-graphics-programming-guide-resourcesblock-compression#bc1 (дата звернення: 07.02.2023).

##submission.downloads##

Опубліковано

2023-05-01