|
GotoBLAS FAQ
GotoBLAS
Frequently Asked Questions
What are the GotoBLAS?
The GotoBLAS codes are currently the fastest implementations of the Basic Linear Algebra Subroutines. Actually, GOTO is my last name and does not mean "go to." (Nor is it pronounced "go to"; the correct pronunciation of my name is more like "goat-toe.")
What is the main advantage of the GotoBLAS?
The advantage is fast calculation. Note that the actual performance depends in part on the code from which you call the GotoBLAS subroutine(s) and on the combination of architecture and operating system under which you are running. Your own tuning here can make a big difference.
Who develops and maintains the GotoBLAS?
I am the sole developer. Originally, I wrote the codes for the Alpha chip architecture, but I have now generalized them to support various operating systems and architectures.
Which operating systems are supported?
Supported operating systems include:
Linux, FreeBSD, NetBSD, Solaris, OSX, AIX, Tru64, Unix , WindowsNT
Which architectures are supported?
Supported architectures include:
x86 family: Intel Pentium 3, Intel Pentium 4, Intel Core2, AMD Athlon, AMD Opteron
x86_64 family: Intel Pentium 4, Intel Core2, AMD Opteron
IA64 family: Intel Itanium2
Power family: IBM Power 4, Power 5, PPC970, PPC970MP, PPC440, PPC440 FP2
SPARC family: SPARC IV
Alpha family: EV4, EV5, EV6
Which Fortran compilers are supported?
The GotoBLAS have various interfaces for both commercial and noncommercial compilers, including GNU g77, Intel, PGI, PathScale, IBM, SUN Studio and Compaq.
Do I need xerbla?
No. My library now contains xerbla and you can also use it without the xerbla implementation. But the xerbla implementation connects with stderr, if you need to acquire correct error information (e.g., in case your application wants to check which error occurred), you should use xerbla.o compiled using xerbla.f with the appropriate Fortran compiler.
How do I link my code with the GotoBLAS library?
Just link the GotoBLAS library at the end of your linker flag, as in:
g77 -o <your executable> <your object> -lgoto_xxx -lpthread
How do I control the number of threads?
Currently, all of the GotoBLAS libraries are threaded and all attempt to use all of the processors available on your target computer. If you wish to control the number of threads, you need to specify the OMP_NUM_THREADS or GOTO_NUM_THREADS environment. Both of these environmental variables are identical except with respect to priority. The GOTO_NUM_THREADS environment is particularly useful for OpenMP users who want to control both the number of OpenMP tasks and the number of GotoBLAS threads.
|