NWEN 406 (2018) - Home Page

Welcome to NWEN 406 Distributed Computing in Grids and Clouds for 2018

Distributed computing is a field of comuter science that studies distributed systems. A distributed system is a model in which computational components located on multiple network computers interat with each other in order to achieve a common goal. Therefore, distributed computing also refers to the use of distributed systems to solve computational problems. Particularly, a problem is divided into numerous individual tasks, each of which is solved by one or more computational components that communicate with each other by message passing. We will take this view of distributed computing in this course.

Distributed computing can be realized by using various infrastructure technologies. One popular choice, especially for eScience, is known as Grid Computing. The computer grid can be thought of as a distributed system with each node allocated with a different task/application. Grid computing is distinguished from conventional high-performance computing systems such as computer clusters in that grid computers tend to be more heterogeneous and geographically dispersed. To facilitate sharing of computing resources and data in such a heterogeneous environment, middleware technology is often used. Specifically grid middleware is a software technology which enables the sharing of heterogeneous resources under the framework of Virtual Organizations.

Another primary choice for distributed computing is Cloud Computing, which has become increasingly popular in recent years and has fundamentally reshaped the economy and technology advancement in the IT industry. As an influential IT paradigm, cloud computing enables ubiquitous access to shared pools of configurable computational resources and higher-level services that can be rapidly and sometimes automatically provisioned with minimal management effort, often over the Internet. Cloud computing relies on sharing of resources to achieve coherence and economies of scale, similar to utility computing, with the added benefits of elasticity, elimination of up-front commitment, and the ability to pay for use on a short-term basis.

In this course, we will examine modern distributed computing technologies in the context of grid computing and cloud computing. In particular, we will look at how large-scale distributed computing systems are designed and constructed and how they are leveraged to enable eScience and industrial applications. We will also look at alternative management paradigms for large-scale distributed systems, alternative programming models, and basic mechanisms for protection and system security.