IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : mars 2011
    Messages : 51
    Points : 98
    Points
    98
    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.

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 967
    Points : 1 339
    Points
    1 339
    Par défaut
    Je connais mal les TBB. Je lis dans leur FAQ :

    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.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : mars 2011
    Messages : 51
    Points : 98
    Points
    98
    Par défaut
    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.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/06/2014, 17h09
  2. Comment utiliser TBB ? (Intel Thread Building Blocks)
    Par LostInGeekLand dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 20/03/2008, 15h27
  3. Réponses: 11
    Dernier message: 02/08/2007, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo