|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dima T бабушкин зайчик Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков. Не знаю, вся это красота или нет, но я её постиг. Поздравляю! На этом можно закончить и топик закрыть. да его уже закрыли а тут про матрицы ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 21:25 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчикосвободившийся поток запустить с другой задачей Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 23:15 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Тема напомнила трассировщик луча. Я там как-раз хотел добавить параллелизм на потоках. Подниму-ка. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 00:04 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov бабушкин зайчикосвободившийся поток запустить с другой задачей Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. а затраты на создание нового потока? И убиение старого... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 03:37 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dimitry Sibiryakov пропущено... Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. а затраты на создание нового потока? И убиение старого... ответ очевиден - посчитай затраты и делай через пул НЕ создавая. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 08:34 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчика затраты на создание нового потока? Грандиозно преувеличиваются новичками. Если у вас затраты на создание потока сравнимы со временем выполнения его функции - поток вообще не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 13:26 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Грандиозно преувеличиваются новичками. пулы потоков тоже новички пишут? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 13:45 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчикпулы потоков тоже новички пишут? Нет, их пишут люди с весьма специфическими задачами. Ну или новички, неспособные оценить их необходимость, да. В зависимости от параметров входящего потока запросов есть четыре варианта оптимальной их обработки: 1) Отсутствие потоков, запросы выполняет принимающий поток; 2) Очередь, которую разгребают несколько рабочих потоков; 3) Пул потоков; 4) Новый поток каждому запросу. Второй и третий варианты хоть и звучат похоже, не взаимозаменяемы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 13:50 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Нет, их пишут люди с весьма специфическими задачами. а какие там специфические задачи? ты либо много потоков туда-сюда создаёшь, либо мало но пул можно заранее слабать, я так понимаю, что он универсальный п.2 - эти потоки откуда возьмутся? "Повторно используют туалетную бумагу"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 14:58 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Померяйте накладные. Возможно старт Windows/POSIX потока стоит дёшево а вы втащите в систему ненужный обвес. Задачу умножения матриц можно решить и без пула. А короткоживущие акторы можно просто запускать последовательно на 1 потоке. Этим кстати пользуются все акторные библиотеки. А пул, если вы его создатите - требует обслуживания. У него должен быть lifecycle. Тоеть внятная точка на оси времени где он создается и где уничтожается. И политики роста и деградации. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 15:16 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчика какие там специфические задачи? Неизвестное количество запросов в секунду (вариант 4 отпадает из-за того, что сделает от такого БУМ), неизвестная комплексность отдельных запросов (вариант 1 отпадает из-за непредсказуемого времени обработки одного запроса), необходимость выполнения определённых запросов строго последовательно и/или в определённом контексте (вариант 2 отпадает из-за неконтролируемого распределения задач по потокам). Особенно специфично (и редко) последнее условие. В качестве примера, где оно есть, на ум приходит только пул потоков-исполнителей в СУБД, неспособной к внутреннему распараллеливанию (такой как Firebird). бабушкин зайчикно пул можно заранее слабать, я так понимаю, что он универсальный Можно, но накладные расходы и сложность реализации у него превышают все остальные варианты вместе взятые. бабушкин зайчикп.2 - эти потоки откуда возьмутся? Созданы при старте, сразу все. Или созданы по необходимости до определённого предела. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 15:16 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
maytonВозможно старт Windows/POSIX потока стоит дёшево а вы втащите в систему ненужный обвес. Писатели ОСей не дураки. Если бы пул потоков был дешевле создания нового потока, они давно бы встроили его в ядро, уравняв их стоимости. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 15:35 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov бабушкин зайчикно пул можно заранее слабать, я так понимаю, что он универсальный Можно, но накладные расходы и сложность реализации у него превышают все остальные варианты вместе взятые. С++ не заточен под веб проекты. А пул нужен для веб сервера. Поэтому в шарпе и java слово пул изучают школьники. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 15:41 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
PetroNotC SharpА пул нужен для веб сервера. Поэтому в шарпе и java слово пул изучают школьники. Пул коннектов к БД или чего-то такого же очень дорогого - верю. Пул потоков - не верю. Возможно, у этих школьников изучение пулов не идёт дальше написания этого слова. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 15:51 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Пул потоков - не верю. в шарпе - класс ThreadPool АВТОМАТИЧЕСКИ увеличивает кол-во потоков подстраиваясь под НАГРУЗКУ. Довольно умный алгоритм. Слово школьники утрировано, но спрашивать писать ли пул самому приходит в голтову только у сишников. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:04 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Ограничения количества потоков пуле в Java имеют смысл т.к. 1 поток занимает 1 Мегабайт памяти и стека. Поэтому их создают не с целью быстрого старта а с целью предотвращения OOM exception. Из консоли можно этот размер регулировать но ... вот я щас не помню действует ли это на все потоки процесса? Кажется на все. Тоесть кажущаяся "легкость и зеленость" потоков Java может обернуться вполне себе материальными проблемами. Создают также для менеджмента джобов. Одно семейство джобов грузит CPU. Дать их 4-8 потоков. Другое семейство работает с БД - создать им потоки по количеству степени параллелизма самой БД. Третье семейство обслуживает веб - там можно дать побольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:05 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton ... т.к. 1 поток занимает 1 Мегабайт памяти и стека... Обычно пишут "1 Мегабайт памяти под стек", только тут я не согласен - это же виртуальная память, да выделили под стэк 1 Мб, но реально занято 1-2 страницы по 4 кб, остальное будет занято если реально потребуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:11 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
maytonТоесть кажущаяся "легкость и зеленость" потоков Java может обернуться вполне себе материальными проблемами. Для "универсального решателя проблем" выбор между производительностью и дуракоустройчивостью очевиден. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:11 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov бабушкин зайчикосвободившийся поток запустить с другой задачей Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. так почему не использовать существующий поток, вместо каких-то там пулов зачем каждый раз новый? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:16 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
Dima Tда выделили под стэк 1 Мб, но реально занято 1-2 страницы по 4 кб, остальное будет занято если реально потребуется. Со стэком проблема не в физической памяти, а именно в виртуальном адресном пространстве. Стэк не переместишь и не расширишь по необходимости, он должен быть с фиксированным адресом и непрерывным участком. Тысяча виртуальных кусков по мегабайту и гигабайта нет. А это половина всего пространства, доступного 32-х разрядному процессу. В реальности ООМ часто приходит уже в районе 800, поскольку стэки доползают до кучи, которая тоже растёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:18 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dimitry Sibiryakov пропущено... Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. так почему не использовать существующий поток, вместо каких-то там пулов зачем каждый раз новый? Компромиссы карл! Запомни это слово) - один поток на всё - это синхронность - много на каждую задачу - конец ресурсам промежность между двумя архитектурами - ПУЛ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:19 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dimitry Sibiryakov пропущено... Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток. так почему не использовать существующий поток, вместо каких-то там пулов зачем каждый раз новый? Ну.. если ты программировал мультипоточность - то у тебя обычно есть не 1 а целый сет работающих потоков. И их диаграмма активности напоминает обычно хаос. И вот менеджментом этого хаоса и занимается пул. Но опять-же. Поскольку твои вопросы очень краткие - то и ответы получаются либо не в тему либо люди отвечают по своим проблемам с которыми сталкивались. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:21 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчикзачем каждый раз новый? Простота кодирования. Создать новый поток - одна строчка. Использовать старый - несколько экранов зубодробительного кода с синхронизацией и вытекающими укрытиями для багов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:21 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
mayton Поскольку твои вопросы очень краткие - то и ответы получаются либо не в тему либо люди отвечают по своим проблемам с которыми сталкивались. какие ответы? тут кто-то написал, как именно он рулит потоками - новые создаёт или пул юзает? Dimitry вбросил и полилась вода обсуждений, как оно там где устроено... как кто юзает и почему - никто не написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:35 |
|
Ускорить умножение квадратных матриц (продолжение темы с mutex)
|
|||
---|---|---|---|
#18+
бабушкин зайчиккак кто юзает и почему - никто не написал. Потому что use case для каждого из четырёх вышеперечисленных случаев легко выводится простой логикой: 1) Стоимость выполнения запросов предсказуема и лучше всего O(1) (например - DNS); 2) Запросы не имеют взаимозависимостей (например - HTTP); 3) Всё остальное; 4) Поток запросов предсказуем и ограничен (например - перемножение матриц). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 16:48 |
|
|
start [/forum/topic.php?fid=57&startmsg=40108505&tid=2017148]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
489ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 913ms |
0 / 0 |