In this
module, you will: Classify programs as sequential, concurrent, parallel, and distributed Indicate why programmers usually parallelize sequential programs Explain why cloud programs are important for solving complex computing problems Define distributed systems, and indicate the relationship between distributed systems and clouds Define distributed programming models Indicate why synchronization is needed in shared-memory systems Describe how tasks can communicate by using the message-passing programming model Outline the difference between synchronous and asynchronous programs Explain the bulk synchronous parallel (BSP) model Outline the difference between data parallelism and graph parallelism Distinguish between these distributed programs: single program, multiple data (SPMD); and multiple program, multiple data (MPMD) Discuss the two main techniques that can be incorporated in distributed programs so as to address the communication bottleneck in the cloud Define heterogeneous and homogenous clouds, and identify the main reasons for heterogeneity in the cloud State when and why synchronization is required in the cloud Identify the main technique that can be used to tolerate faults in clouds Outline the difference between task scheduling and job scheduling In partnership with Dr. Majd Sakr and Carnegie Mellon University. |
Distributed
programming on the cloud Cloud developer Introduction Categories of computer programs Why use distributed programming? Distributed programming on the cloud Programming models for clouds Synchronous vs. asynchronous computation Types of parallelism Symmetrical vs. asymmetrical architecture Cloud challenges: Scalability Cloud challenges: Communication Cloud challenges: Heterogeneity Cloud challenges: Synchronization Cloud challenges: Fault tolerance Cloud challenges: Scheduling Summary |
1 hr 57 min | |
Basic | |
English | |
Self-paced | |
- | |
- | |
- | |
- |