Skip to main content
European Commission logo print header

Cross-Layer and Multi-Objective Programming Approach for Next Generation Heterogeneous Parallel Computing Systems

Article Category

Article available in the following languages:

Herramientas de software innovadoras optimizan la codificación para el procesamiento paralelo

La mayoría del software para dispositivos con múltiples procesadores no es eficaz. Sin embargo, unas herramientas nuevas hacen posible la optimización.

Economía digital icon Economía digital

Los primeros ordenadores personales y dispositivos portátiles empleaban un único microprocesador, o «cerebro», y no son eficaces a la hora de acometer cálculos grandes debido a los cuellos de botella de los procesadores. Una alternativa mucho más potente es la computación paralela, que consiste en dividir cálculos grandes en segmentos más pequeños, repartidos en varios microprocesadores. La idea ha estado ahí desde los albores de la informática, pero durante mucho tiempo estuvo limitada a los ordenadores de rendimiento extremo. En los últimos años, gracias a la reducción del coste de los procesadores adicionales, muchos ordenadores de bajo nivel, consolas de juego y otros dispositivos han empezado a incluir múltiples procesadores. Al principio, los procesadores adicionales estaban especializados en funciones particulares. Sin embargo, actualmente, los procesadores genéricos pueden programarse para la mayoría de las tareas.

El problema de la optimización

El problema radica en la dificultad que entraña escribir un código informático que asigne cálculos a procesadores concretos. Los ingenieros de software pueden hacerlo para hasta cuatro procesadores, aunque esto lleva un tiempo considerable, ya que, a medida que aumenta el número de procesadores, la optimización de la asignación se hace cada vez más difícil. Por esta razón, el software actual rara vez utiliza toda la capacidad de procesamiento de un dispositivo. Los ingenieros de software deben sopesar múltiples factores como, por ejemplo, cuántos procesadores utilizar, qué parte de una aplicación debe ejecutarse en cada procesador y si los procesadores deben estar especializados. El proyecto PHANTOM, financiado con fondos europeos, contribuyó a simplificar las cosas. Scott Hansen, coordinador del proyecto, comenta: «Queríamos automatizar el proceso de decisión relativo a cómo organizar un programa para que funcionara en múltiples procesadores de una manera que cumpliera con objetivos concretos. Por ejemplo, algunos sistemas deben responder siempre dentro de un plazo específico, mientras que otros deben minimizar el uso de energía y otros necesitan maximizar el uso del procesador para resolver un problema lo más rápido posible». El equipo de proyecto analizó la posibilidad de desarrollar herramientas destinadas a ayudar a los ingenieros y programadores de software a encontrar la mejor manera de abordar estos objetivos que, a veces, entran en conflicto.

Nuevas herramientas

El equipo logró crear un innovador conjunto de herramientas, entre las que se incluyen algoritmos altamente sofisticados, que automatizan el complejo proceso de toma de decisiones requerido para lograr la optimización del procesamiento paralelo para el fin deseado. El equipo desarrolló, asimismo, capacidades de aprendizaje avanzadas que supervisan las aplicaciones a medida que se ejecutan y optimizan dinámicamente los procesadores disponibles basándose en el uso en tiempo real. El desarrollo de tales herramientas habría superado la capacidad de cualquier socio del consorcio. Hansen afirma: «La colaboración en el marco del programa Horizonte 2020 de la Unión Europea lo ha hecho posible. También contamos con socios usuarios industriales de peso que se aseguraron de que las herramientas que se estaban desarrollando marcaran una gran diferencia para sus ingenieros y, por lo tanto, para los ingenieros de toda Europa en diferentes industrias». Los socios industriales de PHANTOM validaron las nuevas herramientas utilizándolas para desarrollar aplicaciones industriales en sistemas multiprocesadores complejos. Las herramientas están disponibles al público como versiones de código abierto, son fáciles de instalar y permiten a los ingenieros evaluarlas. Los socios comerciales del proyecto también ofrecen versiones de pago, combinadas con servicios de consultoría y personalización. Los métodos actuales de programación para múltiples procesadores suelen resultar en una capacidad infrautilizada. Lograr la optimización solo está al alcance de los ingenieros más especializados y expertos. Además, los costes de formación del personal a ese nivel no es algo que la mayoría de las empresas se puedan permitir. Ahora, gracias a las nuevas herramientas del proyecto PHANTOM, los ingenieros de software podrán escribir aplicaciones que logren una optimización completa. Esto aumentará la productividad, reducirá los costes y acortará los tiempos de desarrollo de las aplicaciones.

Palabras clave

PHANTOM, software, procesador múltiple, ingeniero de software, codificación, computación paralela, procesamiento paralelo

Descubra otros artículos del mismo campo de aplicación