Posté par X345 .
En réponse au journal De la nausée.
Évalué à 9.
Schrödinger pour un problème à N corps [...] architectures massivement parallèles classiques, mais aussi aux bluegenes, et aux machines dotées de coprocesseurs vectoriels.
Je vois pas quoi répondre à ça... J'ai pas prétendu être capable de résoudre n'importe quel problème, ni même que la communauté scientifique avait la solution à tout problème. Bon et un peu de modestie, si jamais je trouvais la solution à un problème complexe, je "l'enverrai pas par mail" à quelqu'un, mais je ferais une soumission à une conf/un journal scientifique, hein.
Indépendamment de moi, vous serez très riche quand vous aurez réussi à résoudre ce problème là.
C'est une idée fausse, résoudre un problème scientifique complexe ne rend pas riche. Même si on compare les récompenses les plus prestigieuses (prix Nobel et cie), leur montant (1 million d'euros) fait pale figure par rapport à ce que gagne un entrepreneur (parait que Zuckerberg à 45 milliards à investir). Bref pour être riche mieux vaut lancer Facebook que démontrer que P != NP.
Il me semble que votre réponse détourne le propos auquel je répond aussi bien que le mien
C'est bien possible qu'il y ait un malentendu. Je précise comment j'ai interprété les différents messages pour clarifier. Tu écrivais « ce ne sont pas les informaticiens qui manquent mais les mathématiciens parce que les algorithmes parallélisables [...] n'existent [...] pas ». À mon avis, ça sous-entendait que c'était le boulot des mathématiciens (et pas des informaticiens) de mettre au point des algorithmes parallèles. Je voulais dire que ça n'était pas le cas, et au passage donner droit de cité à l'informatique comme science. C'est d'ailleurs le gros de mon message.
« anecdote : pour certaines recherches, il y a des supercalculateurs mais personne pour coder des programmes ».
J'ai interprêté ça comme: on a acheté l'ordinateur (cher), mais personne n'a été fichu d'écrire un programme qui tourne dessus. Ce qui sous-tendrait l'idée que les supercalculateurs sont difficile à utiliser, et que du coup on les achetait souvent pour rien. C'est pas forcément le cas (même si effectivement obtenir des performances optimales, ça peut être compliqué...).
Aussi dernière chose, je comprends pas forcément la fixette sur les supercalculateurs (et d'ailleurs quelques imprécisions). Quelques exemples:
« algorithmes parallélisables sur des super calculateurs » En fait, la principale difficulté est de passer d'un algortihme séquentiel à un algorithme parallèle (de mono-cœur à multi-cœur pour faire simple). Adapter l'algorithme parallèle à un supercalculateur, c'est pas forcément le plus difficile. Il n'y a pas que les supercalculteurs qui ont besoin d'algorithmes parallèles ! Aujourd'hui un serveur de calcul moyenne gamme a 20 cœurs de calcul (serveur bi-socket avec deux Xeon E5-2670v3 par exemple). Tu imagines bien qu'il faut déjà un algorithme parallèle pour l'exploiter pleinement. Bon évidemment quand il faut passer aux 16000 cœurs d'un supercalculateur, y'a encore du boulot (d'autant plus que les problèmes d'interconnexions sont démultipliés).
« elle [l'implémentation] s'adaptera évidemment aux architectures massivement parallèles classiques, mais aussi aux bluegenes, et aux machines dotées de coprocesseurs vectoriels. »
Un implémentation identique qui donne des performances optimales sur n'importe qu'elle type de matos, c'est à mon avis un vœu pieux. La solution actuelle est d'avoir plusieurs implémentation et de sélectionner celle qui donne de meilleurs perfs en fonction de la plateforme (c'est d'ailleurs ce qui est implémenté dans des bibliothèques comme ATLAS).
"Architecture massivement parallèle" est un terme qui n'a pas de définition précise. Mais en général on utilise pas ce terme pour les architectures classiques, justement. On parle de multi-core pour les CPU (de l'ordre de quelques dizaines de cœurs sur un chip), de manycore pour les GPU et les accélérateurs, style Nvidia Telsa ou Intel Xeon Phi (de l'ordre de quelques milliers de "cœurs" sur un chip). Éventuellement on pourrait parler de "massivement parallèle" pour les GPU et accélérateurs, mais dans tous les cas ce sont pas des architectures classiques. Y'a aussi le terme aussi le terme MPPA (Massively Parallel Processor Array) pour trucs comme le TILE64, mais qui ne sont ni utilisés dans les serveurs classiques, ni dans les supercalculateurs.
Quant aux coprocesseurs vectoriels, en fait n'importe quelle machine en est dôté d'un. Sisi, même ton laptop ou ton smartphone. Avant (début 1990), on trouvait ce genre de trucs uniquement sur les calculateurs haut de gamme, aujourd'hui on trouve ça n'importe où. Sur un processeur Intel (du Pentium au Xeon), chaque cœur dispose d'une unité vectorielle (ou unité SIMD) capable d'exécuter des instructions sur vecteurs de 256 bits (cf. instructions AVX). Y'a ça sur les processeurs ARM aussi à travers le jeu d'instruction Neon.
Bref, ce que je voulais dire c'est que y'a pas d'un côté les serveurs classiques sur lesquels on obtient des performances optimales facilement, et les supercalculateurs qui auraient des architectures très spéciales et qui se programmeraient totalement différent. Les supercalculateurs actuels sont de plus en plus composés d'éléments "grand public" (comme des Intel Xeon, des Intel Xeon Phi et Nvidia Telsa) qu'on retrouve dans les serveurs de calcul moyenne gamme. De plus la tendance actuelle est au big data sur du commodity hardware (cf. Google, Facebook, Amazon etc.) : l'idée est d'acheter des serveurs moyenne gamme en grand nombre plutôt qu'un super calculateur à un fabricant spécialisé (style Cray), parce que ça revient moins cher.
[^] # Re: Enfin un journal qui dénonce grave...
Posté par X345 . En réponse au journal De la nausée. Évalué à 9.
Je vois pas quoi répondre à ça... J'ai pas prétendu être capable de résoudre n'importe quel problème, ni même que la communauté scientifique avait la solution à tout problème. Bon et un peu de modestie, si jamais je trouvais la solution à un problème complexe, je "l'enverrai pas par mail" à quelqu'un, mais je ferais une soumission à une conf/un journal scientifique, hein.
C'est une idée fausse, résoudre un problème scientifique complexe ne rend pas riche. Même si on compare les récompenses les plus prestigieuses (prix Nobel et cie), leur montant (1 million d'euros) fait pale figure par rapport à ce que gagne un entrepreneur (parait que Zuckerberg à 45 milliards à investir). Bref pour être riche mieux vaut lancer Facebook que démontrer que P != NP.
C'est bien possible qu'il y ait un malentendu. Je précise comment j'ai interprété les différents messages pour clarifier. Tu écrivais « ce ne sont pas les informaticiens qui manquent mais les mathématiciens parce que les algorithmes parallélisables [...] n'existent [...] pas ». À mon avis, ça sous-entendait que c'était le boulot des mathématiciens (et pas des informaticiens) de mettre au point des algorithmes parallèles. Je voulais dire que ça n'était pas le cas, et au passage donner droit de cité à l'informatique comme science. C'est d'ailleurs le gros de mon message.
« anecdote : pour certaines recherches, il y a des supercalculateurs mais personne pour coder des programmes ».
J'ai interprêté ça comme: on a acheté l'ordinateur (cher), mais personne n'a été fichu d'écrire un programme qui tourne dessus. Ce qui sous-tendrait l'idée que les supercalculateurs sont difficile à utiliser, et que du coup on les achetait souvent pour rien. C'est pas forcément le cas (même si effectivement obtenir des performances optimales, ça peut être compliqué...).
Aussi dernière chose, je comprends pas forcément la fixette sur les supercalculateurs (et d'ailleurs quelques imprécisions). Quelques exemples:
« algorithmes parallélisables sur des super calculateurs » En fait, la principale difficulté est de passer d'un algortihme séquentiel à un algorithme parallèle (de mono-cœur à multi-cœur pour faire simple). Adapter l'algorithme parallèle à un supercalculateur, c'est pas forcément le plus difficile. Il n'y a pas que les supercalculteurs qui ont besoin d'algorithmes parallèles ! Aujourd'hui un serveur de calcul moyenne gamme a 20 cœurs de calcul (serveur bi-socket avec deux Xeon E5-2670v3 par exemple). Tu imagines bien qu'il faut déjà un algorithme parallèle pour l'exploiter pleinement. Bon évidemment quand il faut passer aux 16000 cœurs d'un supercalculateur, y'a encore du boulot (d'autant plus que les problèmes d'interconnexions sont démultipliés).
« elle [l'implémentation] s'adaptera évidemment aux architectures massivement parallèles classiques, mais aussi aux bluegenes, et aux machines dotées de coprocesseurs vectoriels. »
Un implémentation identique qui donne des performances optimales sur n'importe qu'elle type de matos, c'est à mon avis un vœu pieux. La solution actuelle est d'avoir plusieurs implémentation et de sélectionner celle qui donne de meilleurs perfs en fonction de la plateforme (c'est d'ailleurs ce qui est implémenté dans des bibliothèques comme ATLAS).
"Architecture massivement parallèle" est un terme qui n'a pas de définition précise. Mais en général on utilise pas ce terme pour les architectures classiques, justement. On parle de multi-core pour les CPU (de l'ordre de quelques dizaines de cœurs sur un chip), de manycore pour les GPU et les accélérateurs, style Nvidia Telsa ou Intel Xeon Phi (de l'ordre de quelques milliers de "cœurs" sur un chip). Éventuellement on pourrait parler de "massivement parallèle" pour les GPU et accélérateurs, mais dans tous les cas ce sont pas des architectures classiques. Y'a aussi le terme aussi le terme MPPA (Massively Parallel Processor Array) pour trucs comme le TILE64, mais qui ne sont ni utilisés dans les serveurs classiques, ni dans les supercalculateurs.
Quant aux coprocesseurs vectoriels, en fait n'importe quelle machine en est dôté d'un. Sisi, même ton laptop ou ton smartphone. Avant (début 1990), on trouvait ce genre de trucs uniquement sur les calculateurs haut de gamme, aujourd'hui on trouve ça n'importe où. Sur un processeur Intel (du Pentium au Xeon), chaque cœur dispose d'une unité vectorielle (ou unité SIMD) capable d'exécuter des instructions sur vecteurs de 256 bits (cf. instructions AVX). Y'a ça sur les processeurs ARM aussi à travers le jeu d'instruction Neon.
Bref, ce que je voulais dire c'est que y'a pas d'un côté les serveurs classiques sur lesquels on obtient des performances optimales facilement, et les supercalculateurs qui auraient des architectures très spéciales et qui se programmeraient totalement différent. Les supercalculateurs actuels sont de plus en plus composés d'éléments "grand public" (comme des Intel Xeon, des Intel Xeon Phi et Nvidia Telsa) qu'on retrouve dans les serveurs de calcul moyenne gamme. De plus la tendance actuelle est au big data sur du commodity hardware (cf. Google, Facebook, Amazon etc.) : l'idée est d'acheter des serveurs moyenne gamme en grand nombre plutôt qu'un super calculateur à un fabricant spécialisé (style Cray), parce que ça revient moins cher.