Monday, March 13, 2017

Today we surveyed literature on TCO models and draw the following examples: 
  1. Strabel and Stage developed an economic decision model that compares costs for the internal IT infrastructure (server and storage expenses) and the external provisioning by means of Cloud Computing Services (fees for CPU hour, time contingent, storage, internet service provider costs and inbound and outbound data transfer costs). Theirs is a regression model focused on the hybrid usage of internal and external infrastructure sources. 
  1. Kondo et al applied a cost benefit analysis that focused on Infrastructure as a Service aka IaaS. They compared cloud computing services to volunteer computing services and found the latter to be more economical in the long run but preferred the former for performance. 
  1. Li et al were probably ground breaking in terms of applying the company perspective of Cloud Computing on TCO because they focus on the provider. They discuss setting up and maintenance costs for a cloud such as costs of hardware, software, power, cooling, staff and real-estate. Instead of focusing on physical hardware, they try to maximize the virtual machines that can be deployed within a datacenter so that the organization is flexible to compute demands. 
  1. Martens et al detailed costing the cloud computing services and elaborated on the listing and calculation of cost factors.  
This is summarized as follows: 
  1. The TCO of a cloud computing service equals the sum total of all cost types 
  1. The total amount of a cost type equals the sum total of all involved cost factors 
  1. The involved cost for a factor is determined on usage period accumulation over a set of timer periods 
  1. The cost within a unit period is the product of the required quantity and the unit cost or price. 
Without going into their comprehensive elaboration of cost types and cost factors, we just take away their notion of aggregating costs and observe that it seems to work well for Infrastructure as a Service, Platform as a service and Software as a service.

#codingexercise
Greedy algorithm for Egyptian Fraction:
Egyptian Fraction is a representation of fraction as a sum of unit fractions. For example: to represent 6/14, we find the ceiling of 14/6 as 3 and write down one of the components of the egyptian fraction as 1/3. Then we recur for (6/14-1/3)
Void PrintEgyptianFraction(int nr, int dr)
{
If (dr == 0 || nr == 0) return;
If (dr%nr == 0) return;
If (nr %dr == 0) {
Console.WriteLine("1/{0}", nr/dr);
Return;
}
If (nr % dr == 0)
{
Console.WriteLine("{0}", nr/dr);
}
If (nr > dr)
{
Console.WriteLine("{0}", nr/dr);
PrintEgyptian(nr%dr, dr);
return;
}
Int n  = Math.Ceil(dr/nr);
Console.WriteLine("1/{0}", n);
PrintEgyptian(nr * n - dr, dr * n);


}


Count binary strings with k times appearing adjacent set bits:
long GetCountPairBits(string bits, int n, int k)
{
assert(bits.length == n);
if (n==1) return 0;
if (k == 0 || k >= n) return 0;

long count = 0;

if (bits.endswith(“0”)){
           count += GetCountPairBits(bits.substring(n-1), n-1, k);
}else{
         if (bits.substring(n-1).endswith(“0”))
              count += GetCountPairBits(bits.substring(n-1), n-1,k);
          if (bits.substring(n-1).endswith(“1”))
              count += GetCountPairBits(bits.substring(n-1), n-1, k-1) + 1;

}
return count;

}

No comments:

Post a Comment