2

Let's say I have a piece of software which does a computational task that is pretty demanding to either CPU/GPU/RAM/Disk-IO or a combination of those. Then it would be optimal if one has some metric to describe what the optimal configuration of a machine would be to run this software.

Guess that metric should include: 1) "minimal requirements" and more importantly 2) the "optimal ratio" of the above parameters, so that there is no idling CPU/RAM/GPU so that I get the best computation per money/electricity/computation time.

This is especially true, if I want to run your job on AWS/GoogleCloud/OtherProvider or on an HPC environment where you can pick those parameters.

I am aware that this is probably a pretty hard problem, since it is not easy to compare different kinds of CPUs (Cache, clock speed, etc.) or different kinds of RAM.

But still, does there exist and "standard" or approach for this? If yes, what are the methods to establish such a metric?

PS: Is this the right place to post this question?

2

As far as I'm aware, there is no universal standard amongst cloud providers. One reason for this is because most cloud providers like to abstract how their backend infrastructure, that their instances run on, is managed. How your instance is ran could change minute by minute depending on the cloud provider. The user doesn't care as long as they are getting the desired computing power that they want. Cloud providers also may not want to divulge their exact infrastructure metrics for proprietary reasons as well.

Despite these reasons, some cloud providers offer a standard amongst their own virtual instances. These standards are relative to the computing power of each instance type that the provider offers.

For example, Amazon Web Services uses EC2 Computing Units (ECU) as a metric to compare the approximate computing power in relation to each instance. Comparing two instances types such as an m5.large and an m5.xlarge for example, the m5.large has an ECU of 8 vs the m5.xlarge which has a ECU of 16. The m5.xlarge has roughly double the compute power and therefore double the cost.

  • Thanks! I was aware of ECU. However, this is not useful for a more general description of computing power and does not really tell you about the "ratio" of RAM vs CPU for example... – Michael Oct 30 '18 at 19:37
  • In relation to the instance itself, no it doesn't. However, I do think it gives a general ratio when compared to other instance types. ECU gives you an approximation when comparing say an m4.large and a c5.large. While the mem/cpu ratios are different, you can say that you are getting roughly 38% more general computing power. Granted your workload plays a big factor in this, which is exactly why they offer the different instance types in the first place. – PrestonM Oct 30 '18 at 19:45
  • Sure, but this is not really answering my initial question. Or is it? – Michael Oct 30 '18 at 19:47
  • I guess the first part of my answer is that "no I don't believe there is a metric that can be used to determine the optimal cpu/mem/disk distributions across cloud providers", and the second part of my answer is an example of a metric that does exist within AWS that does give you a way to at least a way to approximate the compute power of the instances you are running your software on compared to other instances and their prices. – PrestonM Oct 30 '18 at 20:04
  • Fair enough.... – Michael Oct 31 '18 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.