3

So I can decide whether to use a small cluster of older Mac Pros or a single modern iMac assume I have a problem which will execute adequately in G gigabytes of RAM, and that the problem can use parallel execution.

What performance gain might I expect from parallel execution on a single Mac if the memory requirement is multiplied by a factor N, I have c cores and more than N * G gigabytes of RAM?

  • This question is a great candidate for our chat functionality, so I've moved this conversation to chat. Nick, that's not to say that it can't be re-opened here if/when edited to make it on-topic, but I think the chat environment is certainly a great place for the discussion to continue. – Monomeeth Sep 21 '18 at 23:13
  • Definitely hit me up in Ask Different Chat since you might have a specific workload in mind that’s easy to adapt or answer in chat or refine it into a follow on question that might not get put on hold initially like this one did. – bmike Sep 22 '18 at 13:29
1

Since you won’t be running an abstract workload - making abstract generalizations won’t be super useful but my experience is you always want to get the most modern CPU and Mac to run your workload since the processors of the last 2-3 generations have the best compiler optimizations and the amount of work that can be done per CPU cycle increases far more than a back of the envelope calculation would show.

Let’s assume you already have both the iMac and the Mac Pro - your time will be better spent working to tune the workload for your iMac or have it run in the cloud rather than run on a bunch of old Mac that need management / orchestration / etc.

If you haven’t purchased hardware, I’d say neither your equiment is the best. If you have a workload you can run on GPU you would need something like bitcoin mining rigs or go to the cloud again and instead spend your money on a MacBook and displays and learning / consulting and not hardware.

To come back to your specifics:

  • RAM is never the real bottleneck - RAM makes up for a less optimized solution, but you need storage and a smart algorithm to get out of the way of CPU and storage bottlenecks.
  • if you have a massively parallel CPU load - get it on dozens to hundreds of CPU that you rent or are super low cost and run Linux or some OS you can orchestrate with chef or puppet or ansible or some of the newer cloud tools to let software define the OS configuration (google cloud / amazon cloud / https://bosh.io/docs/ / https://www.spinnaker.io/ )

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .