Parallel Processing
Fall 1396
Instructor: Kamal Mirzaie
Description - Lectures - Grading - Languages and Tools - References - Useful Links
Description
Parallel Processing may refer to Parallel Computing. Parallel computing is a type of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved at the same time. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Parallelism has been employed for many years, mainly in high-performance computing, but interest in it has grown lately due to the physical constraints preventing frequency scaling. As power consumption (and consequently heat generation) by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors. - From
Wikipedia, the free encyclopedia
This is a Master's course in Computer Engineering(Software, Hardware and Artificial Intelligence). So, This course is recommended for students in Computer Engineering or Computer Science who are interested in scientific computing and would like to obtain a first `hands-on experience' in parallel programming. In this course, students will learn how to design a parallel algorithm for a problem from the area of scientific computing and how to write a parallel program that solves the problem.
Grading
Your performance will be assessed by assignments, project, class participation and final exam. Their weights are:
- Final Exam: 70%
- Project Report: 30%
Assignments have to be typed, if you want them corrected. All of students must work on assignments individually. The assignments play a crucial part in understanding the course material and must be turned in by class time on the due date for full credit. Participation means coming to class, asking questions, taking part in discussions and so on.
Languages and Tools
MPI:
MPI.NET and C#:
MATLAB and MPI:
Hadoop:
Java and Parallel Computing:
Python and Parallel Processing:
Recommended Textbooks
[1] B. Parhami, "Introduction to Parallel Processing: Algorithms and Architectures" , Kluwer Academic Publishers, 2002.
[2] A. Grama, A. Gupta, G. Karypis and V. Kumar , "Introduction to Parallel Computing" , Second Edition, Addison Wesley, 2003. (PDF files)
[3] H. Casanova, A. Legrand, and Y. Robert "Parallel Algorithms" , CRC Press, 2009.
Other Textbooks
[4] R. Neapolitan , "Foundations Of Algorithms" , 5th Edition, Jones & Bartlett Learning, 2014.
[5] T. Cormen, C. Leiserson, R. Rivest and C. Stein , (CLRS) "Introduction to Algorithms" , Third Edition, MIT press, 2009.
[6] M. J. Quinn, "Designing efficient algorithms for parallel computers" , McGraw-Hill, 1987.
[7] S. G. Akl, "The Design and Analysis of Parallel Algorithms" , Prentice Hall, 1989.
[8] J. JaJa , "Introduction to parallel algorithms" , Addison Wesley, 1992.
[9] F. Gebali, "Algorithms and Parallel Computing" , A John Wiley & Sons, Inc., 2011.
[10] P. Pacheco, “An Introduction to Parallel Programming” , Morgan Kaufmann, 2011.
Useful Links
Laboratories:
Parallel Programing:
If you have any comments and suggestions about the class and my teaching course, or you know any links about this course, you can send me a mail. I would really appreciate your feedback. Also, If you happen to find an incorrect or non-functional link, please inform me.

Description - Lectures - Grading - Languages and Tools - References - Useful Links
Last Updated: 96/07/07
:: موضوعات مرتبط:
پردازش موازی
:: برچسبها:
پردازش موازی,
محاسبات موازی,
موازی