3 research outputs found
High Performance Java Remote Method Invocation for Parallel Computing on Clusters
This is a post-peer-review, pre-copyedit version. The final authenticated version is available online at: http://dx.doi.org/10.1109/ISCC.2007.4381536[Abstract] This paper presents a more efficient Java remote method invocation (RMI) implementation for high-speed clusters. The use of Java for parallel programming on clusters is limited by the lack of efficient communication middleware and high-speed cluster interconnect support. This implementation overcomes these limitations through a more efficient Java RMI protocol based on several basic assumptions on clusters. Moreover, the use of a high performance sockets library provides with direct high-speed interconnect support. The performance evaluation of this middleware on a gigabit Ethernet (GbE) and a scalable coherent interface (SCI) cluster shows experimental evidence of throughput increase. Moreover, qualitative aspects of the solution such as transparency to the user, interoperability with other systems and no need of source code modification can augment the performance of existing parallel Java codes and boost the development of new high performance Java RMI applications.Ministerio de Education y Ciencia; TIN2004-07797-C02Xunta de Galicia; PGIDIT06PXIB105228PR
Global Arrays over SCI : Enveis kommunikasjon i clustere
Sammendrag av hovedfagsoppgaven "Global Arrays over SCI - Enveis
kommunikasjon i clustere" av Kai-Robert Bjørnstad
Enkelte applikasjonstyper og algoritmer vanskelig å
implementere over MPI-grensesnittet. MPI-standarden
fordrer en tosidig kommunikasjonsmodell hvor både
sender og mottaker eksplisitt må delta i
kommunikasjonen. Enveis kommunikasjon baserer seg på
deltakelse kun fra senderprosessen ved utveksling av
data (typisk kommunikasjonsmetode for SMP maskiner).
Algoritmer og grensesnitt (f.eks. SHMEM) er utviklet
for maskiner hvor prosessorene har et delt adresserom.
Hovedforskjellen på enveis og tosidig kommunikasjon
ligger i hvilken programmeringsmodell som tilbys, mao.
hvordan applikasjonsprogrammereren må forholde seg til
kommunikasjon mellom prosesser.
Clustere har i utgangspunktet ikke et delt adresserom,
noe som skaper problemer ved envis kommunikasjon. Som
et resultat har man på mange måter forsøkt å skape en
illusjon av shared memory ved hjelp av både hardware
og/eller programvare, et såkalt DSM (Distributed Shared
Memory). I denne sammenheng har et bibliotek kalt
Global Arrays (GA) blitt utviklet. GA er implementert
over kommunikasjonsbiblioteket ARMCI (Aggregate Remote
Memory Copy Interface).
ARMCI er et portabelt kommunikasjonsbibliotek med fokus
på implementasjon av effektive enveis
kommunikasjonsoperasjoner i clustere og i shared
memory-maskiner. Grensesnittet er ikke standardisert,
men benyttes likefullt av flere applikasjoner, f.eks.
NWCHEM og GAMESS-UK (gjennom GA). ARMCI likner på mange
måter SHMEM-grensesnittet for enveis kommunikasjon.
Forskjellen ligger i at ARMCI fokuserer på overføring
av ikke-sekvensielle (strided) datastrukturer.
En viktig del av datakommunikasjon er å gjøre denne så
effektiv som mulig. Det fokuseres på å benytte minst
mulig tid på kommunikasjon (overhead) og mest mulig på
prosessering/regning. Med dette som utganspunkt
undersøkes det i oppgaven mulighetene for å la ARMCI
kunne kommunisere over høyhastighetsnettverket SCI. Som
et utgangspunkt skisserer oppgaven tre hovedmetoder for
implementasjon; ARMCI over SCI via TCP/IP, MPI og
SCI-driver. Prosjektet er basert på Scali AS sin
programvare pakke (med ScaFun og ScaMPI) SSP (Scali
Software Package).
Det har blir vist at bruk av TCP/IP-implementasjoner
som ScaIP over SCI introduserer en høy overhead og gir
dårligere ytelse enn allerede eksisterende
ARMCI-implementasjoner over Gigabit Ethernet. Det er
videre utviklet en ARMCI-implementasjon utelukkende
over en tosidig meldingsutvekslingsstandard, MPI. Denne
kan benyttes over SCI ved hjelp av MPI-implementasjonen
ScaMPI.
ARMCI har også blitt implementert direkte over SCI ved
hjelp av ScaFun. Denne implementasjonen ser ut til å ha
størst potensiale når det kommer til selve
datakommunikasjonen og bruk av zero- eller one-copy
protokoller. Likefullt er faller implementasjonen i
denne oppgaven på den høye overheaden forbundet med
SCI-interrupter. Ved bruk av Hyper-Threading-teknologi
fra Intel og en nødvendig thread-safe
MPI-implementasjon, blir det vist en minimal
introduksjon av overhead gjennom bruk av MPI og
samtidig høy portabilitet
Design of efficient Java communications for high performance computing
[Abstract] There is an increasing interest to adopt Java as the parallel programming language for the multi-core
era. Although Java offers important advantages, such as built-in multithreading and networking support,
productivity and portability, the lack of efficient communication middleware is an important drawback
for its uptake in High Performance Computing (HPC). This PhD Thesis presents the design, implementation
and evaluation of several solutions to improve this situation: (1) a high performance Java sockets
implementation (JFS, Java Fast Sockets) on high-speed networks (e.g., Myrinet, InfiniBand) and shared
memory (e.g., multi-core) machines; (2) a low-level messaging device, iodev, which efficiently overlaps
communication and computation; and (3) a more scalable Java message-passing library, Fast MPJ (F-MPJ).
Furthermore, new Java parallel benchmarks have been implemented and used for the performance evaluation
of the developed middleware. The final and main conclusion is that the use of Java for HPC is feasible
and even advisable when looking for productive development, provided that efficient communication
middleware is made available, such as the projects presented in this Thesis.[Resumen] La tesis doctoral "Design of Efficient Java Communications for High Performance Computing"
parte de la hipótesis inicial de que es posible desarrollar aplicaciones Java en computación
de altas prestaciones, un ámbito en el que el rendimiento es crucial, siempre que esté
disponible un middleware de comunicación eficiente. Así, se han diseñado, desarrollado y
evaluado diferentes bibliotecas de comunicación en Java, desde el nivel de sockets al de
paso de mensajes, obteniendo notables incrementos de eficiencia, confirmando que la hipótesis
inicial es factible