Additions:
Lo scopo dellesercizio è quella di scrivere un modulo C che, data in input una immagine a toni 256 di grigio di dimensione w×h, crei una nuova immagine allocata dinamicamente ottenuta da quella di input raddoppiandone altezza e larghezza. [[[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.pdf Testo esercizio]] | [[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.zip Codice e soluzioni]]]
Deletions:
Lo scopo dellesercizio è quella di scrivere un modulo C che, data in input una immagine a toni 256 di grigio di dimensione w×h, crei una nuova immagine allocata dinamicamente ottenuta da quella di input raddoppiandone altezza e larghezza:
~- [[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.pdf Testo esercizio]]
~- [[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.zip Codice e soluzioni]]
Additions:
==Esercizio 5 (Raddoppiamento di immagini in ""OpenCL"")==
Lo scopo dellesercizio è quella di scrivere un modulo C che, data in input una immagine a toni 256 di grigio di dimensione w×h, crei una nuova immagine allocata dinamicamente ottenuta da quella di input raddoppiandone altezza e larghezza:
Deletions:
==Esercizio 5 (Raddoppiamento di immagini in OpenCL)==
Lo scopo dellesercizio è quella di scrivere un modulo C che, data in input una immagine a toni 256 di grigio di dimensione !×h, crei una nuova immagine allocata dinamicamente ottenuta da quella di input raddoppiandone altezza e larghezza:
Additions:
==Esercizio 5 (Raddoppiamento di immagini in OpenCL)==
Lo scopo dellesercizio è quella di scrivere un modulo C che, data in input una immagine a toni 256 di grigio di dimensione !×h, crei una nuova immagine allocata dinamicamente ottenuta da quella di input raddoppiandone altezza e larghezza:
~- [[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.pdf Testo esercizio]]
~- [[http://www.dis.uniroma1.it/~demetres/didattica/pfp/upload/code/resize2x/resize2x.zip Codice e soluzioni]]
Additions:
Migliorare ulteriormente la soluzione dell'esercizio 3 scrivendone una variante multi-core basata su [[https://computing.llnl.gov/tutorials/pthreads/ POSIX thread]]. La soluzione deve utilizzare simultaneamente vettorizzazione e multi-threading.
Deletions:
Migliorare ulteriormente la soluzione dell'esercizio 3 scrivendone una variante multi-core basata su POSIX thread. La soluzione deve utilizzare simultaneamente vettorizzazione e multi-threading.
Additions:
Migliorare ulteriormente la soluzione dell'esercizio 3 scrivendone una variante multi-core basata su POSIX thread. La soluzione deve utilizzare simultaneamente vettorizzazione e multi-threading.
~& Suggerimento: scomporre la matrice in blocchi processati in parallelo da thread diversi. Può essere utile scrivere prima una versione multi-thread senza vettorizzazione.
Deletions:
Rendere ulteriormente efficiente la soluzione dell'esercizio 3 scrivendone una variante multi-core basata su POSIX thread.
~& Suggerimento: Scomporre la matrice in blocchi processati in parallelo da thread diversi.
Additions:
==Esercizio 4 (Filtri grafici vettorizzati)==
Rendere ulteriormente efficiente la soluzione dell'esercizio 3 scrivendone una variante multi-core basata su POSIX thread.
~& Suggerimento: Scomporre la matrice in blocchi processati in parallelo da thread diversi.
Additions:
unsigned char p[16] __attribute__((aligned(16)));
Deletions:
unsigned char p[16];