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