High Performance Computing Linpack Benchmark
- needs an MPI implementation (mpich and lam are supported by this port) - needs an Basic Linear Algebra Subprograms implementation like atlas (default) or blas (both are supported by this port) tested on alpha (5), amd64 (5) and i386 (4 and 5)
This commit is contained in:
parent
457bf65e08
commit
02d428b109
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=102111
5 changed files with 153 additions and 0 deletions
|
@ -8,6 +8,7 @@
|
|||
SUBDIR += dbench
|
||||
SUBDIR += dbs
|
||||
SUBDIR += forkbomb
|
||||
SUBDIR += hpl
|
||||
SUBDIR += iozone
|
||||
SUBDIR += iozone21
|
||||
SUBDIR += lmbench
|
||||
|
|
119
benchmarks/hpl/Makefile
Normal file
119
benchmarks/hpl/Makefile
Normal file
|
@ -0,0 +1,119 @@
|
|||
# New ports collection makefile for: physfs
|
||||
# Date Created: 22 February 2003
|
||||
# Whom: Oliver Lehmann <oliver@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= hpl
|
||||
PORTVERSION= 1.0a
|
||||
CATEGORIES= benchmarks
|
||||
MASTER_SITES= http://www.netlib.org/benchmark/hpl/
|
||||
DISTNAME= ${PORTNAME}
|
||||
EXTRACT_SUFX= .tgz
|
||||
|
||||
MAINTAINER= oliver@FreeBSD.org
|
||||
COMMENT= High Performance Computing Linpack Benchmark
|
||||
|
||||
.if !defined(WITH_LAM)
|
||||
BUILD_DEPENDS= ${LOCALBASE}/mpich/bin/mpicc:${PORTSDIR}/net/mpich
|
||||
.else
|
||||
BUILD_DEPENDS= ${LOCALBASE}/bin/lamd:${PORTSDIR}/net/lam
|
||||
CC= ${LOCALBASE}/bin/mpicc
|
||||
FC= ${LOCALBASE}/bin/mpicc
|
||||
.endif
|
||||
|
||||
RUN_DEPENDS= ${BUILD_DEPENDS}
|
||||
|
||||
.if ${MACHINE_ARCH} == "amd64"
|
||||
# math/atlas is currently broken on amd64
|
||||
WITH_BLAS= yes
|
||||
.endif
|
||||
|
||||
.if defined(WITH_BLAS)
|
||||
LIB_DEPENDS+= blas.1:${PORTSDIR}/math/blas
|
||||
.else
|
||||
LIB_DEPENDS+= cblas.1:${PORTSDIR}/math/atlas
|
||||
.endif
|
||||
|
||||
INSTALLS_SHLIB= yes
|
||||
USE_REINPLACE= yes
|
||||
HPL_ARCH?= FreeBSD_PIV_CBLAS
|
||||
ALL_TARGET= arch=${HPL_ARCH}
|
||||
MAN3= HPL_abort.3 HPL_all_reduce.3 HPL_barrier.3 HPL_bcast.3 \
|
||||
HPL_binit.3 HPL_broadcast.3 HPL_bwait.3 HPL_copyL.3 \
|
||||
HPL_daxpy.3 HPL_dcopy.3 HPL_dgemm.3 HPL_dgemv.3 HPL_dger.3 \
|
||||
HPL_dlacpy.3 HPL_dlamch.3 HPL_dlange.3 HPL_dlaprnt.3 \
|
||||
HPL_dlaswp00N.3 HPL_dlaswp01N.3 HPL_dlaswp01T.3 HPL_dlaswp02N.3 \
|
||||
HPL_dlaswp03N.3 HPL_dlaswp03T.3 HPL_dlaswp04N.3 HPL_dlaswp04T.3 \
|
||||
HPL_dlaswp05N.3 HPL_dlaswp05T.3 HPL_dlaswp06N.3 HPL_dlaswp06T.3 \
|
||||
HPL_dlaswp10N.3 HPL_dlatcpy.3 HPL_dlocmax.3 HPL_dlocswpN.3 \
|
||||
HPL_dlocswpT.3 HPL_dmatgen.3 HPL_dscal.3 HPL_dswap.3 HPL_dtrsm.3 \
|
||||
HPL_dtrsv.3 HPL_equil.3 HPL_fprintf.3 HPL_grid_exit.3 \
|
||||
HPL_grid_info.3 HPL_grid_init.3 HPL_idamax.3 HPL_indxg2l.3 \
|
||||
HPL_indxg2lp.3 HPL_indxg2p.3 HPL_indxl2g.3 HPL_infog2l.3 \
|
||||
HPL_jumpit.3 HPL_ladd.3 HPL_lmul.3 HPL_logsort.3 HPL_max.3 \
|
||||
HPL_min.3 HPL_numroc.3 HPL_numrocI.3 HPL_pabort.3 HPL_packL.3 \
|
||||
HPL_pddriver.3 HPL_pdfact.3 HPL_pdgesv.3 HPL_pdgesv0.3 \
|
||||
HPL_pdgesvK1.3 HPL_pdgesvK2.3 HPL_pdinfo.3 HPL_pdlamch.3 \
|
||||
HPL_pdlange.3 HPL_pdlaprnt.3 HPL_pdlaswp00N.3 HPL_pdlaswp00T.3 \
|
||||
HPL_pdlaswp01N.3 HPL_pdlaswp01T.3 HPL_pdmatgen.3 HPL_pdmxswp.3 \
|
||||
HPL_pdpancrN.3 HPL_pdpancrT.3 HPL_pdpanel_disp.3 \
|
||||
HPL_pdpanel_free.3 HPL_pdpanel_init.3 HPL_pdpanel_new.3 \
|
||||
HPL_pdpanllN.3 HPL_pdpanllT.3 HPL_pdpanrlN.3 HPL_pdpanrlT.3 \
|
||||
HPL_pdrpancrN.3 HPL_pdrpancrT.3 HPL_pdrpanllN.3 HPL_pdrpanllT.3 \
|
||||
HPL_pdrpanrlN.3 HPL_pdrpanrlT.3 HPL_pdtest.3 HPL_pdtrsv.3 \
|
||||
HPL_pdupdateNN.3 HPL_pdupdateNT.3 HPL_pdupdateTN.3 \
|
||||
HPL_pdupdateTT.3 HPL_perm.3 HPL_pipid.3 HPL_plindx0.3 \
|
||||
HPL_plindx1.3 HPL_plindx10.3 HPL_pnum.3 HPL_ptimer.3 \
|
||||
HPL_ptimer_cputime.3 HPL_ptimer_walltime.3 HPL_pwarn.3 \
|
||||
HPL_rand.3 HPL_recv.3 HPL_reduce.3 HPL_rollN.3 HPL_rollT.3 \
|
||||
HPL_sdrv.3 HPL_send.3 HPL_setran.3 HPL_spreadN.3 HPL_spreadT.3 \
|
||||
HPL_sum.3 HPL_timer.3 HPL_timer_cputime.3 HPL_timer_walltime.3 \
|
||||
HPL_warn.3 HPL_xjumpm.3
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|^TOPdir[ ]*=.*$$|TOPdir = ${WRKSRC}| ; \
|
||||
s|^MPdir[ ]*=.*$$|MPdir = ${LOCALBASE}/mpich| ; \
|
||||
s|^LAdir[ ]*=.*$$|LAdir = ${LOCALBASE}/lib| ; \
|
||||
s|^CC[ ]*=.*$$|CC = ${CC}| ; \
|
||||
s|^CCFLAGS[ ]*=.*$$|CCFLAGS = $$\(HPL_DEFS\) ${CFLAGS} -fomit-frame-pointer -funroll-loops| ; \
|
||||
s|^LINKER[ ]*=.*$$|LINKER = ${FC}| ; \
|
||||
s|^ARCHIVER[ ]*=.*$$|ARCHIVER = ${AR}|'\
|
||||
${WRKSRC}/setup/Make.${HPL_ARCH}
|
||||
|
||||
.if defined(WITH_LAM)
|
||||
@${REINPLACE_CMD} -e 's|^MPdir[ ]*=.*$$|#&| ; s|^MPinc[ ]*=.*$$|#&| ; \
|
||||
s|^MPlib[ ]*=.*$$|MPlib = /usr/lib/libg2c.a|' \
|
||||
${WRKSRC}/setup/Make.${HPL_ARCH}
|
||||
.else
|
||||
@${REINPLACE_CMD} -e 's|^MPdir[ ]*=.*$$|MPdir = ${LOCALBASE}/mpich|' \
|
||||
${WRKSRC}/setup/Make.${HPL_ARCH}
|
||||
.endif
|
||||
|
||||
.if defined(WITH_BLAS)
|
||||
@${REINPLACE_CMD} -e 's|^HPL_OPTS[ ]*=.*$$|HPL_OPTS =| ; \
|
||||
s|^LAlib[ ]*=.*$$|LAlib = $$\(LAdir\)/libblas.a|' \
|
||||
${WRKSRC}/setup/Make.${HPL_ARCH}
|
||||
.endif
|
||||
|
||||
@${REINPLACE_CMD} -e 's|HPL\.dat|${PREFIX}/etc/${PORTNAME}/&|' \
|
||||
${WRKSRC}/testing/ptest/HPL_pdinfo.c
|
||||
|
||||
@${CP} ${WRKSRC}/setup/Make.${HPL_ARCH} ${WRKSRC}/
|
||||
|
||||
do-install:
|
||||
${MKDIR} ${PREFIX}/etc/${PORTNAME}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/bin/${HPL_ARCH}/xhpl ${PREFIX}/bin/
|
||||
${INSTALL_DATA} ${WRKSRC}/bin/${HPL_ARCH}/HPL.dat ${PREFIX}/etc/${PORTNAME}/
|
||||
.for man in ${MAN3}
|
||||
${INSTALL_MAN} ${WRKSRC}/man/man3/${man} ${MANPREFIX}/man/man3/
|
||||
.endfor
|
||||
.if !defined(NOPORTDOCS)
|
||||
${MKDIR} ${DOCSDIR}
|
||||
.for doc in BUGS COPYRIGHT HISTORY README TODO TUNING
|
||||
${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR}
|
||||
.endfor
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
2
benchmarks/hpl/distinfo
Normal file
2
benchmarks/hpl/distinfo
Normal file
|
@ -0,0 +1,2 @@
|
|||
MD5 (hpl.tgz) = 32b432af96e674dcb657ef1d63e6d591
|
||||
SIZE (hpl.tgz) = 523139
|
21
benchmarks/hpl/pkg-descr
Normal file
21
benchmarks/hpl/pkg-descr
Normal file
|
@ -0,0 +1,21 @@
|
|||
HPL is a software package that solves a (random) dense linear system in double
|
||||
precision (64 bits) arithmetic on distributed-memory computers. It can thus be
|
||||
regarded as aportable as well as freely available implementation of the High
|
||||
Performance Computing Linpack Benchmark.
|
||||
|
||||
The algorithm used by HPL can be summarized by the following keywords:
|
||||
Two-dimensional block-cyclic data distribution - Right-looking variant of the
|
||||
LU factorization with row partial pivoting featuring multiple look-ahead
|
||||
depths - Recursive panel factorization with pivot search and column broadcast
|
||||
combined - Various virtual panel broadcast topologies - bandwidth reducing
|
||||
swap-broadcast algorithm - backward substitution with look-ahead of depth 1.
|
||||
|
||||
The HPL package provides a testing and timing program to quantify the accuracy
|
||||
of the obtained solution as well as the time it took to compute it. The best
|
||||
performance achievable by this software on your system depends on a large
|
||||
variety of factors. Nonetheless, with some restrictive assumptions on the
|
||||
interconnection network, the algorithm described here and its attached
|
||||
implementation are scalable in the sense that their parallel efficiency is
|
||||
maintained constant with respect to the per processor memory usage.
|
||||
|
||||
WWW: http://www.netlib.org/benchmark/hpl/
|
10
benchmarks/hpl/pkg-plist
Normal file
10
benchmarks/hpl/pkg-plist
Normal file
|
@ -0,0 +1,10 @@
|
|||
bin/xhpl
|
||||
etc/hpl/HPL.dat
|
||||
%%PORTDOCS%%%%DOCSDIR%%/BUGS
|
||||
%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT
|
||||
%%PORTDOCS%%%%DOCSDIR%%/HISTORY
|
||||
%%PORTDOCS%%%%DOCSDIR%%/README
|
||||
%%PORTDOCS%%%%DOCSDIR%%/TODO
|
||||
%%PORTDOCS%%%%DOCSDIR%%/TUNING
|
||||
%%PORTDOCS%%@dirrm %%DOCSDIR%%
|
||||
@dirrm etc/hpl
|
Loading…
Reference in a new issue