[Perl] Perl et traitements (nativement?) multi-cœur

Gilles Polart-Donat gpolart at free.fr
Lun 5 Déc 13:53:41 CET 2016


Salut Sylvain,

L'artillerie lourde, c'est Hadoop (HDFS + Yarn) qui te permet de lancer et d'orchestrer des scripts dans des 
"conteneurs", chaque script gérant son bout de job. Par contre il faut que tes données soient préparées pour cela. Par 
exemple en ayant plein de fichiers,ou un serveur de données qui peut découper le traitement (ce qui permet d'éviter HDFS).

Mais la réponse est à coté de la question car ce n'est pas un module Perl à proprement parlé.

Il y a le même problème en Python avec des trucs comme scikit-learn qui souffrent de difficultés pour la parallélisation 
et pour la "scalabilité" en mémoire (comment découper une grosse matrice pour le traitement sur plusieurs machines).

Et j'ai trouvé cela en se basant sur le concept de RDD de Spark (pas testé avec Perl) :

https://wiki.ufal.ms.mff.cuni.cz/spark:recipes:using-perl-via-pipes

A+


Le 05/12/2016 à 12:58, Sylvain Lhullier a écrit :
> Bonjour,
>
> Je m'interroge sur la capacité de Perl à utiliser les différents cœurs processeurs
> disponibles sur un ordinateur pour paralléliser les traitements.
> Je connais (et utilise) le module threads. Je connais également Parallel::ForkManager.
> Mais ma question ne concerne pas ce genre de choses.
>
> Je souhaite savoir s'il est envisagé/envisageable qu'une simple commande
> @t = map { $_ * 2 } @t;
> appliquée sur un gros tableau puisse être traitée en parallèle par différents cœurs.
> On pourrait evisager que le traitement soit découpé et effectué en plusieurs morceaux.
> Mais au delà de mon exemple simple, il existe certainement plein d'action réalisées par Perl
> qui seraient susceptibles d'être traitées en parallèle.
>
> Depuis quelques années, des langages apparaissent qui proposent nativement ce type de choses.
>
> Si ce n'est pas nativement prévu par le langage Perl, est-ce que vous connaissez des modules
> qui m'éviterait de devoir faire des threads et gérer à la main les problèmes de découpage
> de la tâche et de convergence finale ?
>
> Merci à vous,
>
> Librement,
>



Plus d'informations sur la liste de diffusion Perl