Below are the anticipated enhancements to the
undergraduate computer science and computational science curriculum ...
|
Course
|
Hybrid Accelerator Enhancements
|
Primary Rationale
|
Project Status
|
|
Introduction to Programming (ACM CS111)
|
- Parallel programming basics
- Use of GPULib in Python
- Python parallel spaces
|
Common taken course by majors and non-majors; provides conceptual foundations
|
Enhancements nearly available
|
|
Data Structures (ACM CS103)
|
- Multicore threaded programming
- Synchronization techniques
- Issues in concurrent programming
|
Introduction to techniques for asynchronous processing using shared resources
|
Enhancements nearly available
|
|
Algorithms (ACM CS210)
|
- Multilevel parallelism
- Application performance evaluation
- Memory utilization
|
Develop ability to select appropriate parallel decomposition for efficient implementation
|
Enhancements underway
Current Items
|
|
Computer Organization (ACM CS220)
|
- Multicore designs
- Interprocessor communication
- GPU designs
- Reconfigurable processors
- Memory access design patterns
|
Foundations for intercomponent communication; understanding elements impacting performance; architecture contrasts
|
Enhancements underway
|
|
Programming Languages (ACM CS240)
|
- HPC languages (e.g. X10, Fortress, Chapel)
- Parallel languages
- CUDA
- VHDL
|
Expanded knowledge of implementation options for parallel and hybrid accelerator solutions
|
Enhancements underway
|
|
Software Engineering (ACM CS290)
|
- Component libraries
- USe of standards and APIs
- Debugging strategies
|
Learn strategies for complex application development; techniques to create robust applications
|
Enhancements in the future
|