|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Mayton тебе доказал что конкуренция и блокировка Г... а параллелизм здорово. на задачке для 5-летних... когда дорастёшь до реальных задач, тогда и приходи. PetroNotC Sharp То контейнеры, то запросы, то http server 22389971 http-сервер туда притащил тот же mayton... какой же ты бесполезный ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 23:30 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик на задачке для 5-летних... когда дорастёшь до реальных задач, тогда и приходи. Споришь там и тут а ТЗ нету. бабушкин зайчик http-сервер туда притащил тот же mayton... какой же ты бесполезный Ну притащил. А ты ответил, что внизу мы разгребаем запросы. Вместо субд? Там твой ответ интересен брат)) Покажи опыт постановки задачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 23:39 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton, Из мира шарпа или java можно.
Админ снаружи потока мониторит на sql.ru активными юзверями. Банит/правит. Внутри потока тоже чтение и правки списка обьектов User{id, name, role} ... Типо так. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2021, 23:55 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton, https://stackoverflow.com/questions/616601/is-httpsession-thread-safe-are-set-get-attribute-thread-safe-operations Совсем недавно разрабы веб серверов сказали - разработчики! Следите сами за потокобезопасностью! Синхронизируйте снаружи и в своем коде сами!))) Веб сервер только стартует вам поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 00:08 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Из мира шарпа или java можно. Я не хотел брать из Java. Во первых - многие С++ ники - не в теме и им придется объяснять зачем и какие аналогии. Я не могу придумать аналогий для JSP/Servlets. И я вообще не хотел брать сокетные приложения. Мы не сможем создать на них такую нагрузку чтобы почувстовать все "квантовые эффекты" особенно Амдал и его расширенная версия Universal Scalability Law c когерентностью. А если мы не сможем создать нагрузку - то как мы покажем зайчику всю красоту этой самой coherency. Ведь это самая вкусная и интересная часть дискуссии. Она объясняет суть недостатка конкуренции на переменной. Поэтому я и хотел синтетический тест где есть только процессор и память. Кстати optimistic не устраняет мьютекс совсем. Он просто переносит его вглубь проверок условий и кроме того если условия использования оптимистика ухудшаются - (потоки писатели сошли с ума и стали постоянно что-то писать в контейнер) - то потоки читатели тоже сходят с ума и превращаются в ... спинлоки и грузят CPU. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 00:56 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton, Понимаю. Для сишников более характерно отсутствие разделение системного кода и прикладного. Поэтому выше ты верно сказал - сложно сделать постановку на расшаренную переменную)))) Таких задачек все меньше в IT ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 12:43 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Расшаренные переменные === глобальные переменные. Глобальные переменные мастдай. Два самых частых (R/W) их применения - кэш и пул. Оба решаются эксклюзивной блокировкой при доступе к контейнеру и счётчиком ссылок на объекты внутри, без хитроподвыподвертнутых схем типа RWLock. Ещё частое применение - очередь, но о ней вообще можно не говорить, там примитив, показанный в соседнем топике. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 12:56 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Хотя нет, с учётом развода писателей, для кэша как раз получается примерно RWLock. А пул сводится к очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 13:13 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Расшаренные переменные === глобальные переменные. Глобальные переменные мастдай. А расшаренные как в первом посту матрица на потоки работ или потоки читателПисатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 13:27 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
По поводу optimistic контейнера. Тут надо быть еще аккуратнее. Чтение может быть неконсистентным. Для int, char[] это не приводит ни к чему страшному. Но если в контейнере лежит какая-то сложная структура. И если поток читатеть ее читает надеясь что "проскочит" а в это время поток-писатель модифицирует какие-то сложные структуры то есть ненулевая вероятность что читатель может зациклится или провалится в бесконечную рекурсию. И до проверки атомик поля с номером версии он просто не дойдет просто по причине того что завис. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 13:36 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp я имел ввиду не расшаренные на область видимости application. А расшаренные как в первом посту матрица на потоки работ или потоки читателПисатель. А в чём разница? Поток это процедура. Любая переменная, объявленная вне этой процедуры, к которой она доступается - по определению глобальная. mayton Но если в контейнере лежит какая-то сложная структура. И если поток читатеть ее читает надеясь что "проскочит" а в это время поток-писатель модифицирует какие-то сложные структуры то есть ненулевая вероятность что читатель может зациклится или провалится в бесконечную рекурсию. И до проверки атомик поля с номером версии он просто не дойдет просто по причине того что завис. О чём это ты? Атомный счётчик ссылок этой структуры не имеет ничего общего с блокировками писателей, это просто вспомогательный элемент для автоматического управления памятью. Писатели используют COW и тем самым не пересекаются с читателями от слова "совсем". ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 13:59 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Ты наверное говоришь о версионности. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 14:33 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Да, copy-on-write и есть версионность. А о чём говоришь ты? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 14:37 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет mayton А если мы не сможем создать нагрузку - то как мы покажем зайчику всю красоту этой самой coherency. Ведь это самая вкусная и интересная часть дискуссии. Она объясняет суть недостатка конкуренции на переменной. в твоей задаче нет никаких конкуренций каждый пишет свою часть C (строку) и не парится. И чем больше потоков, тем быстрее заполнится C. Только это не работает в задаче, где куча клиентов дёргают самые разные части БД с целью почитать/пописать. Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков. Не знаю, вся это красота или нет, но я её постиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 15:51 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик в твоей задаче нет никаких конкуренций каждый пишет свою часть C (строку) и не парится. И чем больше потоков, тем быстрее заполнится C. Только это не работает в задаче, где куча клиентов дёргают самые разные части БД с целью почитать/пописать. Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков. Не знаю, вся это красота или нет, но я её постиг. БД (даже версионник) косвенно использует блокировки для того чтобы не нарушить консистентность db-block (это кусок таблички обычно длиной 4-8 К) который уже закеширован в данный момент. В документации Oracle называет их latches. Чему соответсвтует летч в операционной системе - это зависит от самой операционки. В Windows-Linux это может быть по разному реализовано. Да. В моей задаче про умножение матриц нет конкуренций. Там - fork-join. И в фазе join там есть просто ожидание слияния потоков в основной поток. Это может быть не нулевое ожидание просто потому что один поток чуть быстрее закончил свою работу. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 16:52 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет Замечание принято. Буду обсуждать тут - только матрицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 16:54 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton И в фазе join там есть просто ожидание слияния потоков в основной поток. Это может быть не нулевое ожидание просто потому что один поток чуть быстрее закончил свою работу. так выдели один поток, который будет собирать все результаты, а освободившиеся спокойно пойдут заниматься своим делом ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 17:42 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton бабушкин зайчик надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет Замечание принято. Буду обсуждать тут - только матрицы. а тот зачем закрыл ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 17:43 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик так выдели один поток, который будет собирать все результаты, а освободившиеся спокойно пойдут заниматься своим делом его не надо персонально выделять. Он уже есть. И это мейн. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Красота? Никаких тебе явных мютексов. Никаких атомиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 17:55 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик mayton пропущено... Замечание принято. Буду обсуждать тут - только матрицы. а тот зачем закрыл А вот когда мемберы на личности переходят - топик резко сам закрывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 17:57 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton его не надо персонально выделять. Он уже есть. И это мейн. где ты там нашёл проблему mayton ожидание слияния потоков в основной поток если мейн вынужден ждать завершения всех и не может освободившийся поток запустить с другой задачей, то нафиг такой мейн а если у него кроме этой матрицы задач нет, то откуда проблема возьмётся? mayton А вот когда мемберы на личности переходят - топик резко сам закрывается. ага, то по кругу ходим, то на личности перешли ему... ты тему зачем закрыл, в которой mutex обсуждали?! в другой теме нельзя по кругу пойти или на личности переходить??? ГДЕ теперь mutex обсуждать ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 18:04 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
короче, hyperthreading - да или нет? в задачах конкурентного r/w доступа к контейнерам ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 18:05 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик, Чё ты на него напал? В этом треде пока все спокойно. Создай новую тему и обсуждай, без личностей). Только тема про мьютекс это слишком мелко. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 20:11 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик короче, hyperthreading - да или нет? в задачах конкурентного r/w доступа к контейнерам ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 20:28 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков. Не знаю, вся это красота или нет, но я её постиг. Поздравляю! На этом можно закончить и топик закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 20:45 |
|
|
start [/forum/topic.php?fid=57&startmsg=40108342&tid=2017148]: |
0ms |
get settings: |
16ms |
get forum list: |
17ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
45ms |
get topic data: |
36ms |
get forum data: |
1ms |
get page messages: |
720ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 1145ms |
0 / 0 |