powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что под капотом у std::mutex
25 сообщений из 131, страница 3 из 6
Что под капотом у std::mutex
    #40107341
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
никогда он не успеет столько же прочитать, как в 20 потоков
Где же вы все берёте источники бесконечной мощности? В астрале бесконечной силы?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107342
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, для этих целей в стандарте у экземпляров std::atomic есть метод load() с порядком доступа acquire.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107347
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Необязательно даже знать о кэш-строках и протоколах когерентности.
Достаточно понимать про "атомарность" и "изменчивость"
Очень желательно это знать, чтобы правильно выравнивать массивные структуры данных в памяти, к которым необходим конкурентный доступ.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107350
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
Очень желательно это знать, чтобы правильно выравнивать массивные структуры данных в памяти, к которым необходим конкурентный доступ.
Достаточно знать всего одно "магическое" число - размер кэш-строки.
Знать о существовании кэшей и протоколов когерентности всё так же не требуется.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик

Корутин - это просто функция с состоянием которую можно много раз вызывать. И все.

так это обычная ф-я со static внутри ?

итого, на опыте, как задачу то решать?


Не обязательно. Корутина (со-программа) - это такой-себе хай-левел шаблон. Никто не обязывает
нас делать ее функцией со статик. Можно ее сделать классом. Итератор например можно тоже
считать ко-рутиной. Я знаю что Boost содержит поддержку корутин но я никогда не пользовался.
Есть языки программирование где есть поддержка yield return. На них можно удобнее реализовывать
такие функции.

И я не знаю как решать твою задачу. Ведь ты ее толком нигде не озвучил.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107353
mayton
Есть языки программирование где есть поддержка yield return.

C++20, например
mayton
И я не знаю как решать твою задачу. Ведь ты ее толком нигде не озвучил.

это наверное самая частая отмазка здесь
многопоточно писать/читать контейнер с минимальными блокировками - чем не задача?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107356
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Dima TТы вроде написал что понял о чем речь, но похоже что нет.

А уж что будет когда он доберётся до множественных читателей, которым хочется
разрешить читать одновременно...

Можно еще версионность обсудить. Обычно когда блокировки не позволяют решать задачу - вводят
версионность. Даже для коллекций.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107358
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
дело в том, что везде пишут про блокировки на запись...
а чтение блокировать якобы НЕ надо (в т.ч. и мультичтение вообще блокировать НЕ надо)

автор if all readers then no locks required.
if the number of reads is much larger than the number of writes
- we might be able to use a readers/writer lock (std::shared_mutex)
if most operations are writes, then per-element mutex strategy might work, если там запись на ровно 1 элемент


но ты утверждаешь, что прям любое обращение к контейнеру надо блочить...
Похоже ты сам не понимаешь то что процитировал.
Если красное ты понял что всегда читать можно без блокировки, то это неверно. Читать можно без блокировки если никто не пишет, вообще никогда не пишет. Т.е. контейнер однажды заполнили и отдали потокам с обещанием что больше туда ничего не будет записано.
бабушкин зайчик
что же будет при мультичтении...

Зеленым выделил, это как раз тот случай когда один писатель и много читателей.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107359
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И я не знаю как решать твою задачу. Ведь ты ее толком нигде не озвучил.
+1
)))
бабушкин зайчик
это наверное самая частая отмазка здесь...
многопоточно писать/читать контейнер - чем не задача?

ну дак выдели ЧАСТЬ кода для блокировки.
Рукописный контейнер полностью с нуля?
Описание требований к контейнеру где?
Что внутри контейнера?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107361
indigodye0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто что думает про https://github.com/STEllAR-GROUP/hpx ?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107363
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
многопоточно писать/читать контейнер с минимальными блокировками - чем не задача?

авторНе бывает абстрактных сферических thread safe контейнеров в вакууме. И не может быть. Тех, кто употребляет такое слово применительно к контейнерам вообще, нужно нещадно бить батогами и ссылать в Сибирь
))
https://rsdn.org/forum/cpp/5342417.all
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107366
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик

это наверное самая частая отмазка здесь
многопоточно писать/читать контейнер с минимальными блокировками - чем не задача?

Вообще - не задача.

На Stackoverflow такие вопросы модераторы сразу закрывают. Нет конкретики. Нет понятного применения.

Сферические бенчмарки в вакууме чреваты тем что у всех будут разные результаты во первых.
А во вторых эффективность решения будет зависеть от многих параметров. Например от пропорции
читателей и писателей. И от того как долго писатель удерживает контейнер. И может быть даже
от того какова вероятность столкнуться двум потокам в мониторе. И может быть от того сколько
процессоров и ядер у тебя и сколько структур данных лежит в кешлиниях.

