Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dmitry74
0 / 0 / 0
Регистрация: 04.10.2013
Сообщений: 10
#1

Потоки и процессы - C++

24.11.2013, 00:41. Просмотров 455. Ответов 3
Метки нет (Все метки)

Вопрос общего плана.
Использую программу, выполняющую большой объем вычислений и рисование в файл. Делаю распараллеливание в виде одновременно работающих нескольких процессов. Если вместо нескольких обычных процессов использовать один многопоточный, увеличится ли скорость выполнения программы и если да, то насколько сильно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 00:41     Потоки и процессы
Посмотрите здесь:

процессы C++
Разветвляющийся процессы C++
C++ Процессы и потоки. С++
C++ Разветвленные процессы
C++ Процессы и потоки (функция GetProcess)
C++ Как на С реализовати процессы и потоки?, Как на С реализовати процессы и потоки?
Процессы с прерываниями C++
C++ Потоки и процессы
MPI процессы C++
Процессы и потоки C++
Процессы в c++ C++
Распараллелить процессы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.11.2013, 10:19     Потоки и процессы #2
Dmitry74, чтобы узнать изменится ли и на сколько, нужно сделать и замерить. По большому счету, вся разница в том, что потоки имеют общее адресное пространство, а процессы нет. Т.о. для синхронизации проще и эффективнее использовать один процесс. Еще стоит учесть время запуска, для процессов должно быть больше, чем для потоков. Имхо. Надо замерять все равно.
Dmitry74
0 / 0 / 0
Регистрация: 04.10.2013
Сообщений: 10
24.11.2013, 15:51  [ТС]     Потоки и процессы #3
А имеет ли смысл разбивать программу на большее количество потоков/процессов(чисто для вычислений), чем число имеющихся ядер в процессоре?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
24.11.2013, 17:12     Потоки и процессы #4
Цитата Сообщение от Dmitry74 Посмотреть сообщение
А имеет ли смысл разбивать программу на большее количество потоков/процессов(чисто для вычислений), чем число имеющихся ядер в процессоре?
It depends. С чисто вычислительной точки зрения — нет, только лишние потери времени на переключение контекста. Идеальный вариант: количество физических потоков исполнения (количество ядер; чуть больше, если есть hyper-threading или аналоги) + 1 (один поток висит и ждёт IO-операций с железом, памятью и т. п., остальные усиленно считают).

С точки зрения кода — может и имеет, если вычисления удобно и красиво разбиваются на N независимых потоков. Даже если N больше, чем доступное количество ядер, то в таком случае имеет смысл разбить всё на потоки и с помощью worker-threads отобразить эти N потоков на M физических потоков.
Yandex
Объявления
24.11.2013, 17:12     Потоки и процессы
Ответ Создать тему
Опции темы

Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru