Quali algoritmi non possono essere parallelizzati?


24

Esiste un algoritmo che è molto difficile da parallelizzare o la ricerca è ancora attiva?

Volevo sapere di qualsiasi algoritmo o campo di ricerca nel calcolo parallelo.

Qualunque cosa, ho cercato, ha un'implementazione "parallela". Voglio solo fare qualche studio su qualsiasi campo di calcolo parallelo inesplorato.


1
Cosa intendi esattamente con "parallelizzare"? Probabilmente, ogni algoritmo è parallelizzabile, ma non sempre bene. (Potrebbe essere più interessante trovare nuovi algoritmi, in ogni caso.)
— Raffaello

Hai capito bene, il mio scopo è trovare algoritmi difficili da parallelizzare. Puoi dirmi di più su cosa intendi trovando nuovi algoritmi?
— Polynomial Proton,

Non hai risposto alla mia domanda. Quanti processori permetti (5, p , n , ∞ )? Che tipo di speedup e / o efficienza stai cercando (qualsiasi speedup, speedup lineare nel numero di processori, tempo totale poliarcaritmico)?
— Raffaello

A partire da ora, sto cercando algoritmi che sono difficili da parallelizzare, cioè esplorare il campo e quindi decidere di conseguenza dopo averli studiati.
— Polynomial Proton,

Risposte:


11

questo è fondamentalmente un problema di ricerca aperto relativo alla domanda NC =? P in cui NC è considerata la classe di algoritmi efficientemente parallelizzabili.

in un'indagine influente / mediatica di Berkeley "il panorama dell'informatica parallela" , ci sono classi di algoritmi o schemi di parallelismo separati in "nani". del 1 ° 6 identificato, sembra che i problemi di n body possano essere relativamente difficili da parallelizzare in modo efficiente all'aumentare di n perché ci sono n2 interazioni tra tutti gli n punti.

aggiunsero altri 6 nel corso della carta e suggeriscono che un'ultima chiamata "FSM" (p14), dove il problema riguarda calcolo FSM come calcoli (come il ° stato della FSM) può essere l'opposto di "imbarazzante parallelo" qualcosa propongono di chiamare "imbarazzantemente sequenziale".n

vedi anche ci sono algoritmi famosi in sci. comp. che non può essere parallelizzato , scicomp.se


1
Fantastico, grazie per i collegamenti e la spiegazione!
— Polynomial Proton

11

Questo articolo presenta una serie di problemi che sono facili da risolvere in sequenza ma difficili da parallelizzare: http://en.wikipedia.org/wiki/P-complete

Il problema del valore del circuito ("dato un circuito booleano + il suo ingresso, indica ciò che emette") è un buon punto di partenza: facile da capire, facile da risolvere con algoritmi sequenziali e nessuno sa se può essere parallelizzato in modo efficiente.


Ciò presuppone una definizione teorica della complessità di "parallelizzabile" che può essere o meno interessante.
— Raffaello

@Raphael: AFAIK, molti problemi classici di P-complete sono difficili da parallelizzare non solo in teoria ma anche in pratica (anche se hai un numero relativamente piccolo di processori).
— Jukka Suomela,

@JukkaSuomela Ci sono anche casi in cui la teoria della complessità suggerisce la durezza, ma le cose funzionano bene nella pratica. Inoltre, anche i risultati positivi non significano molto in pratica .
— Raffaello

Si potrebbe aggiungere che, dal punto di vista della complessità teorica, non è affatto chiaro se esistano problemi "intrinsecamente impareggiabili", dal fatto che non si sa se , come vzn nel suo rispostaNC=P
— Cornelius Brand

7

Da una prospettiva orientata alla pratica, stai chiedendo algoritmi intrinsecamente sequenziali. Ci sono molti candidati, come l'hash concatenamento, che si ritiene sia molto difficile da parallelizzare. L'hash-chaining è ampiamente utilizzato nella crittografia. Ad esempio, lo schema di hashing delle password bcrypt è stato progettato per tentare di rendere difficile l'accelerazione dell'hash attraverso la parallelizzazione. Un altro esempio è la quadratura ripetuta (di nuovo, nella crittografia).


Ho trovato alcuni documenti che hanno parallelizzato il concatenamento dell'hash, ma non l'ho mai letto completamente. Passerò attraverso lo stesso. Comunque, grazie per l'input!
— Polynomial Proton,

1
@TheUnown I collegamenti a tali articoli sarebbero apprezzati.
— m33lky,

@ m33lky Siamo spiacenti, non ho nessuna di quelle carte con me ora. Questo era molto tempo fa e alla fine ho continuato le mie ricerche su un altro argomento. Tuttavia, puoi cercare online su google scholar e sono sicuro che otterrai molti documenti
— Polynomial Proton,

Sul punto di vista pratico, è anche opportuno ricordare che se l'algoritmo è ad esempio memoria vincolato, allora parallelizzazione sarà non aiuta molto: stackoverflow.com/questions/868568/...
— Ciro Santilli新疆改造中心法轮功六四事件
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.