<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
  <maintainer type="person">
    <email>lssndrbarbieri@gmail.com</email>
    <name>Alessandro Barbieri</name>
  </maintainer>
  <upstream>
    <bugs-to>https://github.com/ICLDisco/parsec/issues</bugs-to>
    <remote-id type="bitbucket">icldistcomp/parsec</remote-id>
    <remote-id type="github">ICLDisco/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="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>
