mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-20 04:23:16 -04:00
sys-cluster/parsec: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
1
sys-cluster/parsec/Manifest
Normal file
1
sys-cluster/parsec/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST parsec-3.0.2012.tar.bz2 735621 BLAKE2B a17a5d6a6c0c0859a4836bc43603181d5468b8b56ffbd3e8263a9e9fe5224bbbfeda3c11ba2271cf3b7ceb3cf6920ce34d79bda23cdec88e410c5235eb5a28df SHA512 34b322338e41b405e918f6ade308c22f77446668fec1ba0600b03131b9ee4e4108ee921e70c857ea47fae5573d1c921fa12d33ddfccaa7ccdbe480e612e9161d
|
||||
49
sys-cluster/parsec/metadata.xml
Normal file
49
sys-cluster/parsec/metadata.xml
Normal file
@@ -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>
|
||||
130
sys-cluster/parsec/parsec-3.0.2012.ebuild
Normal file
130
sys-cluster/parsec/parsec-3.0.2012.ebuild
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user