1. General: Briefly explain the differences and similarities between cloud
computing, grid computing, and high-performance computing.
- 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
- 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.
- Why cloud computing strongly
- Show how, given six numbers a1, a2, ...,
a6, we can compute, in parallel, the corresponding
m1 = a1,
- m2 =
- m3 =
max(a1, a2, a3),
m6 = max(a1, a2, ...,
- 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
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:
- 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.
For this multi-optimization problem:
- 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).
- what is the solution
when we select the equal weights w1 = w2
- 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:
In this situation:
- 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
computation unit and
- the cost of computing in the cloud is
c1 = 4 money units per computation unit.
much computing power x0 should be purchased for in-house
- 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.
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:
what is the expert's degree
of belief in the statement "A and B"?
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,
- Why neural networks are needed for cloud computing?
- Let us assume that:
Assuming that α = 0.2, compute the values
of all the weights on the next iteration.
- We have are training a neural network with K = 2
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.
that at this iteration, W1 = W2 = 1.0 and
W0 = 0.0.
- Reminder about neural networks:
- 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 −
where s0(z) = 1 / (1 +
- 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
- 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 *
- Δwk0 = −
ΔWk * Wk * (1 − yk);
- Δwki = − xi
- Describe, in detail, the paper that you reviewed as a
project for this class:
- what problem is addressed in
- 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.