OPS (biblioteca Oxford Parallel para solucionadores de malla estructurada) es un lenguaje integrado de alto nivel específico de dominio para escribir algoritmos de malla estructurada de múltiples bloques , y la correspondiente biblioteca de software y herramientas de traducción de código para permitir la paralelización automática en arquitecturas de múltiples núcleos y muchos núcleos. . Mallas estructuradas multibloque. La API de OPS está integrada en C/C++ y Fortran.
Este repositorio contiene la implementación de la biblioteca back-end y el generador de código, y está estructurado de la siguiente manera:
ops
: Implementación de las API de OPS C/C++ de usuario y de tiempo de ejecuciónapps
: Ejemplos de aplicaciones en C. Estos son ejemplos de código de aplicación de usuario y también incluyen el código paralelo de destino generado por el generador de código OPS.ops_translator
: generador de código OPS basado en Python/Clang/Fparser/jinja2 para C/C++/Fortran API (nuevo motor de generación de código). Nota: consulte las instrucciones proporcionadas en Leer los documentos. para obtener detalles sobre las dependencias de Python necesarias para utilizar esta generación de código.ops_translator_legacy
: Generador de código Python OPS para API C/C++/Fortran (motor de generación de código antiguo)scripts
: scripts de ejemplo para configurar variables ambientales y probar aplicacionescmake
: archivos de instalación de cmakemakefiles
: archivos de instalación basados en makefilesdoc
: Documentación La documentación de OPS se puede ver en Leer los documentos.
Para citar OPS, consulte el siguiente documento:
IZ Reguly, GR Mudalige y MB Giles, Mosaico de bucles en códigos de plantilla a gran escala en tiempo de ejecución con OPS, en IEEE Transactions on Parallel and Distributed Systems, vol. 29, núm. 4, págs. 873-886, 1 de abril de 2018, doi: 10.1109/TPDS.2017.2778161.
@ARTICLE{Reguly_et_al_2018,
author={Reguly, István Z. and Mudalige, Gihan R. and Giles, Michael B.},
journal={IEEE Transactions on Parallel and Distributed Systems},
title={Loop Tiling in Large-Scale Stencil Codes at Run-Time with OPS},
year={2018},
volume={29},
number={4},
pages={873-886},
doi={10.1109/TPDS.2017.2778161}}
El método preferido para informar errores y problemas con OPS es enviar un problema a través del rastreador de problemas del repositorio. Los usuarios también pueden enviar un correo electrónico a los autores directamente comunicándose con el equipo de OP-DSL.
Para contribuir a OPS, siga los siguientes pasos:
develop
del repositorio de OPS. Las contribuciones en la rama develop
se fusionarán en la rama maestra a medida que creemos una nueva versión.
OPS se lanza como un proyecto de código abierto bajo la licencia BSD de 3 cláusulas. Consulte el archivo llamado LICENCIA para obtener más información.