University of Alicante

University of Alicante ES · VAL · EN

Can we help you?

Contact us

Contact
Know-how en computación de altas prestaciones y paralelismo
DOWNLOAD
INFO
SHEET

DOWNLOAD
EXECUTIVE
ABSTRACT

CONTACT DETAILS:

Relaciones con la Empresa
Oficina de Transferencia de Resultados de la Investigación-OTRI
Universidad de Alicante
Tel.: +34 96 590 99 59
Email: areaempresas@ua.es
http://innoua.ua.es



ABSTRACT

El grupo Computación de Altas Prestaciones y Paralelismo (gCAPyP) es experto en el diseño de herramientas software para el procesamiento paralelo.

Este tipo de herramientas permiten reducir el tiempo de ejecución de aplicaciones informáticas intensivas en cálculo, de modo que la pequeña y mediana empresa (PYME) no necesita invertir grandes cantidades en equipos costosos, pudiendo aprovechar de forma eficiente su infraestructura, lo que permite no sólo ahorrar tiempo y recursos, sino también mejorar la calidad de sus procesos productivos.

Entre sus principales aplicaciones se encuentran: previsión meteorológica y oceanográfica, procesamiento de imágenes, reconocimiento de patrones, visión por computador, comprensión del habla, deducción automática, robótica inteligente, sistemas expertos por computador, ingeniería del conocimiento, tomografía asistida, diseño de corazones artificiales, diagnóstico hepático, estimación de daños cerebrales, estudios de ingeniería genética, etc.

TECHNICAL DESCRIPTION

Durante más de medio siglo, la computación secuencial ha sido el modo habitual de computación. Sin embargo, cada día se está exigiendo mayor potencia de cálculo en los computadores, no sólo a nivel científico, sino a nivel industrial, comercial y técnico.

Las soluciones que se plantean ante esta demanda se concretan básicamente en dos líneas de actuación:

1) Soluciones de tipo software, consistentes en la optimización de los algoritmos para que éstos se ejecuten en el menor tiempo posible;

2) Soluciones de tipo hardware, consistentes en mejorar la tecnología del computador.

Una solución alternativa, y a la vez compatible con las líneas anteriores, es el paralelismo. Un computador paralelo es un conjunto de procesadores que son capaces de trabajar cooperativamente para una misma aplicación.

Supercomputador IBM RS/6000 SP, primer computador paralelo utilizado en las investigaciones.


Aunque desde los comienzos de la Informática pareció claro que la computación secuencial sería reemplazada paulatinamente por la computación paralela, esta transición hasta el momento ha sido difícil, ya que dichos sistemas eran extremadamente caros y estaban al alcance de muy pocas empresas e instituciones. Sin embargo, en los últimos años, ha surgido un nuevo concepto de computador paralelo constituido por redes de estaciones de trabajo u ordenadores personales, dando lugar a los denominados clusters.

La idea es realmente simple: las actuales estaciones de trabajo y ordenadores personales están dotados de los mismos procesadores, o muy similares, que los grandes sistemas. Además, el gran esfuerzo de investigación y desarrollo que se realizó tiempo atrás para conseguir redes de comunicación de alta velocidad está dando sus frutos hoy en día, pudiendo configurar clusters con redes de conexión completamente estándar tipo Fast Ethernet o de fibra óptica, o redes un poco más costosas tipo Gigabit-Ethernet o Myrinet.

Este gran impulso de las nuevas tecnologías ha dado lugar a que se pueda utilizar una red de ordenadores como la que existe en cualquier empresa para realizar cálculos paralelos. Incluso con la puesta en el mercado de los ordenadores multinúcleo (multi-core) en un futuro próximo los usuarios dispondrán de una máquina susceptible de realizar cómputo paralelo al mismo coste que los tradicionales ordenadores monoprocesador.

El grupo de Computación de Altas Prestaciones y Paralelismo (gCAPyP) de la Universidad de Alicante trabaja actualmente en el diseño de herramientas software para la computación paralela. En particular, destacan las siguientes líneas:


1) Computación de altas prestaciones aplicada al análisis y restauración de imágenes:

La restauración de imágenes elimina o minimiza algunas degradaciones en una imagen, tales como las originadas por imperfecciones en los sensores o en la transmisión. Se supone que se conoce un modelo matemático del proceso de degradación, o que éste se puede inferir a partir del análisis previo de otras imágenes.

La restauración de imágenes en dos dimensiones con la presencia de ruido requiere, en general, de la resolución de grandes sistemas de ecuaciones lineales. El término independiente representa los datos conocidos que se asume están contaminados por errores. El hecho de que la matriz del sistema sea de grandes dimensiones, hace que su almacenamiento para un cálculo efectivo sea casi imposible. Por ello, los métodos que se buscan deben poseer la característica de que no se requiera un rápido acceso simultáneo a los elementos de la matriz. Muchos métodos iterativos poseen esta propiedad.

Además, debido a la sensibilidad de la solución del sistema respecto a las perturbaciones de los datos, es adecuado el uso de la regularización, es decir, el uso de determinados tipos de filtrado, como los filtros lineales, que reducen la influencia del error del término independiente en la solución aproximada calculada. La cantidad de filtrado se determina por un parámetro denominado parámetro de regularización.

Aunque hay buenos algoritmos de restauración, el problema radica en que en dichos algoritmos, el número de productos matriz-vector requerido en las implementaciones es muy elevado, depende del número de iteraciones necesarias para converger y del nivel de ruido. Para conseguir que dichos algoritmos sean eficientes desde el punto de vista de tiempos de ejecución, parece lógica su implementación paralela. Los objetivos marcados en esta línea pueden resumirse en los siguientes puntos:

· Diseño, evaluación e implementación de algoritmos paralelos para la restauración de imágenes.

· Desarrollo de unas librerías paralelas para la restauración y análisis de imágenes. La idea es que dichas librerías sean bastante transparentes en ciertos niveles, por lo que no será necesario que el usuario tenga conocimientos de paralelismo.


2) Computación de altas prestaciones para la resolución de sistemas lineales y no lineales:

En muchas aplicaciones científicas y técnicas, la formulación del problema mediante un modelo matemático y su tratamiento numérico requiere la resolución de un sistema de ecuaciones, normalmente de gran tamaño. Atendiendo al carácter del problema, dicho sistema será lineal o no lineal.

Por ejemplo, al discretizar ecuaciones en derivadas parciales por técnicas numéricas tan usuales hoy en día como las diferencias finitas o el método de elementos finitos, finalmente resulta un sistema de ecuaciones que puede ser lineal o no lineal. Con el objetivo de conseguir en la discretización la mayor precisión posible, estos sistemas son de gran tamaño. Si la discretización es consistente, el error cometido tenderá a cero al aumentar el número de nodos, hecho que equivale a aumentar el orden del sistema.

Dadas las dimensiones de los sistemas a resolver, la utilización de métodos directos se hace inviable en la mayoría de los casos, teniendo que recurrir a métodos iterativos, los cuales pueden proporcionar una solución tan satisfactoria como los métodos directos, reduciendo los errores de redondeo.

Además, la resolución directa de los sistemas no lineales, al margen del tamaño de los mismos, es impracticable en la inmensa mayoría de los casos debido al carácter no lineal de las ecuaciones. Por otro lado, para sistemas de orden elevado, la implementación de métodos iterativos en máquinas secuenciales presenta serios problemas que incluso, en determinados casos, pueden hacerla inviable: entre éstos destacan, problemas de memoria (la memoria disponible en una sola máquina puede no ser suficiente para atender las necesidades de cálculo y almacenamiento de datos requeridos durante la ejecución de los programas), y tiempos de ejecución excesivamente elevados. Una forma de subsanar las limitaciones de las máquinas secuenciales es el procesamiento paralelo.

Solución gráfica de un problema de combustión obtenida mediante computación paralela.

Por estos motivos, la aparición de computadoras paralelas ha originado una adecuación de los algoritmos clásicos de la computación matricial para su implementación en dichas máquinas. Además, ha dado lugar a nuevas líneas de investigación dirigidas a diseñar nuevos métodos que obtengan un buen rendimiento en las máquinas paralelas. Dentro de este ámbito, hay que situar el contenido de esta línea de investigación en la que los objetivos marcados pueden resumirse en los siguientes puntos:

· Aplicación de la computación de altas prestaciones en problemas lineales al modelado de redes;

· Aplicación de la computación de altas prestaciones en matrices densas para el análisis del crecimiento de grietas en estructuras;

· Aplicación de la computación de altas prestaciones en sistemas no lineales de problemas de combustión y dinámica de fluidos 3D;

· Aplicación de la computación de altas prestaciones al cálculo de la relevancia de documentos y páginas Web (vector PageRank);

· Desarrollo de software paralelo de altas prestaciones para la resolución de sistemas lineales y no lineales mediante técnicas no estacionarias y asíncronas.


3) Desarrollo de interfaces paralelos de alto nivel:

En un gran número de aplicaciones de alto rendimiento, tanto científicas como de ingeniería, se hace necesario el uso de determinadas librerías de software paralelo. Los investigadores relacionados con estas aplicaciones encuentran grandes dificultades a la hora de interpretar y manejar las interfaces de estas librerías, debido fundamentalmente a que los argumentos que aparecen en dichas interfaces hacen referencia al entorno paralelo con el que tienen que interactuar y no al problema que se tiene entre manos. Por tanto, los investigadores e ingenieros que se encuentran con este tipo de aplicaciones deben consumir un tiempo considerable desarrollando eficientemente y ejecutando sus códigos en entornos de alto rendimiento, cuando en realidad deberían consumir su tiempo usando sus aplicaciones computacionales y analizando los resultados.

Para aliviar esta situación, el grupo de Computación de Altas Prestaciones y Paralelismo (gCAPyP) ha propuesto la reutilización de librerías robustas altamente conocidas desde un lenguaje de alto nivel como Python. Una de estas colecciones de librerías son las ACTS Collection (Advanced Computation Testing and Simulation) del NERSC. Python es un lenguaje de programación de libre distribución orientado a objetos e interpretado en tiempo de ejecución; es extensible con módulos compilados en otros lenguajes como C, Fortran, etc.

En este sentido, Python posee un módulo (Numerical Python) de cálculo matricial compilado en C que permite diversas precisiones numéricas y operaciones como la obtención de filas, unión de matrices, transposición de índices, etc. Se ha constatado que Python es un recurso muy valioso para alcanzar flexibilidad y equilibrio entre el funcionamiento y la facilidad de empleo en el análisis de datos de problemas atmosféricos y oceánicos de grandes dimensiones. Actualmente, el grupo ha desarrollado ya las interfaces Python para las librerías BLACS, PBLAS y ScaLAPACK incluidas en las ACTS, denominados PyBLACS, PyPBLAS y PyScaLAPACK.

Como se ha comentado, Python se está usando en problemas meteorológicos y atmosféricos. Durante los últimos años, debido fundamentalmente a la intervención humana en el clima, hay un creciente interés en la predicción del cambio climático, tanto atmosférico como oceánico. Este interés lleva al análisis de grandes conjuntos de datos para su posterior tratamiento en un modelo teórico e interpretación de los resultados obtenidos. Debido a esta gran cantidad de datos y a la naturaleza matricial no sólo de ellos, sino de algunas de las técnicas utilizadas en los análisis de los mismos, se hace necesaria la intervención de la computación de altas prestaciones y del paralelismo para su manejo. Así, PyClimate es una librería que implementa una gran variedad de funciones de uso común y muy frecuente en el análisis de la variabilidad climática, a la que se accede desde Python de forma secuencial y utilizando la funcionalidad proporcionada por LAPACK. En este caso, la labor del grupo ha sido el desarrollo de interfaces de las librerías ScaLAPACK (incluidas en las ACTS), lo que está permitiendo obtener fácilmente paralelizaciones del código PyClimate.



4) Tratamiento y gestión estadística de grandes conjuntos de datos:

Tanto las empresas, como los investigadores particulares y las organizaciones de todo tipo acumulan una gran cantidad de información que mediante técnicas estadísticas y con buenos recursos informáticos, puede convertirse en conocimiento útil y relevante.

Algunos de los ámbitos donde la estadística está más presente, y a los que va dirigida esta línea, son: bioestadística, biometría, ensayos clínicos, experimentación, industria farmacéutica, psicología, sociología, psicometría análisis de mercados, análisis general de encuestas, sondeos de opinión, banca, seguros, finanzas, estadística oficial, inteligencia artificial, redes neuronales, árboles de decisión, algoritmos genéticos, lingüística computacional, análisis en grandes bases de datos, minería de datos (data mining), control de calidad, etc.

Dentro de este ámbito la labor del grupo está dedicada al tratamiento y análisis de datos tanto cuantitativos como cualitativos mediante técnicas estadísticas y al asesoramiento sobre el diseño e implementación de la investigación.

TECHNOLOGY ADVANTAGES AND INNOVATIVE ASPECTS

El grupo de investigación se dedica al diseño de herramientas software para el procesamiento paralelo. Este tipo de herramientas permiten:

· Reducir el tiempo de ejecución de aplicaciones informáticas intensivas en cálculo (repartiendo la carga entre los recursos disponibles). De esta forma, la pequeña y mediana empresa -PYME-, no necesita invertir en equipos grandes y costosos;

· Usar la infraestructura disponible en la PYME de forma eficiente;

· Ahorrar tiempo y recursos;

· Mejorar la calidad de los procesos productivos.

