Programación paralela
La meta más agresiva del paralelismo de hoy en día
es hacer que los programas sean eficientes, portables y escalables
(que se adapten al incremento del número de núcleos que son integrados
al sistema), pero, sobre todo, que sea fácil la programación de
los mismos como lo es actualmente la tarea de escribir programas
para computadores secuenciales; procurando que el esfuerzo de migrar
aplicaciones a modelos paralelos sea mínimo. Para lograr esta meta,
la investigación en desarrollo de software es fundamental.
La investigación en desarrollo de software en México
continúa sin recibir la atención adecuada. La evolución del hardware
tiene que ser acompañada por una investigación robusta en desarrollo
de software. Sólo de esta forma darán frutos los efímeros esfuerzos
realizados por instituciones como el IPN, UNAM, UAM e IMP, que
han invertido en infraestructuras computacionales importantes
en el contexto Mexicano (pero no para estar en los primeros 100
del TOP500). De no darse este impulso, no se asegura la capacidad
de migrar, a modelos paralelos, aplicaciones claves que nos impactan
día a día como lo son: la industria petrolera, medio ambiente,
simulación y predicción de tráfico, análisis biológicos y simulación
molecular.
Si la programación de aplicaciones paralelas no
es productiva, esto retardará y reducirá el número de programas
que puedan explotar los recursos computacionales de las nuevas
arquitecturas multinúcleos. Es importante hacer notar que por el
momento el éxito en esta área ya no está en el hardware, recurso
casi inalcanzable hace 20 años, sino en nuestra capacidad de investigar
y formar recursos humanos de alto nivel que puedan explotar para
nuestro beneficio esta capacidad de cómputo.
Los cursos de programación que se imparten en las
universidades mexicanas tienen que evolucionar para cubrir las
nuevas expectativas no sólo del supercómputo moderno, sino también
en los nuevos nichos de mercado que se abrieron con los procesadores
gráficos utilizados fundamentalmente en aplicaciones multimedia
(GPU, Cell). Los estudiantes necesitan aprender los fundamentos
y las diferentes técnicas de la programación paralela, con la finalidad
de que puedan explotar la tecnología computacional actual y del
futuro.
|