OPS (biblioteca Oxford Parallel para solucionadores de malha estruturada) é uma linguagem específica de domínio incorporada de alto nível para escrever algoritmos de malha estruturada multibloco e a biblioteca de software correspondente e ferramentas de tradução de código para permitir a paralelização automática em arquiteturas multi-core e multi-core . Malhas estruturadas multibloco. A API OPS está incorporada em C/C++ e Fortran.
Este repositório contém a implementação da biblioteca back-end e do gerador de código e está estruturado da seguinte forma:
ops
: Implementação das APIs C/C++ de OPS de usuário e tempo de execuçãoapps
: Exemplos de aplicativos em C. Esses são exemplos de código de aplicativo do usuário e também incluem o código paralelo de destino gerado pelo gerador de código OPS.ops_translator
: gerador de código OPS baseado em Python/Clang/Fparser/jinja2 para API C/C++/Fortran (novo mecanismo de geração de código). Observação: consulte as instruções fornecidas em Leia os documentos. para obter detalhes sobre as dependências do Python necessárias para utilizar esta geração de código.ops_translator_legacy
: gerador de código Python OPS para API C/C++/Fortran (antigo mecanismo de geração de código)scripts
: scripts de exemplo para definir variáveis ambientais e testar aplicativoscmake
: arquivos de instalação do cmakemakefiles
: arquivos de instalação baseados em makefiledoc
: Documentação A documentação do OPS pode ser visualizada em Leia os documentos.
Para citar OPS, consulte o seguinte artigo:
IZ Reguly, GR Mudalige e MB Giles, Loop Tiling em códigos de estêncil em larga escala em tempo de execução com OPS, em Transações IEEE em sistemas paralelos e distribuídos, vol. 29, não. 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}}
O método preferido para relatar bugs e problemas com OPS é enviar um problema por meio do rastreador de problemas do repositório. Os usuários também podem enviar um e-mail diretamente aos autores entrando em contato com a equipe OP-DSL.
Para contribuir com o OPS, siga as seguintes etapas:
develop
do repositório OPS As contribuições no ramo develop
serão mescladas no ramo mestre à medida que criamos uma nova versão.
OPS é lançado como um projeto de código aberto sob a licença BSD de 3 cláusulas. Consulte o arquivo chamado LICENSE para obter mais informações.