Précédent   Forum des professionnels en informatique > Autres langages > Langages fonctionnels > F#
F# Forum d'entraide sur la programmation en langage fonctionnel F#
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 17h01   #1
Membre du Club
 
Homme Franck
Inscription : mars 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Franck
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : mars 2011
Messages : 27
Points : 47
Points : 47
Par défaut F# et les Thread Building Blocks d'Intel

Bonjour,

J'ai une question, peut-être un peu naïve, depuis l'introduction des bibliothèques TBB pour les processeurs à coeurs multiples.

Elle pourrait s'appliquer à tous les languages basés sur une machine virtuelle qui se veut compatible entre systèmes informatiques, donc aussi à Java, C# ou OCaml. Pour OCaml, ou F#, elle me semble à nouveau plus critique du fait de l'intéret pour le calcul scientifique de ces langages.

Voilà : si les TBB apportent, d'après le site d'Intel, un plus par rapport aux threads pour les traitements massifs, ils impliquent de faire remonter les spécificités de l'architecture du processeur au niveau de l'application elle-même, et plus seulement dans l'optimisation de la machine virtuelle.

Ce que j'ai vu dans un téléchargement gratuit de la bibliothèque TBB d'Intel m'a donné l'impression que faire remonter cette forme de parallélisme au niveau de l'application, en "masquant" les détails d'implémentation liés à l'architecture Intel, en tuait beaucoup le potentiel.

Pensez-vous que les coeurs multiples peuvent bloquer l'évolution des langages à base de machine virtuelle, qui ne pourront bénéficier de cette nouvelle puissance de calcul (pour autant que mon impression soit fondée) ?

Merci.
Franck Z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 19h41   #2
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 944
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 944
Points : 1 080
Points : 1 080
Je connais mal les TBB. Je lis dans leur FAQ :

Citation:
Why did you offer TBB on C/C++ instead of say C# or Java?

We saw the largest immediate need and usefulness in C++. C++ is the hot bed for concurrent application development. It supplies the underpinnings of the majority of programming, whether directly or indirectly. .NET and Java get a great deal of concurrency through concurrent tasks, which serve the current needs of customers. That being said, we are now learning more about the applicability of and need for TBB on .NET, and encourage feedback on the possibility of extending this project to other languages in the future. Right now, our focus is on C++ and making that a big success. Other languages will come later for us.
En survolant le site, je me rends compte que leur bibliothèque repose sur une thread pool et fournit des algorithmes de haut-niveau pour le parallélisme (parallel_for, etc.).

Il y a déjà ça en F#, en standard. Il existe un bon support pour la programmation parallèle, facile d'utilisation. C'est .NET qui gère la thread-pool et je pense qu'on peut leur faire confiance sur les performances. F# fournit des fonctions comme Array.Parallel.iter, Array.Parallel.collect, etc. Le parallélisme se combine aussi bien avec du code asynchrone (voir l'objet async).

J'attends de voir leur version de TBB pour .NET pour me faire une idée plus précise et voir ce que ça apporte exactement (l'intérêt pour le C++ me semble évident). En attendant, je pense que F# répond suffisamment bien aux besoins dans ce domaine.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 01h15   #3
Membre du Club
 
Homme Franck
Inscription : mars 2011
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme Franck
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : mars 2011
Messages : 27
Points : 47
Points : 47
Merci beaucoup. J'avais téléchargé F# juste avant de poser ma question, et dans la mesure où on reste sur .NET 4.0 et les machines récentes sous Windows, ça a l'air en effet très intéressant et plus accessible que la bibliothèque TBB.

J'ai l'impression à lire la description de la nouvelle TBB 3.0 qu'elle est maintenant accessible aux autres plate-formes et compilateurs (dont gcc), grâce à (ce que je crois comprendre être) une nouvelle norme C++ 0x qui inclut le lambda calcul.

J'imagine qu'OCaml emboîtera le pas sous peu... si ce n'est déjà fait. La couche "traitements", c'est quand même le terrain de jeu privilégié de ces langages et des nouveaux processeurs multi-coeurs.

Franck Z est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h49.


 
 
 
 
Partenaires

Hébergement Web