CURRENT STATE OF DEVELOPMENT

Tras más de diecisiete años de investigación, el grupo está suficientemente consolidado para ejecutar con éxito cualquier tipo de proyecto, tanto con financiación pública como privada. Así lo avalan los más de 28 proyectos llevados a cabo con distintos organismos.




MARKET APPLICATIONS

Las aplicaciones de la computación de altas prestaciones, y concretamente del paralelismo, se extienden prácticamente a todos los ámbitos donde la programación se manifiesta como útil. En la actualidad, la computación paralela se usa en multitud de campos para el desarrollo de aplicaciones y el estudio de problemas que requieren gran capacidad de cómputo, bien por el gran tamaño de los problemas que abordan, bien por la necesidad de trabajar con problemas en tiempo real. Actualmente, el paralelismo se puede encontrar en infinidad de aplicaciones en campos muy variados, entre los que destacan:

· Modelado predictivo y simulación: se realiza mediante extensos experimentos de simulación por computador que con frecuencia acarrean computaciones a gran escala para obtener la precisión y el tiempo de respuesta deseado. Entre estos modelados, destacar la previsión meteorológica numérica y la oceanografía.

· El desarrollo industrial también reclama el uso de computadores para progresar en el diseño y automatización de proyectos de ingeniería, inteligencia artificial y detección remota de los recursos terrestres. En este campo destacar: la inteligencia artificial y automatización (procesamiento de imágenes, reconocimiento de patrones, visión por computador, comprensión del habla, deducción automática, robótica inteligente, sistemas expertos por computador, ingeniería del conocimiento, etc.).

· Investigación médica: en el área médica, los computadores rápidos son necesarios en tomografía asistida, diseño de corazones artificiales, diagnóstico hepático, estimación de daños cerebrales y estudios de ingeniería genética.

COLLABORATION SOUGHT

El grupo busca empresas/organismos para:

· Diseñar herramientas software para el procesamiento paralelo.

· Realizar informes técnicos y asesoría científica para la empresa.

· Ofrecer formación específica en temas relacionados con la computación de altas prestaciones y el paralelismo (formación de personal científico y técnico mediante la organización de cursos de especialización, seminarios, jornadas técnicas, etc.).

· Ofrecer apoyo tecnológico en aquellas técnicas que requieren una alta capacitación o instrumental sofisticado que no esté al alcance de la empresa solicitante.

· Intercambio de personal por períodos de tiempo definidos (para el aprendizaje de una técnica, puesta en marcha de un proceso, etc.).

· Establecer proyectos de I+D+i con organismos de investigación (públicos o privados), con el objetivo de abrir nuevas líneas de investigación o implementar novedosos desarrollos tecnológicos.

INTELLECTUAL PROPERTY RIGHTS

La tecnología se encuentra protegida bajo el know-how del grupo de investigación.


RESEARCH GROUP PROFILE

El grupo de investigación Computación de Altas Prestaciones y Paralelismo (gCAPyP) de la Universidad de Alicante empezó su andadura en 1991 con el objetivo de contribuir al desarrollo de un modelo de propósito general para la computación paralela. Por otra parte, dentro del contexto de la computación científica y la algoritmia paralela, también pretendía contribuir al desarrollo de códigos portables, estables y escalables.

Entre las principales líneas de investigación de interés empresarial se encuentran:

- Aplicación de la computación de altas prestaciones a la restauración de imágenes;

- Creación de interfaces en lenguajes de alto nivel para las librerías ACTS;

- Desarrollo de software de altas prestaciones para sistemas lineales y no lineales;

- Librería de software paralelo para el análisis de la variabilidad climática;

- Tratamiento y gestión estadística de datos.

Además, colabora activamente con distintas entidades, tales como: Universidad Miguel Hernández, Universidad Jaume I, Universidad Politécnica de Valencia, Universidad de Murcia, Universidad de la Laguna, National Lawrence Berkeley Laboratory (USA) y Temple University (USA).

MARKET APPLICATION (14)
Agroalimentación y Pesca
Biodiversidad y Paisaje
Biología
Biología Molecular y Biotecnología
Calzado y Textil
Construcción y Arquitectura
Estudios Geológicos y Geofísicos
Estudios Marinos
Farmacéutica, Cosmética y Oftalmológica
Informática, Lenguaje y Comunicación
Ingeniería, Robótica y Automática
Medicina y Salud
Tecnología Química
Transporte y Automoción
 
Contact

Carretera San Vicente del Raspeig s/n - 03690 San Vicente del Raspeig - Alicante
Tel.: (+34) 965 90 9959

Contact with us