Apr 24, 2024  
2020-2021 University Catalog 
    
2020-2021 University Catalog [ARCHIVED CATALOG]

ECE 56300 - Programming Parallel Machines


Credit Hours: 3.00.  This course presents methods and techniques for programming parallel computers, such as multicore and high-end parallel architectures. Various parallel algorithms will be presented to demonstrate different techniques for identifying parallel tasks and mapping them onto parallel machines. Realistic science/engineering applications and their characteristics will be discussed. Parallel architectures to be considered are shared-memory and distributed-memory multiprocessor systems. Programming paradigms for these machines will be compared, including directive-based (OpenMP), message passing (MPI) and thread-based (Posix threads) methods. Methodologies for analyzing and improving the performance of parallel programs will be discussed. There will be a class project in which each student parallelizes and tunes the performance of a large computation application or develops/improves a tool that helps this process. Each student will prepare one lecture for a selected topic. Offered during odd years. Typically offered Spring.Credits: 3.00