MPIrigen: Generación de Código MPI mediante Modelos de Lenguaje Específicos del Dominio
MPIrigen: MPI Code Generation through Domain-Specific Language Models
February 14, 2024
Autores: Nadav Schneider, Niranjan Hasabnis, Vy A. Vo, Tal Kadosh, Neva Krien, Mihai Capotă, Abdul Wasay, Guy Tamir, Ted Willke, Nesreen Ahmed, Yuval Pinter, Timothy Mattson, Gal Oren
cs.AI
Resumen
La necesidad imperiosa de escalar el cómputo a través de numerosos nodos resalta la importancia de la computación paralela eficiente, particularmente en el ámbito de la integración de la Interfaz de Paso de Mensajes (MPI). La desafiante tarea de programación paralela de generar programas paralelos basados en MPI ha permanecido inexplorada. Este estudio primero investiga el desempeño de los modelos de lenguaje más avanzados en la generación de programas paralelos basados en MPI. Los hallazgos revelan que modelos ampliamente utilizados como GPT-3.5 y PolyCoder (modelos especializados en código multilingüe) exhiben una notable degradación en el rendimiento al generar programas basados en MPI en comparación con programas de propósito general. En contraste, modelos específicos de dominio como MonoCoder, que están preentrenados en lenguajes de programación relacionados con MPI como C y C++, superan a modelos más grandes. Posteriormente, introducimos una tarea específica de generación de programas basados en MPI mediante el ajuste fino de MonoCoder en HPCorpusMPI. Llamamos al modelo resultante MPIrigen. Proponemos un preprocesamiento innovador para la completación solo después de observar el código completo, permitiendo así una mejor completación con un contexto más amplio. El análisis comparativo frente al rendimiento de GPT-3.5 en modo zero-shot, utilizando un novedoso método de evaluación orientado a HPC, demuestra que MPIrigen sobresale en la generación de funciones MPI precisas, alcanzando hasta 0.8 de precisión en la predicción de ubicaciones y funciones, y más de 0.9 de precisión en la predicción de argumentos. El éxito de esta solución personalizada subraya la importancia del ajuste fino específico de dominio en la optimización de modelos de lenguaje para la generación de código de computación paralela, allanando el camino para una nueva generación de herramientas de paralelización automática. Las fuentes de este trabajo están disponibles en nuestro repositorio de GitHub MPIrigen: https://github.com/Scientific-Computing-Lab-NRCN/MPI-rigen.
English
The imperative need to scale computation across numerous nodes highlights the
significance of efficient parallel computing, particularly in the realm of
Message Passing Interface (MPI) integration. The challenging parallel
programming task of generating MPI-based parallel programs has remained
unexplored. This study first investigates the performance of state-of-the-art
language models in generating MPI-based parallel programs. Findings reveal that
widely used models such as GPT-3.5 and PolyCoder (specialized multi-lingual
code models) exhibit notable performance degradation, when generating MPI-based
programs compared to general-purpose programs. In contrast, domain-specific
models such as MonoCoder, which are pretrained on MPI-related programming
languages of C and C++, outperform larger models. Subsequently, we introduce a
dedicated downstream task of MPI-based program generation by fine-tuning
MonoCoder on HPCorpusMPI. We call the resulting model as MPIrigen. We propose
an innovative preprocessing for completion only after observing the whole code,
thus enabling better completion with a wider context. Comparative analysis
against GPT-3.5 zero-shot performance, using a novel HPC-oriented evaluation
method, demonstrates that MPIrigen excels in generating accurate MPI functions
up to 0.8 accuracy in location and function predictions, and with more than 0.9
accuracy for argument predictions. The success of this tailored solution
underscores the importance of domain-specific fine-tuning in optimizing
language models for parallel computing code generation, paving the way for a
new generation of automatic parallelization tools. The sources of this work are
available at our GitHub MPIrigen repository:
https://github.com/Scientific-Computing-Lab-NRCN/MPI-rigenSummary
AI-Generated Summary