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
    Jul 21 '14 at 9:50
  • $\begingroup$ I'm not sure...I don't really have enough experience to know the tradeoffs between ATLAS and OpenBLAS $\endgroup$ Jul 21 '14 at 17:07

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$ Jul 20 '14 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$ Jul 21 '14 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$ Jul 21 '14 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
    Dec 23 '14 at 20:03

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.