Why compile?
hpcc
hpcc: error while loading shared libraries: libatlas.so.3gf: cannot open shared object file: No such file or directoryDoing
aptitude show hpcc
Depends: libatlas3gf-base, libc6 (>= 2.7), libopenmpi1.3, mpi-default-binapt-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 Softwarbut
i A libatlas3gf-base - Transitional package to libatlas3-base
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 file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
8 device out (6=stdout,7=stderr,file)
1 # of problems sizes (N)
1000 Ns
1 # of NBs
80 NBs
0 PMAP process mapping (0=Row-,1=Column-major)
1 # of process grids (P x Q)
3 Ps
1 Qs
16.0 threshold
1 # of panel fact
2 PFACTs (0=left, 1=Crout, 2=Right)
1 # of recursive stopping criterium
4 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
1 # of recursive panel fact.
1 RFACTs (0=left, 1=Crout, 2=Right)
1 # of broadcast
1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 # of lookahead depth
1 DEPTHs (>=0)
2 SWAP (0=bin-exch,1=long,2=mix)
64 swapping threshold
0 L1 in (0=transposed,1=no-transposed) form
0 U in (0=transposed,1=no-transposed) form
1 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 PTRANS
1200 10000 30000 values of N
0 number of additional blocking sizes for PTRANS
40 9 8 13 13 20 16 32 64 values of NB
Launch by doingmpirun -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=4and then launched using
boron slots=2 max_slots=6
neon slots=2 max_slots=8
mpirun -n 4 -hostfile myhost /opt/hpcc/hpcc-1.4.1/./hpcc
No comments:
Post a Comment