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

Threads & Processus C++ Discussion :

Conférence parallélisme Intel : Appel à questions


Sujet :

Threads & Processus C++

  1. #1
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut Conférence parallélisme Intel : Appel à questions
    Bonjour,

    Je vais la semaine prochaine (20 et 21 avril) à une conférence organisée par Intel pour présenter ses outils en matière de développement parallèle (intel parallel studio, thread building blocks...). Je vais écrire un article pour Développez.com suite à cette conférence, et je devrais pouvoir y effectuer une interview d'un représentant d'Intel sur ce sujet.

    Auriez-vous des questions que vous aimeriez me voir poser lors de cette interview ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    En vrac :
    - la place de Linux dans leurs développements (comme il y a Parallel Studio (que je dois finir de tester) mais que sous Windows, même s'il y a des choses dans le débuggeur graphique sous Linux), sachant que les plus gros sont sous Linux
    - leur langage de recherche sur le parallèle, leurs opinions sur les méthodologies de programmation parallèle, l'impact sur les extensions qu'ils proposeront pour les compilateurs C/C++(/Fortran)
    - SDK C/C++ pour Larrabee sous Linux dispo quand ? (apparemment le langage précédemment cité serait fourni pour la sortie Larrabee)

  3. #3
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    La vérification de parallélisabilité du code. Comme ce n'est sûrement pas clair, je détaille

    Actuellement, on peut écrire (en tout cas, au dernières nouvelles que j'avais eu, à savoir, une présentation microsoft sur le sujet) du code de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    parrallel_for(int i = 1; i < v.size(); ++i)
    {
        v[i] = v[i-1] + 1;
    }
    J'aimerai savoir s'ils ont prévu de faire en sorte que ça ne compile plus... (certains compilos pour DSP font de la parallélisation de code, et détectent que ce code n'est pas parallélisable, donc ça ne semble pas délirant à faire).

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Il y a une détection chez Intel pour ce genre de chose (proven dependency, on voit ça très bien dans les logs de compilation), donc pas besoin de l'ajouter au niveau de la vectorisation.

    Si maintenant, tu parles plus d'aliasing de pointeurs, c'est à l'utilisateur de s'en mordre les doigts. Si tu dis qu'il peut paralléliser et que tu lui donnes les mauvais arguments, aïe...

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Que regroupe la notion de "parallélisme" ?
    -du multithreading
    -des opérations à opérandes multiples
    quoi d'autre ?

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    En l'occurrence, c'est le fait d'exécuter du code dans plusieurs threads en même temps (l'un des objectifs étant de mieux utiliser le matériel multi-coeur). Je n'ai pas trop compris ce que tu entendais par :
    des opérations à opérandes multiples
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Sans doute SIMD.

  8. #8
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    En l'occurrence, c'est le fait d'exécuter du code dans plusieurs threads en même temps (l'un des objectifs étant de mieux utiliser le matériel multi-coeur). Je n'ai pas trop compris ce que tu entendais par :
    Ou en d'autres mots une possibilité pour les applications mono-thread d'utiliser plusieurs coeurs à la fois ?

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par JulienDuSud Voir le message
    Ou en d'autres mots une possibilité pour les applications mono-thread d'utiliser plusieurs coeurs à la fois ?
    Si c'est mono-thread, il n'est pas possible d'utiliser plusieurs coeurs.

  10. #10
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Si c'est mono-thread, il n'est pas possible d'utiliser plusieurs coeurs.
    Ok, j'ai mal compris le message de JolyLoic alors...

    Je pensais qu'il y avait du nouveau sur la manière dont les CPU allaient gérer les threads unique, dans le sens où plusieurs coeurs pourraient se partager le calcul d'un même calcul en factorisant à droite et à gauche par exemple

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Sans doute SIMD.
    Oui, c'est bien ça.

    Citation Envoyé par Matthieu Brucher Voir le message
    Si c'est mono-thread, il n'est pas possible d'utiliser plusieurs coeurs.
    Ah, pourtant j'y verrais bien une extension du langage pouvant le permettre.
    En fait l'application serait mono-thread du point ce vue du programmeur, certainement multithread en pratique mais se serait au compilateur de le gérer.
    Via une syntaxe de ce genre par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    concurrent
    {
     ...//code
    }
    concurrent
    {
     ...//code
    }
    Les blocs consécutifs de code précédés du mot clé concurrent pourrait s'éxecuter indépendemment les uns des autres, et donc aussi en parallèle. Le programmeur n'aurait pas à créer/gérer lui-même les threads éventuels.

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par camboui Voir le message
    Via une syntaxe de ce genre par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    concurrent
    {
     ...//code
    }
    concurrent
    {
     ...//code
    }
    Les blocs consécutifs de code précédés du mot clé concurrent pourrait s'éxecuter indépendemment les uns des autres, et donc aussi en parallèle. Le programmeur n'aurait pas à créer/gérer lui-même les threads éventuels.
    Ca s'appelle OpenMP ton truc, non ?

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Ah ? Ch'ais pas

    Je me rappelais juste il y a plus de 20 ans, quand on me parlait de programmation parallèle à l'école, que le pascal proposait les mots clés COBEGIN et COEND en plus des BEGIN et END pour permettre l'éxecution parallèle de blocs de code.

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    OpenMP permet de faire grosso modo ça. Certains compilateurs ont leur propres extensions, mais ça se base sur les mêmes outils derrière.

  15. #15
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    OpenMP permet de faire grosso modo ça. Certains compilateurs ont leur propres extensions, mais ça se base sur les mêmes outils derrière.
    Et ça correspond à la création d'un thread (au sens OS du terme) ou il y a un autre mécanisme derrière ?

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Et ça correspond à la création d'un thread (au sens OS du terme) ou il y a un autre mécanisme derrière ?
    Oui, c'est du pthread par exemple sous Linux.

  17. #17
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Oui, c'est du pthread par exemple sous Linux.
    Ca veut dire qu'on peut utiliser toute l'artillerie des threads (mutex, lock et compagnie) ?

  18. #18
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Non, c'est encapsulé, mais c'est disponible sous une autre forme.

  19. #19
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Alors question bête : à quoi servent les librairies de parallélisation ? A faciliter l'écriture des threads ?

  20. #20
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Alors question bête : à quoi servent les librairies de parallélisation ? A faciliter l'écriture des threads ?
    Exactement. Tu ne t'occupes pas du nombre de thread, de leur création et destruction, ... Et c'est disponible en C/C++ et Fortran.

Discussions similaires

  1. Renderer n'est jamais appelé + question
    Par Nafnlaus dans le forum Composants
    Réponses: 14
    Dernier message: 20/08/2013, 16h59
  2. Réponses: 0
    Dernier message: 19/05/2010, 12h03

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