Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как использовать все ядра ЦП для вычислений? Многоядерные вычисления 
:(
    Опции темы
Proger10
Дата 2.4.2014, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.12.2008

Репутация: нет
Всего: нет



Интересует исключительно код использования многоядерной архитектуры. Знаю теорию распараллеливания, работал с MPI, знаю каким образом распараллеливать математически задачу, заранее просчитано распараллеливаема ли она и какая выгода от подобного действия будет получена, знаю форки, работал с синхронизацией потоков. Но целенаправленно все ядра процессора я никогда не использовал (цели такой у меня не было). Иногда рикошетом только зацеплял потоки, когда требуется обеспечить параллельную работу графики и логики в фоновом режиме. 

Какие там подводные камни есть? Можно ли обойтись без сторонних библиотек? (типа OpenMP). Поскольку код будет кочевать от устройства к устройству, заранее (по возможности) не хочется привязываться ни к чему, только если по-другому очень и очень сложно. Хотя с определёнными сложностями я готов справляться самостоятельно.

Достаточно ли будет просто создать 4 потока, надеясь, что 4 ядра ЦП загрузятся по максимуму или там совершенно иная технология работы? (естественно предполагаю, что в каждом потоке по мощной задаче).

Сейчас появилась цель в быстрых расчётах. Каким образом максимально задействовать ресурсы ЦП? (пока интересует только ЦП, GPU подключу позже к этим же расчётам через Куду).
PM MAIL   Вверх
Alexeis
Дата 2.4.2014, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(Proger10 @  2.4.2014,  10:09 Найти цитируемый пост)
Сейчас появилась цель в быстрых расчётах. Каким образом максимально задействовать ресурсы ЦП?

Код

while(1){}

Во всех потоках. Реально будет 100% smile . Степень загрузки будет зависит сколько времени каждый поток будет спать (терять время на синхронизацию). Если поток не спит, то ядро связанное с ним используется на 100% (в случае если есть такая привязка).



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 2.4.2014, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(Proger10 @  2.4.2014,  08:09 Найти цитируемый пост)
Достаточно ли будет просто создать 4 потока, надеясь, что 4 ядра ЦП загрузятся по максимуму

достаточно


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
NoviceF
Дата 7.4.2014, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: 2



Цитата(Proger10 @  2.4.2014,  10:09 Найти цитируемый пост)
Какие там подводные камни есть? Можно ли обойтись без сторонних библиотек? (типа OpenMP).

Ну как таковая многопоточность есть в c++11 http://www.cplusplus.com/reference/thread/thread/?kw=thread. Правда не могу сказать как оносится спектр её возможностей к OpenMP, не пользовался ни тем ни другим:)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.