Abstract
La programación paralela, lleva bastante tiempo siendo desarrollada e
implementada, sin embargo, en los últimos años ha crecido el interés debido a las
limitaciones físicas que impiden el aumento de la frecuencia en los procesadores.
La programación paralela nace para solucionar los problemas que requieren
mucho tiempo de ejecución y grandes recursos informáticos. A través del uso
simultáneo de procesadores se resuelven problemas de manera más rápida que lo
que se puede realizar en un solo procesador. La programación paralela se basa
en la división del problema en pequeñas partes para ser resueltos cada uno de
estos en paralelo.
El paralelismo ha sido utilizado con éxito en muchos campos como la informática
de alto rendimiento, servidores, aceleradores gráficos, y muchos sistemas
embebidos. El punto de inflexión multinúcleo, sin embargo, afecta a la totalidad del
mercado, en particular el espacio del cliente, donde el paralelismo no ha sido
previamente extendido. Los programas con millones de líneas de código debe ser
convertido o reescrito para aprovechar el paralelismo, sin embargo, tal como se
practica hoy en día, la programación en paralelo para el cliente es una tarea difícil,
puesto que es realizada por pocos programadores. Los programas paralelos son
notoriamente difíciles para poner a prueba, debido a los tipos de datos,
intercalaciones no deterministas y modelos complejos de memoria.
En el grupo de investigación de física aplicada y procesamiento de imágenes y
señales de la Universidad Tecnológica se vienen desarrollando proyectos de
inspección de muestras microscópicas metálicas que requieren el procesamiento
de un gran volumen de datos. El procesamiento de estos datos se hace
supremamente lento cuando se utilizan técnicas de programación secuenciales.
Actualmente la Universidad Tecnológica de Bolívar no cuenta con una guía que
permita probar, comparar y seleccionar la herramienta adecuada para desarrollar
aplicaciones utilizando técnicas de programación paralela. Lo cual dificulta el
trabajo de los grupos de investigación que trabajan en esta área del conocimiento
en proyectos que requieren mejorar los tiempos de respuesta de sus aplicaciones.