1 |
commit: bdd19219f3b1afc909f18bdc48c7f948ddb50fbc |
2 |
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> |
3 |
AuthorDate: Sat Aug 28 03:19:30 2021 +0000 |
4 |
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me> |
5 |
CommitDate: Sun Aug 29 00:33:32 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bdd19219 |
7 |
|
8 |
sys-cluster/parsec: initial import |
9 |
|
10 |
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> |
11 |
|
12 |
sys-cluster/parsec/Manifest | 1 + |
13 |
sys-cluster/parsec/metadata.xml | 49 +++++++++++ |
14 |
sys-cluster/parsec/parsec-3.0.2012.ebuild | 130 ++++++++++++++++++++++++++++++ |
15 |
3 files changed, 180 insertions(+) |
16 |
|
17 |
diff --git a/sys-cluster/parsec/Manifest b/sys-cluster/parsec/Manifest |
18 |
new file mode 100644 |
19 |
index 000000000..6f06e9d61 |
20 |
--- /dev/null |
21 |
+++ b/sys-cluster/parsec/Manifest |
22 |
@@ -0,0 +1 @@ |
23 |
+DIST parsec-3.0.2012.tar.bz2 735621 BLAKE2B a17a5d6a6c0c0859a4836bc43603181d5468b8b56ffbd3e8263a9e9fe5224bbbfeda3c11ba2271cf3b7ceb3cf6920ce34d79bda23cdec88e410c5235eb5a28df SHA512 34b322338e41b405e918f6ade308c22f77446668fec1ba0600b03131b9ee4e4108ee921e70c857ea47fae5573d1c921fa12d33ddfccaa7ccdbe480e612e9161d |
24 |
|
25 |
diff --git a/sys-cluster/parsec/metadata.xml b/sys-cluster/parsec/metadata.xml |
26 |
new file mode 100644 |
27 |
index 000000000..79382d06a |
28 |
--- /dev/null |
29 |
+++ b/sys-cluster/parsec/metadata.xml |
30 |
@@ -0,0 +1,49 @@ |
31 |
+<?xml version="1.0" encoding="UTF-8"?> |
32 |
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
33 |
+<pkgmetadata> |
34 |
+ <maintainer type="person"> |
35 |
+ <email>lssndrbarbieri@×××××.com</email> |
36 |
+ <name>Alessandro Barbieri</name> |
37 |
+ </maintainer> |
38 |
+ <upstream> |
39 |
+ <bugs-to>https://bitbucket.org/icldistcomp/parsec/issues</bugs-to> |
40 |
+ <remote-id type="bitbucket">icldistcomp/parsec</remote-id> |
41 |
+ </upstream> |
42 |
+ <longdescription lang="en"> |
43 |
+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. |
44 |
+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. |
45 |
+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. |
46 |
+</longdescription> |
47 |
+ <use> |
48 |
+ <!--<flag name="cuda">Enable GPU support using CUDA kernels</flag>--> |
49 |
+ <flag name="devel-headers">Install additional headers in include/parsec allowing external compilation</flag> |
50 |
+ <flag name="home-config-files">Should the runtime check for the parameter configuration file in the user home (\$HOME/.parsec/mca-params.conf)</flag> |
51 |
+ <!--<flag name="opencl">Enable GPU support using OpenCL kernels</flag>--> |
52 |
+ <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> |
53 |
+ <flag name="parsec-debug-history">Keep a summarized history of critical events in memory that can be dumped in gdb when deadlock occur</flag> |
54 |
+ <flag name="parsec-debug-mem-addr">Enable the memory access checker</flag> |
55 |
+ <flag name="parsec-debug-mem-leak">Enable only the memory leak checker</flag> |
56 |
+ <flag name="parsec-debug-mem-race">Enable the memory thread-race checker</flag> |
57 |
+ <flag name="parsec-debug-noisier">Enable chatterbox-like verbose debugging (may impact performance)</flag> |
58 |
+ <flag name="parsec-debug-paranoid">Enable extra paranoid checks (may impact performance)</flag> |
59 |
+ <flag name="parsec-dist-collectives">Use optimized asynchronous operations where collective communication pattern is detected</flag> |
60 |
+ <flag name="parsec-dist-priorities">Favor the communications that unlock the most prioritary tasks</flag> |
61 |
+ <flag name="parsec-dist-thread">Use an extra thread to progress the data movements</flag> |
62 |
+ <flag name="parsec-prof-active-arena-set">Enable the profiling of active arena set to track memory usage of parsec handles</flag> |
63 |
+ <flag name="parsec-prof-btf">Force PaRSEC Binary Tracing Format to be the profiling system</flag> |
64 |
+ <flag name="parsec-prof-dry-body">Disable calls to the actual bodies, no computation is performed</flag> |
65 |
+ <flag name="parsec-prof-dry-dep">Disable calls to the actual data transport, remote dependencies are notified, but no data movement takes place</flag> |
66 |
+ <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> |
67 |
+ <flag name="parsec-prof-grapher">Enable the generation of the dot graph representation during execution</flag> |
68 |
+ <flag name="parsec-prof-mmap">Use MMAP to create the profile files</flag> |
69 |
+ <flag name="parsec-prof-otf2">Force otf2 to be the profiling system</flag> |
70 |
+ <flag name="parsec-prof-pins">Enable the use of the PaRSEC callback instrumentation system</flag> |
71 |
+ <flag name="parsec-prof-ptg">Generate Profiling traces for the internal_init tasks in the PTG interface</flag> |
72 |
+ <flag name="parsec-prof-rusage">Print the rusage per execution unit for each progress</flag> |
73 |
+ <flag name="parsec-prof-scheduling-events">Enable the tracing of fine-grained scheduling details during execution</flag> |
74 |
+ <!--<flag name="parsec-prof-tau">Experimental usage of TAU profiling framework</flag>--> |
75 |
+ <flag name="parsec-prof-thread">Use a Helper Thread to create the profile files</flag> |
76 |
+ <flag name="sim">Enable the computation of the critical path, through simulation</flag> |
77 |
+ <flag name="tools">Build the helper tools such as the pre-compilers, profiling manipulation and so on</flag> |
78 |
+ </use> |
79 |
+</pkgmetadata> |
80 |
|
81 |
diff --git a/sys-cluster/parsec/parsec-3.0.2012.ebuild b/sys-cluster/parsec/parsec-3.0.2012.ebuild |
82 |
new file mode 100644 |
83 |
index 000000000..e53053f51 |
84 |
--- /dev/null |
85 |
+++ b/sys-cluster/parsec/parsec-3.0.2012.ebuild |
86 |
@@ -0,0 +1,130 @@ |
87 |
+# Copyright 1999-2021 Gentoo Authors |
88 |
+# Distributed under the terms of the GNU General Public License v2 |
89 |
+ |
90 |
+EAPI="7" |
91 |
+ |
92 |
+DOCS_BUILDER="doxygen" |
93 |
+DOCS_DIR="docs/doxygen" |
94 |
+ |
95 |
+inherit cmake fortran-2 docs |
96 |
+ |
97 |
+DESCRIPTION="Parallel Runtime Scheduler and Execution Controller for micro-tasks on distributed heterogeneous systems" |
98 |
+HOMEPAGE="https://bitbucket.org/icldistcomp/parsec" |
99 |
+SRC_URI="https://bitbucket.org/icldistcomp/parsec/get/${P}.tar.bz2" |
100 |
+ |
101 |
+LICENSE="BSD" |
102 |
+SLOT="0" |
103 |
+KEYWORDS="~amd64" |
104 |
+IUSE_PARSEC_DEBUG=" |
105 |
+ parsec-debug-history |
106 |
+ parsec-debug-mem-addr |
107 |
+ parsec-debug-mem-leak |
108 |
+ parsec-debug-mem-race |
109 |
+ parsec-debug-noisier |
110 |
+ parsec-debug-paranoid |
111 |
+" |
112 |
+IUSE_PARSEC_DIST=" |
113 |
+ +parsec-dist-collectives |
114 |
+ +parsec-dist-priorities |
115 |
+ +parsec-dist-thread |
116 |
+" |
117 |
+IUSE_PARSEC_PROF=" |
118 |
+ parsec-prof-active-arena-set |
119 |
+ parsec-prof-btf |
120 |
+ parsec-prof-dry-body |
121 |
+ parsec-prof-dry-dep |
122 |
+ parsec-prof-dry-run |
123 |
+ parsec-prof-grapher |
124 |
+ +parsec-prof-mmap |
125 |
+ parsec-prof-otf2 |
126 |
+ parsec-prof-pins |
127 |
+ parsec-prof-ptg |
128 |
+ parsec-prof-rusage |
129 |
+ parsec-prof-scheduling-events |
130 |
+ +parsec-prof-thread |
131 |
+" |
132 |
+IUSE_EXPAND="PARSEC_DEBUG PARSEC_DIST PARSEC_PROF" |
133 |
+IUSE="${IUSE_PARSEC_DEBUG} ${IUSE_PARSEC_DIST} ${IUSE_PARSEC_PROF} +cxx +devel-headers fortran +home-config-files +mpi +sched-deps-mask sim test +tools" |
134 |
+ |
135 |
+#TODO: gd vite |
136 |
+RDEPEND=" |
137 |
+ dev-util/valgrind |
138 |
+ sys-apps/hwloc |
139 |
+ sys-cluster/temanejo |
140 |
+ mpi? ( virtual/mpi ) |
141 |
+ parsec-prof-otf2? ( sys-cluster/otf2 ) |
142 |
+ parsec-prof-pins? ( dev-libs/papi ) |
143 |
+" |
144 |
+DEPEND="${RDEPEND}" |
145 |
+BDEPEND=" |
146 |
+ sys-devel/bison |
147 |
+ sys-devel/flex |
148 |
+" |
149 |
+ |
150 |
+RESTRICT="!test? ( test )" |
151 |
+REQUIRED_USE=" |
152 |
+ ?? ( mpi sim ) |
153 |
+ ?? ( parsec-debug-mem-addr parsec-debug-mem-leak parsec-debug-mem-race ) |
154 |
+ ?? ( parsec-prof-btf parsec-prof-otf2 ) |
155 |
+" |
156 |
+ |
157 |
+pkg_setup() { |
158 |
+ fortran-2_pkg_setup |
159 |
+} |
160 |
+ |
161 |
+src_configure() { |
162 |
+ local trace="Auto" |
163 |
+ use parsec-prof-btf && trace="PaRSEC Binary Tracing Format" |
164 |
+ use parsec-prof-otf2 && trace="OTF2" |
165 |
+ |
166 |
+ local mycmakeargs=( |
167 |
+ -DBUILD_SHARED_LIBS=ON |
168 |
+ -DPARSEC_GPU_CUDA_ALLOC_PER_TILE=OFF |
169 |
+ -DPARSEC_GPU_WITH_CUDA=OFF |
170 |
+ -DPARSEC_GPU_WITH_OPENCL=OFF |
171 |
+ -DPARSEC_PROF_TAU=OFF |
172 |
+ |
173 |
+ -DBUILD_TOOLS=$(usex tools) |
174 |
+ -DPARSEC_DEBUG_HISTORY=$(usex parsec-debug-history) |
175 |
+ -DPARSEC_DEBUG=$(usex debug) |
176 |
+ -DPARSEC_DEBUG_MEM_ADDR=$(usex parsec-debug-mem-addr) |
177 |
+ -DPARSEC_DEBUG_MEM_LEAK=$(usex parsec-debug-mem-leak) |
178 |
+ -DPARSEC_DEBUG_MEM_RACE=$(usex parsec-debug-mem-race) |
179 |
+ -DPARSEC_DEBUG_NOISIER=$(usex parsec-debug-noisier) |
180 |
+ -DPARSEC_DEBUG_PARANOID=$(usex parsec-debug-paranoid) |
181 |
+ -DPARSEC_DIST_COLLECTIVES=$(usex parsec-dist-collectives) |
182 |
+ -DPARSEC_DIST_PRIORITIES=$(usex parsec-dist-priorities) |
183 |
+ -DPARSEC_DIST_THREAD=$(usex parsec-dist-thread) |
184 |
+ -DPARSEC_DIST_WITH_MPI=$(usex mpi) |
185 |
+ -DPARSEC_SCHED_DEPS_MASK=$(usex sched-deps-mask) |
186 |
+ -DPARSEC_SIM=$(usex sim) |
187 |
+ -DPARSEC_PROF_DRY_BODY=$(usex parser-prof-dry-body) |
188 |
+ -DPARSEC_PROF_DRY_DEP=$(usex parser-prof-dry-dep) |
189 |
+ -DPARSEC_PROF_DRY_RUN=$(usex parser-prof-dry-run) |
190 |
+ -DPARSEC_PROF_GRAPHER=$(usex parser-prof-grapher) |
191 |
+ -DPARSEC_PROF_PINS=$(usex parser-prof-pins) |
192 |
+ -DPARSEC_PROF_RUSAGE_EU=$(usex parser-prof-rusage) |
193 |
+ -DPARSEC_PROF_TRACE=$(usex profile) |
194 |
+ -DPARSEC_PROF_TRACE_ACTIVE_ARENA_SET=$(usex parser-prof-active-arena-set) |
195 |
+ -DPARSEC_PROF_TRACE_PTG_INTERNAL_INIT=$(usex parser-prof-ptg) |
196 |
+ -DPARSEC_PROF_TRACE_SCHEDULING_EVENTS=$(usex parser-prof-scheduling-events) |
197 |
+ -DPARSEC_PROF_TRACE_SYSTEM=${trace} |
198 |
+ -DPARSEC_PROFILING_USE_HELPER_THREAD=$(usex parser-prof-thread) |
199 |
+ -DPARSEC_PROFILING_USE_MMAP=$(usex parser-prof-mmap) |
200 |
+ -DPARSEC_WANT_HOME_CONFIG_FILES=$(usex home-config-files) |
201 |
+ -DPARSEC_WITH_DEVEL_HEADERS=$(usex devel-headers) |
202 |
+ -DSUPPORT_CXX=$(usex cxx) |
203 |
+ -DSUPPORT_FORTRAN=$(usex fortran) |
204 |
+ ) |
205 |
+ cmake_src_configure |
206 |
+} |
207 |
+ |
208 |
+src_compile() { |
209 |
+ cmake_src_compile |
210 |
+ docs_compile |
211 |
+} |
212 |
+ |
213 |
+src_install() { |
214 |
+ cmake_src_install |
215 |
+ einstalldocs |
216 |
+} |