И корутины тут пока непричем потому что у тебя не акторная архитектура а просто основанная
на синхронности и конкуренции. Акторы - это про другое.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107369
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
mayton
Есть языки программирование где есть поддержка yield return.

C++20, например
mayton
И я не знаю как решать твою задачу. Ведь ты ее толком нигде не озвучил.

это наверное самая частая отмазка здесь
многопоточно писать/читать контейнер с минимальными блокировками - чем не задача?

Если один контейнер заменить на десять, то вероятность того что нужный контейнер свободен увеличится в десять раз. Мало на 10 - дели на 100 и т.д.

А вот можно ли заменить один на десять - это зависит от решаемой задачи.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107376
Dima T
Похоже ты сам не понимаешь то что процитировал.

ну найди там где-то утверждение, что надо блочить чтение
там про это вообще ни слова
автор- exactly one thread may update an element at any given time
- no other thread may read an element while the write is updating it
- more than one thread may read an element when no updates is in progress

Dima T
Если один контейнер заменить на десять, то вероятность того что нужный контейнер свободен увеличится в десять раз. Мало на 10 - дели на 100 и т.д.

блокировать зоопарк контейнеров по одному - это лучше, чем отдельная блокировка пишущих ячеек в одном контейнере?

PetroNotC Sharp
бабушкин зайчик
многопоточно писать/читать контейнер с минимальными блокировками - чем не задача?

авторНе бывает абстрактных сферических thread safe контейнеров в вакууме. И не может быть. Тех, кто употребляет такое слово применительно к контейнерам вообще, нужно нещадно бить батогами и ссылать в Сибирь
))
https://rsdn.org/forum/cpp/5342417.all
и что он имел ввиду под
авторКстати, если "лочить-разлочить" настолько большая проблема, что аж "надоело", то не пора ли пересматривать архитектуру ?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107382
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
Dima T
Похоже ты сам не понимаешь то что процитировал.

ну найди там где-то утверждение, что надо блочить чтение
там про это вообще ни слова
автор- exactly one thread may update an element at any given time
- no other thread may read an element while the write is updating it
- more than one thread may read an element when no updates is in progress

Красным выделил что надо блочить чтение на время записи

бабушкин зайчик
Dima T
Если один контейнер заменить на десять, то вероятность того что нужный контейнер свободен увеличится в десять раз. Мало на 10 - дели на 100 и т.д.

блокировать зоопарк контейнеров по одному - это лучше, чем отдельная блокировка пишущих ячеек в одном контейнере?

Так будет работать быстрее и лучше распараллеливаться.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107385
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
блокировать зоопарк контейнеров по одному - это лучше, чем отдельная блокировка пишущих ячеек в одном контейнере?
ГОРИЗОНТАЛЬНОЕ масштабирование
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107389
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
и что он имел ввиду под
авторКстати, если "лочить-разлочить" настолько большая проблема, что аж "надоело", то не пора ли пересматривать архитектуру ?

22388622
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107390
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,
по кругу ходим.
Ты везде не прав ((
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107401
Dima T
бабушкин зайчик
пропущено...
ну найди там где-то утверждение, что надо блочить чтение
там про это вообще ни слова
- no other thread may read an element while the write is updating it

Красным выделил что надо блочить чтение на время записи

Здесь написано, что во время записи надо блокировать элемент, чтобы его никто прочитать не смог.

Dima T
бабушкин зайчик
пропущено...

блокировать зоопарк контейнеров по одному - это лучше, чем отдельная блокировка пишущих ячеек в одном контейнере?

Так будет работать быстрее и лучше распараллеливаться.

может быть на операциях записи... а как быть с операциями сортировки, группировки, джойнов и т.д. ?

PetroNotC Sharp
бабушкин зайчик,
по кругу ходим.
Ты везде не прав ((

ну так сходи в другую тему.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107407
mayton
Тебе надо писать только в матрицу С.

ну и где проблема то?
создал матрицу C внутри ф-и, сложил туда A и B и вернул
если в этот момент в эти A/B -матрицы может идти запись, то заблочить + скопировать их внутрь ф-и (это же быстрее, чем блочить их на всё время перемножения)
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши код.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107410
mayton, ты когда задачу ставил, сам то её писал? Если да, то просто скажи, где там камень.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107411
indigodye0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, причем тут std::mutex ?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107412
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... самый первый камень - это как распараллелить. Особенно с учотом того что доступ к матрице Б идет
неблагоприятным образом. Вертикальное сканирование double элементов - создает крайне неудачную игру
с кешом.

Какие будут предложения?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indigodye0
Коллеги, причем тут std::mutex ?

Да. Прошу прощения что мы тут нафлудили. Если мешает - я создам отдельный тред под умножение матриц.
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 3 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что под капотом у std::mutex
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]