1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 10
|
|
1 | |
Потоки и процессы24.11.2013, 00:41. Показов 2320. Ответов 3
Метки нет (Все метки)
Вопрос общего плана.
Использую программу, выполняющую большой объем вычислений и рисование в файл. Делаю распараллеливание в виде одновременно работающих нескольких процессов. Если вместо нескольких обычных процессов использовать один многопоточный, увеличится ли скорость выполнения программы и если да, то насколько сильно.
0
|
24.11.2013, 00:41 | |
Ответы с готовыми решениями:
3
Потоки и процессы Процессы и потоки Процессы и потоки. С++ Процессы и потоки (функция GetProcess) |
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
24.11.2013, 10:19 | 2 |
Dmitry74, чтобы узнать изменится ли и на сколько, нужно сделать и замерить. По большому счету, вся разница в том, что потоки имеют общее адресное пространство, а процессы нет. Т.о. для синхронизации проще и эффективнее использовать один процесс. Еще стоит учесть время запуска, для процессов должно быть больше, чем для потоков. Имхо. Надо замерять все равно.
0
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 10
|
|
24.11.2013, 15:51 [ТС] | 3 |
А имеет ли смысл разбивать программу на большее количество потоков/процессов(чисто для вычислений), чем число имеющихся ядер в процессоре?
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
24.11.2013, 17:12 | 4 |
It depends. С чисто вычислительной точки зрения — нет, только лишние потери времени на переключение контекста. Идеальный вариант: количество физических потоков исполнения (количество ядер; чуть больше, если есть hyper-threading или аналоги) + 1 (один поток висит и ждёт IO-операций с железом, памятью и т. п., остальные усиленно считают).
С точки зрения кода — может и имеет, если вычисления удобно и красиво разбиваются на N независимых потоков. Даже если N больше, чем доступное количество ядер, то в таком случае имеет смысл разбить всё на потоки и с помощью worker-threads отобразить эти N потоков на M физических потоков.
1
|
24.11.2013, 17:12 | |
24.11.2013, 17:12 | |
Помогаю со студенческими работами здесь
4
Как на С реализовати процессы и потоки?, Как на С реализовати процессы и потоки? Что такое потоки ввода, потоки вывода? Процессы в c++ процессы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |