monanadmin / monan

Repositório organizacional das atividades dos macro-grupos do MONAN - Model for Ocean-laNd-Atmosphere PredictioN
14 stars 10 forks source link

[GCC] GRC: Ferramenta Codee - 2 #528

Closed joaomas closed 3 weeks ago

joaomas commented 1 month ago

:people_holding_hands: User Story

COMO (...) QUEREMOS (...) PARA (...)

:clipboard: Critérios de aceite de conclusão da Issue

:pencil: Detalhamento adicional da atividade

-.

:comet: Impactos

-.

:link: Dependências

-.

:hammer_and_wrench: Solução

Introdução:

O Codee consiste em um software de análise estática de código. Analisando cada linha de código encontrando trechos de códigos, otimizando e modernizando o código analisado.

Link 1: https://www.codee.com/ Link 2: https://github.com/codee-com/ Link 3: https://www.codee.com/wp-content/uploads/2024/04/Codee-Product-Datasheet-Fortran-modernization.pdf

1. Detalhes de bug indentification "The modernization process helps find bugs and avoid introducing hidden bugs in code." - Nos parece que o bug identification tem o viés em HPC, necessário testar a ferramenta.

image

2. Detalhes de checagem de regras A ferramenta possui checagem de regras, baseada em boas práticas do Fortran Modernization.

image

Image

Image

3. Detalhes de test coverage "Measure code coverage metrics and discover lines with missing tests on every pull request."

4. Como pode ser usado (quais regras) na DTN01 Identificamos pelo menos uma regra da DTN01, o enfoque da ferramenta parece ser regras de HPC (laços, ifs, construções, etc.)

5. Testar um caso ""real"" de uso ou se encontrado na documentação não há necessidade do teste ""real"". Existe a opção de Live demo, talvez em uma próxima sprint.

6. Verificar existência de APIs Até o momento não foi encontrado.

7. Verificar dependências de biblioteca e SO's" Image Image

//

KEY FEATURES

● Static Analysis: Analyze every code line to find and fix code modernization and optimization opportunities and run sanitizers on your code. ● Code Coverage: Measure code coverage metrics and discover lines with missing tests on every pull request. ● Autofix: Automatically generate fixes for code modernization issues, always under the control of the programmer and preserving 100% code correctness. ● Reports: Get a deeper understanding of your organization's code health with powerful insights, modernization reports, and optimization reports. ● Self-hosting: Deploy on-prem on your private system within minutes, and retain full control of your source code and privacy. ● CI/CD automation: Enable automated testing on all CI systems, test every code change and pull-request to find code issues before merges and public releases. ● Technical Debt: Quantify the extent of code refactoring required to modernize your Fortran code. ● ROI: Quantify savings in development effort to modernize your code, and tailor the ROI estimation to your organization

Demos

Image

Image

Image

Image

:rotating_light: Problemas encontrados

-.

:white_check_mark: Conclusão

:spiral_calendar: Trabalhos Futuros

-.

joaomas commented 1 month ago

@klclaudio Codee se chamava antes Parallelware, pesquisando o segundo tem bastante material.

https://upcommons.upc.edu/bitstream/handle/2117/340682/Arenaz_Martorell.pdf?sequence=3

https://www.hpcwire.com/off-the-wire/parallelware-analyzer-0-18-released/

https://www.openmp.org/wp-content/uploads/SC19-Arenaz-Parallelware.pdf

https://codee.com/wp-content/uploads/2020/10/4A-pwtools-nersc.pdf

https://www.youtube.com/watch?v=FknEDiX3aGI

https://www.nersc.gov/assets/Uploads/presentation-NERSC-NUG-Parallelware-March2021.pdf

https://codee.com/wp-content/uploads/dlm_uploads/2018/09/Parallelware-Trainer-User-Manual.pdf

https://www.openmp.org/wp-content/uploads/SC19-Arenaz-Parallelware.pdf

https://www.youtube.com/watch?v=KxEQR33qaK8

https://www.nersc.gov/assets/Uploads/Parallelware-Analyzer-quickstart-with-ATMUX.pdf

https://www.nersc.gov/assets/Uploads/2-Part1-Practical-PI.pdf