?

Log in

No account? Create an account

To Chaos Fishes

« previous entry | next entry »
Feb. 17th, 2008 | 12:45 am

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

Но вечно так продолжаться не может. И рано или поздно должно появиться то, что впускает этот хаос в себя и способно не отграничиваться от него, но быть его частью. Раз это океан, то его жители - Рыбы Хаоса. И за ними - будущее. Но какими они будут? И смогут ли люди их создавать и использовать?

Link | Leave a comment |

Comments {23}

Egor Egorov

(no subject)

from: egorfine
date: Feb. 16th, 2008 11:09 pm (UTC)
Link

ты что курил?

Reply | Thread

netch

(no subject)

from: netch
date: Feb. 16th, 2008 11:19 pm (UTC)
Link

Сначала - программу на питоне, в которой при достижении некоторой нагрузки начал вызываться __del__ на некоторые объекты из непредусмотренной ветки (в результате обычного GC), что сопровождалось феерическими эффектами (в технике это были бы треск, искры и дым от подачи 380 вместо 220). Ну грабли в принципе известны (сочетание GC и немедленной финализации уже слегка диверсия, но тут задача обязывает; но в сочетании с мультитредингом результат был совсем неожиданный).

Сейчас - её же, когда начались невразумительные тормоза в таких местах, куда и отладку толком не вставишь (или она съест гиги за день).

Reply | Parent | Thread

Egor Egorov

(no subject)

from: egorfine
date: Feb. 16th, 2008 11:22 pm (UTC)
Link

вот и нефиг курить всякую гадость

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 07:02 am (UTC)
Link

Егор, ты же вроде христианин. Зачем до сих пор используешь травяные намёки, если просто чего-то не понимаешь?

Reply | Parent | Thread

Egor Egorov

(no subject)

from: egorfine
date: Feb. 17th, 2008 01:34 pm (UTC)
Link

как раз я понимаю, и поэтому рекомендую тебе не заморачиваться.

Reply | Parent | Thread

Aleksey Salow

(no subject)

from: w00dy
date: Feb. 17th, 2008 01:04 am (UTC)
Link

В питоне жеж вроде как нет тру мультитрединга. Или я ошибаюсь?

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 07:03 am (UTC)
Link

Тру или не тру, а таки проявляется.

Reply | Parent | Thread

Всеволод Соловьёв

(no subject)

from: murkt
date: Feb. 17th, 2008 09:36 am (UTC)
Link

Есть, просто в CPython не может одновременно (я имею в виду именно одновременно в реальном времени) выполняться в двух тредах питоновский код. Сишный - может, если отпустит GIL. А если ядро одно, то разницы нет - Питон, не Питон, одновременно ничего не может выполняться ;) А возможность напакостить всё равно есть.

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Mar. 24th, 2008 10:26 am (UTC)
Link

> просто в CPython не может одновременно (я имею в виду именно одновременно в реальном времени) выполняться в двух тредах питоновский код.

Кстати, а в каком - может? Jython и IronPython не предлагать, их уже знаю, но слишком фундаментально. Мне тут предложили Stackless, но насколько я вижу доку - там с этим ещё хуже.

Reply | Parent | Thread

Всеволод Соловьёв

(no subject)

from: murkt
date: Mar. 24th, 2008 01:13 pm (UTC)
Link

Я не знаю, как с многопоточностью в PyPy - там ведь нормальный сборщик мусора, а не счётчик ссылок. Но Питонов больше и нет - CPython, Jython, IronPython, PyPy. Stackless решает немного не ту задачу - нативные треды там никто не трогал, то же что и в обычном CPython.

Reply | Parent | Thread

Ingang

(no subject)

from: jrmm
date: Mar. 24th, 2008 10:03 am (UTC)
Link

хочу в киев ;)

Reply | Parent | Thread

Egor Egorov

(no subject)

from: egorfine
date: Mar. 24th, 2008 10:05 am (UTC)
Link

лопата

Reply | Parent | Thread

🦉

(no subject)

from: salas
date: Feb. 17th, 2008 12:15 am (UTC)
Link

Планктон Хаоса — сетевые черви?

Reply | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 12:40 pm (UTC)
Link

В каком смысле сетевые?

Reply | Parent | Thread

🦉

(no subject)

from: salas
date: Feb. 17th, 2008 01:57 pm (UTC)
Link

Только в том, что не биологические.:)

Reply | Parent | Thread

Lev Serebryakov

(no subject)

from: blacklion
date: Feb. 17th, 2008 09:33 am (UTC)
Link

use erlang, Luke!

Reply | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 12:39 pm (UTC)
Link

Это то же линейное мышление, но в профиль.

Reply | Parent | Thread

Lev Serebryakov

(no subject)

from: blacklion
date: Feb. 17th, 2008 12:43 pm (UTC)
Link

Но хотя бы от многих технических проблем типа “GC не в том потоке” будешь застрахован

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 12:46 pm (UTC)
Link

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

Reply | Parent | Thread

Lev Serebryakov

(no subject)

from: blacklion
date: Feb. 17th, 2008 12:49 pm (UTC)
Link

Так как этот язык уже более 10 лет используется в сложных распределённых системах, я очень удивлюсь, если в его OTP (по сути — стандартной библиотеке) нет менеджера транзакций.

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Feb. 17th, 2008 01:40 pm (UTC)
Link

Нету. Потому что его не может быть для общего случая.
Есть mnesia. Которая решает относительно простые случаи и держит данные.

Reply | Parent | Thread

Lev Serebryakov

(no subject)

from: blacklion
date: Feb. 17th, 2008 01:41 pm (UTC)
Link

Для общего случая может быть конструктор удобный.

Reply | Parent | Thread

(no subject)

from: muwlgr
date: Feb. 18th, 2008 09:09 pm (UTC)
Link

Это всё фон-Нейман. Оказался слаб, не сумел убедить маркетоидов, что его модель годилась только для однопроцессорного случая.

Как говорил я, участвуя в одном проектике, "а вот если это всё тестировать на многопроцессорной системе, где есть шанс поймать ИСТИННЫЙ race condition..." :>

Reply | Thread