Qual è il modello teorico giusto per progettare algoritmi per computer ad alte prestazioni attuali e futuri


20

Questa domanda è simile a una domanda più generale su quale sia il giusto modello teorico di un computer per progettare algoritmi e strutture di dati.
Qui, chiedo in modo specifico gli attuali computer ad alte prestazioni (come quelli elencati come Top 500 ) o anche circa imminenti supercomputer.

Dato che questi computer in genere funzionano su enormi set di dati (sembra che alcune persone utilizzino tali macchine principalmente perché hanno un'enorme memoria principale combinata) aspetti del modello I / O (introdotto da Aggarwal e Vitter nel 1988 ) e la sua versione parallela , dovrebbe essere presente il PEM ( Arge, Goodrich, Nelson e Sitchinava nel 2008 ). D'altra parte, ci dovrebbe essere qualcosa sulla comunicazione, in particolare punire pacchetti ultra piccoli a tutti gli altri nodi di elaborazione.

Come puoi immaginare, non ho paura di esaurire le idee quando creo un nuovo modello, ma sono un po 'preoccupato di poter trascurare i precedenti tentativi di farlo, in particolare perché ho l'impressione che gli anni 1980- Nel 1995 videro molti di questi tentativi di modellazione (come BSP o modelli ponte) che sembrano non essere stati ampiamente utilizzati.

Quali modelli dovrei dare un'occhiata più da vicino?


questo non risponde affatto, ma qualsiasi modello per i supercomputer attuali e futuri, ma incorpora guasti / tolleranza agli errori.
Sylvain Peyronnet,

Dai un'occhiata alla tassonomia di Flynn. Secondo Wikipedia, "Tutti i primi 10 e la maggior parte dei supercomputer TOP500 sono basati su un'architettura MIMD". en.wikipedia.org/wiki/MIMD
Mohammad Al-Turkistany,

puoi chiarire la frase: "D'altra parte, ci dovrebbe essere qualcosa sulla comunicazione, in particolare punire pacchetti ultra piccoli a tutti gli altri nodi di calcolo". è un errore di battitura? dovrebbe spingere ? si potrebbe rispondere a questa domanda modelli di progettazione paralleli, ad esempio mapreduce, il CSP di Hoare? vedi anche cache algoritmi ignari, wikipedia
vzn

Risposte:


9

Al PODC 2009, Bruce Hendrickson ha tenuto un fenomenale discorso su questi temi. (Le sue diapositive non sembrano essere online, ma potresti chiedergli se potevi vederle.) Non credo che ci sia ancora un modello "giusto" - bonus per te! - ma ti suggerirei di guardare i suoi articoli, in particolare quelli sulla pagina Graphs and Architectures , in cui cerca di capire come gestire enormi grafici con poca struttura (ovvero set di dati "moderni") su macchine multithreading di massa.


Grazie per il puntatore. Dando un'occhiata attraverso di esso, ho l'impressione che non sia tanto nel definire un modello che consentirebbe l'analisi teorica. Trascuro qualcosa? Forse dovrei contattarlo direttamente.
Riko Jacob,

@Riko Jacob: sono d'accordo che Hendrickson è più un praticante che un modellista. Ho pensato che avesse un'intuizione superba per ciò che era necessario, però. Se vuoi documenti sui modelli, potresti essere più interessato al Workshop on Theory and Many-Core . Tuttavia, non trovo soddisfacente nessuno di questi modelli e sarei molto interessato a vedere cosa ti viene in mente. :-)
Aaron Sterling,

8

Un problema poco chiaro è lo sviluppo delle cache. La tesi del 2009 di Nikos Hardavellas considera queste cose dal punto di vista dei sistemi, comprese le considerazioni sui limiti fisici dei sistemi di memoria scalabili. La tesi non presenta un modello in quanto tale, ma può darti alcuni indizi.


4

logX


Dopo averlo guardato, mi sembra un predecessore del modello ignaro della cache. Inoltre non ho visto alcuna idea sull'elaborazione parallela. Mi sono perso qualcosa qui?
Riko Jacob,

Penso che sia più sui modelli di memoria gerarchica, è vero.
Suresh Venkat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.