git: 6379a25b53e6 - main - benchmarks/hpl: let’s choose among various BLAS × MPI implementations
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 31 Dec 2023 15:19:47 UTC
The branch main has been updated by thierry:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6379a25b53e6988f825bddd0057e00871b9ebffe
commit 6379a25b53e6988f825bddd0057e00871b9ebffe
Author: Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2023-11-02 21:01:06 +0000
Commit: Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2023-12-31 15:18:39 +0000
benchmarks/hpl: let’s choose among various BLAS × MPI implementations
- Add a license
- Add options to choose MPI and BLAS implementations.
- Do not bump PORTREVISION because the default remains Netlib
(excepted static vs shared libs).
- And also this fixes the port with BLAS 3.12
Caveat: may install an unneeded liblapack.
PR: 274882, 275860
Approved by: maintainer’s time-out
---
benchmarks/hpl/Makefile | 43 ++++++++++++++++++++++++++++++-------------
1 file changed, 30 insertions(+), 13 deletions(-)
diff --git a/benchmarks/hpl/Makefile b/benchmarks/hpl/Makefile
index d8cde4f8ef35..e34c23d8e39c 100644
--- a/benchmarks/hpl/Makefile
+++ b/benchmarks/hpl/Makefile
@@ -8,36 +8,53 @@ MAINTAINER= oliver@FreeBSD.org
COMMENT= High Performance Computing Linpack Benchmark
WWW= https://www.netlib.org/benchmark/hpl/
-LIB_DEPENDS= libblas.so:math/blas \
- libmpich.so:net/mpich
+LICENSE= BSD4CLAUSE
+LICENSE_FILE= ${WRKSRC}/www/copyright.html
USES= fortran
-USE_LDCONFIG= yes
HPL_ARCH?= FreeBSD_PIV_CBLAS
MAKE_ARGS= arch=${HPL_ARCH}
ALL_TARGET= build
-OPTIONS_DEFINE= DOCS
+OPTIONS_DEFINE= DOCS
+OPTIONS_RADIO= BLAS MPI
+OPTIONS_RADIO_BLAS= ATLAS BLIS FLEXIBLAS NETLIB OPENBLAS
+OPTIONS_RADIO_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= NETLIB MPICH
+BLIS_DESC= BLAS implementation from FLAME
+FLEXIBLAS_DESC= BLAS and LAPACK wrapper library
-post-patch:
- @${REINPLACE_CMD} -e 's|^TOPdir[ ]*=.*$$|TOPdir = ${WRKSRC}| ; \
+ATLAS_USES= blaslapack:atlas
+BLIS_USES= blaslapack:blis
+FLEXIBLAS_USES= blaslapack:flexiblas
+NETLIB_USES= blaslapack:netlib
+OPENBLAS_USES= blaslapack:openblas
+
+MPICH_USES= mpi:mpich
+OPENMPI_USES= mpi:openmpi
+
+CFLAGS+= -fomit-frame-pointer -funroll-loops
+
+pre-configure:
+ ${REINPLACE_CMD} -e 's|^TOPdir[ ]*=.*$$|TOPdir = ${WRKSRC}| ; \
s|^MPdir[ ]*=.*$$|MPdir = ${LOCALBASE}| ; \
s|^LAdir[ ]*=.*$$|LAdir = ${LOCALBASE}| ; \
s|^CC[ ]*=.*$$|CC = ${CC}| ; \
- s|^CCFLAGS[ ]*=.*$$|CCFLAGS = $$\(HPL_DEFS\) ${CFLAGS} -fomit-frame-pointer -funroll-loops| ; \
+ s|^CCFLAGS[ ]*=.*$$|CCFLAGS = $$\(HPL_DEFS\) ${CFLAGS}| ; \
s|^LINKER[ ]*=.*$$|LINKER = ${FC}| ; \
s|^LINKFLAGS[ ]*=\(.*\)$$|LINKFLAGS =\1 ${LDFLAGS}| ; \
s|^ARCHIVER[ ]*=.*$$|ARCHIVER = ${AR}| ; \
s|ARCH[ )]|_&|g ; \
s|^HPL_OPTS[ ]*=.*$$|HPL_OPTS =| ; \
- s|^LAlib[ ]*=.*$$|LAlib = $$\(LAdir\)/lib/libblas.a| ; \
- s|libmpich.a|libmpich.so -lpthread| ; \
- s|libpmpich.a|libmpl.so -lpthread|' \
+ s|^LAlib[ ]*=.*$$|LAlib = ${BLASLIB}| ; \
+ s|^MPdir[ ]*=.*$$|MPdir = ${MPI_HOME}| ; \
+ s|^MPinc[ ]*=.*$$|MPinc = ${MPI_CFLAGS}| ; \
+ s|^MPlib[ ]*=.*$$|MPlib = ${MPI_LIBS}|' \
${WRKSRC}/setup/Make.${HPL_ARCH}
- @${REINPLACE_CMD} -e 's|HPL\.dat|${PREFIX}/etc/${PORTNAME}/&|' \
+ ${REINPLACE_CMD} -e 's|HPL\.dat|${PREFIX}/etc/${PORTNAME}/&|' \
${WRKSRC}/testing/ptest/HPL_pdinfo.c
- @${CP} ${WRKSRC}/setup/Make.${HPL_ARCH} ${WRKSRC}/
- @${REINPLACE_CMD} -e '/^build/s|$$| startup|' ${WRKSRC}/Makefile
+ ${CP} ${WRKSRC}/setup/Make.${HPL_ARCH} ${WRKSRC}/
+ ${REINPLACE_CMD} -e '/^build/s|$$| startup|' ${WRKSRC}/Makefile
do-install:
${MKDIR} ${STAGEDIR}${ETCDIR}