GHC implémente un modèle de threads qui répartit des threads utilisateurs ultra-léger sur des threads systèmes profitant du multicore.
Pour se faire les dents :
http://cgi.cse.unsw.edu.au/~dons/blog/2007/11/29
Ce qui est utilisé dans cet article est un exemple (très simple) de l'utilisation de stratégies :
http://www.macs.hw.ac.uk/~dsg/gph/pa...trategies.html
Une autre méthode sympathique pour ajouter du parallélisme à moindre coût : Data Parallel Haskell
http://haskell.org/haskellwiki/GHC/D...rallel_Haskell
(DPH est encore assez instable et en progrès, même s'il y a actuellement un projet GSoC pour écrire un moteur physique avec DPH)
Côté concurrence (plutôt que parallélisme), les transactions mémoire logicielles (STM) sont un autre sujet dans lequel Haskell a été pionnier (et dans lequel il conserve certains avantages de sûreté et d'élégance) :
http://research.microsoft.com/Users/.../stm/index.htm
La prochaine version de GHC (cet automne) aura également un GC parallèle ce qui devrait améliorer les performances des codes parallèle allouant généreusement.
--
Jedaï
Partager