Что является лучшим модулем для параллельной обработки в Perl?

Какой лучший модуль для параллельного процесса в Perl? Я никогда не делал параллельной обработки в Perl.

Что такое хороший модуль Perl для параллельного процесса, который будет использоваться в доступе и рассылке БД?

Я посмотрел в модуле Parallel:: ForkManager. Любая идея ценится.

Ответы

Ответ 1

Parallel::ForkManager, как говорит POD, может ограничить количество процессов, отколовшихся. Затем вы можете использовать детей для выполнения любой работы. Я помню, как использовал модуль для загрузчика.

Ответ 2

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

Для некоторых задач есть также специализированные модули - например LWP::Parallel::UserAgent, что в основном означает - вы должны дать нам гораздо больше информации о что вы хотите достичь, чтобы получить наилучший ответ.

Ответ 3

В CPAN размещен многоядерный движок для Perl (MCE).

http://code.google.com/p/many-core-engine-perl/

https://metacpan.org/module/MCE

MCE поставляется с различными примерами, демонстрирующими сценарии использования в реальных ситуациях для распараллеливания чего-либо столь же маленького, как cat (попробуйте с -n) для greping для шаблонов и агрегации слов.

barrier_sync.pl
          A barrier sync demonstration.

cat.pl    Concatenation script, similar to the cat binary.
egrep.pl  Egrep script, similar to the egrep binary.
wc.pl     Word count script, similar to the wc binary.

findnull.pl
          A parallel driven script to report lines containing
          null fields. It is many times faster than the binary
          egrep command. Try against a large file containing
          very long lines.

flow_model.pl
          Demonstrates MCE::Flow, MCE::Queue, and MCE->gather.

foreach.pl, forseq.pl, forchunk.pl
          These take the same sqrt example from Parallel::Loops
          and measures the overhead of the engine. The number
          indicates the size of @input which can be submitted
          and results displayed in 1 second.

          Parallel::Loops:     600  Forking each @input is expensive
          MCE foreach....:  34,000  Sends result after each @input
          MCE forseq.....:  70,000  Loops through sequence of numbers
          MCE forchunk...: 480,000  Chunking reduces overhead

interval.pl
          Demonstration of the interval option appearing in MCE 1.5.

matmult/matmult_base.pl, matmult_mce.pl, strassen_mce.pl
          Various matrix multiplication demonstrations benchmarking
          PDL, PDL + MCE, as well as parallelizing Strassen
          divide-and-conquer algorithm. Also included are 2 plain
          Perl examples.

scaling_pings.pl
          Perform ping test and report back failing IPs to
          standard output.

seq_demo.pl
          A demonstration of the new sequence option appearing
          in MCE 1.3. Run with seq_demo.pl | sort

tbray/wf_mce1.pl, wf_mce2.pl, wf_mce3.pl
          An implementation of wide finder utilizing MCE.
          As fast as MMAP IO when file resides in OS FS cache.
          2x ~ 3x faster when reading directly from disk.