SE
765 - Distributed Software Development
|
CS 610 - Introduction to Parallel and Distributed Computing
|
Dr. Francis T. Marchese
Office:
Office Hours:
M :
2:30 – 5:00 PM
Tu :
Tel. 212 346 - 1803
Email: fmarchese@pace.edu
URL: http://csis.pace.edu/~marchese
Course
Description
Distributed
computing systems have become pervasive. From clusters to internet-worked
computers, to mobile machines, distributed systems are used to support a wide
variety of applications. This course introduces the principles and foundations
of distributed systems and applications. The following are the objectives of
this course:
Ø
In depth understanding of core concepts of distributed
computing, including study of practical techniques for building system support
for distributed applications.
Ø
Construction of distributed applications and
supporting system components by doing project work.
Ø
Understanding of current research results in one or
more areas of distributed systems.
This
course covers system architectures and enabling technologies of parallel and
distributed computing systems, their software environments, and applications.
Topics covered include: scalable multiprocessor systems, clusters of computers,
P2P networks, computational Grids, virtual machines, virtual clusters, Internet
Clouds, and the Internet of Things (IoT). Sample case
studies include to be covered include: Cray XT-5, TeraGrids,
Google AppEngine, Amazon EC2 and S3, Microsoft
Azure, NASA and CERN clouds,
content-delivery networks, VMWare Tools, etc. The
course acquaints students with new computing paradigms and software support,
including MapReduce, Hadoop,
Twister, Dryad, BigTable, GFS, etc.
The
programming component of the course will be executed in the Erlang programming language.
Required Text:
Hwang,
Fox, and Dongarra, Distributed and Cloud Computing : from
Parallel Processing to the Internet of Things, Morgan Kaufmann, October
2011.
Grading
There
will be two exams (midterm and final), software exercises and projects, and a
number of written reports. Exams will count as 50% of the grade, reports 20%,
and projects 30%.