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

Mons Anderson mons на cpan.org
Вт Окт 16 07:51:45 PDT 2012


2012/10/16 ksvs <ksvs1996 на ymail.com>

> Можно попробовать, как кто-то мне говорил, асинхронные библиотеки. А
> какие? Их так много на CPAN.
>
> AnyEvent::HTTP, Mojo::UserAgent


> Но, ведь кроме получения данных надо их обрабатывать.
> Хочется, чтобы все ядра процессора работали, а не одно.
> Поэтому надо использовать fork.
>

Можно сделать AnyEvent::HTTP + AnyEvent::Worker

Да и базы данных все синхронные, кажется.
>

Синхронность/асинхронность бывает разной.

Бывает синхронный протокол, синхронная реализация.
Пример: HTTP + LWP
Бывает синхронный протокол, асинхронная реализация.
Пример: HTTP + AnyEvent::HTTP
Бывает асинхронный протокол, синхронная реализация.
Пример: XMPP + Net::XMPP
Бывает асинхронный протокол, асинхронная реализация.
Пример: XMPP + AnyEvent::XMPP

В большинстве случаев не важно как устроено то, с чем вы общаетесь, важно
как именно вы общаетесь.

Или асинхронные библиотеки были нужны в прошлом, когда интернет был
> медленный и процессоры с одним ядром?
>

Скорее наоборот. Когда нагрузки были маленькие можно было позволить 1
процессу обслуживать одного пользователя. Сейчас один процесс на одном ядре
должен обслуживать десятки и сотни тысяч пользователей одновременно


> А сейчас изучение затормозилось. Не могу найти хороший модуль, для общения
> с дочерними процессами.
> Есть модуля для распараллеливания задач по fork, но они все примитивные.
> Хочется, чтобы дочерний процесс мог у родителя запросить дополнительные
> данные, если в этом возникнет необходимость,
> вернуть промежуточные результаты и прочие.
>

Про общения между процессами почитайте-ка лучше доку perlipc


> В каком модуле на СПАНЕ это есть? А есть, чтобы можно было не только
> задействовать все ядра CPU, а и несколько компьютеров?
>

для нескольких компов - AnyEvent::MP



-- 
Best wishes,
Vladimir V. Perepelitsa aka Mons Anderson
<inthrax на gmail.com>, <mons на cpan.org>
http://github.com/Mons
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121016/2c93e959/attachment-0001.html>


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