Page Preview: 37

Course Title[Course Code]:Design and Analysis of Engineering Systems[ENG 504]

Faculty: Engineering, Shoubra
Department: All department
Program: basic courses
Compulsory / Elective:Elective
Postgraduate(Not Available-Not Available)
Lecture:( 3 ) Practical / Clinical:( - ) Tutorial:( - )

Course Description:
This class will introduce the student to the fundamentals of parallel scientific computing. We will first establish an understanding of different types of machines from the point of view of large-scale floating-point-heavy workloads. This will include a study of CPU and GPU architectures, interconnects, and forms of parallel memory. The practicalities of programming these machines (MPI, OpenMP, OpenCL/CUDA) will be introduced, accompanied by homework assignments for each of these three major approaches. Issues such as load balancing, communication, and synchronization overhead will be addressed throughout, and established practice in the field in the form of parallel numerical algorithms will be studied. Since a prerequisite for good parallel performance is good serial performance, this aspect of high-performance computing will also be addressed. Along the way important tools for scientific computing will be emphasized, including for example debuggers, Makefiles, version control systems.