NERSCPowering Scientific Discovery for 50 Years

Codee Training: Write Accelerated Code at Expert Level, Sept 5-6, 2024

September 5, 2024

Introduction

Codee is a programming development tool for Fortran/C/C++ that facilitates the development of modern, parallel codes for multicore CPUs and GPUs using OpenMP and OpenACC. Leveraging the first Open Catalog of Best Practices for Modernization and Optimization, Codee identifies opportunities for improvement and provides detailed guidance on how to effectively exploit them. A standout feature is its ability to insert OpenMP and OpenACC directives, enabling even novice programmers to write expert-level parallel code for CPUs and GPUs in Fortran/C/C++. Additionally, Codee helps developers uncover hidden bugs, avoid introducing new ones, and pinpoint code optimization suggestions. As a result, Codee facilitates the maintenance and optimization of large Fortran/C/C++ codes, while ensuring code correctness and reliability. Codee also has the ability to automatically rewrite Fortran code to enforce Fortran modernization best practices, which is strongly recommended by experts before starting code optimization efforts.

This two-part training, scheduled for September 5-6th, aims to familiarize both novice and seasoned programmers with the usage of Codee to modernize and optimize their codes following best parallel programming practices for CPUs and GPUs with OpenMP and OpenACC.

Part One (September 5th): Participants will learn about the capabilities of Codee, including short demos on different Fortran/C/C++ codes accelerated on both CPUs and GPUs. The session includes practical exercises with step-by-step instructions on Perlmutter.

Part Two (September 6th): This session will demonstrate how to use Codee for large projects, how to use Codee for automated testing in Perlmutter, and provide new hands-on exercises. Participants are also encouraged to bring their own codes for guidance on leveraging Codee’s potential.

This training is open to OLCF and ALCF users. NERSC training accounts will be provided if needed.

Date and Time

This training will take place online, via Zoom, on Thursday-Friday, September 5-6th, from 9:00 am to 12:30 pm (Pacific Daylight Time).

Schedule

Part, Date & Time Topic and Format

Part 1, Thur, Sept 5

9:00 am - 12:30 pm PDT

Codee: Automated Code Inspection for Modernization and Optimization
  • Lecture:
    • Codee’s command-line tool
    • Open Catalog of Best Practices for Fortran/C/C++ Modernization and Optimization for CPU and GPU
  • Demo using Fortran:
    • HIMENO modernization
    • HIMENO optimization through CPU & GPU parallelism
  • Demo using C/C++:
    • COULOMB optimization through CPU & GPU parallelism
  • Hands-on: PI, MATMUL, COULOMB, HIMENO
Format: Remote lecture, demos, and hands-on

Part 2, Fri, Sept 6

9:00 am - 12:30 pm PDT
Codee: Automated Analysis of Large-Scale Fortran/C/C++ Codes
  • Lecture:
    • Codee’s command-line tool using compilation databases
    • Automated testing of large codes using Codee on Perlmutter
    • Use case: Optimizing the Weather Research and Forecasting Model (WRF) with OpenMP Offload and Codee
  • Demo using Fortran:
    • Putting it all together with HYCOM
  • Demo using C/C++:
    • Putting it all together with MBedTLS
  • Hands-on: NUCCOR, ATMUX, HEAT, LULESHmk, MBedTLS
  • Bring your own applications!

Format: Remote lecture, demos, and hands-on

Registration

Please use this form to register. 

Presentation Materials

Downloads