PDF de programación - Design of Efficient Java Communications for High Performance

Imágen de pdf Design of Efficient Java Communications for High Performance

Design of Efficient Java Communications for High Performancegráfica de visualizaciones

Actualizado el 24 de Octubre del 2020 (Publicado el 2 de Noviembre del 2018)
751 visualizaciones desde el 2 de Noviembre del 2018
1,9 MB
225 paginas
Creado hace 15a (02/05/2009)
Design of Efficient Java
Communications for High
Performance Computing

Guillermo L ´opez Taboada

Department of Electronics and Systems

University of A Coru˜na, Spain

Department of Electronics and Systems

University of A Coru˜na, Spain

PhD Thesis

Design of Efficient Java

Communications for High
Performance Computing

Guillermo L´opez Taboada

May 2009

PhD Advisors:
Juan Touri˜no Dom´ınguez
Ram´on Doallo Biempica

Dr. Juan Touri˜no Dom´ınguez
Catedr´atico de Universidad
Dpto. de Electr´onica y Sistemas
Universidade da Coru˜na

Dr. Ram´on Doallo Biempica
Catedr´atico de Universidad
Dpto. de Electr´onica y Sistemas
Universidade da Coru˜na

CERTIFICAN

Que la memoria titulada “Design of Efficient Java Communications for High Perfor-
mance Computing” ha sido realizada por D. Guillermo L´opez Taboada bajo nuestra
direcci´on en el Departamento de Electr´onica y Sistemas de la Universidad de A
Coru˜na y concluye la Tesis Doctoral que presenta para optar al grado de Doctor en
Ingenier´ıa Inform´atica con la Menci´on de Doctor Europeo.

En A Coru˜na, a 26 de Febrero de 2009

Fdo.: Juan Touri˜no Dom´ınguez
Director de la Tesis Doctoral

Fdo.: Ram´on Doallo Biempica
Director de la Tesis Doctoral

Vo Bo: Luis Castedo Ribas
Director del Dpto. de Electr´onica y Sistemas

Resumen de la Tesis

Introducci´on

El lenguaje de programaci´on Java se ha convertido r´apidamente en uno de los
m´as populares tras su aparici´on a mediados de los a˜nos noventa. Entre las causas
de su pronta aceptaci´on en numerosos ´ambitos de aplicaci´on est´an el tratarse de un
lenguaje orientado a objetos, ser independiente de la plataforma, su portabilidad, ser
inherentemente seguro, contar con una API muy extensa, y finalmente figurar como
el principal lenguaje de programaci´on por n´umero de desarrolladores y por formaci´on
ofertada, tanto en el mundo acad´emico como en el profesional. Su penetraci´on en
el mundo de la web e Internet es especialmente importante, tanto en aplicaciones
cliente-servidor como en computaci´on distribuida. No obstante, la presencia de Java
no est´a restringida a estos ´ambitos, siendo una opci´on consolidada en muchos otros
(por ejemplo, en aplicaciones multimedia y de escritorio) e incluso una alternativa
emergente en la actualidad para su aplicaci´on en computaci´on de altas prestaciones
(High Performance Computing o HPC).

El creciente inter´es en Java para computaci´on paralela est´a motivado por las
especiales caracter´ısticas del lenguaje, de enorme utilidad en este ´ambito de aplica-
ci´on. As´ı, su inherente soporte para aplicaciones en red, el tratarse de un lenguaje
multithread (lo cual permite aprovechar de forma directa los sistemas multi-n´ucleo),
y el ser portable y multiplataforma, entre otras ventajas de Java, est´an contribuyen-
do a su adopci´on en el campo de la computaci´on de altas prestaciones. El principal
inconveniente de Java en este ´ambito ha sido, hasta ahora, su rendimiento inferior al
de los lenguajes que son compilados a c´odigo nativo de cada plataforma, los cuales
est´an m´as establecidos en este campo, especialmente Fortran y C. No obstante, en

v

vi

la actualidad el rendimiento ya no constituye un obst´aculo insalvable. La tradicio-
nal diferencia de rendimiento entre Java y los lenguajes compilados espec´ıficamente
para cada plataforma se ha ido estrechando en los ´ultimos a˜nos gracias al Just-In-
Time (JIT), la t´ecnica de compilaci´on de la M´aquina Virtual de Java (JVM) que
proporciona al bytecode de Java rendimientos comparables al del c´odigo nativo.

Sin embargo, aunque Java obtiene rendimientos similares en c´odigos secuencia-
les a los lenguajes compilados, en aplicaciones paralelas su escalabilidad depende
en gran medida de la intensidad y eficiencia de las comunicaciones y/o accesos a
memoria compartida. De hecho, la inexistencia de mecanismos de comunicaci´on efi-
cientes en Java tiene como consecuencia que sus aplicaciones paralelas presenten
peor escalabilidad que las que utilizan c´odigo nativo, ralentizando de este modo el
desarrollo de soluciones Java en computaci´on de altas prestaciones.

En cuanto a la arquitectura y configuraci´on de los sistemas utilizados en HPC
cabe destacar que actualmente se est´a incrementando significativamente el n´ume-
ro de n´ucleos de procesador instalados a fin de satisfacer la creciente demanda de
potencia de c´alculo. Adem´as, las arquitecturas cl´uster siguen siendo las m´as de-
mandadas, debido a su excelente ratio coste/rendimiento. Finalmente, la necesidad
de que las aplicaciones escalen con un mayor n´umero de n´ucleos favorece la uti-
lizaci´on de redes de baja latencia (por ejemplo InfiniBand, Myrinet o SCI). Este
hecho, la popularizaci´on de los clusters con redes de baja latencia y con un n´umero
cada vez mayor de n´ucleos por nodo, subraya la importancia del paralelismo y de
la programaci´on multithread e h´ıbrida utilizando ambos paradigmas de memoria
compartida/distribuida.

As´ı, el actual escenario demanda lenguajes de programaci´on que permitan un
desarrollo m´as productivo y que proporcionen un completo soporte multithread y
de servicios de red. Adem´as, la agregaci´on de nodos multi-n´ucleo en clusters por
medio de redes de altas prestaciones debe ir pareja del uso de un middleware de
comunicaci´on que permita a las aplicaciones aprovechar el rendimiento de dichas
redes. El lenguaje de programaci´on Java puede satisfacer estas demandas y constituir
una alternativa atractiva para la programaci´on paralela en computaci´on de altas
prestaciones, siempre y cuando sea capaz de dotarse de mecanismos de comunicaci´on
eficientes en las actuales arquitecturas de computaci´on.

vii

La presente Tesis Doctoral, “Design of Efficient Java Communications for High
Performance Computing”, parte de la hip´otesis inicial de que es posible desarro-
llar aplicaciones Java en computaci´on de altas prestaciones, un ´ambito en el que el
rendimiento es crucial, siempre que est´e disponible un middleware de comunicaci´on
eficiente. Entre los objetivos de esta Tesis se hayan la evaluaci´on del rendimiento
de Java en el marco de la computaci´on de altas prestaciones y proporcionar nue-
vas herramientas para mejorar este proceso de evaluaci´on y posterior an´alisis de los
resultados. Adem´as, otra finalidad de este trabajo es el dise˜no y desarrollo de un
middleware de comunicaci´on optimizado para Java, basado en sockets, as´ı como do-
tar a Java de bibliotecas de comunicaci´on que proporcionen mayores rendimientos
que alternativas previamente existentes. Entre los desarrollos implementados des-
tacan un middleware de comunicaci´on no bloqueante a bajo nivel, una biblioteca
de paso de mensajes en Java, y una optimizaci´on del protocolo de la Invocaci´on de
M´etodos Remotos (RMI) para Java. Finalmente, la Tesis proporciona una gu´ıa de
recomendaciones y buenas pr´acticas en optimizaci´on del rendimiento de aplicaciones
Java en computaci´on de altas prestaciones.

Metodolog´ıa de Trabajo

La metodolog´ıa de trabajo seguida en el desarrollo de la presente Tesis Doctoral,

ha consistido en:

Definir la lista de tareas a realizar en el tema de la Tesis, teniendo en cuenta
los trabajos previos y los recursos disponibles.

Determinar su secuencia u orden de ejecuci´on, ateni´endose a las restricciones
que pudiesen existir y al orden m´as favorable.

Establecer su duraci´on y la oportunidad de su desarrollo en un momento de-
terminado.

Organizar las acciones o tareas por bloques de cierta entidad que definan
etapas.

viii

Definir, para cada etapa, las metas a alcanzar (u objetivos concretos a lograr
en tiempo definidos), sabiendo que en cada etapa puede haber una o varias
metas.

Fijar para cada meta, dentro de cada etapa, la metodolog´ıa de trabajo a
emplear para lograrla (revisi´on bibliogr´afica, evaluaci´on de proyectos previos,
an´alisis de la eficiencia de los desarrollos existentes en el ´ambito de la Tesis,
an´alisis de aportaciones necesarias en el ´ambito de trabajo, dise˜no e imple-
mentaci´on de soluciones m´as eficientes en el ´area de investigaci´on, evaluaci´on
de las aportaciones realizadas y, en caso de ser de positivas y de entidad, difu-
si´on posterior a trav´es de congresos y revistas del ´ambito de conocimiento; y,
finalmente, recopilaci´on de las principales conclusiones en la presente memoria
de Tesis).

De este modo, la lista de tareas (Tn), agrupadas en bloques (Bn), desarrolladas

en la presente Tesis han sido:

B1 Estado actual de las comunicaciones en Java para computaci´on de altas pres-

taciones.

T1.1 Selecci´on del paradigma m´as apropiado para la computaci´on de altas
prestaciones en Java. Se seleccion´o el paso de mensajes debido a la mayor
escalabilidad de los sistemas de memoria distribuida, en los cuales cons-
tituye el principal paradigma de programaci´on. Adem´as, las bibliotecas
de paso de mensajes proporcionan, en general, rendimientos aceptables y
Java cuenta con numerosos proyectos de bibliotecas de paso de mensajes.

T1.2 Revisi´on de la literatura y proyectos desarrollados en Java para paso de

mensajes.

T1.3 Evaluaci´on del rendimiento de las bibliotecas existentes de paso de men-

sajes en Java.

T1.4 Obtenci´on de modelos anal´ıticos de rendimiento de comunicaciones colec-
tivas en paso de mensajes en Java. Estos modelos se obtuvieron en tres
clusters, con redes de interconexi´on Fast Ethernet y las redes de baja
latencia SCI y Myrinet.

ix

T1.5 Evaluaci´on y modelado anal´ıtico de comunicaciones MPI utilizando las
tres redes de interconexi´on mencionadas en el punto anterior con finalidad
comparativa.

T1.6 Identificaci´on de los principales problemas de rendimiento detectados: po-
bre rendimiento de las bibliotecas de comunicaciones de Java en clusters,
especialmente si se utiliza RMI, bibliotecas de paso de mensajes en Java
poco desarrolladas y con operaciones colectivas poco escalables.

B2 An´alisis y desarrollo de un middleware de comunicaciones m´as eficiente en

Java.

T2.1 Determinaci´on de la apr
  • Links de descarga
http://lwp-l.com/pdf14103

Comentarios de: Design of Efficient Java Communications for High Performance (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad