Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 10
1

Потоки и процессы

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

Author24 — интернет-сервис помощи студентам
Вопрос общего плана.
Использую программу, выполняющую большой объем вычислений и рисование в файл. Делаю распараллеливание в виде одновременно работающих нескольких процессов. Если вместо нескольких обычных процессов использовать один многопоточный, увеличится ли скорость выполнения программы и если да, то насколько сильно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2013, 00:41
Ответы с готовыми решениями:

Потоки и процессы
Процесс А инициализирует массив случайными значениями и записывает их в файл, а затем запускает...

Процессы и потоки
Здравствуйте, КиберФорумчане!) Начал разбираться с процессами и потоками. Представление об этом...

Процессы и потоки. С++
Помогите выполнить задание, пожалуйста: Процесс/поток генерирует в файл заданное при его запуске...

Процессы и потоки (функция GetProcess)
вот код навороченого диспетчера процессов, OpenThread выдаёт ошибку , почему ? #include "stdafx.h"...

3
:)
Эксперт С++
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
Цитата Сообщение от Dmitry74 Посмотреть сообщение
А имеет ли смысл разбивать программу на большее количество потоков/процессов(чисто для вычислений), чем число имеющихся ядер в процессоре?
It depends. С чисто вычислительной точки зрения — нет, только лишние потери времени на переключение контекста. Идеальный вариант: количество физических потоков исполнения (количество ядер; чуть больше, если есть hyper-threading или аналоги) + 1 (один поток висит и ждёт IO-операций с железом, памятью и т. п., остальные усиленно считают).

С точки зрения кода — может и имеет, если вычисления удобно и красиво разбиваются на N независимых потоков. Даже если N больше, чем доступное количество ядер, то в таком случае имеет смысл разбить всё на потоки и с помощью worker-threads отобразить эти N потоков на M физических потоков.
1
24.11.2013, 17:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2013, 17:12
Помогаю со студенческими работами здесь

Как на С реализовати процессы и потоки?, Как на С реализовати процессы и потоки?
Здравствуйте! Мне нужно написать на С программу под Dos с потоком не знаю как это сделать....

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода,...

Процессы в c++
Здравствуйте ребят. Есть вот задание "Создать программу, порождающую поток, который копирует файлы....

процессы
всем привет подскажите как создать процесс по имени например explorer.exe если можно то через ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru