[Moscow.pm] Распараллелить

Daniel Podolsky onokonem на gmail.com
Вт Окт 16 11:32:27 PDT 2012


> Про асинхронные либы сказали уже много, но либ для работы с форком
> вроде не было.
Чет не могу больше молчать :)

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

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

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

Остались треды. Из всех сред исполнения тредов на сегодняшний день
лучшая - JVM. Это я так думаю :)

JVM сааааааавсем не означает сегодня java. масса вполне продвинутых
языков компилируются в jvm bytecode и исполняются на ней. к примеру -
Scala. Или Clojure. Или Kotlin.

Есть смысл обратить пристальное внимание на Clojure  - это диалект
Lisp. На него параллельная обработка ложится очень хорошо...

Как-то так.


Подробная информация о списке рассылки Moscow-pm