[ET Trac] [Einstein Toolkit] #1674: Switch to OpenBLAS

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Dec 10 09:55:14 CST 2014


#1674: Switch to OpenBLAS
--------------------------+-------------------------------------------------
  Reporter:  eschnett     |       Owner:                     
      Type:  enhancement  |      Status:  review             
  Priority:  major        |   Milestone:                     
 Component:  Other        |     Version:  development version
Resolution:               |    Keywords:                     
--------------------------+-------------------------------------------------

Comment (by rhaas):

 I'll try to answer each question:

 These are my workstation, my Linux laptop, my OSX laptop, three different
 Linux installations in virtual machines. My undestanding is that the issue
 of compiling/using OpenBLAS only comes up on this types of machines (ie.
 personal workstations and laptops) at all, yes? For the
 XSEDE/SciNet/PRACE/whatnot clusters in simfactory we already provide paths
 to optimized LAPACK/BLAS versions. For private clusters that someone sets
 up, there would seem to be enough complexity already that choosing the
 proper LAPACK/BLAS library should be a minor point, eg. I usually find it
 much harder to get infiniband to work properly.

 Maybe I misunderstood. I was under the impression that the suggestion was
 to have OpenBLAS ignore any installed LAPACK/BLAS and compile its own code
 since it is hard to determine if the system installed LAPACK is slow. This
 would only affect its probe-for-installed-versions mode, not the mode
 where we specify an non-special CCC_DIR. The current instructions for
 first users for Ubuntu (https://docs.einsteintoolkit.org/et-
 docs/Simplified_Tutorial_for_New_Users) already suggest installing
 libatlas-base-dev and the ubuntu option list in simfactory does the same
 in its comment headers. I vanilla Ubuntu install will also work since it
 does not install any lapack/blas by default.

 I keep at least three different Cactus trees on my workstation at all
 times: ET_master, ET_release, Zelmani. Each with different sources for the
 thorns. I have ~40 Cactus trees on my workstation, most of them historical
 only but maybe an additional to the three listed above that I actually
 use. I have multiple configurations in Zelmani, one that is mostly
 vanilla, one for MHD, one for the inversion-symmetry-preserving setup, one
 that just compiles external libraries for use by other toolkit, several
 that are -debug variants of the above, several that contain the state of
 the code as used by other group members. On top of that I have maybe 5-10
 Cactus tree on various machines that are builds of Formaline tarballs when
 I wanted/needed to exactly reproduce behaviour of one of mine/a group
 member's runs; those probably don't count since they really would actualy
 *want* to compile everything from scratch to make sure I use the very same
 code as the last time around and the machines are often clusters in
 simfactory.

 The trees on my workstation usually don't use simfactory to build but use
 the a variant of debian.cfg to build, the OSX laptop uses osx-yosemite-
 homebrew-gcc.cfg to compile. No workstation/laptop of mine starts runs
 using simfactory since they are testing machines only and I find using a
 script of my own to call mpirun (and log output) more convenient.

 My builds usually use simfactory option lists, ET/Zelmani thornlists but
 that do not use simfactory to build or run. I have not admit I am not sure
 how using simfactory would change this, unless we'd want to use
 ENABLE/DISABLE thorn statements in the localhost.ini ini files that sim
 setup creates when a private workstation is set up.

 This may not be the most efficient setup and differ considerably from what
 others are using. I am also not suggesting this to be the best option, but
 it is the one that I ended up using.

 My main concerns are that somebody who wants to "just try" the ET should
 not have to spend a long time compiling it, and (just for my own, though I
 can naturally change options etc to achieve this in any way) I like
 software to have simple, predictable behaviour that is the same among
 similar software (ie all ExternalLibraries should behave the same).

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1674#comment:16>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list