ThranduilOfTheWoods
@ThranduilOfTheWoods

Как реализовывается многопоточность программы?

Мне просто интересно, как программист создает программу, которая может использовать все имеющиеся ядра процессора? Ведь, используя 4 ядра вместо 2-х, можно получить и более высокую производительность, верно? Но как это реализовывается? Посредством определенных инструкций языка, на котором пишешь программу или иным образом?
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
@deliro
Тебе ещё много всего нужно изучить, прежде чем приступить к этому.

Ведь, используя 4 ядра вместо 2-х, можно получить и более высокую производительность, верно?

Не всегда. Если алгоритмы, которые можно "распараллелить", если те, которые нельзя.

Но как это реализовывается?

У любой актуальной ОС есть такие сущности, как процессы и потоки (threads). И у большинства языков есть средства для работы с этим всем
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Касательно c++
1. Апи oc и либы абстрагирующие их (std::thread сюда же)
2. https://software.intel.com/ru-ru/blogs/2011/11/21/... разновидность 1. но этот подход довольно сильно отличается от библиотек поэтому стоит вынести отдельно.
3. Cuda www.nvidia.ru/object/cuda-parallel-computing-ru.html
4. Opencl https://www.khronos.org/opencl/ тоже что и Cuda но без привязки к nvidia
5. SIMD intrinsics не многопоточность, но параллельное исполнение на уровне процессора.
Пример обертки https://github.com/QuantStack/xsimd которая их использует.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы