4
$\begingroup$

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?

$\endgroup$

migrated from programmers.stackexchange.com Jul 20 '14 at 14:49

This question came from our site for professionals, academics, and students working within the systems development life cycle.

  • $\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$ – Thomas Johnson Jul 21 '14 at 17:07
4
$\begingroup$

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.

$\endgroup$
  • $\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$ – Brian Borchers 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$ – Thomas Johnson 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$ – Brian Borchers 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.