Effectivement, il est difficile d'estimer à priori le coût de la fonction 'f' et donc le comparer à celui d'une création de threads, etc. En revanche, la programmation fonctionnelle permet effectivement d'avoir une transparence totale des APIs par rapport au parallélisme. Si le développeur décide que 'f' est implémenté par un thread différent du thread principal, l'API ne changera pas. En erlang, par exemple, c'est un usage assez courant de masquer le passage de message vers les serveurs par des appels de fonctions qui seront les seules connues de l'utilisateur.
Je ne sais pas si le terme est juste, mais je dirais que la programmation fonctionnelle offre une parallélisation "implicite" qui permet de la parallélisation automatique. Entre les 2, on peut avoir des différences de performances, difficiles à évaluer, mais au moins pas d'erreur d'algorithme (le résultat sera correct).
"Liberté, Sécurité et Responsabilité sont les trois pointes d'un impossible triangle" Isabelle Autissier
[^] # Re: Parallélisation automatique ?
Posté par Jean Parpaillon . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 3.
Effectivement, il est difficile d'estimer à priori le coût de la fonction 'f' et donc le comparer à celui d'une création de threads, etc. En revanche, la programmation fonctionnelle permet effectivement d'avoir une transparence totale des APIs par rapport au parallélisme. Si le développeur décide que 'f' est implémenté par un thread différent du thread principal, l'API ne changera pas. En erlang, par exemple, c'est un usage assez courant de masquer le passage de message vers les serveurs par des appels de fonctions qui seront les seules connues de l'utilisateur.
Je ne sais pas si le terme est juste, mais je dirais que la programmation fonctionnelle offre une parallélisation "implicite" qui permet de la parallélisation automatique. Entre les 2, on peut avoir des différences de performances, difficiles à évaluer, mais au moins pas d'erreur d'algorithme (le résultat sera correct).
"Liberté, Sécurité et Responsabilité sont les trois pointes d'un impossible triangle" Isabelle Autissier