ATLAS is an extremely popular linear algebra library.

When you install ATLAS from source, it tries to automatically tune a number of parameters to give you the fastest code. Does it make sense to do this tuning when installing ATLAS on a cloud server like AWS or GCE? I know that these services often provide shared VMs, and presumably the performance of these VMs can change based on what other VMs on the same physical hardware are doing.

Is there a way to get ATLAS installed and tuned correctly when installing on a cloud service?

  • $\begingroup$ Interesting question, but would something like OpenBLAS be better? $\endgroup$
    – Damien
    Commented Jul 21, 2014 at 9:50
  • $\begingroup$ I'm not sure...I don't really have enough experience to know the tradeoffs between ATLAS and OpenBLAS $\endgroup$ Commented Jul 21, 2014 at 17:07

1 Answer 1


Sure. For example, with Amazon EC2, suppose that you've requested a C3.xlarge instance (which has Xeon E5-2680 Ivy Bridge processors), then you can count on running on this hardware, so it would be good to have versions of the libraries optimized for this hardware.

However, note that:

  1. Your OS will be running as a virtual machine under the control of some sort of hypervisor. This can cause performance variations that might effect the timing that is done during the installation of ATLAS.

  2. It's likely that the "turbo boost" feature will be setup rather than leaving the processor always in the highest performance mode. ATLAS won't install unless this is turned off.

I would suggest contacting Clint Whaley (the author of ATLAS) to ask about experiences in installing ATLAS on EC2 instances.

  • $\begingroup$ One other factor is that I believe the EC2 virtual CPU's are hyperthreaded by default. That is, if you've got an instance with 8 virtual CPU's you're actually getting 4 cores hyperthreaded to look like 8 processors to the operating system. I believe that this can be turned off. $\endgroup$ Commented Jul 20, 2014 at 22:10
  • $\begingroup$ So it seems like you're saying it's desirable but maybe not possible (because of turbo boost & hypervisor effects)? $\endgroup$ Commented Jul 21, 2014 at 17:08
  • $\begingroup$ I believe that it may be possible to configure these aspects of the virtual machine, but I haven't had a chance to try it for myself yet. $\endgroup$ Commented Jul 21, 2014 at 20:21
  • $\begingroup$ I would be surprised if this yielded substantial gains. A lot of what ATLAS optimizes around is processor/cache timings. A lot of this will get munged running virtualized and shared. $\endgroup$
    – meawoppl
    Commented Dec 23, 2014 at 20:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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