Quel est le bon modèle théorique pour concevoir des algorithmes pour les ordinateurs haute performance actuels et à venir


20

Cette question est similaire à une question plus générale pour savoir quel est le bon modèle théorique d'un ordinateur pour concevoir des algorithmes et des structures de données.
Ici, je pose des questions spécifiquement sur les ordinateurs haute performance actuels (comme ceux répertoriés dans le Top 500 ) ou même sur supercalculateurs à venir.

Étant donné que ces ordinateurs fonctionnent généralement sur d'énormes ensembles de données (il semble que certaines personnes utilisent de telles machines principalement parce qu'elles ont une énorme mémoire principale combinée), les aspects du modèle d'E / S (introduit par Aggarwal et Vitter en 1988 ) et sa version parallèle , le PEM ( Arge, Goodrich, Nelson et Sitchinava en 2008 ) devrait être présent. D'un autre côté, il devrait y avoir quelque chose à propos de la communication, en particulier punir les ultra petits packages vers tous les autres nœuds de calcul.

Comme vous pouvez l'imaginer, je n'ai pas peur de manquer d'idées lors de la création d'un nouveau modèle, mais je crains un peu de ne pas tenir compte des tentatives précédentes, notamment parce que j'ai l'impression que les années 1980- 1995 ou plus a vu de nombreuses tentatives de modélisation (comme le BSP ou les modèles de pontage) qui ne semblent pas avoir été largement utilisées.

Quels modèles dois-je examiner de plus près?


cela ne répond pas du tout, mais n'importe quel modèle pour les supercalculateurs actuels et à venir, mais intègre des défauts / tolérance aux pannes.
Sylvain Peyronnet

Jetez un œil à la taxonomie de Flynn. Selon Wikipedia, "Tous les 10 premiers et la plupart des superordinateurs TOP500 sont basés sur une architecture MIMD". en.wikipedia.org/wiki/MIMD
Mohammad Al-Turkistany

pouvez-vous clarifier la phrase: "D'un autre côté, il devrait y avoir quelque chose à propos de la communication, en particulier en punissant les ultra petits packages à tous les autres nœuds de calcul." est-ce une faute de frappe? devrait-il pousser ? pourrait-on répondre à cette question par des modèles de conception parallèles, par exemple mapreduce, le CSP de Hoare? voir aussi cache inconscients algorithmes, wikipedia
vzn

Réponses:


9

Au PODC 2009, Bruce Hendrickson a donné une conférence phénoménale sur ces questions. (Ses diapositives ne semblent pas être en ligne, mais vous voudrez peut-être lui demander si vous pouvez les voir.) Je ne pense pas qu'il existe encore de "bon" modèle - bonus pour vous! - mais je vous suggère de consulter ses articles, en particulier ceux de la page Graphes et architectures , où il essaie de comprendre comment gérer d'énormes graphiques avec peu de structure (c'est-à-dire des ensembles de données "modernes") sur des machines massivement multithread.


Merci pour le pointeur. En y jetant un coup d'œil, j'ai l'impression qu'il ne cherche pas tant à définir un modèle qui permettrait une analyse théorique. Dois-je oublier quelque chose? Je devrais peut-être le contacter directement.
Riko Jacob

@Riko Jacob: Je suis d'accord que Hendrickson est plus un praticien qu'un modeleur. Je pensais cependant qu'il avait une superbe intuition pour ce qui était nécessaire. Si vous souhaitez des articles sur les modèles, vous pourriez être plus intéressé par l' atelier sur la théorie et les noyaux multiples . Je ne trouve aucun de ces modèles satisfaisant, cependant, et je serais très intéressé de voir ce que vous proposez. :-)
Aaron Sterling

8

Un problème qui n'est pas clair est de savoir comment les caches vont se développer. La thèse de 2009 de Nikos Hardavellas considère ces choses du point de vue des systèmes, y compris les considérations de limites physiques aux systèmes de mémoire évolutifs. La thèse ne présente pas de modèle en tant que tel, mais peut vous donner quelques indices.


4

Un modèle qui capture bien les modèles hiérarchiques (pensez aux cœurs locaux, à la mémoire partagée sur puce et à la mémoire globale) est un article STOC 87 d'Aggarwal et al . Je ne pense pas qu'il ait jamais eu de traction, mais cela fait une lecture intéressante. L'idée principale est que l'accès à l'emplacement mémoire x prend du tempsJournalX.


Après l'avoir parcouru, il me semble être un prédécesseur du modèle sans cache. Je n'ai pas non plus vu d'idées sur le traitement parallèle. Ai-je raté quelque chose ici?
Riko Jacob

Je pense qu'il s'agit davantage de modèles de mémoire hiérarchiques, c'est vrai.
Suresh Venkat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.