Perché i libri sulla programmazione concorrente ignorano sempre il parallelismo dei dati? [chiuso]

StackOverflow https://stackoverflow.com/questions/1854054

Domanda

C'è stato uno spostamento significativo verso la programmazione dei dati in parallelo tramite sistemi come OpenCL e CUDA nel corso degli ultimi anni, eppure libri pubblicati anche negli ultimi sei mesi non menziona neppure il tema della programmazione dei dati in parallelo.

Non è adatto a tutti i problemi, ma sembra che ci sia un divario significativo qui che non è stato affrontato.

È stato utile?

Soluzione

Prima di tutto, io sottolineare che la programmazione concorrente non è necessariamente sinonimo di programmazione parallela. Programmazione concorrente è circa la costruzione di applicazioni da task-accoppiati. Per esempio, una finestra di dialogo potrebbe avere interazioni con ogni controllo implementato come un'attività separata. programmazione parallela, d'altra parte, è esplicitamente di diffondere la soluzione di un compito computazionale in più di un unico pezzo di hardware esecuzione, essenzialmente sempre per motivi di prestazioni di qualche tipo (nota: anche troppo poco RAM è un motivo prestazioni quando l'alternativa è lo scambio.

Quindi, devo chiedere in cambio: Che libri ti riferisci? Sono circa programmazione concorrente (ho un paio di questi, ci sono un sacco di teoria interessante lì), o circa la programmazione parallela?

Se davvero sono circa la programmazione parallela, farò un paio di osservazioni:

  • CUDA è un bersaglio in rapido movimento, ed è stato dal suo rilascio. Un libro scritto su di esso oggi sarebbe mezza obsoleta nel momento in cui ha fatto in stampa.
  • serie di OpenCL è stato rilasciato poco meno di un anno fa. implementazioni stabili sono usciti negli ultimi 8 mesi o giù di lì. Non c'è semplicemente stato abbastanza tempo per ottenere un libro scritto ancora, per non parlare di rivedere e pubblicare.
  • OpenMP è coperto in almeno alcuni dei libri di testo di programmazione parallela che ho usato. Fino alla versione 2 (v3 è stato appena rilasciato), è stato sostanzialmente tutto di dati per la programmazione parallela.

Altri suggerimenti

Credo che coloro che lavorano con il calcolo parallelo accademicamente oggi sono di solito provenienti dal campo cluster di calcolo. OpenCL e CUDA processori utilizzare grafici, che più o meno inavvertitamente sono evolute in processori generici insieme con lo sviluppo della grafica più avanzata di rendering algoritmi.

Tuttavia, le persone grafica e il calcolo ad alte prestazioni le persone sono state "scoprire" l'altro da qualche tempo, e un sacco o di ricerca è stato lo fa nel usando le GPU per general purpose computing.

"sempre" è un po 'forte; ci sono risorse là fuori ( esempio ) che includono argomenti di dati di parallelismo.

Il libro classico "The Connection Machine" di Hillis era tutto il parallelismo dei dati. E 'uno dei miei preferiti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top