Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Ateji PX, supporto per Java parallelo
Scritto da Paolo Raviola il 12-07-2010 ore 12:25
The Parallel Universe
La programmazione parallela per le architetture multicore e many-core è rivolta per la maggior parte al linguaggio C++ (Threaded Building Blocks (TBB) di Intel, Parallel Studio, Rapidmind, Cilk++) o ai linguaggi funzionali (Erlang, Haskell, Scala). Un'importante assenza è Java.

Naturalmente non si vuol dire che non si possa programmare in parallelo in Java; questo linguaggio fu progettato per la programmazione concorrente, con un supporto di base nel linguaggio e nelle librerie. A partire dalla versione 5.0, sono state introdotte API ad alto livello, come il pacchetto java.util.concurrent, socket, Remote Method Invocation, le Thread API, e il message passing.

Esistono inoltre strumenti di terze parti, come Parallel Java Library di Alan Kaminsky, HPJava, Javelin, Titanium, e altri. Il supporto quindi non difetta, ma il problema, come anche in altri linguaggi, continua a essere la complessità e la mancanza di astrazione. Nel mondo C++, Intel ha affrontato il problema con i suoi TBB.

Ora però la Ateji ha rilasciato Ateji PX for Java, un'estensione che concerne solo gli aspetti legati al parallelismo, più un paio di costruzioni sintattiche, e che fornisce compatibilità con il codice sequenziale e con i tool già esistenti. Il metodo utilizzato è quello del source-to-source translation. Ateji PX costruisce le sue primitive parallele basandosi sul linguaggio sottostante; questa tecnica è d'aiuto nel mantenere il linguaggio di base chiaro e standard.

Stando alla compagnia, il prodotto opera con tecniche message-passing a livello di linguaggio. Questo consente al compilatore di mappare i programmi su diverse architetture e di scrivere codice indipendente da qualunque libreria. Con questa tecnica i programmi possono girare senza modifiche su cluster di computer, sui supercomputer basati su MPI, attraverso una rete e nel cloud. È in preparazione una versione distribuita di Ateji PX, dove i rami paralleli possono girare su postazioni remote.
Precedente: Come analizzare il codice C per il parallel processing
Successiva: La nuova beta di MobileMe implementa il protocollo CalDAV
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.201 secondi.