====== OpenCL ======
Le librerie OpenCL (Open Computing Language) possono essere utilizzate con gli acceleratori, quindi sia con le GPU che con gli Xeon Phi.
Nell'infrastruttura R&D sono disponibili due implementazioni di OpenCL:
* Intel OpenCL
* NVIDIA CUDA OpenCL
A seconda del device che si intende utilizzare, occorre caricare il modulo corrispondente.
Quindi, prima di utilizzare OpenCL con le GPU:
$ module load cuda-5.5
Prima di usare OpenCL con gli Xeon Phi:
$ module load ips-xe-2013 intel-opencl
===== Esempi =====
Per testare il funzionamento di OpenCL si possono utilizzare alcune semplici programmi test. Uno di questi è GEMM.
$ module load profile
$ cd $SCRATCH
$ wget http://software.intel.com/sites/default/files/article/391208/gemm-sample.tar.gz
$ tar xzf gemm-sample.tar.gz
$ cd GEMM
Per compilare ed eseguire il sample su piattaforma Intel:
$ module load ips-xe-2013 intel-opencl
$ make
$ ./gemm
Il sample troverà quindi due tipi di device compatibili: il processore dell'host e l'acceleratore Xeon Phi. Scegliere il tipo device con
$ ./gemm -d 0
$ ./gemm -d 1
Per compilare il sample per le GPU NVIDIA:
$ module load cuda-5.5
$ make
$ ./gemm