All Modern Computing Systems Support Parallelism in Hardware. Moreover, Explicit Parallel Programming to Exploit These Features For High Performance Is Becoming Mainstream. This Course Is About Software-hardware Interaction. It Covers Advanced Topics in Hardware Design As Well As Programming Models, Patterns and Software Optimization Techniques For Achieving High-performance With Multi-core Systems Andvectorized Systems. It Also Surveus Recent Domain-specific Hardware Accelerators (e.g. Acceleration of Deep-learning Inference). The Course Covers Methods For Qantitative Evaluation Of Hardware/software Performance. The Course Includes a Few Significant Home Assignments in Parallel Programming to Practice The Learned Material. Overall Weekly Load 6 Hours. Learning Outcomes# The Student Will Be Able to - 1. Evaluate Computer System Architectures Through Understanding of The Trends in Computer Architecture From Multi-core, Gpus and Latest Domain Specific Accelerators. 2. Develop Software Using Different Parallel Programming Models, Sw Optimization Techniques and Patterns For Efficient Parallel Hw Utilization.

Faculty: Electrical and Computer Engineering
|Undergraduate Studies |Graduate Studies

Pre-required courses

(46209 - Structure of Operating Systems and 46267 - Computer Architecture) or 46209 - Structure of Operating Systems or (46267 - Computer Architecture and 234123 - Operating Systems) or (234123 - Operating Systems and 234267 - Computer Architecture)


Semestrial Information