NERSCPowering Scientific Discovery Since 1974

Codee Training Series: Apr 26-27, 2022


Appentra's Codee Analyzer (formerly known as Parallelware Analyzer) is a programming development tool for C/C++/Fortran parallel codes on multicore CPUs and GPUs using OpenMP and OpenACC. One great feature of the Codee Analyzer Tool is that it can automatically insert OpenMP or OpenACC directives in your codes to run on CPUs or offload to accelerator devices such as GPUs, so that novice programmers can write codes at the expert level. This programming developer tool also provides code inspections for debugging and improving OpenMP/OpenACC programming on GPUs with a systematic, more predictable approach that leverages parallel programming best practices.

Codee scans the source code without executing it and produces a performance optimization report with human-readable actions that identify where and how to fix performance issues of the code. It supports the performance optimization roadmap, from sequential optimizations to memory optimizations to vectorization and beyond.

The Codee training series will start in April 2022 with a 2-day event with 4 parts, each part combining presentations, demos and hands-on sessions on Perlmutter GPUs. Part one will present Codee and its capabilities for automated code inspection for performance optimization. Parts two and three will showcase how to use Codee to address GPU programming challenges that appear frequently in real scientific and engineering applications. Finally, part four will provide room for users to bring their own codes to explore Codee tools. The list of topics is shown in the table below.

The Codee training series will continue during 2022. After this course, user appointments will be available to answer questions and help with adopting Codee in user codes. Towards the second half of the year, new courses will explore Codee’s advanced capabilities for integration with third-party developer tools, including but not limited to build systems, vectorizing compilers and CI/CD frameworks.

OLCF and ALCF users are welcome to this training. NERSC training accounts will be provided if needed.

Date and Time: 9 am - 12 pm (Pacific time), Tue - Wed, April 26-27, 2022

The format of this event will be online only. 


PartTopic and FormatDate and Time

Introduction to Codee tools: Shift Left Performance

  • Introduction to Codee and the shift left approach
  • Open catalog of coding rules for performance optimization
  • Automated code inspection with Codee: Discover and Adopt
  • Quick start to Codee: Canny image processing
  • Hands-on: Optimizing PI on Perlmutter
  • Remote lectures (~30’), demos. and hands-on sessions




Tue, Apr 26
9 am - 12 pm PDT


Usage of Codee for GPU programming (1/2)

  • The GPU programming challenges
  • Memory usage, massive parallelism exploitation, and data transfers minimization
  • Codee’s support to address memory usage and massive parallelism
  • Hands-on: Optimizing MATMUL on Perlmutter
  • Remote lectures (~30’), demos, and hands-on sessions

Usage of Codee for GPU programming (2/2)

  • The GPU programming challenges
  • Codee’s support to address data transfers minimization
  • Hands-on: Optimizing MATMUL on Perlmutter
Format: sessions
  • Remote lectures (~30’), demos, and hands-on exercises





Wed, Apr 27

9 am - 12 pm PDT

#4 Putting it all together

  • Hands-on: Optimizing LULESHmk on Perlmutter
  • Hands-on: Work on your own code
  • Remote demos and hands-on sessions


Please use this form to register. 

Presentation Materials

Slides below.  Recordings as a PlayList.