Memoria Compartida En Java

Páginas: 21 (5183 palabras) Publicado: 13 de agosto de 2012
Comunicaciones Escalables en Memoria Compartida para Paso de Mensajes en Java
Sabela Ramos, Guillermo L. Taboada, Juan Touri˜ o, Ram´n Doallo1 n o
Resumen— Este art´ ıculo presenta el middleware de comunicaciones en memoria compartida smpdev, integrado en nuestra implementaci´n de paso de mensajes o en Java, Fast MPJ (F-MPJ). El continuo aumento del n´ mero de n´ cleos por procesador pone demaniu u fiesto la necesidad de un soporte eficiente de comunicaciones para programaci´n paralela no s´lo a nivel o o de cl´ ster, sino que optimice tambi´n las comunicau e ciones intra-nodo. Sin embargo, el aprovechamiento eficiente del potencial de los procesadores multin´ cleo u mediante el uso de threads en Java requiere un importante esfuerzo por parte del programador, mientras que smpdev permitetrabajar con un mayor nivel de abstracci´n utilizando un API de comunicaciones o mediante paso de mensajes, simple, pero a la vez potente. Adem´s, el paso de mensajes no est´ limitado a a a sistemas de memoria compartida, lo que permite explotar m´s eficientemente los recursos hardware. En a efecto, smpdev permite sustituir el uso de procesos y protocolos de comunicaciones en red por threads ytransferencias en memoria compartida. La evaluaci´n o del rendimiento de smpdev muestra un incremento de prestaciones con respecto a soluciones similares en Java para paso de mensajes en memoria compartida, con un rendimiento pr´ximo al obtenido con lenguao jes compilados a c´digo nativo (e.g., C o Fortran), o llegando a superarlos en algunos casos. Palabras clave— Paso de Mensajes en Java (MPJ),Memoria Compartida, Arquitecturas Multin´ cleo, u Computaci´n de Altas Prestaciones (HPC), Evaluao ci´n del Rendimiento o

´ I. Introduccion

J

AVA es una alternativa emergente en Computaci´n de Altas Prestaciones [1] (HPC) a peo sar de que en sus inicios fue especialmente criticado por su bajo rendimiento computacional [2]. Sin embargo, hoy en d´ y gracias a los avances en la tecıa, nolog´ dela m´quina virtual de Java (JVM) y a la ıa a compilaci´n Just-In-Time (JIT), capaces de generar o c´digo nativo eficiente a partir del bytecode indeo pendiente de la plataforma, el rendimiento de Java es tan solo un 30% inferior al de los lenguajes compilados a c´digo nativo (e.g., C o Fortran) [1] [3]. o Adem´s, Java proporciona algunas caracter´ a ısticas interesantes para programaci´n paralelacomo son un o completo soporte multithread y de comunicaciones en red, manejo autom´tico de memoria, independena cia de la plataforma, portabilidad, seguridad, orientaci´n a objetos, un API extenso y una amplia coo munidad de desarrolladores, siendo el lenguaje m´s a usado en los ´mbitos acad´mico y empresarial a e La opci´n preferida a la hora de programar cluso ters es el paradigma de paso demensajes debido a su escalabilidad y relativo buen rendimiento. No obstante, en Java esta opci´n no suele aprovechar el o
1 Grupo de Arquitectura de Computadores, Dpto. de Electr´nica y Sistemas, Universidade de A Coru˜a, e-mail: o n {sramos, taboada, juan, doallo}@udc.es

multithreading para intercambiar mensajes mediante transferencias en memoria compartida, evitando que procesos del mismo nodoutilicen protocolos de comunicaci´n en red. Esta situaci´n resulta cr´ o o ıtica con el aumento del n´mero de n´ cleos por procesador, u u que hace crecer la demanda de soluciones escalables de programaci´n paralela para memoria compartida. o El multithreading de Java permite aprovechar el potencial de las arquitecturas de memoria compartida a costa de incrementar la complejidad de programaci´n, yaque es el programador el que tiene o que gestionar los threads, tareas y el acceso y mantenimiento de estructuras compartidas de datos. En este art´ ıculo presentamos un dispositivo de comunicaciones en memoria compartida que, de forma m´s a sencilla y a m´s alto nivel, explota el multithreada ing proporcionando una interfaz de paso de mensajes. Adem´s, se integra en una biblioteca de paso a de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Memoria compartida
  • Memoria compartida y tuberias
  • linux memoria compartida
  • SISTEMAS MULTICORE DE MEMORIA COMPARTIDA
  • EJERCICIO DE SEMAFOROS Y MEMORIA COMPARTIDA
  • Memoria Compartida Distribuida y Migración
  • Memoria Compartida Distribuida En Base A Páginas
  • Memoria Compartida Distribuida Basada En Variables

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS