ECE 1387 - CAD for Digital Circuit
Synthesis and Layout
J. Anderson
March 2010
As mentioned in Assignment #2, to solve the linear system that
represents the analytical placement formulation, we will use an
existing solver: UMFPACK. UMFPACK is a set of C routines for
solving sparse linear systems. To use
UMFPACK, you will need to #include its interface in your program and
link its libraries into your binary.
Quick start documentation for UMFPACK (PDF): Section 2 of the document, which contains an example, was all I needed
to figure out how to set up and matrices/vectors and invoke the
solver. UMFPACK has its own sparse matrix representation that you
will need to use when formulating the placement problem.
The main UMFPACK webpage is: http://www.cise.ufl.edu/research/sparse/umfpack/
For Assignment #2, you may EITHER:
1) Download and compile your own copy of UMFPACK from the link above, OR
2) Use my already-compiled version:
- EECG solaris version (compiled on seth.eecg): ~janders/UMFPACK
- EECG linux version (compiled on mint.eecg): ~janders/UMFPACK_LIN
- UG linux version (compiled on ug132.eecg): ~janders/UMFPACK
Compiling your program:
If it helps, the command I used to compile my program on UG linux was:
gcc -DNBLAS -I/nfs/ug/homes-0/j/janders/UMFPACK/UMFPACK/Include
-I/nfs/ug/homes-0/j/janders/UMFPACK/UFconfig
-I/nfs/ug/homes-0/j/janders/UMFPACK/AMD/Include a4.c graphics.c
/nfs/ug/homes-0/j/janders/UMFPACK/UMFPACK/Lib/libumfpack.a
/nfs/ug/homes-0/j/janders/UMFPACK/AMD/Lib/libamd.a -lm -lX11
UMFPACK can be compiled to make use of BLAS
to speed its solving routines. BLAS (which stands for Basic
Linear Algebra Subprograms) is a standard and highly optimized set of
utilities for solving linear
systems. One can compile UMFPACK so that, "under the hood"
[transparent to the client], it calls BLAS to speed the solving of
linear
systems. However, I have not compiled my copy of UMFPACK
to use BLAS -- you also do not need to worry about it.
|