1OutlineOutline• Announcements– Add/drop by Monday– HWI coming on Friday• Loading BLAS• Loading LAPACKBLASBLAS• BLAS is available as– raw code– commercial packages (IMSL, Intel “MathKernal Library”)– ATLAS-- “Automatically-Tuned LinearAlgebra Subroutines”ATLASATLAS• Code to build an optimized version ofBLAS– (hopefully faster than just compiling BLAS)• Available as code or pre-builts fromNetlib• atlas3.2.0_Linux_PIIISSE1256.tgz– “Pentium III with 256K L2 cache, usingSSE1 for single precision”2LAPACKLAPACK• 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 tomerge LAPACK with the LAPACKroutines from ATLAS3UNIX LibrariesUNIX Libraries• Pre-built libraries (commercial orotherwise) are stored as “archives”on UNIX machines– lib<NAME>.a– System libraries are in directories like/lib and /usr/lib– archives are actually collections ofobject code (.o)• Build process:– compile--creates machine instructions(object code)• g77 -c foo.c ----> foo.o– link--merges object code to createexecutable• g77 foo.o bar.o -ofoobar----> combinesinstructions in foo.o and bar.o as well assystem libraries to create foobarReview of BuildingReview of Building• 1) Compile the code you have (use -c)• 2) Link your code together and link tothe libraries you need– g77 <YOUR OBJECTS> -L<LIBPATH> -lname– -L sets directory where linker will look forlibraries– -lname links to libname.a in LIBPATH orsystem librariesBuilding with librariesBuilding with
View Full Document