Dr RAJASEKHARA BABU M

Information Visualization (CSE6016)


Course Objectives

  • To provide knowledge on basics of Multicore architectures and parallel programming models
  • To design and develop parallel programs using parallel computing platforms such as OpenMP, CUDA
  • To apply program optimizations on parallel programs and evaluate the performance using profiling tools

Course Outcomes (CO)

After successfully completing the course the student should be able to

  1. Outline the developments in the evolution of multi-core architectures and parallel programming paradigms
  2. Comprehend the various programming languages and libraries for parallel computing platforms
  3. Use of profiling tools to analyse the performance of applications by interpreting the given data
  4. Compare and contrast the features of parallel programming languages such as OpenMP and CUDA
  5. Write parallel programs using OpenMP and CUDA
  6. Evaluate efficiency trade-offs among alternative parallel computing architectures for an efficient parallel application design
  7. Analyse performance parameters such as speed-up, efficiency for parallel programs against serial programs

Multicore Architectures Theory (CSE5006)

  • Programme & Branch: M.Tech., C.S.E
  • Class Number: VL2020210104902
  • L T P J C: 2 0 0 0 2
  • Course Mode: Class Based Learning
  • Slot: E1 (Tue 10:00-10:45, Fri 8:00-8:45)
  • Venue: SJT503
  • Total no. of Registered Students: 41

Multicore Architectures Lab (CSE5006)

  • Programme & Branch: M.Tech., C.S.E
  • Class Number: VL2020210104903
  • L T P J C: 0 0 2 0 1
  • Course Mode: Lab Based Component
  • Slot: L47+L48 (Wed 5:30PM-7:00PM)
  • Venue: SJT316
  • Total no. of Registered Students: 41

Multicore Architectures Theory


Course Plan & Schedule

Theory course plan
ModuleTitleHrs
Module-1Introduction to Multi-Core Architectures2
Module-2Parallel Computers and Programming5
Module-3OpenMP Programming5
Module-4CUDA Programming6
Module-5Performance Analysers4
Module-6Contemporary Tools3
Module-7HTC and MTC3
Module-8Recent Trends2
Total Lecture Hrs30

Course Lectures

LectureTopicMaterial
1Context Setting Lecture Handouts · Recorded video-1
2-3Evolution of Multi-Core Technology Lecture Handouts · Recorded Video-2
4Communication_Architectures_1 Lecture Handouts · Recorded Video-4
5Communication_Architectures_2 Lecture Handouts · Recorded Video-5
6-7Threading Concepts - Design Lecture Handouts · Recorded Video-6 · Recorded Video-7
8-9Memory Hierarchy and Introduction to Cache Lecture Handouts · Recorded Video-8 · Recorded Video-9
OpenMP Lectures
AIntroduction to OpenMP - Parallel constructs Lecture Handouts · Recorded Video-A
BRuntime Library routines Lecture Handouts · Recorded Video-B
CWork-sharing constructs Lecture Handouts · Recorded Video-C
DScheduling Clauses Lecture Handouts · Recorded Video-D
EData Environment Constructs Lecture Handouts
FExtensive API library Lecture Handouts
10Cache coherence Lecture Handouts
11Cache coherence Lecture Handouts
12Cache coherence Lecture Handouts
13CUDA-1 Lecture Handouts
14CUDA-2 Lecture Handouts
15CUDA-3 Lecture Handouts
16CUDA-4 Lecture Handouts
17CUDA-5 Lecture Handouts
18Trace analyzer and collector (ITAC) Lecture Handouts · Recorded Video
19Profiler tool: VTune Recorded Video

Assessments

  1. Continuous Assessment Test (CAT)-1
  2. Continuous Assessment Test (CAT)-2
  3. Quiz-1
  4. Quiz-2
  5. Digital Assignment
  6. Additional Learning

Multicore Architectures Lab


Course Plan & Schedule

WeekDateTopic
W129-Jul-20Context Setting
W201-Aug-20Introduction to OpenMP
W305-Aug-20Develop a program using following construct and describe scenario for the need of construct
W412-Aug-20Execution Time computation
W519-Aug-20Develop a simple program using Execution Environment Routines and write interesting observations by comparing various routines
W626-Aug-20Develop a program using following construct and describe scenario for the need of construct
W709-Sep-20Develop a program using following construct and describe scenario for the need of construct
W816-Sep-20Develop a program using following construct and describe scenario for the need of construct
W919-Sep-20Develop a program using following construct and describe scenario for the need of construct
W10-1323-Sep-20, 30-Sep-20, 07-Oct-20, 14-Oct-20Develop parallel programs for given serial programs and profile the program using VTune Analysis tool
W14-1621-Oct-20, 28-Oct-20, 31-Oct-20Sample CUDA Programs

Course Lectures

LectureTopicMaterial
1Context Setting Lecture Handouts · Recorded video
2Evolution of Multi-Core Technology Lecture Handouts
3Communication_Architectures_1 Lecture Handouts · Recorded Video
4Communication_Architectures_2 Lecture Handouts · Recorded Video

Assessments

Available shortly

Recommended Books


  1. Rob Farber, “CUDA Application Design and Development”, Morgan Kaufmann Publishers, 2013
  2. Shameem Akhter and Jason Roberts, “Multi-Core Programming”, 1st edition, Intel Press, 2012
  3. Cameron Hughes, Tracey Hughes, “Professional Multicore Programming Design and Implementation for C++ Developers”, Wiley, 2008
  4. Robert Oshana, “Multicore Software Development Techniques: Applications, Tips, and Tricks”, Newnes, 1 edition, 2015
  5. David B. Kirk, Wen-mei W. Hwu, “Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series)”, 1st edition, Morgan Kaufmann, 2010