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

Bibliothèques Discussion :

Multithreading - technologies C/C++


Sujet :

Bibliothèques

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 23
    Points
    23
    Par défaut Multithreading - technologies C/C++
    Je cherche depuis quelque temps des informations sur les technologies disponibles pour la programmation parallèle en C/C++. Je connais OpenMP, les pthreads et j'ai vaguement vu MPI. J'ai également trouvé quelques informations sur Intel Threading Building Blocks.

    Par contre, je ne trouve pas un bon document listant les avantages/désavantages des technologies disponibles sur les marchés.

    Pourriez-vous m'orienter un peu dans les recherches ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Tu peux lire ça
    http://74.53.180.2/~thorpe/parallelism08_cpp_mm.pdf

    C'est incomplet et partisan, mais y'a quelques infos.
    Boost ftw

  3. #3
    Membre régulier Avatar de krieg
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    je le dit tout de suite cela risque d'etre un peu long mais bon tant pis.
    Pour parallèles un algorithme, avec le langage C++,
    il y a plusieurs méthodes je ne serai pas exhaustif.

    La premiere méthode est les threads et processus.
    Je ne te cacherai pas que cette méthode n'a rien d'automatique.
    Tu devras réaliser toute la parallèlisation à la main.
    les threads permetterons de parallèliser sur une machine
    à mémoire partagé.
    Au contraire les processus te permettrons de réaliser une parallèlisation
    sur plusieurs machines.
    Bon je ne pense pas que cette méthode t'intéresse,
    car il existe des librairies que facilite le travail.

    Les librairies openMP et MPI aide à la parallèlisation.
    OpenMP permet de réaliser une parallèlisation sur un machine à mémoire partagé de façon automatique. ( tu ajoute des #pragma dans le code
    pour les endroits à parallèliser)
    Elle est automatique dans le sens où elle gére les dépendances
    et s'adapte au nombre de processeur.
    MPI permet de simplifier l'envoi et la réception de message
    entre les processus, et facilite la synchronisation entre les processus.

    Un autre style de librairie existe, tu vas me demander pourquoi?
    les librairies précédentes en font déja beaucoup.
    Mais leur efficacité est limité.
    Pour OpenMP, si un processeur de de ta machine est utilisé, OpenMP
    ne prendra pas cela en compte dans la parallèlisation.
    MPI n'est pas si facile à utiliser et beaucoup de choses sont à réaliser
    à la main.

    Pour concurrencer OpenMP, des bibliothèques ont vu le jour.
    par exemple Cilk, l'une des premières bibliothèques de parallèlisation
    utilisant le vol de travail. Cette méthode sortie tout droit des laboratoires
    de recherche, réalise une parallèlisation automatique qui s'adapte
    à la charge de la machine. ( elle permet aussi de gérer des dépendances plus complexe.)
    Par la suite intel à sortie ça bibliothèque TBB pour que les programmeurs
    puisse facilement utilisé tous la puissance des processeurs.

    Enfin celle que je n'oublierai pas de citer la librairie KAAPI,
    qui utilise la même méthode que Cilk, mais elle ne se limite pas aux machines à mémoires partagées, elle permet d'utiliser plusieurs clusters
    de machines avec de bonnes performances. Par contre, son API est plus
    complexe que celle de Cilk et TBB.

    Si tu as des questions plus précises je pourrai t'y répondre normalement.

    PS: j'oubliai pour ceux qui souhait faire du calcul haute performance en java (si si ça existe) il y a la bibliothèque SATIN (concurrente de Kaapi).
    Ah oui, il est aussi des bibliothèques plus spécialiser style lapack et blas.(si tu as des questions dessus je préciserai)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Merci,

    les deux reponses sont tres interessantes.

  5. #5
    Membre régulier Avatar de krieg
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 92
    Points
    92
    Par défaut
    De rien, je pense que la parallèlisation est un domaine vaste qu'il est difficile de résumer.

Discussions similaires

  1. [WinAPI C++] MultiThreading et PostMessage
    Par Gruik dans le forum Windows
    Réponses: 7
    Dernier message: 29/03/2004, 15h58
  2. [WinAPI C++] MultiThreading?
    Par Gruik dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2004, 00h08
  3. Choix de technologies pour mon application
    Par Franco dans le forum Java EE
    Réponses: 5
    Dernier message: 21/10/2003, 14h10
  4. [Win32]App multithread
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 25/09/2003, 09h57
  5. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 18/10/2002, 23h36

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