10 Ekim 2012 Çarşamba

Recompile debian's hpcc with other libs

To contact us Click HERE
I installed hpcc using apt-get, but -- and this is a first -- when trying to run it complained over missing libs.



Why compile?

hpcc
hpcc: error while loading shared libraries: libatlas.so.3gf: cannot open shared object file: No such file or directory
Doing
aptitude show hpcc 
Depends: libatlas3gf-base, libc6 (>= 2.7), libopenmpi1.3, mpi-default-bin
apt-cache search libatlas.so.3gf

libatlas3-base - Automatically Tuned Linear Algebra Software, generic shared
libatlas3gf-base - Transitional package to libatlas3-base
and doing aptitude search atlas|grep ^i

i   libatlas-dev                    - Automatically Tuned Linear Algebra Softwar
i A libatlas3gf-base                - Transitional package to libatlas3-base
but
locate libatlas.so.3gf
comes up empty.

So build your own:
sudo mkdir /opt/hpcc
sudo chown $USER /opt/hpcc
cd /opt/hpcc
wget http://ftp.de.debian.org/debian/pool/main/h/hpcc/hpcc_1.4.1.orig.tar.gz
tar xvf hpcc_1.4.1.orig.tar.gz
cd hpcc-1.4.1/
wget http://ftp.de.debian.org/debian/pool/main/h/hpcc/hpcc_1.4.1-2.debian.tar.gz
tar xvf hpcc_1.4.1-2.debian.tar.gz
patch -i debian/patches/add-Make.Debian.patch

Edit Make.Debian. For some reason LAdir is ignored, hence the -L option in LAlib
 78 # ---------------------------------------------------------------------- 79 # - MPI directories - library ------------------------------------------ 80 # ---------------------------------------------------------------------- 81 # MPinc tells the  C  compiler where to find the Message Passing library 82 # header files,  MPlib  is defined  to be the name of  the library to be 83 # used. The variable MPdir is only used for defining MPinc and MPlib. 84 # 85 MPdir        =/usr/lib/openmpi/lib/ 86 MPinc        = 87 MPlib        =-lmpi 88 # 89 # ---------------------------------------------------------------------- 90 # - Linear Algebra library (BLAS or VSIPL) ----------------------------- 91 # ---------------------------------------------------------------------- 92 # LAinc tells the  C  compiler where to find the Linear Algebra  library 93 # header files,  LAlib  is defined  to be the name of  the library to be 94 # used. The variable LAdir is only used for defining LAinc and LAlib. 95 # 96 LAdir        = /opt/ATLAS/lib 97 LAinc        = 98 LAlib        = -L/opt/ATLAS/lib -ltatlas 99 #

The above assumes that you've compiled your own openblas as shown elsewhere on this blog. You can use whatever math libs you want. Again, there are a couple described on this blog (acml, netlib blas/lapack, openblas, ATLAS). I've had success with the netlib blas/lapack and atlas (built with netlib lapack).

mv Make.Debian hpl/
make arch=Debian

Hopefully everything went well. Now you need an input file.
cp _hpccinf.txt hpccinf.txt

Edit hpccinf.txt:
HPLinpack benchmark input fileInnovative Computing Laboratory, University of TennesseeHPL.out      output file name (if any)8            device out (6=stdout,7=stderr,file)1            # of problems sizes (N)1000         Ns1            # of NBs80           NBs0            PMAP process mapping (0=Row-,1=Column-major)1            # of process grids (P x Q)3            Ps1            Qs16.0         threshold1            # of panel fact2            PFACTs (0=left, 1=Crout, 2=Right)1            # of recursive stopping criterium4            NBMINs (>= 1)1            # of panels in recursion2            NDIVs1            # of recursive panel fact.1            RFACTs (0=left, 1=Crout, 2=Right)1            # of broadcast1            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)1            # of lookahead depth1            DEPTHs (>=0)2            SWAP (0=bin-exch,1=long,2=mix)64           swapping threshold0            L1 in (0=transposed,1=no-transposed) form0            U  in (0=transposed,1=no-transposed) form1            Equilibration (0=no,1=yes)8            memory alignment in double (> 0)##### This line (no. 32) is ignored (it serves as a separator). ######0                               Number of additional problem sizes for PTRANS1200 10000 30000                values of N0                               number of additional blocking sizes for PTRANS40 9 8 13 13 20 16 32 64        values of NB
Launch by doing
mpirun -n X ./hpcc
where X=Ps times Qs (e.g. 3 in the example above).

I put the hpccinf.txt in a shared (nfs) folder (~/jobs), created a file called myhost

tantalum slots=2 max_slots=4
boron slots=2 max_slots=6
neon slots=2 max_slots=8
 and then launched using
mpirun -n 4 -hostfile myhost /opt/hpcc/hpcc-1.4.1/./hpcc

Hiç yorum yok:

Yorum Gönder