Sunita Chandrasekaran, un profesor asistente de informática y ciencias de la información, está diseñando marcos para adaptar el código a sistemas informáticos cada vez más potentes. Ella está trabajando con patrones complejos conocidos como frentes de onda, que se muestran en el fondo de esta imagen. Crédito:Joy Smoker
La supercomputadora más rápida del mundo ahora puede realizar 200, 000 billones de cálculos por segundo, y varias empresas y agencias gubernamentales de todo el mundo están compitiendo para construir una máquina que tenga el poder de una computadora para simular redes a la escala del cerebro humano. Este hardware extremadamente poderoso requiere un software extremadamente poderoso, por lo que el código de software existente debe actualizarse continuamente para mantenerse al día.
Sunita Chandrasekaran, profesor asistente de informática y ciencias de la información en la Universidad de Delaware, se adapta perfectamente a este desafío. Bajo una nueva subvención de la National Science Foundation, ella está diseñando frameworks para adaptar el código a sistemas cada vez más poderosos. Ella está trabajando con patrones complejos conocidos como frentes de onda, que se encuentran comúnmente en los códigos científicos utilizados para analizar el flujo de neutrones en un reactor nuclear, extraer patrones de datos biomédicos o predecir patrones atmosféricos.
Chandrasekaran es un experto en programación paralela:escribe código de software que puede ejecutarse simultáneamente en muchos procesadores de múltiples núcleos. La programación paralela es una disciplina cada vez más importante dentro de la informática, ya que cada vez más universidades y empresas utilizan supercomputadoras potentes para analizar amplias franjas de datos. desde resultados científicos hasta conocimientos sobre el comportamiento del consumidor y más.
Chandrasekaran está buscando aplicaciones científicas para ver cómo fueron escritas, cómo se han desempeñado en arquitecturas obsoletas, qué tipo de modelos de programación se han utilizado, y qué desafíos han surgido.
"La mayoría de las veces, los modelos de programación se crean a grandes rasgos, ", dijo." Debido a que se generalizan para abordar una gran cantidad de patrones paralelos que se encuentran comúnmente, a menudo los modelos no crean características para algunos patrones paralelos complejos, como los frentes de onda, que están ocultos en algunas aplicaciones científicas ".
Un frente de onda permite el análisis de patrones en menos pasos. La pregunta es:¿Cómo se consigue que el modelo de programación haga eso?
Un ejemplo de ello es Minisweep, una miniapp que modela escenarios dentro de un reactor nuclear "barriendo" a través de una cuadrícula con cuadrados que representan puntos en el espacio y se utilizan para calcular las posiciones, energías, y flujos de neutrones. Esta aplicación principal de Minisweep se utiliza para reducir las probabilidades de una fusión y proteger a los ingenieros que trabajan cerca del reactor nuclear de la exposición a la radiación. A principios de este año, Chandrasekaran y el estudiante de doctorado Robert Searles demostraron cómo modificaron la miniapp para que funcionara 85,06 veces más rápido que el código que no estaba paralelo. Este trabajo fue presentado recientemente en la principal conferencia Platform for Advanced Scientific Computing (PASC) 2018 y publicado por la Association for Computing Machinery (ACM).
"Nos preguntamos:¿Es este patrón específico de Minisweep? "dijo." ¿O va a existir en otros códigos? ¿Hay otros códigos que podrían beneficiarse si pusiera este tipo de patrón en un modelo de programación y creara una implementación y la evaluara? "
Por ejemplo, Chandrasekaran descubrió que algunos algoritmos en bioinformática, el estudio de grandes conjuntos de datos biológicos, contenía patrones similares. Ella sospecha que al adaptar el software escrito para Minisweep, puede hacer grandes avances hacia la mejora del código. Intentará esto con datos de Erez Lieberman Aiden, profesor asistente de genética molecular y humana en Baylor College of Medicine y profesor asistente de ciencias de la computación en Rice University. Chandrasekaran conoció a Aiden cuando visitó la UD para dar una charla titulada "Procesamiento paralelo de los genomas, por los genomas y por los genomas ".
Chandrasekaran se inspiró en el trabajo de Aiden con secuencias de ADN. Utiliza una herramienta informática para encontrar interacciones de largo alcance entre dos elementos en el mismo cromosoma, mostrando a su vez la base genética de las enfermedades. Chandrasekaran sospechaba que podía utilizar patrones existentes y actualizar el código, permitiendo un análisis más rápido de estos importantes datos biológicos.
"El objetivo no es simplemente crear una herramienta de software, ", dijo." El objetivo es construir estudios de casos de la vida real en los que lo que cree será importante en términos de facilitar la ciencia ".
Para hacer esto, se explorarán modelos de programación paralela basados en directivas como OpenACC y OpenMP.
Chandrasekaran tiene como objetivo mantener el rendimiento y la portabilidad mientras rediseña algoritmos. También tendrá en cuenta a los científicos que utilizan los algoritmos.
"No se puede crear un modelo de programación con solo mirar la aplicación o solo la arquitectura, "Ella dijo." Tiene que haber algo de equilibrio ".
Este proyecto beneficiará a los desarrolladores de aplicaciones científicas que no son necesariamente informáticos. "Pueden concentrarse más en la ciencia y menos en el software, ", dijo Chandrasekaran. Los científicos acuden a ella con conjuntos de datos y problemas que toman horas, dias, a veces meses para calcular, y descubre cómo hacer que corran más rápido, permitiendo así la ciencia más nueva.
Chandrasekaran analizará los datos proporcionados por Aiden en Baylor y los físicos en Oak Ridge National Lab. Searles también trabajará en el proyecto, y Chandrasekaran está buscando un estudiante graduado adicional con aptitudes para la programación paralela para ayudar con este proyecto.