Accelerazione via GPU Computing anche per applicazioni Java

Accelerazione via GPU Computing anche per applicazioni Java

In concomitanza con la conferenza Oracle JavaOne IBM dimostra come sia possibile accelerare le elaborazioni Java in modo sostenuto attraverso la potenza di calcolo delle GPU; per il momento tutto grazie a CUDA e alle architetture NVIDIA

di pubblicata il , alle 13:01 nel canale Private Cloud
NVIDIAIBMCUDA
 

Abbiamo visto negli ultimi anni un utilizzo sempre più diffuso delle GPU per compiti che non siano quelli legati alla tradizionale elaborazione grafica. Si parla in questi casi di GPU Computing, quindi dell'utilizzo dei chip grafici per elaborazioni parallele che riescono in questo modo a venir completate in meno tempo rispetto a quanto ottenibile con le tradizionali CPU.

In occasione della conferenza Oracle JavaOne il Chief Technology Officer per Java di IBM, John Duimovich, ha confermato come l'accelerazione delle operazioni via GPU verrà estesa anche alla piattaforma Java nel prossimo futuro.

ibm_java_gpu.jpg (50059 bytes)

Utilizzando Java JDK 8 in abbinamento alle librerie CUDA di NVIDIA, Duimovich ha dimostrato di poter ottenere significativi incrementi delle prestazioni velocistiche. Eseguendo tradizionali Array Java si ottengono benefici prestazionali compresi tra un minimo di 2x sino a 48x, a seconda della dimensione del data set di partenza.

Java è largamente utilizzato in molte applicazioni per il mondo web ma trova spazio anche in altri campi spaziando dall'analisi di dati finanziari alle applicazioni scientifiche, sino alla gestione di analisi avanzate sulle immagini e alla condivisione di sistemi anti frode condivisi. Da questo ne deriva la portata dell'accelerazione di Java via GPU, in grado di aprire spazio a nuovi ambiti applicativi con tempi di elaborazione che siano sempre più contenuti.

Ulteriori informazioni sono disponibili in questo post di blog a cura di Sumit Gupta, general manager della Tesla accelerated computing business unit di NVIDIA.

9 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
tylerdurden8325 Settembre 2013, 13:30 #1
"Eseguendo tradizionali Array Java si ottengono..."
Casomai ordinando, gli array non si ESEGUONO...
polkaris25 Settembre 2013, 14:15 #2
"l'accelerazione delle operazioni via GPU verrà estesa anche alla piattaforma Java nel prossimo futuro." significa che alcuni metodi Java saranno eseguiti sulla GPU o che è in programma una versione di CUDA disegnata per Java, qualcosa tipo "CUDA J" in alternativa a CUDA C?
Kouta25 Settembre 2013, 14:17 #3
ma perchè ausare Cuda e non librerie più "open" come OpenCL?
coschizza25 Settembre 2013, 14:41 #4
Originariamente inviato da: Kouta
ma perchè ausare Cuda e non librerie più "open" come OpenCL?

perche è piu facile è veloce fare una versione cuda che è anche ben supportata e spinta da nvidia. Mentre la versione opencl renderebbe il tutto piu interoperabile ma con molto piu lavoro quindi si fara se il mercato lo chiede.
Inoltre nell'ambito professionara il cuda è infinitamente piu utilizzato e diffuso dell'opencl come linguaggio quindi era prevedibile che un azienda enterprise come oracle punti sul leadere di mercato per un suo software di punta.
inited25 Settembre 2013, 14:43 #5
E quando pensi che Òracol possa farne UNA di giusta con la tecnologia CAFEBABE prima di rovinarla definitivamente, ecco che ti si appoggiano a una tecnologia proprietaria come quella della casa verde.
polkaris25 Settembre 2013, 15:38 #6
Resta comunque il fatto che le applicazioni scientifiche in Java siano più lente di quelle scritte in C++ ... questo fa si che chi scrive programmi scientifici sia costretto a usare il C++ piuttosto che Java... Non so se il fatto di avere nel Java metodi alto livello performanti può cambiare le cose...

Quanto a openGL, direi che ormai lo standard di fatto per il GPU programming è CUDA...può non piacere, ma è così.
polkaris25 Settembre 2013, 15:38 #7
Resta comunque il fatto che le applicazioni scientifiche in Java siano più lente di quelle scritte in C++ ... questo fa si che chi scrive programmi scientifici sia costretto a usare il C++ piuttosto che Java... Non so se il fatto di avere nel Java metodi alto livello performanti può cambiare le cose...

Quanto a openGL, direi che ormai lo standard di fatto per il GPU programming è CUDA...può non piacere, ma è così.
calabar25 Settembre 2013, 17:28 #8
L'articolo riporta che CUDA è stato utilizzato per la dimostrazione, ma questo non significa che Oracle intenda basare il tutto esclusivamente su CUDA.

Sinceramente dubito che intendano tagliare fuori la maggior parte dell'utenza che utilizza schede Intel e AMD.
mauromol25 Settembre 2013, 17:49 #9
In realtà gli sforzi principali di OpenJDK con il progetto Sumatra (su cui ci stanno lavorando Oracle, AMD e altri) sono rivolti a OpenCL:
http://www.infoq.com/news/2013/09/java-hsail
http://openjdk.java.net/projects/sumatra/

In questo caso, sarebbe la VM a decidere automaticamente se usare la CPU o la GPU a seconda del lavoro da fare e nel momento in cui vengono utilizzate specifiche API introdotte con Java 8 per la parallelizzazione dell'elaborazione.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^