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-*
+}

Reply via email to