powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная будущая мультипоточность
25 сообщений из 149, страница 4 из 6
Тяпничная будущая мультипоточность
    #39721713
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosполудухпропущено...

в асинхронном программировании так можно и двинуться умом
нет проблемы "асинхронного программирования", есть проблема "синхронизации" процессов (задач, операций,...).
сейчас воще под "асинхронным" программированием стали подразумевать вызов подпрограмм ввода/вывода и запутали народ вконец
Чисто эстетически... Писать код с асинхронными вызовами легче чем "на потоках". И ошибок меньше.
Я здесь говорю безотносительно I/O. А вообще.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39721727
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonViPRosпропущено...

нет проблемы "асинхронного программирования", есть проблема "синхронизации" процессов (задач, операций,...).
сейчас воще под "асинхронным" программированием стали подразумевать вызов подпрограмм ввода/вывода и запутали народ вконец
Чисто эстетически... Писать код с асинхронными вызовами легче чем "на потоках". И ошибок меньше.
Я здесь говорю безотносительно I/O. А вообще.
это когда под рукой абстракции вроде корутин и ниток
а в оригинале ваще не легче )
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39722395
qasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Addx
ИМХО, вопросы производительности и оптимизации часто встают не там, где это нужно.
Люди читают о том, как решить проблему 100500+ rps, а по факту у них там и нагрузки-то такой нет.
А есть совсем в других местах.
Но делаем тут, потому как у Google была тут проблема и они ее решили так.
Или доклад с конференции прочитали.
К вопросу о "С++ быстрее" и прочих "давай померяемся".
Это интересно и важно, но есть два фактора:
1. в 95% приложений абсолютно не нужно. Нет, если вы графический движок, или универсальный сервер пишете ...
2. На производительность часто влияют другие факторы. Реальный код не висит в воздухе, как тесты и примеры.
3. Цифры 5-10-15% вообще ни о чем для не глубоко системного ПО. Завтра оптимизируют компилятор/библиотеки/процессор и будет все наоборот.
Основная проблема многопоточности - это зависимости и блокировки. Ошибки (не только баги, но и просчеты в архитектуре) тут очень дороги, а ловить их сложнее. Поэтому ставится задача как-то упростить многопоточные неблокируемые операции, встроить в язык.
Я не исключаю, что определенная реализация сложной многопоточности появится в железе с соответствующей поддержкой в языках.
Уже сейчас есть НТ, AVX, OpenCL, но они сильно специализированы.

Полностью согласен. Особенно с выделенным. Очень часто разработчики и менеджеры занимаются не той оптимизацией, которая действительно нужна.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39722401
qasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsevexp98Вот это отмечу как полезный приём. пропущено...

Про то, что NIO на практике 10-30 % (скорее 10) медленнее старых Socket'ов - уже приводил. А 10% не так уж и мало.

С той же самой NIO, была проблема, что на __реальном__ сервере (NUMA, 2 CPU, 40 cores), от патерна нагрузки NIO + Java менеджеру потоков в Linux голову снесло. Перевод проекта Socket --> NIO привел к увеличению в 3-4 __раза__ потребления CPU. Вылечилось уменьшением кол-ва потоков для java GC и java JIT через командную строчку.

Можно по этим двум пунктам ссылку на исследование? Хотя бы на первое - а то в этом треде я ссылки не нашел.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39726694
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39726814
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qastaLeonid Kudryavtsevпропущено...

Про то, что NIO на практике 10-30 % (скорее 10) медленнее старых Socket'ов - уже приводил. А 10% не так уж и мало.

С той же самой NIO, была проблема, что на __реальном__ сервере (NUMA, 2 CPU, 40 cores), от патерна нагрузки NIO + Java менеджеру потоков в Linux голову снесло. Перевод проекта Socket --> NIO привел к увеличению в 3-4 __раза__ потребления CPU. Вылечилось уменьшением кол-ва потоков для java GC и java JIT через командную строчку.

Можно по этим двум пунктам ссылку на исследование? Хотя бы на первое - а то в этом треде я ссылки не нашел.

Я написал - на практике.

1)
Если хотите, возмите и напишите нормальный тест, лучше, прикладную систему портируете

Если хотите, возьмите какую нибудь NIO библиотеку типа Apache Http Core и посмотрите, сколько там в NIO режиме копирований туда-сюда-обратно тебе и мне приятно между char[] и ByteBuffer. Сколько там работы с коллекциями внутри самой библиотеки (т.к. мы то код можем пишем и "ассинхронный", а вот библиотека все Channel'ы вынуждена хранить в обычной java-коллекции и по ним бегать, что бы понять какие мы обработали, а какие channel'ы еще нет).

плюс, самостоятельно напишите ассинхронный Producer, который данные между Вашим ядром будет в NIO отправлять. Добавьте, на сколько в Вашей системе станет больше One Producer One Consumer Queue (при том, что таких оптимизированный Queue даже в Java нет, или concurrentLinkedQueue - который попа боль, т.к. там нет size, или какой нибудь сторонний bounded collection, что бы ошибки переполнения буффера можно было бы хотя бы определять /если клиент очень медленно данные забирает, например у него модем 2400 бод ))) / ). Еще пара коллекций и туда-сюда-через-Queue-передали данные скорости не добавляет

В принципе, можете блоги в Инет почитать. Про пинус 10-30% скорости пишут очень многие

2)
почему медленнее. В общем то понятно. В случае сокитов, ВСЯ синхронизация выполняется системным ядром ОС. В случае NIO, вся синхронизация выполняется "руками" в NIO библиотеке и наших Producer'ах. Native OS vs Java

3)
Про проблему на сервере, уже не раз писал. Просто столкнулся. Какую Вам ссылку дать, не очень понятно. Точно знаю, что он где-то в Англии, на лондонской бирже стоит ))) если туда у Вас есть доступ, могу тогда сказать фирму-арендатор, сходите на железку посмотрите, хоть мне раскажите, как она выглядит )))
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727290
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКаковы накладные расходы на сидение потока (pthread) в mutex?
До нескольких сотен тактов на переключение процессов. Если переключение происходит часто (миллион в секунду), то десятки процентов времени проц тупо перечитывает кэши. Но так убивать эффективность могут только дауны (начинающие программисты). Поэтому в нормальных случаях такого не наблюдается.
maytonЧисто эстетически... Писать код с асинхронными вызовами легче чем "на потоках". И ошибок меньше.
Эстетичность вы оцените, когда станете писать асинхронно с рекурсивной вложенностью, да плюс пяток-другой вложенность нерекурсивная. Скажем дружно - нахер нужно (нужна) такая эстетика.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727295
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом уже было озвучено мнение - руки нужно от искривления лечить некоторым пейсателям, а не решать проблему заменой языка.

Сложность никуда не девается. В этом проблема. Она прячется новомодным язычком под ковёр, но тут же вылазит в другом месте.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727325
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555, а где что вылазит?
boost::asio, boost::fiber, boost::coroutine2 - работают же
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727345
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухalex55555, а где что вылазит?
boost::asio, boost::fiber, boost::coroutine2 - работают же
В ваших тривиальных случаях - возможно и работают. Но ваши случаи не есть нечто репрезентативное.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727404
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555полудухalex55555, а где что вылазит?
boost::asio, boost::fiber, boost::coroutine2 - работают же
В ваших тривиальных случаях - возможно и работают. Но ваши случаи не есть нечто репрезентативное.
а вы знаете мои случаи?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727551
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудуха вы знаете мои случаи?
Я прекрасно их представляю по вашим заявлениям. Знал бы человек что-то сложное - ему бы не представило труда опровергнуть мои заявления весьма короткими текстами с указанием на примеры сложности. Но в вашем случае за всю тему не было ни одного подобного ответа на любой заданный вам вопрос. То есть вы ничего не знаете о сложности.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727638
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555полудуха вы знаете мои случаи?
Я прекрасно их представляю по вашим заявлениям. Знал бы человек что-то сложное - ему бы не представило труда опровергнуть мои заявления весьма короткими текстами с указанием на примеры сложности.
а о каких ваших "заявлениях" речь? Я вижу 2 поста ДО моего вопроса, в одном из которых вы заявили про сложность, про которую я и спросил.
Из вышепроцитированного потока сознания вытекает, что надо было не спрашивать, а самому ответить про сложности с примерами

авторНо в вашем случае за всю тему не было ни одного подобного ответа на любой заданный вам вопрос. То есть вы ничего не знаете о сложности.
тут по всей теме мои ответы и на первых 2х страницах куча текста + видео
там есть любые ответы.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727812
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухтам есть любые ответы.
Вы правы, там же есть ответы и о ваших познаниях.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39727959
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы сначала со своими познаниями разберитесь
я то никогда и не претендовал на гуру асинхронной многопоточности
вам задали вполне конкретный вопрос, а вы тут балабольню развели
авторalex55555, а где что вылазит?
вопрос на это заявление:
alex55555В целом уже было озвучено мнение - руки нужно от искривления лечить некоторым пейсателям, а не решать проблему заменой языка.

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

Кто хочет ИИ и НС - может поднять свой топик.
Модератор: Почистил. Просьба тему ИИ больше не упоминать в этом топике.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39748755
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[spoiler] ещё одно must seeне забываем юзать субтитры
YouTube Video
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39756511
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый mayton,
mayton9) Некоторые архитектурные ошибки строителей РСУБД которые привели к утилизации процессорных ресурсов на бесполезной
синхронизации там где этого можно было избежать вообще (статья Майкла Стоунбрейкера).Ссылку на статью укажите пожалуста.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39756515
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirudomУважаемый mayton,
mayton9) Некоторые архитектурные ошибки строителей РСУБД которые привели к утилизации процессорных ресурсов на бесполезной
синхронизации там где этого можно было избежать вообще (статья Майкла Стоунбрейкера).Ссылку на статью укажите пожалуста.
Я сейчас точно не могу найти цитату. Но вот кажется эта статья.

http://citforum.ck.ua/database/articles/end_of_arch_era/
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39761917
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПривет друзья.

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

Некоторые поинты:

1) Отказ от программирования потока Thread как от единицы параллелизма в бизнес приложениях. Предполагается что event-driven более эффектичен чем масоовые "сидения" потоков в "мониторах".
2) Использование асинхронного вызова (async-call, callable, future, promise) в тех случаях когда это возможно.
3) Пересмотр архитектуры Thread с использованием Fiber (пример project Loom). Кооперативность снова в деле. Continuations (под другим названием).
4) Использование актора (обычно в совокупности с очередями и легковесными потоками). (Akka). Неблокирующие операции. Дешевизна ресурсов. Один нативный поток ОС обслуживает сотни акторов.
5) Использование корутины (coroutines). Использование уступчивого return (yield) (C#,Python) для организации сложных итераторов и генераторов.
6) Функциональный подход в части декомпозиции циклов (for-while) в рекурсии (Erlang) где это (теоретически)
даёт возможность гибкого управления кооперативной мультипоточности.
7) Последние экономические тренды в области строительства ЦОД. Отказ от покупки крупных серверов и предпочтение
облаков. Микросервисы.
8) Специальные языки где асинхронный I/O выдвинут как feature (Node.JS). Языки - где корутина - фича. Go(goroutine).
9) Некоторые архитектурные ошибки строителей РСУБД которые привели к утилизации процессорных ресурсов на бесполезной
синхронизации там где этого можно было избежать вообще (статья Майкла Стоунбрейкера).

Пруфы приводить не буду. Топик - просто является неким облаком тегов или смыслов которые я предлагаю обсудить.
Если я где-то ошибся - и классифицировал понятия не так - прошу прощения. Я также мог ошибится в связи ЯП и фич. Sorry.
Но надеюсь общий смысл будет ясен.

P.S. Убежден что поток как единица разработки совершенно необходим в вычислительных задачах с HighLoad-CPU
нагрузкой. Особенно где длительное время нет взаимодействия с внешним миром. Есть только взаимодействие АЛУ и memory
канала. Но такие задачи достаточно специфичны и в бизнес-приложениях их не много.

Какова будет мультипоточность в будущем?

Прошу ваши каменты. Должно быть упрощение разработки. Должно быть.
Уважаемый mayton,
надо рассматривать три взаимосвязанные вещи, но которые имеют четкие границы:
1. доменную модель и возможность ( необходимость ) ее распараллеливания. И синхронизацию данных.
2. инструмент для работы: язык, фрамеворк. Позволяет ли. Заложено ли.
3. персонал, который имеет скилсы для решения и использования первых двух.

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

С необходимостью распараллеливания вы опоздали на пол-века. Она (необходимость) уже есть.

Фреймворк? При чем здесь он? Я топик поднимал о базовых примитивах синхронизации которые стоят
на уровень ниже фрейворка.

При чем здесь персонал? Мы здесь не обсуждаем вопросы рекрутинга или обучения.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39761985
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКакова будет мультипоточность в будущем?
Прошу ваши каменты. Ваш вопрос, что - уже устарел, ну когда Вы его задавали ?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39761988
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы невнимательно читаете первый пост.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39762018
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВы невнимательно читаете первый пост.Уважаемый mayton, что из Вашего первого поста я понял не правильно ?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39762023
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круг замкнулся.

Давайте вернёмся в начало. Я писал прогнозы. Прогнозы на то как будет выглядеть многопоточность.

Вы квотировали все мои пункты и дали весьма отвлеченные комментарии которые я не могу привязать к моим.

Грубо говоря мы с вами говорим на очень разные темы. Давайте вы конкретизируете ваши вопросы в привязке к моим пунктам.
...
Рейтинг: 0 / 0
25 сообщений из 149, страница 4 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная будущая мультипоточность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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