From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8BD0415801A for ; Sun, 29 Aug 2021 17:06:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 46A0AE090F; Sun, 29 Aug 2021 17:06:01 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1E7FAE090F for ; Sun, 29 Aug 2021 17:06:01 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 86D9C335D3C for ; Sun, 29 Aug 2021 17:05:57 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C3D9BA2 for ; Sun, 29 Aug 2021 17:05:53 +0000 (UTC) From: "Haelwenn Monnier" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Haelwenn Monnier" Message-ID: <1630197212.bdd19219f3b1afc909f18bdc48c7f948ddb50fbc.lanodan@gentoo> Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-cluster/parsec/ X-VCS-Repository: repo/proj/guru X-VCS-Files: sys-cluster/parsec/Manifest sys-cluster/parsec/metadata.xml sys-cluster/parsec/parsec-3.0.2012.ebuild X-VCS-Directories: sys-cluster/parsec/ X-VCS-Committer: lanodan X-VCS-Committer-Name: Haelwenn Monnier X-VCS-Revision: bdd19219f3b1afc909f18bdc48c7f948ddb50fbc X-VCS-Branch: master Date: Sun, 29 Aug 2021 17:05:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 49e57db0-5e3b-4c2e-8e85-1908767d40da X-Archives-Hash: 408862ec46a426c833895f5e3a97879d commit: bdd19219f3b1afc909f18bdc48c7f948ddb50fbc Author: Alessandro Barbieri gmail com> AuthorDate: Sat Aug 28 03:19:30 2021 +0000 Commit: Haelwenn Monnier hacktivis 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 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 @@ + + + + + lssndrbarbieri@gmail.com + Alessandro Barbieri + + + https://bitbucket.org/icldistcomp/parsec/issues + icldistcomp/parsec + + +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. + + + + Install additional headers in include/parsec allowing external compilation + Should the runtime check for the parameter configuration file in the user home (\$HOME/.parsec/mca-params.conf) + + 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 + Keep a summarized history of critical events in memory that can be dumped in gdb when deadlock occur + Enable the memory access checker + Enable only the memory leak checker + Enable the memory thread-race checker + Enable chatterbox-like verbose debugging (may impact performance) + Enable extra paranoid checks (may impact performance) + Use optimized asynchronous operations where collective communication pattern is detected + Favor the communications that unlock the most prioritary tasks + Use an extra thread to progress the data movements + Enable the profiling of active arena set to track memory usage of parsec handles + Force PaRSEC Binary Tracing Format to be the profiling system + Disable calls to the actual bodies, no computation is performed + Disable calls to the actual data transport, remote dependencies are notified, but no data movement takes place + Disable calls to the actual bodies and do not move the data between nodes, unfold the dependencies only + Enable the generation of the dot graph representation during execution + Use MMAP to create the profile files + Force otf2 to be the profiling system + Enable the use of the PaRSEC callback instrumentation system + Generate Profiling traces for the internal_init tasks in the PTG interface + Print the rusage per execution unit for each progress + Enable the tracing of fine-grained scheduling details during execution + + Use a Helper Thread to create the profile files + Enable the computation of the critical path, through simulation + Build the helper tools such as the pre-compilers, profiling manipulation and so on + + 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 +}