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