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

Поиск:

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


Шустрый
*


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

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



День добрый. Решив серьезно заняться пробелами в многопоточном программировании, столкнулся с такой проблемой: а в какую сторону именно смотреть.

1) есть новый стандарт. однако приду я на собеседование, а мне там скажут "ну у нас проект не новый и когда мы перейдем на c++11 неизвестно)
2) есть boost asio. тут тоже вещь не самая распространенная. (хотя насколько я понимаю c++11 вышел именно оттуда, но с какими то изменениями)
3) есть библиотеки, позволяющие все это реализовывать. сюда отношу win32 функции и прочее

можно сказать, что принцип везде один и тот же, что переход с одного на другое дело несложное (хотя уже вижу, много нюансов между c++11 и тем же win32). хочется выбрать наиболее всеобъемлющий вариант. Что посоветуете?
PM MAIL   Вверх
baldina
Дата 9.1.2014, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



сам же сказал
Цитата(cppGhost @  9.1.2014,  15:49 Найти цитируемый пост)
принцип везде один и тот же


boost asio это не многопоточность. она там используется как инструмент, но тема то другая.

лучше наверно  с++11: стандартно, кроссплатформенно, содержит все необходимые фичи и понятия.

еще есть тема распределенных вычислений - тут надо конкретные технологии изучать, OpenMP например
PM MAIL   Вверх
vinter
Дата 9.1.2014, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Boost.Asio это I\O, т.е. многопоточность не реализуется этой библиотекой, а только используется. Лучше всего смотреть на C++11 и Boost.Thread. Они наиболее универсальны. Но универсальность накладывает и ограничения.  Есть неплохая книга по многопоточности в C++. Если мне не изменяет память, то она и на русском выходила.


--------------------
Мой блог
PM MAIL WWW   Вверх
baldina
Дата 9.1.2014, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



PM MAIL   Вверх
cppGhost
Дата 10.1.2014, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо. Именно ее и продолжаю читать. Буду надеяться, что стандарт есть стандарт и скоро все равно на него перейдет большинство
PM MAIL   Вверх
azesmcar
Дата 13.1.2014, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(vinter @  9.1.2014,  16:17 Найти цитируемый пост)
 Если мне не изменяет память, то она и на русском выходила

Выходила smile 
У соседа на столе лежит.
А книга в самом деле хорошая.
PM   Вверх
Wuffur
Дата 21.1.2014, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помимо уже упомянутого здесь OpenMP, есть ещё достаточно большое количество других технологий. Boinc - peer2peer вычисления на свободной архивы(смотрите проекты folding@home, rosetta@home),
есть CUDA, которая уже ближе к Си++, чем к обычному Си (использование ядер, то есть блочно-нитевая структура выглядит один к одному как шаблоны в Си++ <<<blocks, threads>>>SomeFunction(parameter1, parameter2) - обычно внутри скобок передаются массивы). Для серьёзных вычислений существует ещё MPI - у него есть различные реализации OpenMPI(У меня какие-то траблы с ним smile ), MPICH2(норм - Linux, Windows, MacOS), MVIAPICH(работает на высокоскоростной сети Infiniband - половина суперкомпьютеров top-500 и нашего топ-100 наверное 70 штук, ну Т-Платформы жеж! и наверное РСК их продвигает, хотя они что-то с охлаждением любят заморачиваться ИМХО). Это для распределённых вычислений по сети, а для одной машины, то есть с одним физическим пространством памяти, подходят как уже сказалиOpenMP, OpenACC(если у вас есть видеокарта NVidia) - это разработка Portland Group, которую купила Nvidia(смотрите CUDA альманах http://www.nvidia.ru/object/cuda-parallel-...lmanac-ru.html). Есть ещё deprecated, то есть устаревший(последний коммит в код в 2009) PVM. Ну, если хотите выберете что по душе или лучше по задаче. Параллелизм внутри ОС поддерживает планировщик - как известно есть realtime(реального времени) ОС(QNX к примеру, или крайне неудачная WindowsRT, планшеты с которой пришлось все в США отдать школьникам) и multitasking(многозадачные) ОС(Windows, как известно он перестаёт быть многозадачным, если поставить дискету в флопик или CD или USB флешку!!! и начинает тупо подвисать, Linux и MacOS(обе POSIX) и всякие research OS - Inferno, PlanB, FiascoOC(хотя последняя притендует на решение реальных задач), и даже в том же MicroSoft, была ОС  не помню как её зовут, вспомню вставлю, у них есть подразделение MS Research, в недрах которого обкатывалась .Net, чтобы избавится от морально устаревших COM объектов. Ну ещё есть модели параллельности или последовательной загрузки внутри планировщика ОС - семафоры, мьютексы, потоки, нити, сообщения, каналы именованные/неименованые - см. книжки Таненбаума - классику или попроще Андрея Робачевского.
PM MAIL ICQ   Вверх
VSB
Дата 23.1.2014, 12:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Wuffur @  21.1.2014,  07:13 Найти цитируемый пост)
Windows, как известно он перестаёт быть многозадачным

12309 уже починили?
PM MAIL   Вверх
akizelokro
Дата 24.1.2014, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


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

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



Нормальные наниматели напишут, какой специалист им нужен. И boost::asio напишут. Что ожидать от ненормальных нанимателей, - см. тему об собеседованиях.

Добавлено через 6 минут и 7 секунд
В смысле нормальные наниматели не обязаны писать обязательно boost::asio(?, это дело менегеров проекта, какой они инструментарий выберут). Есть другие типы вакансий с малозначительной портянкой в один обзац (но там наниматели сами походу не знают, какой специалист им нужен.. на заметку!).
Вопросы о будущем языка и библиотеки boost:: оставлю для любителей поговорить.

Добавлено через 6 минут и 32 секунды
Книги зашибись, но лучше бы и опыт работ


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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