public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Haelwenn Monnier" <contact@hacktivis.me>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-cluster/parsec/
Date: Sun, 29 Aug 2021 17:05:53 +0000 (UTC)	[thread overview]
Message-ID: <1630197212.bdd19219f3b1afc909f18bdc48c7f948ddb50fbc.lanodan@gentoo> (raw)

commit:     bdd19219f3b1afc909f18bdc48c7f948ddb50fbc
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sat Aug 28 03:19:30 2021 +0000
Commit:     Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Sun Aug 29 00:33:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bdd19219

sys-cluster/parsec: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-cluster/parsec/Manifest               |   1 +
 sys-cluster/parsec/metadata.xml           |  49 +++++++++++
 sys-cluster/parsec/parsec-3.0.2012.ebuild | 130 ++++++++++++++++++++++++++++++
 3 files changed, 180 insertions(+)

diff --git a/sys-cluster/parsec/Manifest b/sys-cluster/parsec/Manifest
new file mode 100644
index 000000000..6f06e9d61
--- /dev/null
+++ b/sys-cluster/parsec/Manifest
@@ -0,0 +1 @@
+DIST parsec-3.0.2012.tar.bz2 735621 BLAKE2B a17a5d6a6c0c0859a4836bc43603181d5468b8b56ffbd3e8263a9e9fe5224bbbfeda3c11ba2271cf3b7ceb3cf6920ce34d79bda23cdec88e410c5235eb5a28df SHA512 34b322338e41b405e918f6ade308c22f77446668fec1ba0600b03131b9ee4e4108ee921e70c857ea47fae5573d1c921fa12d33ddfccaa7ccdbe480e612e9161d

diff --git a/sys-cluster/parsec/metadata.xml b/sys-cluster/parsec/metadata.xml
new file mode 100644
index 000000000..79382d06a
--- /dev/null
+++ b/sys-cluster/parsec/metadata.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>lssndrbarbieri@gmail.com</email>
+    <name>Alessandro Barbieri</name>
+  </maintainer>
+  <upstream>
+    <bugs-to>https://bitbucket.org/icldistcomp/parsec/issues</bugs-to>
+    <remote-id type="bitbucket">icldistcomp/parsec</remote-id>
+  </upstream>
+  <longdescription lang="en">
+PaRSEC is a generic framework for architecture aware scheduling and management of micro-tasks on distributed many-core heterogeneous architectures. Applications we consider can be expressed as a Direct Acyclic Graph of tasks with labeled edges designating data dependencies. PaRSEC assigns computation threads to the cores, overlaps communications and computations and uses a dynamic, fully-distributed scheduler based on architectural features such as NUMA nodes and algorithmic features such as data reuse.
+Several high level languages are proposed to expose the DAG from the applications. You can either build the DAG as you go, by using a mechanism called dynamic task generation (DTG), or use the JDF language to expose a compact problem-size independent format that can be queried on-demand to discover data dependencies in a totally distributed fashion.
+The framework includes libraries, a runtime system, and development tools to help application developers tackle the difficult task of porting their applications to highly heterogeneous and diverse environment.
+</longdescription>
+  <use>
+    <!--<flag name="cuda">Enable GPU support using CUDA kernels</flag>-->
+    <flag name="devel-headers">Install additional headers in include/parsec allowing external compilation</flag>
+    <flag name="home-config-files">Should the runtime check for the parameter configuration file in the user home (\$HOME/.parsec/mca-params.conf)</flag>
+    <!--<flag name="opencl">Enable GPU support using OpenCL kernels</flag>-->
+    <flag name="sched-deps-mask">Use a complete bitmask to track the dependencies, instead of a counter -- increase the debugging features, but limits to a maximum of 30 input dependencies</flag>
+    <flag name="parsec-debug-history">Keep a summarized history of critical events in memory that can be dumped in gdb when deadlock occur</flag>
+    <flag name="parsec-debug-mem-addr">Enable the memory access checker</flag>
+    <flag name="parsec-debug-mem-leak">Enable only the memory leak checker</flag>
+    <flag name="parsec-debug-mem-race">Enable the memory thread-race checker</flag>
+    <flag name="parsec-debug-noisier">Enable chatterbox-like verbose debugging (may impact performance)</flag>
+    <flag name="parsec-debug-paranoid">Enable extra paranoid checks (may impact performance)</flag>
+    <flag name="parsec-dist-collectives">Use optimized asynchronous operations where collective communication pattern is detected</flag>
+    <flag name="parsec-dist-priorities">Favor the communications that unlock the most prioritary tasks</flag>
+    <flag name="parsec-dist-thread">Use an extra thread to progress the data movements</flag>
+    <flag name="parsec-prof-active-arena-set">Enable the profiling of active arena set to track memory usage of parsec handles</flag>
+    <flag name="parsec-prof-btf">Force PaRSEC Binary Tracing Format to be the profiling system</flag>
+    <flag name="parsec-prof-dry-body">Disable calls to the actual bodies, no computation is performed</flag>
+    <flag name="parsec-prof-dry-dep">Disable calls to the actual data transport, remote dependencies are notified, but no data movement takes place</flag>
+    <flag name="parsec-prof-dry-run">Disable calls to the actual bodies and do not move the data between nodes, unfold the dependencies only</flag>
+    <flag name="parsec-prof-grapher">Enable the generation of the dot graph representation during execution</flag>
+    <flag name="parsec-prof-mmap">Use MMAP to create the profile files</flag>
+    <flag name="parsec-prof-otf2">Force otf2 to be the profiling system</flag>
+    <flag name="parsec-prof-pins">Enable the use of the PaRSEC callback instrumentation system</flag>
+    <flag name="parsec-prof-ptg">Generate Profiling traces for the internal_init tasks in the PTG interface</flag>
+    <flag name="parsec-prof-rusage">Print the rusage per execution unit for each progress</flag>
+    <flag name="parsec-prof-scheduling-events">Enable the tracing of fine-grained scheduling details during execution</flag>
+    <!--<flag name="parsec-prof-tau">Experimental usage of TAU profiling framework</flag>-->
+    <flag name="parsec-prof-thread">Use a Helper Thread to create the profile files</flag>
+    <flag name="sim">Enable the computation of the critical path, through simulation</flag>
+    <flag name="tools">Build the helper tools such as the pre-compilers, profiling manipulation and so on</flag>
+  </use>
+</pkgmetadata>

diff --git a/sys-cluster/parsec/parsec-3.0.2012.ebuild b/sys-cluster/parsec/parsec-3.0.2012.ebuild
new file mode 100644
index 000000000..e53053f51
--- /dev/null
+++ b/sys-cluster/parsec/parsec-3.0.2012.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+DOCS_BUILDER="doxygen"
+DOCS_DIR="docs/doxygen"
+
+inherit cmake fortran-2 docs
+
+DESCRIPTION="Parallel Runtime Scheduler and Execution Controller for micro-tasks on distributed heterogeneous systems"
+HOMEPAGE="https://bitbucket.org/icldistcomp/parsec"
+SRC_URI="https://bitbucket.org/icldistcomp/parsec/get/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE_PARSEC_DEBUG="
+	parsec-debug-history
+	parsec-debug-mem-addr
+	parsec-debug-mem-leak
+	parsec-debug-mem-race
+	parsec-debug-noisier
+	parsec-debug-paranoid
+"
+IUSE_PARSEC_DIST="
+	+parsec-dist-collectives
+	+parsec-dist-priorities
+	+parsec-dist-thread
+"
+IUSE_PARSEC_PROF="
+	parsec-prof-active-arena-set
+	parsec-prof-btf
+	parsec-prof-dry-body
+	parsec-prof-dry-dep
+	parsec-prof-dry-run
+	parsec-prof-grapher
+	+parsec-prof-mmap
+	parsec-prof-otf2
+	parsec-prof-pins
+	parsec-prof-ptg
+	parsec-prof-rusage
+	parsec-prof-scheduling-events
+	+parsec-prof-thread
+"
+IUSE_EXPAND="PARSEC_DEBUG PARSEC_DIST PARSEC_PROF"
+IUSE="${IUSE_PARSEC_DEBUG} ${IUSE_PARSEC_DIST} ${IUSE_PARSEC_PROF} +cxx +devel-headers fortran +home-config-files +mpi +sched-deps-mask sim test +tools"
+
+#TODO: gd vite
+RDEPEND="
+	dev-util/valgrind
+	sys-apps/hwloc
+	sys-cluster/temanejo
+	mpi? ( virtual/mpi )
+	parsec-prof-otf2? ( sys-cluster/otf2 )
+	parsec-prof-pins? ( dev-libs/papi )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	sys-devel/bison
+	sys-devel/flex
+"
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+	?? ( mpi sim )
+	?? ( parsec-debug-mem-addr parsec-debug-mem-leak parsec-debug-mem-race )
+	?? ( parsec-prof-btf parsec-prof-otf2 )
+"
+
+pkg_setup() {
+	fortran-2_pkg_setup
+}
+
+src_configure() {
+	local trace="Auto"
+	use parsec-prof-btf && trace="PaRSEC Binary Tracing Format"
+	use parsec-prof-otf2 && trace="OTF2"
+
+	local mycmakeargs=(
+		-DBUILD_SHARED_LIBS=ON
+		-DPARSEC_GPU_CUDA_ALLOC_PER_TILE=OFF
+		-DPARSEC_GPU_WITH_CUDA=OFF
+		-DPARSEC_GPU_WITH_OPENCL=OFF
+		-DPARSEC_PROF_TAU=OFF
+
+		-DBUILD_TOOLS=$(usex tools)
+		-DPARSEC_DEBUG_HISTORY=$(usex parsec-debug-history)
+		-DPARSEC_DEBUG=$(usex debug)
+		-DPARSEC_DEBUG_MEM_ADDR=$(usex parsec-debug-mem-addr)
+		-DPARSEC_DEBUG_MEM_LEAK=$(usex parsec-debug-mem-leak)
+		-DPARSEC_DEBUG_MEM_RACE=$(usex parsec-debug-mem-race)
+		-DPARSEC_DEBUG_NOISIER=$(usex parsec-debug-noisier)
+		-DPARSEC_DEBUG_PARANOID=$(usex parsec-debug-paranoid)
+		-DPARSEC_DIST_COLLECTIVES=$(usex parsec-dist-collectives)
+		-DPARSEC_DIST_PRIORITIES=$(usex parsec-dist-priorities)
+		-DPARSEC_DIST_THREAD=$(usex parsec-dist-thread)
+		-DPARSEC_DIST_WITH_MPI=$(usex mpi)
+		-DPARSEC_SCHED_DEPS_MASK=$(usex sched-deps-mask)
+		-DPARSEC_SIM=$(usex sim)
+		-DPARSEC_PROF_DRY_BODY=$(usex parser-prof-dry-body)
+		-DPARSEC_PROF_DRY_DEP=$(usex parser-prof-dry-dep)
+		-DPARSEC_PROF_DRY_RUN=$(usex parser-prof-dry-run)
+		-DPARSEC_PROF_GRAPHER=$(usex parser-prof-grapher)
+		-DPARSEC_PROF_PINS=$(usex parser-prof-pins)
+		-DPARSEC_PROF_RUSAGE_EU=$(usex parser-prof-rusage)
+		-DPARSEC_PROF_TRACE=$(usex profile)
+		-DPARSEC_PROF_TRACE_ACTIVE_ARENA_SET=$(usex parser-prof-active-arena-set)
+		-DPARSEC_PROF_TRACE_PTG_INTERNAL_INIT=$(usex parser-prof-ptg)
+		-DPARSEC_PROF_TRACE_SCHEDULING_EVENTS=$(usex parser-prof-scheduling-events)
+		-DPARSEC_PROF_TRACE_SYSTEM=${trace}
+		-DPARSEC_PROFILING_USE_HELPER_THREAD=$(usex parser-prof-thread)
+		-DPARSEC_PROFILING_USE_MMAP=$(usex parser-prof-mmap)
+		-DPARSEC_WANT_HOME_CONFIG_FILES=$(usex home-config-files)
+		-DPARSEC_WITH_DEVEL_HEADERS=$(usex devel-headers)
+		-DSUPPORT_CXX=$(usex cxx)
+		-DSUPPORT_FORTRAN=$(usex fortran)
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	docs_compile
+}
+
+src_install() {
+	cmake_src_install
+	einstalldocs
+}


             reply	other threads:[~2021-08-29 17:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-29 17:05 Haelwenn Monnier [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-08-29 17:05 [gentoo-commits] repo/proj/guru:master commit in: sys-cluster/parsec/ Haelwenn Monnier
2021-11-03 11:12 Andrew Ammerlaan
2021-11-03 11:22 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2021-11-03 11:22 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2022-05-05  4:07 Haelwenn Monnier
2022-06-14 18:35 Haelwenn Monnier
2022-06-14 18:35 Haelwenn Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1630197212.bdd19219f3b1afc909f18bdc48c7f948ddb50fbc.lanodan@gentoo \
    --to=contact@hacktivis.me \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox