Mногопоточность: C++ vs Erlang vs другие
От: Mamut Швеция http://dmitriid.com
Дата: 02.06.15 10:18
Оценка: :))
M>>Можно начать с вопроса: Когда там потоки в С++ на уровне языка/стандартных библиотек появились?

А>"Когда-то" и Путин сперматозоидом был.

А>Не уходим от вопроса.
А>Итак, что там у С++ за траблы с многопоточной невнятностью? И какие языки размалывают его по внятности?

Я не ухожу от вопроса. Для удобного использования многоядерности и вообще распараллеливания чего бы то ни было, нужно иметь, по сути, одну вещь: поддержку этого языком. Когда все, что язык предоставляет — это появившиеся в 2011-м стандарте thread'ы, то далеко на нем не уедешь. Во всяком случае пока умные люди не напишут вокруг всего этого костыли и библиотеки. Потому что первый же залетный mutex.lock убъет любую многопоточность и многоядерность.


По внятности C++ (и кого бы то ни было) размалывает только Erlang. Пока другие тольк-только подбираются к концепциям, которые были в нем уже в начале 90-х, они уже думают о том, как правильно работать на десятках тысяч ядер, и оптимизируют работу системы для грамотной работы с переключением контекстов в CPU и cache miss.

02.06.15 18:30: Ветка выделена из темы закон Мура всё
Автор: petr_t
Дата: 29.05.15
— Mamut


dmitriid.comGitHubLinkedIn
Re: Mногопоточность: C++ vs Erlang vs другие
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 02.06.15 10:57
Оценка: +5
Здравствуйте, Mamut, Вы писали:

M>По внятности C++ (и кого бы то ни было) размалывает только Erlang. Пока другие тольк-только подбираются к концепциям, которые были в нем уже в начале 90-х, они уже думают о том, как правильно работать на десятках тысяч ядер, и оптимизируют работу системы для грамотной работы с переключением контекстов в CPU и cache miss.


Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?
Re[2]: Mногопоточность: C++ vs Erlang vs другие
От: Mamut Швеция http://dmitriid.com
Дата: 02.06.15 15:28
Оценка: +1
M>>По внятности C++ (и кого бы то ни было) размалывает только Erlang. Пока другие тольк-только подбираются к концепциям, которые были в нем уже в начале 90-х, они уже думают о том, как правильно работать на десятках тысяч ядер, и оптимизируют работу системы для грамотной работы с переключением контекстов в CPU и cache miss.

I>Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?


Ты впервые узнал, что популярными становятся совсем не те языки, которые, кажется, должны быть популярными?


dmitriid.comGitHubLinkedIn
Re[3]: Mногопоточность: C++ vs Erlang vs другие
От: WolfHound  
Дата: 02.06.15 16:53
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ты впервые узнал, что популярными становятся совсем не те языки, которые, кажется, должны быть популярными?

А как там, у ерланга с производительностью?
Он уже научился не сливать С++у в десятки раз?
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Mногопоточность: C++ vs Erlang vs другие
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 02.06.15 18:14
Оценка: +1
Здравствуйте, Mamut, Вы писали:

I>>Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?


M>Ты впервые узнал, что популярными становятся совсем не те языки, которые, кажется, должны быть популярными?


Ключевое слово у тебя — кажется. Тут как с людьми. Слишком часто сильно способные и трудолюбивые еле еле сводят концы с концами
Re[4]: Mногопоточность: C++ vs Erlang vs другие
От: Mamut Швеция http://dmitriid.com
Дата: 03.06.15 10:01
Оценка: -1 :))) :))) :))
M>>Ты впервые узнал, что популярными становятся совсем не те языки, которые, кажется, должны быть популярными?
WH>А как там, у ерланга с производительностью?
WH>Он уже научился не сливать С++у в десятки раз?

Что там с Немерле, он вообще появился в живом виде хоть где-то?


dmitriid.comGitHubLinkedIn
Re[4]: Mногопоточность: C++ vs Erlang vs другие
От: Mamut Швеция http://dmitriid.com
Дата: 03.06.15 10:02
Оценка:
I>>>Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?

M>>Ты впервые узнал, что популярными становятся совсем не те языки, которые, кажется, должны быть популярными?


I>Ключевое слово у тебя — кажется. Тут как с людьми. Слишком часто сильно способные и трудолюбивые еле еле сводят концы с концами




Кд.чевое тут то, что ты вообще не знаешь о чем говоришь. Но это не страшно. В КСВ можно.


dmitriid.comGitHubLinkedIn
Re[2]: Mногопоточность: C++ vs Erlang vs другие
От: neFormal Россия  
Дата: 03.06.15 10:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?


у него очень узкая ниша и кастрированные возможности по абстрагированию и метаизвращениям.
если утрировать, то выйдет, что это язык ровно для одной задачи — переложить что-то куда-то.
...coding for chaos...
Re[3]: Mногопоточность: C++ vs Erlang vs другие
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.06.15 10:20
Оценка: -1 :)
Здравствуйте, neFormal, Вы писали:
F>если утрировать, то выйдет, что это язык ровно для одной задачи — переложить что-то куда-то.
Зато именно это он, @#$@, делает о@#$@нно быстро.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Mногопоточность: C++ vs Erlang vs другие
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.06.15 10:24
Оценка: :)
Здравствуйте, neFormal, Вы писали:

I>>Ужос. При таких аццких достоинствах эрланг таки болтается на грани стат-погрешности. Что-то не так в датском королевстве. Подскажешь, что именно ?


F>у него очень узкая ниша и кастрированные возможности по абстрагированию и метаизвращениям.

F>если утрировать, то выйдет, что это язык ровно для одной задачи — переложить что-то куда-то.

Дело не в абстрагировании. Что бы внятно работали процессы, эрланг должен иметь максимальный контроль над шедулингом. Что бы этого достичь, он выталкивает тяжелые блокирующие вызовы, коих большинство, в тред-пул а тем временем вызывает очередной процесс.
С одной стороны, это круто, но с другой стороны, классический UI того же виндовса становится на эрланге невозможной задачей, потому что тяжелые блокирующие вызовы, внезапно, вытолкнуть в тред-пул не выйдет, т.к. объекты прибиты гвоздями к конкретному треду.
Теоретически, сделать можно, но для UI нужна особая архитектура, которая ввергнет в ужас любого UI-девелопера.
Re[4]: Mногопоточность: C++ vs Erlang vs другие
От: neFormal Россия  
Дата: 03.06.15 11:42
Оценка:
Здравствуйте, Sinclair, Вы писали:

F>>если утрировать, то выйдет, что это язык ровно для одной задачи — переложить что-то куда-то.

S>Зато именно это он, @#$@, делает о@#$@нно быстро.

но это все умеют.
просто энларг это делает чуть удобней и распределённо.
...coding for chaos...
Re[4]: Mногопоточность: C++ vs Erlang vs другие
От: Аноним931 Германия  
Дата: 03.06.15 11:43
Оценка:
I>Что бы этого достичь, он выталкивает тяжелые блокирующие вызовы, коих большинство, в тред-пул а тем временем вызывает очередной процесс.
Так это же без проблем реализуемо на любом из распространенных языков, или нет?
"Больше 100кмч можно ехать на автобане в любом ряду кроме правого крайнего" (c) pik
"В германии земля в частной собственности" (c) pik
"Закрывать школы, при нулевой смертности среди детей и подростков, это верх глупости" (c) Abalak
Re[4]: Mногопоточность: C++ vs Erlang vs другие
От: neFormal Россия  
Дата: 03.06.15 11:44
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>С одной стороны, это круто, но с другой стороны, классический UI того же виндовса становится на эрланге невозможной задачей, потому что тяжелые блокирующие вызовы, внезапно, вытолкнуть в тред-пул не выйдет, т.к. объекты прибиты гвоздями к конкретному треду.

I>Теоретически, сделать можно, но для UI нужна особая архитектура, которая ввергнет в ужас любого UI-девелопера.

хз, никогда не делал гуёвые приложения на нём.
но не понимаю, откуда там тяжёлые блокирующие вызовы?
...coding for chaos...
Re[5]: Mногопоточность: C++ vs Erlang vs другие
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.06.15 12:12
Оценка:
Здравствуйте, Аноним931, Вы писали:

I>>Что бы этого достичь, он выталкивает тяжелые блокирующие вызовы, коих большинство, в тред-пул а тем временем вызывает очередной процесс.

А>Так это же без проблем реализуемо на любом из распространенных языков, или нет?

Теоретически — да. Нужно всего лишь заврапать все такие вызовы в короутины, прикрутить внятный шедулинг, тред-пул и тд и тд.
Re[5]: Mногопоточность: C++ vs Erlang vs другие
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.06.15 12:23
Оценка:
Здравствуйте, neFormal, Вы писали:

I>>С одной стороны, это круто, но с другой стороны, классический UI того же виндовса становится на эрланге невозможной задачей, потому что тяжелые блокирующие вызовы, внезапно, вытолкнуть в тред-пул не выйдет, т.к. объекты прибиты гвоздями к конкретному треду.

I>>Теоретически, сделать можно, но для UI нужна особая архитектура, которая ввергнет в ужас любого UI-девелопера.

F>хз, никогда не делал гуёвые приложения на нём.

F>но не понимаю, откуда там тяжёлые блокирующие вызовы?

Там это где ? В самом эрланге нет таких вещей. Они есть в ОС. Чем больше тебе надо от этой самой ОС, тем больше нужно приседать. Например, в винде весь UI он вот такой — блокирующие вызовы и очень дорогие.
Условно, если ты захочешь писать под винду на эрланге чтото навроде десктоп приложений. Функция SendMessage — блокирующая. Если адресат слегка задумался, на пол-секунды, ты висишь вместе с ним.
Это значит, что нативный поток будет недоступен для других эрланговских процессов, вместе с SendMessage заснёт и эрланговский шедулер, который запущен из расчета по инстанцу на процессорное ядро.
С такими функциями Эрланг поступает следующим образом — делегирует вызов тредпулу, а сам работает со свободными процессами. Как только SendMessage завершился, эрланг продолжает процесс.
Т.е. фактически Эрланг ведет себя как операционная система, только использует кооперативную многозадачность, а не вытесняющую.
Отредактировано 03.06.2015 12:25 Pauel . Предыдущая версия .
Re[5]: Mногопоточность: C++ vs Erlang vs другие
От: WolfHound  
Дата: 03.06.15 12:41
Оценка: +2 -4 :))
Здравствуйте, Mamut, Вы писали:

M>Что там с Немерле, он вообще появился в живом виде хоть где-то?

Слив засчитан.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Mногопоточность: C++ vs Erlang vs другие
От: Аноним931 Германия  
Дата: 03.06.15 12:47
Оценка:
А>>Так это же без проблем реализуемо на любом из распространенных языков, или нет?
I>Теоретически — да. Нужно всего лишь заврапать все такие вызовы в короутины, прикрутить внятный шедулинг, тред-пул и тд и тд.

Из чего логически следует, что для этого в С++ либо есть готовая свободная либа, либо эффорт настолько мал, что сторонняя либа не нужна и пишется своими силами.
Итак, со сторонней ли либой или со своей, в С++ "выталкивание тяжелых блокирующих вызовов в тред-пул" работает прекрасно. Какие тогда остаются преимущества эрланга перед С++?
"Больше 100кмч можно ехать на автобане в любом ряду кроме правого крайнего" (c) pik
"В германии земля в частной собственности" (c) pik
"Закрывать школы, при нулевой смертности среди детей и подростков, это верх глупости" (c) Abalak
Re: Mногопоточность: C++ vs Erlang vs другие
От: ELazin http://rsdn.ru/forum/prj/6225353.1
Автор: ELazin
Дата: 26.10.15
Дата: 03.06.15 13:09
Оценка: -2
M>Потому что первый же залетный mutex.lock убъет любую многопоточность и многоядерность.

Вот откуда эта боязнь мьютексов и уверенность в том что захват мьюеткса обязательно убьет производительность? Бывают медленные message-ориентированные системы и быстрые системы с кучей мьютексов то тут то там. Можно попробовать какой-нибудь параллельный алгоритм реализовать на Erlang(Akka, чем угодно умеющем акторы) и на мьютексах и общей памяти. Я уверен что смогу на мьютексах уж точно не хуже напедалить (а скорее всего намного лучше).
Re[6]: Mногопоточность: C++ vs Erlang vs другие
От: AlexRK  
Дата: 03.06.15 13:18
Оценка: +3 :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Mamut, Вы писали:


M>>Что там с Немерле, он вообще появился в живом виде хоть где-то?

WH>Слив засчитан.

Слив засчитан.
Re[6]: Mногопоточность: C++ vs Erlang vs другие
От: Mamut Швеция http://dmitriid.com
Дата: 03.06.15 14:10
Оценка:
M>>Что там с Немерле, он вообще появился в живом виде хоть где-то?
WH>Слив засчитан.

Твой? Безусловно. Как всегда, в общем. Приперся в топик с видом «я дАртаньян, а вы тупое необразованное быдло» и говоришь об ортогональных топику вещах.

Так как там мега Немерле и мега Нитра поживают? Топик то про «Многопоточность: C++ vs Erlang vs другие». Ваше еле живое изделие уже хоть к кому-то из них приблизилось? Где-то на радарах регистрируется?


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.