summaryrefslogtreecommitdiffstats
path: root/benchmarks
diff options
context:
space:
mode:
authoroliver <oliver@FreeBSD.org>2004-02-25 18:06:01 +0000
committeroliver <oliver@FreeBSD.org>2004-02-25 18:06:01 +0000
commit3114baf89ceef68ea80fc851814853ac9a39e870 (patch)
treed220ef9c3ff36c9724005993c13cad18d8895fac /benchmarks
parent9e405775783781744ea1c05009cb6d08999545fe (diff)
downloadFreeBSD-ports-3114baf89ceef68ea80fc851814853ac9a39e870.zip
FreeBSD-ports-3114baf89ceef68ea80fc851814853ac9a39e870.tar.gz
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)
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/Makefile1
-rw-r--r--benchmarks/hpl/Makefile119
-rw-r--r--benchmarks/hpl/distinfo2
-rw-r--r--benchmarks/hpl/pkg-descr21
-rw-r--r--benchmarks/hpl/pkg-plist10
5 files changed, 153 insertions, 0 deletions
diff --git a/benchmarks/Makefile b/benchmarks/Makefile
index 5ff72ae..b136ee2 100644
--- a/benchmarks/Makefile
+++ b/benchmarks/Makefile
@@ -8,6 +8,7 @@
SUBDIR += dbench
SUBDIR += dbs
SUBDIR += forkbomb
+ SUBDIR += hpl
SUBDIR += iozone
SUBDIR += iozone21
SUBDIR += lmbench
diff --git a/benchmarks/hpl/Makefile b/benchmarks/hpl/Makefile
new file mode 100644
index 0000000..3e0837c
--- /dev/null
+++ b/benchmarks/hpl/Makefile
@@ -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>
diff --git a/benchmarks/hpl/distinfo b/benchmarks/hpl/distinfo
new file mode 100644
index 0000000..83cb8a4
--- /dev/null
+++ b/benchmarks/hpl/distinfo
@@ -0,0 +1,2 @@
+MD5 (hpl.tgz) = 32b432af96e674dcb657ef1d63e6d591
+SIZE (hpl.tgz) = 523139
diff --git a/benchmarks/hpl/pkg-descr b/benchmarks/hpl/pkg-descr
new file mode 100644
index 0000000..d1c43a1
--- /dev/null
+++ b/benchmarks/hpl/pkg-descr
@@ -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/
diff --git a/benchmarks/hpl/pkg-plist b/benchmarks/hpl/pkg-plist
new file mode 100644
index 0000000..4d6e9d5
--- /dev/null
+++ b/benchmarks/hpl/pkg-plist
@@ -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
OpenPOWER on IntegriCloud