Developpez.com

Le Club des Développeurs et IT Pro

Ouverture officielle du forum d'entraide sur la programmation parallèle

Le 2011-05-22 19:47:11, par dourouc05, Responsable Qt & Livres
Voici créé ce forum dédié à la programmation parallèle. Il vise à rassembler toutes les questions sur la programmation parallèle en général, à la parallélisation d'algorithmes, etc.

C'est un domaine qui arrive de plus en plus dans le quotidien des développeurs, ne fut-ce que parce que les fabricants de processeurs ne font plus la guerre au gigahertz mais bien au nombre de cœurs : il ne suffit plus d'optimiser ses algorithmes, il faut encore qu'ils puissent utiliser les cœurs disponibles. Cela fait qu'il faut changer la vision dans le développement, paralléliser tout ce qui peut l'être.

Le constat devient plus important quand on remarque l'arrivée de superordinateurs à base de GPU, de processeurs graphiques : on peut produire des superordinateurs moins coûteux et moins énergivores pour des performances comparables, à condition de paralléliser correctement les traitements. Sans atteindre des besoins monstres, des traitements plus communs, comme FastROCS, peuvent atteindre des performances bien supérieures à l'aide des technologies GPGPU qu'avec du matériel plus commun.

Une pléthore d'outils sont d'ores et déjà disponibles : ceux de threading disponibles dans la majorité des langages, les technologies déployées dans plusieurs langages (MPI, OpenMP...), qui restent dans le domaine des calculs sur CPU ; pour le GPGPU, on peut citer notamment CUDA et OpenCL, pour qui deux forums plus spécifiques existent déjà.

Pour faire vivre ce forum, on peut envisager beaucoup d'options : que ce soit par la rédaction d'articles ou d'une FAQ, toute idée et investissement sont les bienvenus, n'hésitez pas à répondre à ce topic et/ou à me contacter par MP si vous souhaitez participer !

Le forum de Développez dédié à la programmation parallèle
  Discussion forum
8 commentaires
  • Heimdall
    Membre régulier
    Si ta question est d'avantage liée à un langage ou a une bibliothèque développée pour un seul langage qu'à une technique parallèle à proprement parler, alors peut-être qu'effectivement ce forum n'est pas le lieu pour la poser.

    De même qu'on peut se poser la question de comment on fait une liste chainée dans le forum "algorithmes" ou dans le forum "C", tout dépend de la couleur de la question.. on peut poser une question parallélisme ici ou dans un autre forum. Je ne pense pas qu'il y ait de tri absolu.

    Ici en revanche, on peut se poser des question sur le parallélisme a proprement parler comme "quelle technique pour optimiser les communications entre les processeurs dans tel algorithme ?" ou "comment paralléliser tel algorithme ?", "que vaut la parallélisation automatique de Gcc ?", "vaut-il mieux utiliser la parallélisation à mémoire partagée ou pas pour tel problème ?" etc... je pense que ce genre de questions n'avaient de place nulle part ailleurs avant.
  • TropMDR
    Membre éprouvé
    Pour commencer le premier troll: j'imagine que le forum est là aussi pour la programmation concurrente ?
  • dourouc05
    Responsable Qt & Livres
    Envoyé par TropMDR
    Pour commencer le premier troll: j'imagine que le forum est là aussi pour la programmation concurrente ?
    Oui, évidemment . Les sujets sont très liés et on ne peut pas tout mettre dans le titre d'un forum .
  • WebPac
    Membre confirmé
    Bonjour,

    n'est-il pas difficile de rassembler dans un forum "Langages en général" des bibliothèques ou framework fortement liés à un langage donné ?
    Je m'intéresse à ce sujet mais dans le domaine du .Net avec par exemple Parallel LINQ et il y a une news qui est sortie aussi à ce sujet sur Dvpz : .NET : vers une programmation parallèle plus simple avec deux nouvelles librairies du framework de Microsoft.

    Mais je doute que les solutions apportées pour .Net puissent être transposables à d'autres langages comme le C++ ou Java.
    Et inversement, il doit exister des solutions dans ces langages qui ne se transposent pas en .Net.

    En fait, je me vois mal poser une question sur ce forum alors qu'il existe déjà un forum pour le langage concerné.
  • WebPac
    Membre confirmé
    Envoyé par Heimdall
    Si ta question est d'avantage liée à un langage ou a une bibliothèque développée pour un seul langage qu'à une technique parallèle à proprement parler, alors peut-être qu'effectivement ce forum n'est pas le lieu pour la poser.

    De même qu'on peut se poser la question de comment on fait une liste chainée dans le forum "algorithmes" ou dans le forum "C", tout dépend de la couleur de la question.. on peut poser une question parallélisme ici ou dans un autre forum. Je ne pense pas qu'il y ait de tri absolu.

    Ici en revanche, on peut se poser des question sur le parallélisme a proprement parler comme "quelle technique pour optimiser les communications entre les processeurs dans tel algorithme ?" ou "comment paralléliser tel algorithme ?", "que vaut la parallélisation automatique de Gcc ?", "vaut-il mieux utiliser la parallélisation à mémoire partagée ou pas pour tel problème ?" etc... je pense que ce genre de questions n'avaient de place nulle part ailleurs avant.
    Je suis peut-être un peu trop novice dans ce domaine, mais la réponse à chacune de tes questions exemple n'est-elle pas dépendante du langage utilisé ?
    En fait, qu'entends-tu par "mémoire partagée" ?
  • Heimdall
    Membre régulier
    Envoyé par WebPac
    Je suis peut-être un peu trop novice dans ce domaine, mais la réponse à chacune de tes questions exemple n'est-elle pas dépendante du langage utilisé ?

    Pas forcément, la bibliothèque MPI (Message Passing Interface) est disponible en C, en C++ et en Fortran, par exemple. C'est dommage de disperser les messages concernant MPI dans les 3 forums... d'autres exemples peuvent être trouvés.

    Des questions typiquement algo parallèle sont également indépendantes du langage dans lequel on code.

    En fait, qu'entends-tu par "mémoire partagée" ?
    Le cas où tous les processeurs partagent le même espace de mémoire, à opposée avec les cas où les opérations sont fait sur des processeurs possedant leur propre mémoire et devant communiquer les variables par le réseau.

    Dans le premier cas :

    int a; // partagé par tous les CPU

    dans le second cas

    int a; // chaque CPU va avoir une valeur différente de 'a'.
  • dourouc05
    Responsable Qt & Livres
    Envoyé par WebPac
    En fait, je me vois mal poser une question sur ce forum alors qu'il existe déjà un forum pour le langage concerné.
    Pas mal de problèmes sont dépendants du langage : comment utiliser Boost.Thread ? La question doit se trouver dans le forum Boost côté C++.

    Par contre, comment paralléliser un algorithme, la comparaison des diverses solutions dans la programmation parallèle, etc., cela a plus sa place par ici, car ce sont des problématiques entièrement liées au concept de programmation parallèle, pas du tout d'un langage ou l'autre. Cela inclut pas mal d'algorithmique, c'est vrai, mais on déborde aussi souvent de ce cadre.