## Cloud Computing, Final Exam for the courseCS 4365/CS 5354, Spring 2015

Name: _____________________________________________________

1. General: Briefly explain the differences and similarities between cloud computing, grid computing, and high-performance computing.

2. Optimization:

• Give two examples when optimization is important for cloud computing.
• Solve the following constraint optimization problem: minimize the expression x + 2y under the constraint x2 + 2y2 = 18.
• Use Least Squares to find, step-by-step, the parameters m and b for which yi ~ m * xi + b, when:
• x1 = 0, x2 = 1, x3 = 2,
• y1 = −0.9, y2 = 2.0, and y3 = 3.1.

3. Security:

• Why is security especially important for cloud computing?
• In the RSA algorithm, let us start with the prime numbers p = 5 and q = 3, and let us take e = 7. Show, step-by-step:
• how the RSA algorithm will generate the secret code d, and
• how it will encode the message m = 2;
• then decode and check that you get the original message back.
• Important: use the actual RSA algorithms on all steps, do not just guess for d and raise to the power to encode.

4. Parallelization:

• Why cloud computing strongly encourages parallelization?
• Show how, given six numbers a1, a2, ..., a6, we can compute, in parallel, the corresponding partial maxima
• m1 = a1,
• m2 = max(a1, a2),
• m3 = max(a1, a2, a3),
• ...,
• m6 = max(a1, a2, ..., a6).
• Explain how to use MapReduce to find the product of n values.

5. Green computing: An environmentally conscious user wants to decrease the computing cost and to decrease the effect on the environment. For that purpose, he can distribute his computations between two cloud services:

• a cheaper service whose servers are located farther away (and thus, spends more energy to transmit data), and
• a more environmentally friendly but more expensive local service.
If out of total amount c of computations, the user assigns c1 to the first service and c2 = c − c1 to the second service, then:
• the cost is f1(1) = a1 * c1 − b1 * (c1)2 + a2 * (c − c1) − b2 * (c − c1)2, and
• the environmental impact (i.e., the energy spent) is f2(c1) = e1 * c1 + e2 * (c − c1).
For this multi-optimization problem:
• what is the solution when we select the equal weights w1 = w2 = 0.5?
• what is the solution to in the general cases, when we select an arbitrary value w1 from the interval [0, 1], and take w2 = 1 − w1?
• why multi-objective optimization is important for cloud computing?

6. Financial aspects of cloud computing:

• Estimate the costs and decide whether it is beneficial to sign a contract with the cloud provider for T = 2 years:
• the cost of buying a unit of computations on a year-by-year basis is c0 = 10;
• the contract offer a discount price cT = 8,
• the discount rate is q = 0.9, and
• the price of computing decreases yearly by a factor of v = 0.8.
• Let us now assume that:
• every day, the company uses at least m = 1000 computations, and
• the probabilities of different numbers of computations x are described by the power law
p(x) = A * x−α, with α = 3;
• the cost of a unit in-house computation is c0 = 1 money unit per computation unit and
• the cost of computing in the cloud is c1 = 4 money units per computation unit.
In this situation:
• How much computing power x0 should be purchased for in-house computations?
• What is the resulting expected cost?
• Compute the expected costs when we do all the computations exceeding m in the cloud, and show that the optimal arrangement indeed saves money.
• Reminder: In these computations, you can use the formulas that we derived in class for the power law case:
• the optimal amount of computing power to purchase is x0 = m * (c1 / c0)1 / (α − 1);
• the resulting expected cost is equal to ((α − 1) / (α − 2)) * c0(α − 2) / (α − 1) * c11 / (α − 1) * m;
• if we do all the computations exceeding m in the cloud, then the resulting cost is
m * (c0 + c1 / (α − 2)).

7. Intelligent techniques for cloud computing:

• Why fuzzy techniques are needed for cloud computing?
• Briefly describe the main steps of fuzzy techniques.
• Which "and"-operations are typically used in fuzzy techniques? If:
• the expert's degree of belief in a statement A is 0.7 and
• the expert's degree of belief in a statement B is 0.9,
what is the expert's degree of belief in the statement "A and B"?
• Why neural networks are needed for cloud computing?
• Let us assume that:
• We have are training a neural network with K = 2 neurons to learn addition. This means, in particular, that for inputs x1 = 1.0 and x2 = 2.0, the desired output is Y = 3.0.
• On a certain iteration, we have wki = 0 for all k and i, so that the outputs of the non-linear neurons are equal to 0.5: y1 = y2 = 0.5.
• Suppose that at this iteration, W1 = W2 = 1.0 and W0 = 0.0.
Assuming that α = 0.2, compute the values of all the weights on the next iteration.
• Each non-linear neuron k (k = 1, 2, ..., K) from the first layer transforms the input signals x1, ..., xn into a signal
yk = s0(wk1 * x1 + ... + wkn * xn − wk0),
where s0(z) = 1 / (1 + exp(−z)).
• The last linear neuron then transform these signals yk into a single output
y = W1 * y1 + ... + WK * yK − W0.
• For each pattern with the known desired output Y, once the NN computed the input y, you can find the error Δy = y − Y.
• Based on this error Δ y, you can compute the changes to all the weights as follows:
• ΔW0 = α * Δ y, for some small number α > 0;
• ΔWk = − yk * ΔW0;
• Δwk0 = − ΔWk * Wk * (1 − yk);
• Δwki = − xi * Δwk0.

8. Projects:

• Describe, in detail, the paper that you reviewed as a project for this class:
• what problem is addressed in his paper,
• what solution is proposed for this problem, and
• (if applicable) what are the remaining open problems.
• Briefly describe someone else's project for this class.