Skip to content

chaneyn/CEE690

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CEE690: Software Engineering for Spatial Data Analysis

Spring 2026

Course Information

Lectures are on Tuesdays and Thursdays from 10:15 AM - 11:30 AM. The course website is on GitHub (https://github.com/chaneyn/CEE690). Class announcements will be made via Canvas (CEE 690.01.Sp26).

Instructor

Professor Nathaniel W. Chaney (Nate)
Email: nathaniel.chaney@duke.edu
Office: FCIEMAS 2463
Office hours: TBD

Course Description

This course will equip students to build and deploy high-performance simulation tools for large-scale environmental challenges. The topics that will be covered include high performance computing, scripting at the terminal, text editors, building modular code, compiled and scripted languages, profiling, unit-testing, documentation, and parallelism via OpenMP, MPI, and CUDA. Other topics will include briding high-level Python logic with low-level hardware.

Prerequisites

CEE 506: Environmental Spatial Data Analysis is a prerequisite. If you have not taken CEE 506, please contact Nate to determine if this course is appropriate for you.

Readings

There are no required textbooks.

Grades and workload

The course grade will be based on:

  • Homework: 20%
  • Project I: 40%
  • Project II: 40%

Homework

  • There will be two homeworks; each one will be due at the same time as each project.

Schedule

Note that the schedule is subject to change (and will change).

Part I: Python

Date Topic Assignments
01/08 The headless environment -
01/13 Text editors -
01/15 Software architecture I -
01/20 Software architecture II -
01/22 Verification and profiling Proposal 1 due
01/27 Packaging, automation and documentation -
01/29 Computing on spatial grids -
02/03 GPU computing in Python -
02/05 High-Speed kernels: Numba CPU & CUDA -
02/10 Anatomy of an HPC cluster -
02/12 Shared memory parallelism I -
02/17 Distributed memory parallelism I -
02/19 The scheduler -
02/24 High-Performance I/O -
02/26 TBD Project 1/Homework 1 due

Part II: Compiled languages

Date Topic
02/26 Compiled languages I
03/03 Compiled languages II
03/05 The build process
03/17 Memory management and basic debugging
03/19 Tensors in memory and data layout
03/24 Computer architecture and cache
03/26 Code documentation and profiling
03/31 Code interoperability
04/02 Shared memory parallelism II
04/07 Distributed memory parallelism II
04/09 Containers
04/14 TBD

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages