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

Andrei andrei.protasovitski на gmail.com
Ср Окт 17 02:05:04 PDT 2012


17 октября 2012 г., 10:38 пользователь ksvs <ksvs1996 на ymail.com> написал:

> То есть оптимальный вариант - это запускать столько процессов, сколько
> ядер.
>

Оптимальный вариант -- решать конкретную задачу. Парсишь Moscsow.pm --
замечательно. Медленно? Оптимизируй. Всё равно медленно? Распараллель.
Упёрся в ограничение памяти? Оптимизируй использование памяти. И т.д.

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


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

ИМХО, конечно.


> Делать общение между ними при помощи AnyEvent::MP, а внутри каждого
> использовать асинхронные штучки на основе AnyEvent (например тот-же
> AnyEvent::HTTP).
>
> Кстати, обнаружил у того-же автора модуль Coro::MP. Выглядит проще.
>
> Ой, что я увидел!
> http://cpanratings.perl.org/dist/AnyEvent-MP
> Там говориться: "Don't use any modules by Marc Lehmann..."
> Что это?! Авторы AnyEvent и IO::Async ругаются между собой?
> Как-то такие явления не радуют...
>
>   ------------------------------
> *From:* Daniel Podolsky <onokonem на gmail.com>
>
> *To:* Moscow.pm group <moscow-pm на pm.org>
> *Sent:* Tuesday, 16 October 2012, 21:32
> *Subject:* Re: [Moscow.pm] Распараллелить
>
> > Про асинхронные либы сказали уже много, но либ для работы с форком
> > вроде не было.
> Чет не могу больше молчать :)
>
> Смотрите. На сегодняшнем железе многопроцессная модель требует больших
> процессорных ресурсов, чем многотредная или событийная, в связи с
> высокими расходами на переключение контекста.
>
> Расходы эти низкими не были никогда, но сейчас все остальное железо
> подтянулось настолько, что сохранение-восттановление регистров и
> очистка-загрузка процессорного кеша стала занимать заметное время в
> общем зачете.
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
Andrei Protasovitski
< andrei[dot]protasovitski[at]gmail[dot]com >
Diemen, Netherlands
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121017/da167cce/attachment-0001.html>


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