Parallel and distributed computing.zhang zhiguo.2009w 1
Parallel and Distributed Computing Zhiguo Zhang Winter, 2009
Course Objectives:As multithreaded and multi-core processors become the mainstream computing platform,writing parallel programs to exploit these processors’ computing potential becomesincreasingly important. This class will teach students concepts and techniques inparallel and distributed computing. This course will concentrate on the basicconcepts, models, programming, system design and software engineering issuesassociated with the development of parallel/distributed (enterprise) applicationsor system. Many interesting programming projects will be assigned. Parallel anddistributed programming tools such as Pthreads, OpenMP, MPI, nVidia / CUDA will beinvolved.WWW: http://sist.sysu.edu.cn/~lnszzg/09w.PDCEmail: firstname.lastname@example.orgSubmission: 070000000.name.chapter01.hw.ver01.zip
Prerequisites:This course requires courses in operating system, programming (C, C++). Themastering of computer networks and computer architectures is preferred.In general, you should have basic C/C++ programming skills and concepts such asthreads, cache, etc.
Principal Texts:Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R.Andrews, Addison Wesley, 2000, ISBN 0-201-35752-6.Supplemental Texts:Parallel Programming: Techniques and Applications Using NetworkedWorkstations and Parallel Computers, Barry Wilkinson and Michael Allen, PrenticeHall, 1999, ISBN 0-13-671710-1. (China Machine Press, 2002)Distributed Computing Principles and Applications, M. L. Liu, 清华大学Scalable Parallel Computing: Technology, Architecture, Programming, Kai Hwangand Zhiwei Xu, McGraw-Hill, 1999
Parallel Programming with MPI, Peter Pacheco, Morgan Kaufmann, 1996, ISBN1-55860-339-5.Java Network Programming and Distributed Computing, David Reilly and MichaelReilly, Addison Wesley, 2002, ISBN 0-201-71037-4.Java Distributed Computing Jim Farley, OReilly Publishers, 1998. ISBN1-56592-206-9.Designing and Building Parallel Programs: Concepts and Tools for Parallel SoftwareEngineering, Ian Foster, Addison Wesley, ISBN 0-201-57594-9.Introduction to Parallel Computing: Design and Analysis of Algorithms, VipinKumar, Ananth Grama, Anshul Gupta, and George Karypis, Benjamin Cummings,1993, ISBN 0-8053-3170-0.
Grading Policy:1. Homework, Lab And Class Projects (Individual): 60%2. Final Exam: 40%Bonus (10%): I will randomly give 10 simple quizzes in classes. The major purpose of quizzes is tocheck your attendance.
Tentative Lecture Outline: Parallel and Distributed Computing – Basic concepts Computing Platforms Processes and synchronization Critical sections and locks Semaphores and Pthreads library Monitors and Java Multiprocessor implementations Parallel Computing Overview of parallel computing Barriers, data parallel algorithms, bag of tasks Semaphores and Pthreads library Message passing and MPI library Lab 1 (Parallel Programming) Distributed Computing
Distributed parallel computingClients and servers using message passingRPC and rendezvousProgramming distributed systems: Ada, SR, Ada, Java sockets and RMIDistributed implementationsDistributed computing paradigmsLab 2 (Distributed Computing)Networked ComputingCluster ComputingInternet Applications (Client-Server and Distributed Objects)Enterprise Computing (J2EE)Assignment 2 (Distributed Computing)Formal ModelsCSP, SDL, Lotos, CTL and model checking
Writing (Report) Guideline: Title Introduction Conceptual Model Detailed Computing Model(s) or Architecture Software Architecture (Implementation) Programming Considerations and Examples Summary ReferencesFinal Exam: Multiple Choices Programming Explanation and design