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

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

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

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

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

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

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

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

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

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

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

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

3
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
24.11.2013, 10:19 #2
Dmitry74, чтобы узнать изменится ли и на сколько, нужно сделать и замерить. По большому счету, вся разница в том, что потоки имеют общее адресное пространство, а процессы нет. Т.о. для синхронизации проще и эффективнее использовать один процесс. Еще стоит учесть время запуска, для процессов должно быть больше, чем для потоков. Имхо. Надо замерять все равно.
0
Dmitry74
0 / 0 / 0
Регистрация: 04.10.2013
Сообщений: 10
24.11.2013, 15:51  [ТС] #3
А имеет ли смысл разбивать программу на большее количество потоков/процессов(чисто для вычислений), чем число имеющихся ядер в процессоре?
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 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 физических потоков.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 17:12
Привет! Вот еще темы с ответами:

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

С++ процессы - C++
Здравствуйте,нужна помощь:нужно создать процесс по схеме(Пример:1|1.1|1.1.1|1.1.2|1.2|2|2.2| и так далее.Расшифровка:Начинается работа...

процессы - C++
всем привет подскажите как создать процесс по имени например explorer.exe если можно то через system(...);

Распараллелить процессы - C++
доброго вечера, прошу помощи, дали задание распараллелить процессы, что бы уменьшить время выполнения программы, я в программировании...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
24.11.2013, 17:12
Ответ Создать тему
Опции темы

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