HPC y el Posgrado de Ingeniería del Lenguaje y del

HPC y el Posgrado de Ingeniería del Lenguaje y del Conocimiento (LKE)
Dra. Josefina Guerrero García, Dra. Maya Carrillo Ruíz, Dra. Darnes Vilariño Ayala, Dra. Claudia Zepeda Cortés, Dr. José Luis Carballido Carranza, Dr. José Manuel
González, Calleros, Dr. Iván Olmos Pineda, Dr. David Pinto Avendaño, Dr. Guillermo De Ita Luna, Dr. Arturo Olvera López, Dr. Manuel Martín Ortíz.
Facultad de Ciencias de la Computación - BUAP
[email protected]
1.
INTRODUCCIÓN
La Maestría y Doctorado en Ingeniería del Lenguaje y del Conocimiento (LKE) próximos
a aperturarse en la Facultad de Ciencias de la Computación de la BUAP, dentro de sus líneas de formación e investigación requieren de servicios de Cómputo de Alto Rendimiento
(HPC) para formar a los estudiantes incorporados a él, así como desarrollar trabajo de investigación y aplicar elementos teórico-prácticos para resolver problemas del entorno.
En particular relativo a las temáticas de: Big Data, procesamiento y análisis de texto, procesamiento y análisis de imágenes digitales, bioinformática y Bases de Datos Geográficas,
entre los más relevantes.
El grupo cuenta con personal con experiencia en el uso de HPC y dentro de sus Planes de
Estudio existen asignaturas orientadas al uso y explotación del HPC como herramienta para
el análisis y extracción de conocimiento en grandes volúmenes de datos, procesamiento de
datos, paralelización de métodos, algoritmos paralelos y minería de datos, entre otros.
2.
METODOLOGÍA Y JUSTIFICACIÓN DE USO DE SUPERCÓMPUTO
Para la solución de problemas que involucran gran cantidad de información, como es el
caso del análisis del lenguaje escrito, las imágenes digitales de alta resolución, bancos de
imágenes y video, secuencias de ADN, bases de datos geográficas de alta densidad y problemas de búsqueda no polinomiales, se requiere de sistemas de cómputo con una gran capacidad de almacenamiento, volúmenes de memoria RAM muy grandes y capacidad de
procesamiento paralelo – tanto en procesadores típicos (a nivel de core) como en procesadores con estructura circulante (GPGPU) – para poder abordar ésta familia de problemas.
Se ha venido trabajando con pequeños clusters con 30 procesadores dual core y enlace a
100 Mbps, así como con computadoras habilitadas con 400 GPGPU con 2 GB de RAM y
velocidades de 1 GHz de reloj. El tipo de problemas que se han abordado se pueden considerar pequeños, para esto se han desarrollado algoritmos que han sido implementados sobre
herramientas de desarrollo de software libre, obteniéndose buenos resultados, pero condicionados a la limitación de los recursos.
Por estos motivos la posibilidad de poder acceder a equipos con mayor capacidad en general permitirá poder abordar problemas de mayor dimensión y poder resolverlos en menor
tiempo.
Por otro lado se propone involucrar a los profesores y alumnos del posgrado en la explotación de los recursos de HPC, lo cual los facultará para poder enfrentar problemas de las
clases estudiadas y similares, así como plantear nuevos problemas a la luz de las experiencias obtenidas en la explotación del HPC.
Como metodología se propone continuar con los talleres y seminarios internos de uso y
explotación de plataformas masivamente paralelas a nivel core [1, 2] y GPGPU [3]. Estos
talleres se han orientado a los fundamentos teórico-prácticos de la programación multicore,
multihilo en cores y GPUGPU. Es claro que a bajo nivel dichos modelos son diferentes,
pero existen paradigmas de alto nivel que permiten unificarlos como es el caso de OpenMP
[4] y OpenCL [5]. Las herramientas de programación utilizadas han sido compiladores a los
cuales se tiene acceso, bibliotecas para la simplificación y reducción de la puesta en marcha
de los prototipos y productos finales.
La capacidad adquirida por los alumnos por otro ayudará a que en los ambientes de investigación, transferencia tecnológica y desarrollo de soluciones se inserten con mayor facilidad
en proyectos e iniciativas que requieran el uso de soluciones de programación o explotación
de sistemas multiprocesador y multihilo de mediana y gran escala. A la luz de las iniciativas para el aprovechamiento de las nuevas plataformas que los fabricantes de computadoras
[6, 7], los equipos modernos que desarrollan tareas de HPC se basan en estos paradigmas y
plataformas. Razones por las cuales como posgrado en computación debemos acercarnos a
la frontera en estas actividades der manera activa y proactiva; y convertirnos en un referente regional y nacional.
3.
SOFTWARE REQUERIDO
En primera instancia es de nuestro interés contar con compiladores que permitan el desarrollo de aplicaciones paralelas en modelos multicore y multiGPU (dependiendo de la plataforma a adquirirse) como son:
[Plataforma Intel]
-
Intel® Parallel Studio XE Suites [8] - Privado
-
Threading Building Blocks [9] – Intel – Público
-
Parallel Computing Toolbox [10] – MathWorks
-
MATLAB Distributed Computing Server [11] – MathWorks – Privado
-
Aparapi. API for data parallel Java [12] – Google – Público
-
Java SDK, JHS y JRE [13] – Oracle - Público
-
Hadoop [14] – Apache – Público
-
MySQL Community Edition [15] – Oracle – Público
-
Postgress [16] – PostgreSQL - Público
-
PostGIS – [17]
4.
PRODUCTOS ESPERADOS
Como es natural en un Posgrado el tipo de productos esperados principales son los siguientes:
-
Tesis de posgrado
-
Tesis de Licenciatura
-
Memorias en Congresos
-
Artículos Arbitrados
-
Artículos indexados
-
Capítulos en Libros
-
Manuales de referencia
-
Aplicaciones a la medida
-
Convenios de colaboración con sectores público y privado
5.
REFERENCIAS
[1]
Intel® Threading Building Blocks (Intel® TBB)
https://software.intel.com/en-us/intel-tbb
[2]
Procesamiento Paralelo en CUDA
http://www.nvidia.es/object/cuda-parallel-computing-es.html
[3]
OpenCL™ Parallel computing for CPUs and GPUs
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/
OpenCL_Parallel_Computing_for_CPUs_and_GPUs_201003.pdf
[4]
The OpenMP® API specification for parallel programming
http://openmp.org/wp/
[5]
The open standard for parallel programming in heterogeneous systems
http://www.khronos.org/opencl/
[6]
Intel Parallel Computing Centers
https://software.intel.com/en-us/ipcc
[7]
Intel® Software Academic Program
https://software.intel.com/en-us/academic/
[8]
Intel® Parallel Studio XE Suites. C, C++ y Fortran. Math Kernel Library (MKL).
Intel TBB, Intel Cilk Plus
https://software.intel.com/en-us/intel-parallel-studio-xe
[9]
Threading Building Blocks
https://www.threadingbuildingblocks.org/
[10]
Parallel Computing Toolbox
http://www.mathworks.com/products/parallel-computing/?s_cid=
sol_compbio_sub2_relprod4_parallel_computing_toolbox
[11]
MATLAB Distributed Computing Server
http://www.mathworks.com/products/distriben/
[12]
Aparapi. API for data parallel Java. Allows suitable code to be executed
on GPU via OpenCL.
https://code.google.com/p/aparapi/
[13]
Java by Oracle
http://www.oracle.com/technetwork/java/javase/downloads/index.html
?ssSourceSiteId=otnjp
[14]
Haddop
http://hadoop.apache.org/
[15]
MySQL Community Edition by Oracle
http://www.mysql.com
[16]
PostgreSQL
http://www.postgresql.org/
[17]
PostGIS
http://postgis.net/