powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
25 сообщений из 165, страница 4 из 7
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108342
PetroNotC Sharp
Mayton тебе доказал что конкуренция и блокировка Г... а параллелизм здорово.

на задачке для 5-летних...
когда дорастёшь до реальных задач, тогда и приходи.
PetroNotC Sharp
То контейнеры, то запросы, то http server 22389971

http-сервер туда притащил тот же mayton...
какой же ты бесполезный
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108348
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
на задачке для 5-летних...
когда дорастёшь до реальных задач, тогда и приходи.
хорош щеки надувать.
Споришь там и тут а ТЗ нету.

бабушкин зайчик
http-сервер туда притащил тот же mayton...
какой же ты бесполезный

Ну притащил. А ты ответил, что внизу мы разгребаем запросы.
Вместо субд? Там твой ответ интересен брат))
Покажи опыт постановки задачи!
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108355
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Из мира шарпа или java можно.
  • Сессионный список объектов хранится в сессии веб сервера.
Под каждый запрос из веб контейнер веб сервера стартует новый поток и далее запрос уже в потоке.
Админ снаружи потока мониторит на sql.ru активными юзверями.
Банит/правит.
Внутри потока тоже чтение и правки списка обьектов User{id, name, role}
...
Типо так.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108356
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
https://stackoverflow.com/questions/616601/is-httpsession-thread-safe-are-set-get-attribute-thread-safe-operations
Совсем недавно разрабы веб серверов сказали - разработчики! Следите сами за потокобезопасностью! Синхронизируйте снаружи и в своем коде сами!)))
Веб сервер только стартует вам поток.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108360
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Из мира шарпа или java можно.

Я не хотел брать из Java. Во первых - многие С++ ники - не в теме и им придется объяснять зачем
и какие аналогии. Я не могу придумать аналогий для JSP/Servlets.

И я вообще не хотел брать сокетные приложения. Мы не сможем создать на них такую
нагрузку чтобы почувстовать все "квантовые эффекты" особенно Амдал и его расширенная
версия Universal Scalability Law c когерентностью.

А если мы не сможем создать нагрузку - то как мы покажем зайчику всю красоту
этой самой coherency. Ведь это самая вкусная и интересная часть дискуссии. Она
объясняет суть недостатка конкуренции на переменной.

Поэтому я и хотел синтетический тест где есть только процессор и память. Кстати optimistic
не устраняет мьютекс совсем. Он просто переносит его вглубь проверок условий и кроме того
если условия использования оптимистика ухудшаются - (потоки писатели сошли с ума и стали
постоянно что-то писать в контейнер) - то потоки читатели тоже сходят с ума и превращаются
в ... спинлоки и грузят CPU.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108395
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Понимаю.
Для сишников более характерно отсутствие разделение системного кода и прикладного.
Поэтому выше ты верно сказал - сложно сделать постановку на расшаренную переменную))))
Таких задачек все меньше в IT
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108398
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расшаренные переменные === глобальные переменные.
Глобальные переменные мастдай.

Два самых частых (R/W) их применения - кэш и пул. Оба решаются эксклюзивной
блокировкой при доступе к контейнеру и счётчиком ссылок на объекты внутри, без
хитроподвыподвертнутых схем типа RWLock.
Ещё частое применение - очередь, но о ней вообще можно не говорить, там
примитив, показанный в соседнем топике.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108399
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, с учётом развода писателей, для кэша как раз получается примерно RWLock.

А пул сводится к очереди.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108400
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Расшаренные переменные === глобальные переменные.
Глобальные переменные мастдай.
я имел ввиду не расшаренные на область видимости application.
А расшаренные как в первом посту матрица на потоки работ или потоки читателПисатель.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108403
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу optimistic контейнера. Тут надо быть еще аккуратнее.

Чтение может быть неконсистентным. Для int, char[] это не приводит ни к чему страшному.
Но если в контейнере лежит какая-то сложная структура. И если поток читатеть ее читает
надеясь что "проскочит" а в это время поток-писатель модифицирует какие-то сложные
структуры то есть ненулевая вероятность что читатель может зациклится или провалится
в бесконечную рекурсию. И до проверки атомик поля с номером версии он просто не дойдет
просто по причине того что завис.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108407
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
я имел ввиду не расшаренные на область видимости application.
А расшаренные как в первом посту матрица на потоки работ или потоки читателПисатель.

А в чём разница? Поток это процедура. Любая переменная, объявленная вне этой процедуры, к которой она доступается - по определению глобальная.

mayton
Но если в контейнере лежит какая-то сложная структура. И если поток читатеть ее читает
надеясь что "проскочит" а в это время поток-писатель модифицирует какие-то сложные
структуры то есть ненулевая вероятность что читатель может зациклится или провалится
в бесконечную рекурсию. И до проверки атомик поля с номером версии он просто не дойдет
просто по причине того что завис.

О чём это ты? Атомный счётчик ссылок этой структуры не имеет ничего общего с блокировками писателей, это просто вспомогательный элемент для автоматического управления памятью. Писатели используют COW и тем самым не пересекаются с читателями от слова "совсем".
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты наверное говоришь о версионности.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108414
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, copy-on-write и есть версионность. А о чём говоришь ты?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108425
надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет

mayton
А если мы не сможем создать нагрузку - то как мы покажем зайчику всю красоту этой самой coherency. Ведь это самая вкусная и интересная часть дискуссии. Она объясняет суть недостатка конкуренции на переменной.

в твоей задаче нет никаких конкуренций
каждый пишет свою часть C (строку) и не парится.
И чем больше потоков, тем быстрее заполнится C.
Только это не работает в задаче, где куча клиентов дёргают самые разные части БД с целью почитать/пописать.
Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков.
Не знаю, вся это красота или нет, но я её постиг.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108436
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик

в твоей задаче нет никаких конкуренций
каждый пишет свою часть C (строку) и не парится.
И чем больше потоков, тем быстрее заполнится C.
Только это не работает в задаче, где куча клиентов дёргают самые разные части БД с целью почитать/пописать.
Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков.
Не знаю, вся это красота или нет, но я её постиг.

БД (даже версионник) косвенно использует блокировки для того чтобы не нарушить консистентность
db-block (это кусок таблички обычно длиной 4-8 К) который уже закеширован в данный момент.

В документации Oracle называет их latches. Чему соответсвтует летч в операционной системе - это
зависит от самой операционки. В Windows-Linux это может быть по разному реализовано.

Да. В моей задаче про умножение матриц нет конкуренций. Там - fork-join. И в фазе join
там есть просто ожидание слияния потоков в основной поток. Это может быть не нулевое
ожидание просто потому что один поток чуть быстрее закончил свою работу.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108438
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет

Замечание принято. Буду обсуждать тут - только матрицы.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108453
mayton
И в фазе join
там есть просто ожидание слияния потоков в основной поток. Это может быть не нулевое
ожидание просто потому что один поток чуть быстрее закончил свою работу.

так выдели один поток, который будет собирать все результаты, а освободившиеся спокойно пойдут заниматься своим делом
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108454
mayton
бабушкин зайчик
надо было закрыть тему про mutex, чтобы обсуждать mutex в теме про матрицы, где его, по сути, вообще нет

Замечание принято. Буду обсуждать тут - только матрицы.

а тот зачем закрыл
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108456
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик

так выдели один поток, который будет собирать все результаты, а освободившиеся спокойно пойдут заниматься своим делом


его не надо персонально выделять. Он уже есть. И это мейн.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// Верхняя половина матрицы А
t1 = pthread_create(...)
// Нижняя половина
t2 = pthread_create(...);

// ожидаем слияния двух половино-потоков с main.
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);



Красота? Никаких тебе явных мютексов. Никаких атомиков.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108457
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
mayton
пропущено...

Замечание принято. Буду обсуждать тут - только матрицы.

а тот зачем закрыл

А вот когда мемберы на личности переходят - топик резко сам закрывается.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108459
mayton
его не надо персонально выделять. Он уже есть. И это мейн.

где ты там нашёл проблему
mayton
ожидание слияния потоков в основной поток

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

ага, то по кругу ходим, то на личности перешли ему...
ты тему зачем закрыл, в которой mutex обсуждали?!
в другой теме нельзя по кругу пойти или на личности переходить???
ГДЕ теперь mutex обсуждать
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108460
короче, hyperthreading - да или нет?
в задачах конкурентного r/w доступа к контейнерам
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108494
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,
Чё ты на него напал?
В этом треде пока все спокойно.
Создай новую тему и обсуждай, без личностей).
Только тема про мьютекс это слишком мелко.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108499
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
короче, hyperthreading - да или нет?
в задачах конкурентного r/w доступа к контейнерам
пора уже тебе код показать.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108503
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков.
Не знаю, вся это красота или нет, но я её постиг.

Поздравляю! На этом можно закончить и топик закрыть.
...
Рейтинг: 0 / 0
25 сообщений из 165, страница 4 из 7
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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