powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
25 сообщений из 165, страница 5 из 7
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108505
Dima T
бабушкин зайчик
Но... я нашёл способ свести все заморочки с конкурентностью к минимуму. И почти без блоков.
Не знаю, вся это красота или нет, но я её постиг.

Поздравляю! На этом можно закончить и топик закрыть.

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

Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108521
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема напомнила трассировщик луча. Я там как-раз хотел добавить параллелизм на потоках. Подниму-ка.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108534
Dimitry Sibiryakov
бабушкин зайчикосвободившийся поток запустить с другой задачей

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

Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток.

а затраты на создание нового потока? И убиение старого...

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

Грандиозно преувеличиваются новичками.

Если у вас затраты на создание потока сравнимы со временем выполнения его функции -
поток вообще не нужен.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108591
Dimitry Sibiryakov
Грандиозно преувеличиваются новичками.

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

Нет, их пишут люди с весьма специфическими задачами. Ну или новички, неспособные
оценить их необходимость, да.

В зависимости от параметров входящего потока запросов есть четыре варианта
оптимальной их обработки:

1) Отсутствие потоков, запросы выполняет принимающий поток;
2) Очередь, которую разгребают несколько рабочих потоков;
3) Пул потоков;
4) Новый поток каждому запросу.

Второй и третий варианты хоть и звучат похоже, не взаимозаменяемы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108607
Dimitry Sibiryakov
Нет, их пишут люди с весьма специфическими задачами.

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

п.2 - эти потоки откуда возьмутся? "Повторно используют туалетную бумагу"?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108616
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Померяйте накладные. Возможно старт Windows/POSIX потока стоит дёшево
а вы втащите в систему ненужный обвес. Задачу умножения матриц можно
решить и без пула.

А короткоживущие акторы можно просто запускать последовательно на 1 потоке.
Этим кстати пользуются все акторные библиотеки.

А пул, если вы его создатите - требует обслуживания. У него должен быть lifecycle.
Тоеть внятная точка на оси времени где он создается и где уничтожается. И политики
роста и деградации.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108617
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчика какие там специфические задачи?

Неизвестное количество запросов в секунду (вариант 4 отпадает из-за того, что
сделает от такого БУМ), неизвестная комплексность отдельных запросов (вариант 1
отпадает из-за непредсказуемого времени обработки одного запроса), необходимость
выполнения определённых запросов строго последовательно и/или в определённом
контексте (вариант 2 отпадает из-за неконтролируемого распределения задач по
потокам).

Особенно специфично (и редко) последнее условие. В качестве примера, где оно
есть, на ум приходит только пул потоков-исполнителей в СУБД, неспособной к
внутреннему распараллеливанию (такой как Firebird).

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

Можно, но накладные расходы и сложность реализации у него превышают все
остальные варианты вместе взятые.

бабушкин зайчикп.2 - эти потоки откуда возьмутся?

Созданы при старте, сразу все. Или созданы по необходимости до определённого
предела.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108618
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВозможно старт Windows/POSIX потока стоит дёшево а вы втащите в систему ненужный
обвес.

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

Можно, но накладные расходы и сложность реализации у него превышают все
остальные варианты вместе взятые.
С++ не заточен под веб проекты.
А пул нужен для веб сервера.
Поэтому в шарпе и java слово пул изучают школьники.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108620
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpА пул нужен для веб сервера.
Поэтому в шарпе и java слово пул изучают школьники.

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

в шарпе - класс ThreadPool АВТОМАТИЧЕСКИ увеличивает кол-во потоков подстраиваясь под НАГРУЗКУ.
Довольно умный алгоритм.
Слово школьники утрировано, но спрашивать писать ли пул самому приходит в голтову только у сишников.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108623
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ограничения количества потоков пуле в Java имеют смысл т.к. 1 поток занимает 1 Мегабайт памяти и стека.
Поэтому их создают не с целью быстрого старта а с целью предотвращения OOM exception. Из консоли
можно этот размер регулировать но ... вот я щас не помню действует ли это на все потоки процесса?
Кажется на все.

Тоесть кажущаяся "легкость и зеленость" потоков Java может обернуться вполне себе материальными
проблемами.

Создают также для менеджмента джобов. Одно семейство джобов грузит CPU. Дать их 4-8 потоков.
Другое семейство работает с БД - создать им потоки по количеству степени параллелизма самой БД.
Третье семейство обслуживает веб - там можно дать побольше.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108624
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
... т.к. 1 поток занимает 1 Мегабайт памяти и стека...

Обычно пишут "1 Мегабайт памяти под стек", только тут я не согласен - это же виртуальная память, да выделили под стэк 1 Мб, но реально занято 1-2 страницы по 4 кб, остальное будет занято если реально потребуется.
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108625
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть кажущаяся "легкость и зеленость" потоков Java может обернуться вполне
себе материальными проблемами.

Для "универсального решателя проблем" выбор между производительностью и
дуракоустройчивостью очевиден.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108627
Dimitry Sibiryakov
бабушкин зайчикосвободившийся поток запустить с другой задачей

Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток.
так почему не использовать существующий поток, вместо каких-то там пулов
зачем каждый раз новый?
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108629
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tда выделили под стэк 1 Мб, но реально занято 1-2 страницы по 4 кб, остальное
будет занято если реально потребуется.

Со стэком проблема не в физической памяти, а именно в виртуальном адресном
пространстве. Стэк не переместишь и не расширишь по необходимости, он должен
быть с фиксированным адресом и непрерывным участком. Тысяча виртуальных кусков
по мегабайту и гигабайта нет. А это половина всего пространства, доступного 32-х
разрядному процессу. В реальности ООМ часто приходит уже в районе 800, поскольку
стэки доползают до кучи, которая тоже растёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108633
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
Dimitry Sibiryakov
пропущено...

Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток.

так почему не использовать существующий поток, вместо каких-то там пулов
зачем каждый раз новый?

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

Зачем повторно использовать туалетную бумагу? Новой задаче - новый поток.

так почему не использовать существующий поток, вместо каких-то там пулов
зачем каждый раз новый?

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

Простота кодирования. Создать новый поток - одна строчка. Использовать старый -
несколько экранов зубодробительного кода с синхронизацией и вытекающими
укрытиями для багов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорить умножение квадратных матриц (продолжение темы с mutex)
    #40108643
mayton
Поскольку твои вопросы очень краткие - то и ответы получаются либо не в тему либо
люди отвечают по своим проблемам с которыми сталкивались.

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

Потому что use case для каждого из четырёх вышеперечисленных случаев легко
выводится простой логикой:

1) Стоимость выполнения запросов предсказуема и лучше всего O(1) (например - DNS);
2) Запросы не имеют взаимозависимостей (например - HTTP);
3) Всё остальное;
4) Поток запросов предсказуем и ограничен (например - перемножение матриц).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 165, страница 5 из 7
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ускорить умножение квадратных матриц (продолжение темы с mutex)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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