OutlineBLASATLASLAPACKSlide 5Slide 6UNIX LibrariesReview of BuildingBuilding with librariesOutlineOutline•Announcements–Add/drop by Monday–HWI coming on Friday•Loading BLAS•Loading LAPACKBLASBLAS•BLAS is available as –raw code–commercial packages (IMSL, Intel “Math Kernal Library”)–ATLAS-- “Automatically-Tuned Linear Algebra Subroutines”ATLASATLAS•Code to build an optimized version of BLAS –(hopefully faster than just compiling BLAS)•Available as code or pre-builts from Netlib•atlas3.2.0_Linux_PIIISSE1256.tgz–“Pentium III with 256K L2 cache, using SSE1 for single precision”LAPACKLAPACK•LAPACK is also available as –raw code–commercial packagesLAPACKLAPACK•Download lapack.tgz from Netlib•edit make.inc for this platform–compiler =g77, options=-g -O2–BLASLIB = -L$(HOME)/cs404/ATLASLinux_PIIISSE1256 -lf77blas -latlas•edit Makefile–comment out blaslib dependencyLAPACKLAPACK•make–compiles LAPACK code–creates libraries •Followed install instructions to merge LAPACK with the LAPACK routines from ATLASUNIX LibrariesUNIX Libraries•Pre-built libraries (commercial or otherwise) are stored as “archives” on UNIX machines–lib<NAME>.a–System libraries are in directories like /lib and /usr/lib–archives are actually collections of object code (.o)•Build process:–compile--creates machine instructions (object code)•g77 -c foo.c ----> foo.o–link--merges object code to create executable•g77 foo.o bar.o -ofoobar----> combines instructions in foo.o and bar.o as well as system libraries to create foobarReview of BuildingReview of Building•1) Compile the code you have (use -c)•2) Link your code together and link to the libraries you need–g77 <YOUR OBJECTS> -L<LIBPATH> -lname–-L sets directory where linker will look for libraries–-lname links to libname.a in LIBPATH or system librariesBuilding with librariesBuilding with
View Full Document