Embedded Parallel Computing

Credits:
4
Prerequisites:

Modern  compute-intensive  applications  such  as  those  in  computer  vision,  autonomous  decision-making, AR/VR exhibit a high level of parallelism and computing requirements. Heterogeneous  multicore  embedded  systems  employ  accelerators  such  as  GPUs  in  addition to CPUs working in unison to execute massively parallel programs. In this course students focus on the application of parallel programming languages, techniques, models and  tools  to  leverage  the  performance  of  heterogeneous  multicore  processors  to implement  such  applications.  Students  learn  to  parallelize  a  problem,  select  and  implement  parallel  algorithms,  apply  optimization  techniques  and  articulate  the  use  of  standard APIs. Case studies and current research topics in this area will be introduced. Through a course project, students will work on a real-world compute-intensive problem in engineering or science. This course is application-oriented and covers the underlying hardware architecture concepts as needed.


Technical Option Stream: Embedded Systems