aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2023-04-16 08:18:59 +0000
committerThierry Thomas <thierry@FreeBSD.org>2023-04-16 08:18:59 +0000
commit3eb5a6be9e4b6c2119ed2753376da7a55bb96e79 (patch)
treed90fd670fac89f8c6314d34feb9ce5ae0b62ffef
parent80005b36f006b1c195e11759e4b966025b14235b (diff)
downloadports-3eb5a6be9e4b6c2119ed2753376da7a55bb96e79.tar.gz
ports-3eb5a6be9e4b6c2119ed2753376da7a55bb96e79.zip
benchmarks/imb: upgrade to 2021.3
This port was very outdated: releases notes are available at <https://github.com/intel/mpi-benchmarks/releases>. The PDF is no more included but the user guide is available at <https://software.intel.com/en-us/imb-user-guide>. Also modernize the port and switch from OpenMPI 3 to OpenMPI4 (optiopnal, MPICH still being the default).
-rw-r--r--benchmarks/imb/Makefile60
-rw-r--r--benchmarks/imb/distinfo5
-rw-r--r--benchmarks/imb/files/patch-IMB__declare.h10
-rw-r--r--benchmarks/imb/files/patch-make__mpich18
-rw-r--r--benchmarks/imb/files/patch-src__c_P2P_Makefile11
-rw-r--r--benchmarks/imb/files/patch-src__cpp_args__parser.cpp24
-rw-r--r--benchmarks/imb/files/patch-src__cpp_args__parser.h10
-rw-r--r--benchmarks/imb/pkg-plist8
8 files changed, 88 insertions, 58 deletions
diff --git a/benchmarks/imb/Makefile b/benchmarks/imb/Makefile
index 13228b8fdde8..3f4f1003f58d 100644
--- a/benchmarks/imb/Makefile
+++ b/benchmarks/imb/Makefile
@@ -1,49 +1,57 @@
-PORTNAME= imb
-PORTVERSION= 3.0
-PORTREVISION= 17
+PORTNAME= IMB
+DISTVERSIONPREFIX= v
+DISTVERSION= 2021.3
CATEGORIES= benchmarks parallel
-MASTER_SITES= LOCAL/itetcu \
- http://cache-www.intel.com/cd/00/00/32/71/
-DISTNAME= 327191_327191
-EXTRACT_SUFX= .gz
+MASTER_SITES= https://github.com/intel/mpi-benchmarks/archive/refs/tags/
MAINTAINER= ports@FreeBSD.org
COMMENT= Intel MPI Benchmark
+WWW= https://software.intel.com/en-us/imb-user-guide
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/license/license.txt
+
+#USE_GITHUB= yes
+#GH_ACCOUNT= intel
+#GH_PROJECT= mpi-benchmarks
+
+USES= gmake localbase
+BINARY_ALIAS= make=${GMAKE}
+
+WRKSRC= ${WRKDIR}/mpi-benchmarks-${DISTNAME}
-WRKSRC= ${WRKDIR}/IMB_3.0/src/
-USES= dos2unix gmake
-MAKEFILE= make_mpich
# Intel hardcodes -O3 in make_mpich. Replacing it with system defaults
# would make it impossible to compare benchmark results with other systems.
# By putting it here we make it easier for somebody to change it, if they
# _really_ want it.
-CFLAGS= -O3
-
-MAKE_JOBS_UNSAFE=yes
-
-OPTIONS_DEFINE= CHECK_RESULTS DOCS OPENMPI
+OPT_CFLAGS= -O3
+CC= ${MPICC}
+CXX= ${MPICXX}
+CFLAGS+= ${OPT_CFLAGS} ${MPI_CFLAGS}
+LDFLAGS+= ${MPI_LIBS}
+MAKE_ENV= MPI_HOME=${MPI_HOME}
+
+OPTIONS_DEFINE= CHECK_RESULTS DOCS
+OPTIONS_RADIO= MPI
+OPTIONS_RADIO_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= MPICH
# Attention: -DCHECK results are not valid as real benchmark data! Don't
# forget to deactivate DCHECK and recompile in order to get proper results.
CHECK_RESULTS_DESC= Check results (not valid as real benchmark data)
CHECK_RESULTS_CFLAGS= -DCHECK
-OPENMPI_BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi3/lib/libmpi.so:net/openmpi3
-OPENMPI_RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi3/bin/mpirun:net/openmpi3
-OPENMPI_MAKE_ENV= MPI_HOME=${LOCALBASE}/mpi/openmpi3
-OPENMPI_BUILD_DEPENDS_OFF= ${LOCALBASE}/bin/mpicc:net/mpich
-OPENMPI_RUN_DEPENDS_OFF= ${LOCALBASE}/bin/mpirun:net/mpich
-OPENMPI_MAKE_ENV_OFF= MPI_HOME=${LOCALBASE}
+MPICH_USES= mpi:mpich
+OPENMPI_USES= mpi:openmpi
do-install:
- (cd ${WRKSRC} && ${INSTALL_PROGRAM} IMB-EXT IMB-IO IMB-MPI1 \
- ${STAGEDIR}${PREFIX}/bin)
+ (cd ${WRKSRC} && ${INSTALL_PROGRAM} IMB-* ${STAGEDIR}${PREFIX}/bin)
do-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${WRKDIR}/IMB_3.0/doc/IMB_ug-3.0.pdf ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${WRKDIR}/IMB_3.0/license/license.txt ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${WRKDIR}/IMB_3.0/license/use-of-trademark-license.txt \
+ ${INSTALL_DATA} ${WRKSRC}/ReadMe_IMB.txt ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/license/third-party-programs.txt ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/license/use-of-trademark-license.txt \
${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>
diff --git a/benchmarks/imb/distinfo b/benchmarks/imb/distinfo
index 984c30bc8835..c9ab740128e0 100644
--- a/benchmarks/imb/distinfo
+++ b/benchmarks/imb/distinfo
@@ -1,2 +1,3 @@
-SHA256 (327191_327191.gz) = 5014ec12ae5dc05b1373b47b41d26fe518bc41fe5c77899eb400a25dd9c3ec53
-SIZE (327191_327191.gz) = 464188
+TIMESTAMP = 1681570443
+SHA256 (IMB-v2021.3.tar.gz) = 9b58a4a7eef7c0c877513152340948402fd87cb06270d2d81308dc2ef740f4c7
+SIZE (IMB-v2021.3.tar.gz) = 221038
diff --git a/benchmarks/imb/files/patch-IMB__declare.h b/benchmarks/imb/files/patch-IMB__declare.h
deleted file mode 100644
index 7dbf858d52e2..000000000000
--- a/benchmarks/imb/files/patch-IMB__declare.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- IMB_declare.h.orig 2016-07-27 14:58:51 UTC
-+++ IMB_declare.h
-@@ -69,7 +69,6 @@ For more documentation than found here,
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <malloc.h>
- #include <stddef.h>
- #include "IMB_appl_errors.h"
- #include "IMB_err_check.h"
diff --git a/benchmarks/imb/files/patch-make__mpich b/benchmarks/imb/files/patch-make__mpich
deleted file mode 100644
index 32b2b1a644b7..000000000000
--- a/benchmarks/imb/files/patch-make__mpich
+++ /dev/null
@@ -1,18 +0,0 @@
---- make_mpich.orig 2016-07-27 14:58:51 UTC
-+++ make_mpich
-@@ -1,5 +1,5 @@
- # Enter root directory of mpich install
--MPI_HOME=
-+#MPI_HOME=
-
- MPICC=$(shell find ${MPI_HOME} -name mpicc -print)
-
-@@ -12,7 +12,7 @@ endif
- LIB_PATH =
- LIBS =
- CC = ${MPI_HOME}/bin/mpicc
--OPTFLAGS = -O3
-+OPTFLAGS = ${CFLAGS}
- CLINKER = ${CC}
- LDFLAGS =
- CPPFLAGS =
diff --git a/benchmarks/imb/files/patch-src__c_P2P_Makefile b/benchmarks/imb/files/patch-src__c_P2P_Makefile
new file mode 100644
index 000000000000..f8884706e99e
--- /dev/null
+++ b/benchmarks/imb/files/patch-src__c_P2P_Makefile
@@ -0,0 +1,11 @@
+--- src_c/P2P/Makefile.orig 2021-10-01 13:09:19 UTC
++++ src_c/P2P/Makefile
+@@ -50,7 +50,7 @@ BINARY:=IMB-P2P
+ TARGET=P2P
+ BINARY:=IMB-P2P
+
+-override CFLAGS += -O3 -Wall -Wextra -pedantic -Wno-long-long
++override CFLAGS += -Wall -Wextra -pedantic -Wno-long-long
+ override LDFLAGS += -lm
+
+ ifeq ($(origin CC),default)
diff --git a/benchmarks/imb/files/patch-src__cpp_args__parser.cpp b/benchmarks/imb/files/patch-src__cpp_args__parser.cpp
new file mode 100644
index 000000000000..be14a05b618f
--- /dev/null
+++ b/benchmarks/imb/files/patch-src__cpp_args__parser.cpp
@@ -0,0 +1,24 @@
+--- src_cpp/args_parser.cpp.orig 2021-10-01 13:09:19 UTC
++++ src_cpp/args_parser.cpp
+@@ -299,7 +299,7 @@ void args_parser::print_help_advice() const {
+ #endif
+
+ void args_parser::print_help_advice() const {
+- sout << "Try \"" << basename(argv[0]) << " " << option_starter << "help\" for usage information" << endl;
++ sout << "Try \"" << basename(const_cast<char*>(argv[0])) << " " << option_starter << "help\" for usage information" << endl;
+ }
+
+ // NOTE: This one is just to loop over expected_args 2-level array in a easier way.
+@@ -381,10 +381,10 @@ void args_parser::print_help() const {
+ void args_parser::print_help() const {
+ if (program_name.size() != 0)
+ sout << program_name << endl;
+- sout << "Usage: " << basename(argv[0]) << " ";
++ sout << "Usage: " << basename(const_cast<char*>(argv[0])) << " ";
+ string header;
+ header += "Usage: ";
+- header += basename(argv[0]);
++ header += basename(const_cast<char*>(argv[0]));
+ header += " ";
+ size_t size = min(header.size(), (size_t)16);
+ string tab(size - 2, ' ');
diff --git a/benchmarks/imb/files/patch-src__cpp_args__parser.h b/benchmarks/imb/files/patch-src__cpp_args__parser.h
new file mode 100644
index 000000000000..ac6df75e7c84
--- /dev/null
+++ b/benchmarks/imb/files/patch-src__cpp_args__parser.h
@@ -0,0 +1,10 @@
+--- src_cpp/args_parser.h.orig 2021-10-01 13:09:19 UTC
++++ src_cpp/args_parser.h
+@@ -52,6 +52,7 @@ goods and services.
+ #include <iostream>
+ #include <sstream>
+ #include <assert.h>
++#include <libgen.h>
+ #include <string>
+ #include <map>
+ #include <set>
diff --git a/benchmarks/imb/pkg-plist b/benchmarks/imb/pkg-plist
index 31993f2563ad..36506631b8d1 100644
--- a/benchmarks/imb/pkg-plist
+++ b/benchmarks/imb/pkg-plist
@@ -1,6 +1,10 @@
bin/IMB-EXT
bin/IMB-IO
bin/IMB-MPI1
-%%PORTDOCS%%%%DOCSDIR%%/IMB_ug-3.0.pdf
-%%PORTDOCS%%%%DOCSDIR%%/license.txt
+bin/IMB-MT
+bin/IMB-NBC
+bin/IMB-P2P
+bin/IMB-RMA
+%%PORTDOCS%%%%DOCSDIR%%/ReadMe_IMB.txt
+%%PORTDOCS%%%%DOCSDIR%%/third-party-programs.txt
%%PORTDOCS%%%%DOCSDIR%%/use-of-trademark-license.txt