Tutorial on Codee: Automated Code Inspection for Performance
2:00pm - 5:00pm
Codee is a software development tool that provides automated code inspection specifically designed to improve the performance of C/C/Fortran applications. Codee brings a systematic, predictable approach by finding and fixing performance issues in the source code that were overlooked by the compiler.
The tool scans the C/C/Fortran source code without executing it, and produces a report for the developer indicating the issue, its location, why it penalizes performance, and how to fix it in order to make the code run faster.
It is designed to interoperate with CI/CD systems. Codee provides automated capabilities to fix performance issues and produces a performance optimization report with human-readable actionable items: opportunities, recommendations, defects and remarks.
It actually rewrites the C/C/Fortran source code and adds annotations targeting CPU and GPU codes with OpenMP, OpenACC and compiler-specific directives. It also detects defects in these directives, enabling the early detection of race conditions and data movement issues.
A combination of presentation slides, live demo and Q&A will be used during the session.
Manuel Arenaz is CEO at Codee. He holds a PhD in Computer Science from the University of A Coruña 2003 on advanced compiler techniques for automatic parallelization for multicore CPUs and GPUs. After 10 years teaching parallel programming at undergraduate and PhD levels, co-founded Appentra Solutions which delivers Codee, a software solution that provides automated code inspection specifically designed to improve the performance of software.
Ulises Costi is a software Engineer and member of the Engineering Team of Codee. He obtained his degree from the National University of La Plata UNLP in 2020 with the thesis called “Floyd-Warshall acceleration for Intel Xeon Phi Knights Landing”. From the beginning, Ulises was interested in performance and directed his career towards that perspective. His job in Codee mainly consists of requirements elicitation, translation of requirements into technical documents, quality assurance, and making live demos of the product.