3 research outputs found

    High Performance Java Remote Method Invocation for Parallel Computing on Clusters

    Get PDF
    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

    Get PDF
    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

    Get PDF
    [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
    corecore