Distributed programming on the cloud

Learn about how complex computer programs must be architected for the cloud by using distributed programming.
In this module, you will:

Classify programs as sequential, concurrent, parallel, and distributed
Indicate why programmers usually parallelize sequential programs
Define distributed programming models
Discuss the challenges with scalability, communication, heterogeneity, synchronization, fault tolerance, and scheduling that are encountered when building cloud programs
Define heterogeneous and homogenous clouds, and identify the main reasons for heterogeneity in the cloud
List the main challenges that heterogeneity poses on distributed programs, and outline some strategies for how to address such challenges
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
Explain how heterogeneity and locality can influence task schedulers

In partnership with Dr. Majd Sakr and Carnegie Mellon University.