After going thorough all the modules of the course, the learner should be able to
- Identify the need for multi-core architecture for specific applications by developing a suitable complexity measure.
- Identify needs for homogeneous or heterogeneous multi-core architectures for a given application
- Develop methods to partition a given application program to run on a multi-core processor
- Use the Intel multi-core architecture for develop high performance code
- Optimize code using appropriate techniques.
Module 1: Introduction to multi-core architecture: Parallel computing and why it failed. Multi-processor architecture and its limitations. Need for multi-core architectures 4 one-hour lectures
Module 2: Multi-core architecture: Architecting with multi-cores. Homogenous and heterogeneous cores. Shared recourses, shared busses, and optimal resource sharing strategies. Performance evaluation of multi-core processors. Error management 12 one-hour lectures
Module 3: Intel Multi-core architecture: Detailed study of the architecture and programming of the Intel processors. 12 one-hour lectures
Module 4: Benchmarking multi-core architecture: Bench marking of processors. Comparison of processor performance for specific application domains. 4 one-hour lectures
Module 5: Code optimization: Need for code optimization. Tools for code optimization and optimization strategies 4 one-hour lectures The lab part will consist of 14 three-hour sessions and will include basic programming exercises and a miniproject.