Theory Flashcards
Cosa si intende per parallelismo?
Esecuzione di diverse parti di un programma allo stesso tempo. Su unità computazionali differenti (es . threads, processori, cores di gpu)
Definizione di Throughput
Tasks completati per unità di tempo
Definizione di sequential task
Insieme di operazioni eseguibili su un computing device.
Definizione di overhead
Tempo per setuppare la computazione parallela (es. possono essere tempo per dividere un programma sequenziale in task paralleli, ecc.) questo valore non è ovviamente presente quando effettuiamo stessi task in modo sequenziale.
Definizione Latenza
Tempo tra invio di un task ed effettivo output. L
Definizione di Service Time
Tempo per completare un task, da quando inizia elaborazione, quindi non considero tutto discorso di merge e split. Ts
Definizione di completion time
Data una serie di task, è tempo tra invio del primo task e completamento dell’ultimo. Tc
Come viene misurato throughput
Misurato come 1/Ts. Ossia numero di tasks completati per unità di tempo.
Definizione Speedup
sp(n) = sequential time/ parallel time(con n workers)
Definizione di scalabilità
scalab(n) = Tpar(1)/Tpar(n) dove valutiamo esecuzione parallela con 1 worker.
Come misurare Efficienza
e(n) = tempo ideale/T par(n) . Dove tempo ideale è dato da T sequenziale/numero di workers. dato che nella formula finale Tempo sequenziale/Tempo parallelo = speedUp possiamo trasformare formula in speedup(n)/n
Spiega Amdahl law
In un’applicazione amount di lavoro non parallelizzabile determina massimo speedup per parallelizzare applicazione.
Spiega Gustaffsomn law
Se Amdahl law ci da un upper limit per lo speedup che possiamo ottenere. Con Gustaffsomn invece sappiamo che possiamo aumentare la dimensione del problema per poter diminuire portata della parte non parallelizzabile.
Cosa è work span model
Un’applicazione può essere vista come un grafo , in cui i nodi sono porzioni di codice e gli archi rappresentano le dipendenze tra i vari nodi. Il modello viene chiamato work span, dove gli span rappresentano il cammino + lungo tra inizio e fine di un lavoro. Corrispondente al tempo totale per completare il lavoro.
Cosa migliorano design patterns?
Data parallel decrementa latenza, stream parallel incrementa throughput.
Cosa fanno data parallel patterns?
Dividono dati, computano pezzi e poi ricompongono.