commit: 62817bd44deeaa5bd49d33792c7931f2c000d8c3 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Thu Jun 2 12:30:34 2022 +0000 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> CommitDate: Thu Jun 2 13:50:03 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=62817bd4
sys-cluster/mpi-benchmarks: new package, add 2021.3 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> sys-cluster/mpi-benchmarks/Manifest | 1 + .../files/mpi-benchmarks-2021.3-makefile.patch | 142 +++++++++++++++++++++ sys-cluster/mpi-benchmarks/metadata.xml | 13 ++ .../mpi-benchmarks/mpi-benchmarks-2021.3.ebuild | 28 ++++ 4 files changed, 184 insertions(+) diff --git a/sys-cluster/mpi-benchmarks/Manifest b/sys-cluster/mpi-benchmarks/Manifest new file mode 100644 index 000000000..87015f994 --- /dev/null +++ b/sys-cluster/mpi-benchmarks/Manifest @@ -0,0 +1 @@ +DIST IMB-v2021.3.tar.gz 221038 BLAKE2B d776e482a6632d9a538af0f8b89928322860ca6782f7c96bb47af0f9c6387eddc487bffbf3fde3e5c0477b7c9e9cbe7856857110890389f5ee42865051ef185b SHA512 fdb1a2426b5999c58c5d15228c64a80f28f4051d438e86a132f0fc42c3cda88f0e1bbcb792316617864d0f4d07d89143a96f3824bd4806fc8cde3c2dcb1d4094 diff --git a/sys-cluster/mpi-benchmarks/files/mpi-benchmarks-2021.3-makefile.patch b/sys-cluster/mpi-benchmarks/files/mpi-benchmarks-2021.3-makefile.patch new file mode 100644 index 000000000..2ba8660e1 --- /dev/null +++ b/sys-cluster/mpi-benchmarks/files/mpi-benchmarks-2021.3-makefile.patch @@ -0,0 +1,142 @@ +--- a/src_c/Makefile ++++ b/src_c/Makefile +@@ -106,10 +106,10 @@ + -mkdir -p $@ + + $(BINARY): $(OBJ) +- $(CC) $(LDFLAGS) $^ -o $@ ++ $(CC) $(CFLAGS) -fPIE $(LDFLAGS) $^ -o $@ + + $(BUILDDIR)/%.o: %.c +- $(CC) $(CFLAGS) -D$(TARGET) -DIMB2018 -c $< -o $@ ++ $(CC) $(CFLAGS) -fPIC -D$(TARGET) -DIMB2018 -c $< -o $@ + + clean: + rm -rf $(BUILDDIR) $(OBJ) $(BINARY) +--- a/src_c/P2P/Makefile ++++ b/src_c/P2P/Makefile +@@ -50,11 +50,11 @@ + 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) +-CC=mpiicc ++CC=mpicc + endif + + all: $(BINARY) +@@ -72,10 +72,10 @@ + IMB_OBJ = $(IMB_SRC:.c=.o) + + $(BINARY): $(IMB_OBJ) +- $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) ++ $(CC) $(CFLAGS) -fPIE -o $@ $^ $(LDFLAGS) + + %.o: %.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS) -fPIC -c -o $@ $< + + clean: + rm -f $(IMB_OBJ) $(BINARY) +--- a/src_cpp/Makefile ++++ b/src_cpp/Makefile +@@ -49,11 +49,7 @@ + + all: announce + +-ifdef WITH_YAML_CPP +-all: libyaml-cpp.a +-else + all: +-endif + + ifndef TARGET + TARGET=example +@@ -71,14 +67,14 @@ + endif + + ifeq ($(origin CC),default) +-CC=mpiicc ++CC ?= mpicc + endif + ifeq ($(origin CXX),default) +-CXX=mpiicpc ++CXX ?= mpicxx + endif + override CPPFLAGS += -I. +-override CFLAGS += -g -O0 -Wall -Wno-long-long +-override CXXFLAGS += -g -O0 -Wall -Wextra -pedantic -Wno-long-long ++override CFLAGS += -g -Wall -Wno-long-long ++override CXXFLAGS += -g -Wall -Wextra -pedantic -Wno-long-long + ifdef WITH_OPENMP + override CFLAGS += -fopenmp + override CXXFLAGS += -fopenmp +@@ -103,7 +99,7 @@ + all: $(BINARY) + + ifdef WITH_YAML_CPP +-override CPPFLAGS += -Iyamlcpp/include -Iyamlcpp/test ++override CPPFLAGS += -I/usr/include/yaml-cpp + YAMLCPP_SRC = yamlcpp/src/aliasmanager.cpp \ + yamlcpp/src/binary.cpp \ + yamlcpp/src/conversion.cpp \ +@@ -140,8 +136,6 @@ + yamlcpp/test/old-api/parsertests.cpp \ + yamlcpp/test/old-api/spectests.cpp + +-YAMLCPP_OBJ = $(YAMLCPP_SRC:.cpp=.o) +-YAMLCPP_TEST_OBJ = $(YAMLCPP_TEST_SRC:.cpp=.o) + endif + + IMB_SRC = imb.cpp args_parser.cpp args_parser_utests.cpp scope.cpp +@@ -160,14 +154,7 @@ + scope.h + + ifdef WITH_YAML_CPP +-libyaml-cpp.a: $(YAMLCPP_OBJ) +- ar qc $@ $^ +- ranlib $@ +- +-yamltest: $(YAMLCPP_TEST_OBJ) libyaml-cpp.a +- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ +- +-YAML_CPP_LIB = libyaml-cpp.a ++YAML_CPP_LIB = -lyaml-cpp + YAML_TEST = yamltest + override CPPFLAGS += -DWITH_YAML_CPP + endif +@@ -176,25 +163,21 @@ + @if test "$(ANNOUNCE)" -eq "1"; then echo "NOTE: Building target: $(TARGET), binary name: $(BINARY)"; fi + @if test "$(ANNOUNCE)" -eq "1"; then echo "NOTE: Use make TARGET=<DIR_NAME> to select a target suite"; fi + +-$(BINARY): $(IMB_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(YAML_CPP_LIB) +- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) ++$(BINARY): $(IMB_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIE -o $@ $^ $(LDFLAGS) $(YAML_CPP_LIB) -lmpi_cxx -lmpi + + %.o: %.cpp +- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c -o $@ $< + + %.o: %.c +- $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ $< + + clean: announce +- rm -f $(IMB_OBJ) $(YAMLCPP_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(BINARY) $(YAML_CPP_LIB) $(YAML_TEST) ++ rm -f $(IMB_OBJ) $(YAMLCPP_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(BINARY) + + + $(BECHMARK_SUITE_OBJ): $(HEADERS) Makefile + $(IMB_OBJ): $(HEADERS) Makefile + +-ifdef WITH_YAML_CPP +-$(YAMLCPP_OBJ): Makefile +-endif +- + .PHONY: announce clean all + diff --git a/sys-cluster/mpi-benchmarks/metadata.xml b/sys-cluster/mpi-benchmarks/metadata.xml new file mode 100644 index 000000000..1cccbcabb --- /dev/null +++ b/sys-cluster/mpi-benchmarks/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>lssndrbarbi...@gmail.com</email> + <name>Alessandro Barbieri</name> + </maintainer> + <longdescription lang="en">Intel(R) MPI Benchmarks provides a set of elementary benchmarks that conform to MPI-1, MPI-2, and MPI-3 standard. You can run all of the supported benchmarks, or a subset specified in the command line using one executable file. Use command-line parameters to specify various settings, such as time measurement, message lengths, and selection of communicators.</longdescription> + <upstream> + <remote-id type="github">intel/mpi-benchmarks</remote-id> + <bugs-to>https://github.com/intel/mpi-benchmarks/issues</bugs-to> + </upstream> +</pkgmetadata> diff --git a/sys-cluster/mpi-benchmarks/mpi-benchmarks-2021.3.ebuild b/sys-cluster/mpi-benchmarks/mpi-benchmarks-2021.3.ebuild new file mode 100644 index 000000000..a2c16064d --- /dev/null +++ b/sys-cluster/mpi-benchmarks/mpi-benchmarks-2021.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 2019-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MYP="IMB-v${PV}" + +DESCRIPTION="Intel MPI Benchmarks" +HOMEPAGE=" + https://www.intel.com/content/www/us/en/developer/articles/technical/intel-mpi-benchmarks.html + https://github.com/intel/mpi-benchmarks +" +SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/${MYP}.tar.gz" +S="${WORKDIR}/${PN}-${MYP}" + +LICENSE="BSD CPL-1.0" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND="virtual/mpi" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}/${P}-makefile.patch" ) + +src_install() { + dodoc ReadMe_IMB.txt README.md + dobin IMB-* +}