uniroma1
.Per maggiori informazioni fate riferimento al regolamento delle esercitazioni.
Rispondere alle seguenti domande con vero=V o falso=F.
Domanda 1
Se si riduce di un fattore 2 il tempo di esecuzione di una porzione di codice che prende il 90% del tempo di esecuzione si ottiene uno speedup complessivo pari a 1.33.
Domanda 2
Se l è una lista di Int, il seguente frammento di codice Scala restituisce un valore di tipo Any:
l match {
case Nil => List(0)
case h::t => h
}
Domanda 3
Secondo la tassonomia di Flynn, un computer convenzionale è un’istanza del modello MISD.
Domanda 4
Un codice computation-intensive riesce a sfruttare meglio il parallelismo di un codice data-intensive.
Domanda 5
La classe Option[T]
viene usata quando serve modellare nel dominio di output di una funzione l’assenza di un valore.
Domanda 6
Una classe case fornisce automaticamente un metodo compareTo che consente di confrontare se un elemento è maggiore di un altro.
Domanda 7
Una classe case fornisce automaticamente un metodo equals che consente di confrontare l’uguaglianza di due elementi della classe.
Domanda 8
Un metodo implicit
serve tipicamente per convertire un oggetto da un tipo a un altro.
Domanda 9
In Scala non è possibile avere variabili static in una classe come in Java.
Domanda 10
L’espressione Scala a zip b
combina gli elementi di a con quelli corrispondenti di b, purché abbiano lo stesso tipo.
Domanda 11
L’espressione l.sum funziona su qualsiasi tipo di lista l.
Domanda 12
Una funzione che restituisce un’altra funzione è una funzione di ordine inferiore.
Domanda 13
Una chiusura è una funzione in cui il corpo fa riferimento ad almeno un argomento che non appare nella lista dei parametri.
Domanda 14
L’espressione:
for {
i <- 0 until 10
} yield i
denota una collezione.
Domanda 15
La funzione apply
non può essere definita in un object
.
Domanda 16
La funzione apply
consente di applicare argomenti tra parentesi direttamente su un riferimento a oggetto istanza di una classe.
Domanda 17
Una classe case definisce automaticamente un metodo apply.
Domanda 18
Un trait in Scala è l’analogo di una classe Java.
Domanda 19
L’espressione if (true) 3.14 else false
ha come tipo Any
.
Domanda 20
L’espressione (x:Int) => 2*x+y
è una chiusura, assumendo che y sia visibile nel punto in un cui appare.
Domanda 21
In OpenCL, un NDRange è una griglia logica su cui vengono istanziati work item che sono a loro volta istanze di kernel.
Domanda 22
In OpenCL, un kernel è una particolare funzione scritta in un dialetto del C che specifica il comportamento parallelo di un’applicazione.
Domanda 23
In OpenCL, non è necessario copiare i dati dalla memoria host alla memoria device e viceversa se il device in questione è la CPU.
Domanda 24
In OpenCL, il codice compilato di un kernel può essere generato a tempo di esecuzione.
Domanda 25
In AVX, è sempre possibile caricare dati da memoria in un packed integer __m256i
usando _mm256_load_si256
.
Domanda 26
In SSE è possibile sommare due vettori contenenti 4 interi di 32 bit ciascuno con una singola istruzione _mm_add_epi16
.
Domanda 27
Il loop unrolling è una tecnica di ottimizzazione che viene usata in modo preparatorio per agevolare la vettorizzazione.
Domanda 28
In OpenCL la global dimension non deve essere necessariamente un multiplo della local dimension
Domanda 29
Con gli opportuni livelli di ottimizzazione, compilatori come gcc emettono automaticamente codice SSE per ottimizzare i programmi.
Domanda 30
E’ necessario includere la header intrin.h
per programmare in SSE/AVX.
Domanda 1: F
Domanda 2: V
Domanda 3: F
Domanda 4: V
Domanda 5: V
Domanda 6: F
Domanda 7: V
Domanda 8: V
Domanda 9: V
Domanda 10: F
Domanda 11: F
Domanda 12: F
Domanda 13: V
Domanda 14: V
Domanda 15: F
Domanda 16: V
Domanda 17: V
Domanda 18: F
Domanda 19: F
Domanda 20: V
Domanda 21: V
Domanda 22: V
Domanda 23: F
Domanda 24: V
Domanda 25: F
Domanda 26: F
Domanda 27: V
Domanda 28: F
Domanda 29: V
Domanda 30: F