Installing the HPL Benchmarkt was pretty difficult, so a step-by-step overview is given here:
- Download and untar HPL Linpack Benchmark from the website.
- Make sure openmpi and the other dependencies for HPL are installed: 'sudo apt-get install gcc gcc-4.3 gfortran-4.3 make openmpi-bin libatlas-base-dev libblas-dev libopenmpi-dev'.
- Make sure GoToBlas2 is installed, it can be found here. Untar the download and build the GoToBlas software: './quickbuild.64bit'. Copy the shared library: 'cp libgoto2.so /usr/local/lib'.
- Download an architecture Make file for Ubuntu here, and modify its entries so the right paths are being used. Make sure to paste the file in the hpl-2.0 folder.
- Build the HPL software: 'sudo make arch=Ubuntu'. For me, this still resulted in the following errors:
make[2]: Entering directory `/home/kurt/Desktop/hpl-2.0/src/auxil/Ubuntu'
and
Makefile:47: Make.inc: No such file or directory
make[2]: *** No rule to make target `Make.inc'. Stop./usr/lib/libtbb.so not found
The first problem was solved by removing the 'include Make.inc' lines from the different make files, a modified version of hpl can be downloaded here. The second problem on the other hand was easily solved by installing libtbb: 'sudo apt-get install libtbb-dev'. - Try building HPL again, it should work now! Go to 'hpl-2.0/bin/Ubuntu' and run the benchmark (modify HPL.dat to your preferences first): 'mpirun -np 8 xhpl'.
Hi Kurt,
ReplyDeleteThank you very much for the detailed blog. When I try to compile GoToBlas on 64-bit Maverick, I get the foll. error:
./quickbuild.64bit
getarch_2nd.c: In function ‘main’:
getarch_2nd.c:12: error: ‘SGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
getarch_2nd.c:12: error: (Each undeclared identifier is reported only once
getarch_2nd.c:12: error: for each function it appears in.)
getarch_2nd.c:13: error: ‘SGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
getarch_2nd.c:14: error: ‘DGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
getarch_2nd.c:15: error: ‘DGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
getarch_2nd.c:19: error: ‘CGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
getarch_2nd.c:20: error: ‘CGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
getarch_2nd.c:21: error: ‘ZGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
getarch_2nd.c:22: error: ‘ZGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
getarch_2nd.c:29: error: ‘SGEMM_DEFAULT_Q’ undeclared (first use in this function)
getarch_2nd.c:30: error: ‘DGEMM_DEFAULT_Q’ undeclared (first use in this function)
getarch_2nd.c:31: error: ‘CGEMM_DEFAULT_Q’ undeclared (first use in this function)
getarch_2nd.c:32: error: ‘ZGEMM_DEFAULT_Q’ undeclared (first use in this function)
make: *** [getarch_2nd] Error 1
ln -fs libgoto2_p6-r1.13.a libgoto2.a
for d in interface driver/level2 driver/level3 driver/others kernel lapack ; \
do if test -d $d; then \
make -j 1 -C $d libs || exit 1 ; \
fi; \
done
make[1]: Entering directory `/root/GotoBLAS2/interface'
gcc -c -O2 -Wall -m64 -DF_INTERFACE_G77 -fPIC -DMAX_CPU_NUMBER=1 -DASMNAME=sgemm -DASMFNAME=sgemm_ -DNAME=sgemm_ -DCNAME=sgemm -DCHAR_NAME=\"sgemm_\" -DCHAR_CNAME=\"sgemm\" -I.. -I. -UDOUBLE -UCOMPLEX gemm.c -o sgemm.o
gemm.c: In function ‘sgemm_’:
gemm.c:392: error: ‘GEMM_DEFAULT_OFFSET_A’ undeclared (first use in this function)
gemm.c:392: error: (Each undeclared identifier is reported only once
gemm.c:392: error: for each function it appears in.)
gemm.c:393: error: ‘SGEMM_DEFAULT_P’ undeclared (first use in this function)
gemm.c:393: error: ‘SGEMM_DEFAULT_Q’ undeclared (first use in this function)
gemm.c:393: error: ‘GEMM_DEFAULT_ALIGN’ undeclared (first use in this function)
gemm.c:393: error: ‘GEMM_DEFAULT_OFFSET_B’ undeclared (first use in this function)
make[1]: *** [sgemm.o] Error 1
make[1]: Leaving directory `/root/GotoBLAS2/interface'
make: *** [libs] Error 1
Thank you
Jo
Hi Jo,
ReplyDeleteSorry for my late response,
did you figure it out already by any chance?
I'm actually not sure what is causing this error.
Will try to look into a bit tomorrow.
Kind Regards,
Kurt
Hi Kurt,
ReplyDeleteDid you by any chance look into it 'tomorrow'? Ok, I know it's beed a while since last responce but I'm getting pretty much the same error as Jo so I thought that mabye someone has figured this out already.
Thanks in advance,
Tob
Ok, I know already what was the problem. One has to specify procesor type while compiling by using option TARGET=.
ReplyDeleteRegards