Learn about how complex computer programs must be architected for the cloud by using distributed programming.
In this learning path, you'll:
- 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.