From 6379a25b53e6988f825bddd0057e00871b9ebffe Mon Sep 17 00:00:00 2001 From: Thierry Thomas Date: Thu, 2 Nov 2023 22:01:06 +0100 Subject: [PATCH] =?UTF-8?q?benchmarks/hpl:=20let=E2=80=99s=20choose=20amon?= =?UTF-8?q?g=20various=20BLAS=20=C3=97=20MPI=20implementations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 d8cde4f8ef354..e34c23d8e39cb 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}