SE 765 - Distributed Software Development

CS 610 - Introduction to Parallel and Distributed Computing

Dr. Francis T. Marchese

Office: 163 William Street, 2nd Flr.

Office Hours:

M : 2:30 – 5:00 PM

Tu : 2:30 – 5:00 PM

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.

 Amazon.com

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%.