2009-07-06 14 views

Respuesta

13

Parallel::ForkManager, como dice el POD, puede limitar el número de procesos bifurcados. Luego podría usar a los niños para hacer cualquier trabajo. Recuerdo usar el módulo para un programa de descarga.

12

Bueno, todo depende de un caso particular. Dependiendo de lo que exactamente necesita para alcanzar, es posible que mejor con uno de los siguientes:

Para algunas tareas también existen módulos especializados - para ejemplo LWP::Parallel::UserAgent, lo que básicamente significa que tiene que darnos muchos más detalles sobre lo que quiere lograr para obtener la mejor respuesta posible.

7

Motor de muchos núcleos para Perl (MCE) ha sido publicado en CPAN.

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

https://metacpan.org/module/MCE

MCE viene con varios ejemplos que muestran escenarios de casos de uso del mundo real en la paralelización de algo tan pequeño como gato (tratar con -n) a greping de patrones y la agregación de recuento de palabras.

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. 
Cuestiones relacionadas