Ho poche conoscenze sui temi della costruzione del compilatore e della programmazione parallela, quindi per favore portami dietro. Questo è un corso sulla costruzione del compilatore e ci viene chiesto di imparare CUDA durante il corso perché il professore vorrebbe che scrivessimo un compilatore per una lingua semplificata. Questo compilatore dovrebbe svolgere il lavoro in parallelo in alcune fasi specifiche. La mia comprensione è che lo scanner, il parser, l'analizzatore semantico, il generatore di codice e l'ottimizzatore sono intrinsecamente sequenziali. Ho scritto alcuni parser per compiti molto semplici, quindi la mia comprensione si basa su un po 'di teoria e un po' di esperienza. Vorrei capire come incorporare lo stato condiviso ad un certo punto nella costruzione del compilatore per fare multiprocessing, ma non SPMD.
Quali componenti di un compilatore possono essere parallelizzati (ad esempio usando CUDA come nel mio caso, il modello SPMD in generale)?
SPMD : Dati multipli per singolo programma