typestar

Paralelismo de datos con rayon

9 pasos en 4 series de Rust.

Rayon convierte una cadena de iteradores secuencial en una paralela cambiando iter por par_iter, y el sistema de tipos verifica que eso sea realmente seguro. Esa es casi toda la idea.

Iteradores paralelos, reducciones, y luego repartir trabajo con join y scope para los casos que no son solo un map sobre una colección. Nueve pasos, y es la recompensa más inmediata de las reglas de propiedad de Rust.

Empieza este tour

Iteradores paralelos

Reducciones

  • Reduce y foldLa reducción paralela necesita un valor identidad y una operación asociativa.
  • Contar en paraleloFusionar mapas por hilo gana a pelear por un solo lock compartido.

Repartir trabajo

  • rayon::joinjoin corre dos closures que pueden ir en paralelo — la base de divide y vencerás.
  • Chunks en paraleloSi el trabajo por elemento es barato, agrúpalo: una tarea por chunk gana a una por elemento.
  • Puentear un iterador en seriepar_bridge paraleliza cualquier iterador, incluso uno que no puede dividirse.

Bis

  • par_wordcount.rsFrecuencias de palabras sobre un corpus, en serie y en paralelo, con los tiempos comparados.

Los otros tours de Rust