Russian Qt Forum
Ноябрь 22, 2024, 21:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Многопоточное программирование, процессы
>
К вопросу об организации взаимодействия пула производителей и одного потребителя
Страниц:
1
...
5
6
[
7
]
8
9
...
13
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: К вопросу об организации взаимодействия пула производителей и одного потребителя (Прочитано 66031 раз)
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #90 :
Сентябрь 20, 2019, 20:21 »
Цитата: m_ax от Сентябрь 20, 2019, 20:13
Дык, нет другого разумного решения) В контексте данной задачи, всё так или иначе сводится к пулу
Так что мы здесь не увидем решения чисто на атомиках, без усыпления и пробуждения потоков)
А вот Igors писал, что
Цитата: Igors от Сентябрь 14, 2019, 12:49
Цитата: m_ax от Сентябрь 13, 2019, 22:03
Вам в любом случае придётся усыплять и пробуждать тпотоки..
А можно я как-нибудь попробую без этого?
Думаете уже не будет пробовать?
Жаль.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #91 :
Сентябрь 20, 2019, 20:28 »
Цитировать
А вот Igors писал, что
Вы что,
igors
'а не знаете?
Сколько у нас тут баталий уже было
Цитировать
Думаете уже не будет пробовать?
Думаю, всё) Тема выдохлась)
Ну, во всяком случае, я ответы на свои вопросы получил, и благодарен всем, кто мотивировал меня на то, чтобы разобратся в этом вопросе
«
Последнее редактирование: Сентябрь 20, 2019, 20:40 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #92 :
Сентябрь 20, 2019, 21:06 »
Цитата: m_ax от Сентябрь 20, 2019, 20:13
Дык, нет другого разумного решения) В контексте данной задачи, всё так или иначе сводится к пулу
Так что мы здесь не увидим решения чисто на атомиках, без усыпления и пробуждения потоков)
Оно давно готово, там кстати несложно. Но, поскольку это никого не интересует, то чего я буду лезть типа "посмотрите как я сделал!"
Это ни к чему. Кстати погонял дустовский пул.
Цитата: m_ax от Сентябрь 20, 2019, 20:28
...чтобы разобратся в этом вопросе
Развитие происходит по спирали
Записан
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #93 :
Сентябрь 20, 2019, 21:09 »
Ну вот, мы все ждем, ждем.... а решение уже давно готово. только природная скромность не дала его показать общественности...
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #94 :
Сентябрь 20, 2019, 21:13 »
Цитировать
Оно давно готово, там кстати несложно. Но, поскольку это никого не интересует, то чего я буду лезть типа "посмотрите как я сделал!"
Ну почему же, я всегда готов (как Гагарин и Титов) к конструктивному обсуждению) Так что, всегда велком)
Цитировать
Кстати погонял дустовский пул.
И как впечатления?)
Цитировать
Развитие происходит по спирали
Да я бы не сказал.. но это уже совсем другая история, как говорил Леонид Каневский)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #95 :
Сентябрь 21, 2019, 09:57 »
Цитата: m_ax от Сентябрь 20, 2019, 21:13
Ну почему же, я всегда готов (как Гагарин и Титов) к конструктивному обсуждению)
Ну пока еще не очень готовы
Напр
Цитата: m_ax от Сентябрь 20, 2019, 20:13
Дык, нет другого разумного решения) В контексте данной задачи, всё так или иначе сводится к пулу
С точностью до наоборот. Пул очень хорош когда задачи возникают "спонтанно", его сила именно в "бездумности" - закинул и все. А у Вас на каждом раунде заранее известно и число задач и исходные данные для каждой. А значит вовсе необязательно "брать по одной", всегда засисяться мутексом и.т.п. Поэтому более подходящим выглядит хотя бы QtConcurrent (хотя я сам его ни разу не использовал
), ну а OpenMP еще лучше.
Ну и в (в сотый раз) упомяну что все это роялит если накладные расходы велики. А если они порядка 2% - то оптимизировать это нафиг надо, можно цвести, пахнуть, и считать что уже все постиг, со всем "разобрался"
Записан
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #96 :
Сентябрь 21, 2019, 10:05 »
Цитата: Igors от Сентябрь 21, 2019, 09:57
Ну пока еще не очень готовы
Напр
Ну вы то точно готовы.
Цитата: Igors от Сентябрь 21, 2019, 09:57
Поэтому более подходящим выглядит хотя бы QtConcurrent (хотя я сам его ни разу не использовал
)
Под капотом QtConcurrent/OpenMP все тот же пул потоков.
Цитата: Igors от Сентябрь 21, 2019, 09:57
и считать что уже все постиг, со всем "разобрался"
Вот вот.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #97 :
Сентябрь 21, 2019, 10:14 »
Цитировать
С точностью до наоборот. Пул очень хорош когда задачи возникают "спонтанно", его сила именно в "бездумности" - закинул и все. А у Вас на каждом раунде заранее известно и число задач и исходные данные для каждой. А значит вовсе необязательно "брать по одной", всегда засисяться мутексом и.т.п.
Я уже мозг сломал, обдумывая как эту проблему (помните, описанную ситуацию с босом и подчинёнными) реализовать как то иначе..
Я буду только рад новым идеям и примерам реализации этого взаимодействия
«
Последнее редактирование: Сентябрь 21, 2019, 10:25 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #98 :
Сентябрь 21, 2019, 10:34 »
Цитата: m_ax от Сентябрь 21, 2019, 10:14
Я уже мозг сломал, обдумывая как эту проблему (помните, описанную ситуацию с босом и подчинёнными) реализовать как то иначе..
Я буду только рад новым идеям и примерам реализации этого взаимодействия
В лучшем случае мы увидим решение на спинлоке.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #99 :
Сентябрь 21, 2019, 10:49 »
Цитата: m_ax от Сентябрь 21, 2019, 10:14
Я уже мозг сломал, обдумывая как эту проблему (помните, описанную ситуацию с босом и подчинёнными) реализовать как то иначе..
Я буду только рад новым идеям и примерам реализации этого взаимодействия
Да какую "эту"? У Вас же никакой проблемы нет. С такими шикарными задачами можно брать любой тул - и все получится хорошо.
QThreadPool
QtConcurrent
boost::thread_pool
OpenMP
и.т.п.
Выбирайте ЛЮБОЙ. Хотите велик, чисто для понимания? Хорошее дело. Ну и перепишите Вы эту несчастную очередь, делов на 10 мин. Чего/зачем Вы там нагородили? Зачем связались с футурой и др std::говном? Оно там 100 лет не нужно
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #100 :
Сентябрь 21, 2019, 10:57 »
Цитировать
Выбирайте ЛЮБОЙ. Хотите велик, чисто для понимания? Хорошее дело. Ну и перепишите Вы эту несчастную очередь, делов на 10 мин. Чего/зачем Вы там нагородили? Зачем связались с футурой и др std::говном? Оно там 100 лет не нужно
Как без футуры то/флажков? Мне же нужно ждать ожидания/сигнала/отмашки, что ВСЕ задачи воркеры уже сделали, чтоб мне пойти потом на следующий круг..
Кстатии, boost::thread_pool, я там так и не увидел (может, плохо искал), как там понять, что все задачи выполнены..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #101 :
Сентябрь 21, 2019, 11:01 »
Цитировать
С такими шикарными задачами можно брать любой тул - и все получится хорошо.
Подождите, мы же сейчас не о пуле говорим?) С пулом уже всё понятно, мне интересно альтернативное решение, чтоб его понять и сравнить) И задачи могут быть даже самые "мелкие"..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #102 :
Сентябрь 21, 2019, 11:12 »
Цитата: m_ax от Сентябрь 21, 2019, 10:57
Кстатии, boost::thread_pool, я там так и не увидел (может, плохо искал), как там понять, что все задачи выполнены..
Вы про пул из asio?
Там есть join().
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #103 :
Сентябрь 21, 2019, 11:14 »
Да, и по поводу лифтов. Типичная задача оптимизации, наверняка хорошо известная. Ну ладно, допустим мы хотим это как-то приспособить к "разпоточиванию".
Начало: очевидно "число лифтов" - это у нас "число ядер". Уже тут должен сработать рефлекс типа "ой, что-то слишком гладко, не к добру"
Позиция 1: если есть какое-то "расписание лифтов", то в любой лифт студент уже не полезет. Чему это соответствует в multi-threading? Что задачи должны иметь специфику и выполняться на определенных рабочих нитках (а не на каждой). Так бывает лишь "иногда". Впрочем это еще цветочки
Позиция 2: а вот времена t1 и t2 - уже ягодки. Для задачи оптимизации они действительно необходимы, но как (или куда) воткнуть их в multi-threading?
"Контрольный выстрел": и оказывается надо еще заранее иметь готовое аналитическое решение, а откуда его брать - хз.
Вывод: да, и "разпоточивание" и задачи оптимизации часто стремятся "наилучшим образом распределить имеющиеся ресурсы", но на этом всякое сходство заканчивается. Multi-threading не имеет ничего общего с аналитической оптимизацией. С теорией игр - тем более. Вот для "моделирования" можно/удобно использовать N лифтов-ниток, но это уже "совсем другая история"
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: К вопросу об организации взаимодействия пула производителей и одного потребителя
«
Ответ #104 :
Сентябрь 21, 2019, 11:29 »
Джентельмены) Должен откланиться, срочно убегаю) На последние два поста отвечу позже)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Страниц:
1
...
5
6
[
7
]
8
9
...
13
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...