Welcome to the NHERI-SimCenter 2023 Programming Bootcamp¶
Following the success of our online version of this workshop, this year’s offering will be solely online. Expect to collaborate with students from across the globe and enjoy the oportunity to make new friends at unexpected places.
The format will be two weeks of daily self-study assignments, followed by three (3) hours of online lectures and exercises via zoom, followed by homework assignments and some more self-study video sessions. Every morning, office hours are held for one (1) hour before the actual meetings.
Note
It is intense. While instruction is limited to 3 hours a day, expect to spend significant hours daily working and submitting assignments if you intend to get anything worthwhile from the courses.
These two weeks are offered as individual or as one combined workshop as follows.
C/C++/HPC Workshop
Mon June 5 - Friday, June 9, 2023
The first week of this bootcamp is all focused on HPC target environments, reviewing coding basiscs in C and C++, but quickly transitioning to the fundamentals of parallel programming. This is a highly intensive crash course which introduces attendees to concepts of computing, and quickly goes through fundamentals of coding in C and C++ to build applications that run in parallel.
Python Workshop
Mon June 12 - Friday, June 16, 2023
The Python workshop is geared towards beginner and intermediate level material. The first three days will cover and refresh basic concepts of python, as well as fundamentals of code design. Thursday will transition you to command-line use of python, as you’ll need on any high-performance computing (HPC) environment. The workship will conclude on Friday with a team coding challange that emphasizes on collaborative coding and computing.
Note
Course material is available through the NHERI-SimCenter/SimCenterBootcamp2023 repository on https://github.com
You will need your own GitHub account to participate in our exercises.
- Syllabus
- Setup Instructions
- Self-Study Videos
- Assignments
- C: Assignments Day 1
- C: Assignments Day 2
- C: Assignments Day 3
- C: Assignments Day 4
- C: Assignments Day 5
- Problem 1: Parallelize normVector.c using OpenMP
- Problem 2: Parallelize pi.c using OpenMP
- Problem 3: Additional Exercise JUST for Frank
- Step 1: Setting Up an Execution System
- Step 2: Exploring File System Commands
- Step 3: Build a Tapis app
- Step 4: Submitting a Job
- Step 5: Allowing Others to Use your App
- Python: Assignments Day 1
- Python: Assignments Day 2
- Python: Assignments Day 3
- Python: Assignments Day 4
- Python: Assignments Day 5
- Git
- Emacs
- Cmake
- TACC-Frontera
- Tapis CLI
- C: Assignments Day 5
- Problem 1: Parallelize normVector.c using OpenMP
- Problem 2: Parallelize pi.c using OpenMP
- Problem 3: Additional Exercise JUST for Frank
- Step 1: Setting Up an Execution System
- Step 2: Exploring File System Commands
- Step 3: Build a Tapis app
- Step 4: Submitting a Job
- Step 5: Allowing Others to Use your App
- C: Assignments Day 5
- Questions, Issues
- Additional Resources