5 pages of notes allowed.
1. Briefly explain the differences and similarities between grid computing, cloud computing, and autonomic computing.
2. Briefly explain differences and similarities between public cloud, private cloud, and community cloud.
3. If the original size of the cloud is 10 units, and in the growth model, the constant term a is 1.0, the coefficient at the linear term is b = 1.0, and the coefficient at the quadratic term is c = -0.1, what is the predicted cloud size in the next year? In general, if we know the cloud sizes at different years, how can we predict the future cloud size? (just explain the main ideas, no need to derive detailed formulas).
4-5. In the RSA algorithm, let us start with the prime numbers p = 3, q = 7, and let us take e = 5. Show, step by step, how the RSA algorithm will generate a secret code d, and how you can encode the message m = 2. Use the actual RSA algorithms, do not just raise to the power. Why is security important for cloud computing? For extra credit: decode and get the original message back.
6. Why cloud computing encourages parallelization? Show how, given eight numbers a1, a2, ..., a8, we can compute the partial maxima m1 = a1, m2 = max(a1, a2), m3 = max(a1, a2, a3), ..., m8 = max(a1, a2, ... ,a8) in parallel.
7. Show how, given numbers a1, a2, a3, a4, b1, b2, b3, and b4, we can compute, in parallel, the expression:
8. Many telescopes around the world observe the sky. Once in a while, an interesting event occurs called supernova explosion, when, as a result of a powerful explosion, a new bright object appears overnight. We have the records from all the telescopes, and we know the dates on which the supernova explosions occurred. Our objective is to bring together all the records corresponding to each explosion. Explain how to do it in MapReduce: what is the original key and the original value (and how your choice of keys helps to parallelize the problem) and what are intermediate keys and values (and how your choice of keys helps in solving the problem).
9. Let us consider two hypotheses: H1 that a student studied for the test, and a hypothesis H2 that a student did not study for the test. The prior probabilities of these hypotheses are P(H1) = 0.8 and P(H2) = 0.2. The unfortunate event E is that the student did not do well on the test. We know that for students who studied, the probability P(E | H1) that this student did poorly on the test is small: equal to 0.2. On the other had, for students who did not study, the probability of failing the test is high: P(E | H2) = 0.8. If we know that a student failed the test, what is the probability P(H1 | E) that this student studied? Where are such computations used in cloud computing?
10. Describe the topic of the project that you plan to do for this cloud computing class.