Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Antoniu Pop

dblp:65/8110 · DBLP profile ↗
← Back
19ranked-venue papers
2as first author
1since 2021 · last 2024
0000-0002-7715-4281ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 14 · 2 first-authorSoftware engineering, systems software and programming languages · 3 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Program analysis · 41% Software maintenance and evolution · 21% Runtime systems and virtual machines · 18%
Computer architecture, parallel and distributed computing, and storage systems
7 papers
Parallel and multicore computing · 51% Memory systems · 28% Performance modeling and evaluation · 19%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 27 heaviest of 30, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
dynamic analysis
0.812024
LeanBin: Harnessing Lifting and Recompilation to Debloat Binaries · ASE 2024
Program analysis › dynamic analysis › trace analysis
execution trace analysis
0.812024
LeanBin: Harnessing Lifting and Recompilation to Debloat Binaries · ASE 2024
Memory systems › memory management
memory allocation
0.422016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.312018
Type Information Elimination from Objects on Architectures with Tagged Pointers Support · IEEE Trans. Computers 2018
Runtime systems and virtual machines
object representation
0.312018
Type Information Elimination from Objects on Architectures with Tagged Pointers Support · IEEE Trans. Computers 2018
Performance modeling and evaluation › performance monitoring
hardware performance counters
0.312017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Performance modeling and evaluation
profiling
0.312017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing › parallel scheduling
NUMA-aware scheduling
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Memory systems › non-uniform memory access
NUMA data placement
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Parallel and multicore computing › parallel programming runtimes
task-based runtime
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Parallel and multicore computing
task scheduling
0.222014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs · ACM Trans. Archit. Code Optim. 2014
Systems and software security
attack surface reduction
0.212024
LeanBin: Harnessing Lifting and Recompilation to Debloat Binaries · ASE 2024
Compilers and program optimization › loop optimization
loop nest compilation
0.212014
Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing › parallel scheduling
locality-aware scheduling
0.212014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Memory systems
non-uniform memory access
0.212014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing › parallel programming models
task-based programming
0.212014
Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs · ACM Trans. Archit. Code Optim. 2014
Concurrent programming
memory models
0.212013
Correct and efficient work-stealing for weak memory models · PPoPP 2013
Concurrent programming › memory models
weak memory models
0.212013
Correct and efficient work-stealing for weak memory models · PPoPP 2013
Parallel and multicore computing
dataflow computing
0.212013
OpenStream: Expressiveness and data-flow compilation of OpenMP streaming programs · ACM Trans. Archit. Code Optim. 2013
Parallel and multicore computing
parallel programming models
0.212013
OpenStream: Expressiveness and data-flow compilation of OpenMP streaming programs · ACM Trans. Archit. Code Optim. 2013
Parallel and multicore computing › parallel programming models
task parallelism
0.212013
OpenStream: Expressiveness and data-flow compilation of OpenMP streaming programs · ACM Trans. Archit. Code Optim. 2013
Energy-efficient computing › power management › memory power management
DRAM power reduction
0.112018
Type Information Elimination from Objects on Architectures with Tagged Pointers Support · IEEE Trans. Computers 2018
Memory systems
memory hierarchy
0.112018
Type Information Elimination from Objects on Architectures with Tagged Pointers Support · IEEE Trans. Computers 2018
Performance modeling and evaluation
benchmarking
0.112017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing
parallel programming runtimes
0.112014
Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.112014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing › parallel programming models
shared-memory parallelization
0.012013
Correct and efficient work-stealing for weak memory models · PPoPP 2013

Methods — techniques the papers use, named apart from their topics

static analysis · 1.9recompilation · 1.5dynamic analysis · 1.5binary lifting · 1.5dependence analysis · 0.4code generation · 0.4memory barrier optimization · 0.3correctness proof · 0.3statistical distribution comparison · 0.3work stealing · 0.2dataflow analysis · 0.2static memory hierarchy description · 0.2runtime communication analysis · 0.2runtime scheduling · 0.2dataflow compilation · 0.2
YearPublicationVenuePosition
2024 LeanBin: Harnessing Lifting and Recompilation to Debloat Binaries
abstract
To reduce the source of potential exploits, binary debloating or specialization tools are used to remove unnecessary code from binaries. This paper presents a new binary debloating and specialization tool, LeanBin, that harnesses lifting and recompilation, based on observed execution traces. The dynamically recorded execution traces capture the required subset of instructions and control flow of the application binary for a given set of inputs. This initial control flow is subsequently augmented using heuristic-free static analysis to avoid excessively restricting the input space. The further structuring of the control flow and translation of binary instructions into a subset of C enables a lightweight generation of the code that can be recompiled, obtaining LLVM IR and a new debloated binary. Unlike most debloating approaches, LeanBin enables both binary debloating of the application and shared libraries, while reusing the existing compiler infrastructure. Additionally, unlike existing binary lifters, it does not rely on potentially unsound heuristics used by static lifters, nor suffers from long execution times, a limitation of existing dynamic lifters. Instead, LeanBin combines both heuristic-free static and dynamic analysis. The run time of lifting and debloating SPEC CPU2006 INT benchmarks has a geomean of 1.78×, normalized to the native execution, and the debloated binary runs with a geomean overhead of 1.21×. The percentage of gadgets, compared to the original binary, has a geomean between 24.10% and 30.22%, depending on the debloating strategy; and the code size can be as low as 53.59%. For the SQLite use-case, LeanBin debloats a binary including its shared library and generates a debloated binary that runs up to 1.24× faster with 3.65% gadgets.
Igor Wodiany, Antoniu Pop, Mikel Luján
ASE2
2018 Type Information Elimination from Objects on Architectures with Tagged Pointers Support
abstract
Implementations of object-oriented programming languages associate type information with each object to perform various runtime tasks such as dynamic dispatch, type introspection, and reflection. A common means of storing such relation is by inserting a pointer to the associated type information into every object. Such an approach, however, introduces memory and performance overheads when compared with non-object-oriented languages. Recent 64-bit computer architectures have added support for tagged pointers by ignoring a number of bits - tag - of memory addresses during memory access operations and utilize them for other purposes; mainly security. This paper presents the first investigation into how this hardware support can be exploited by a Java Virtual Machine to remove type information from objects. Moreover, we propose novel hardware extensions to the address generation and load-store units to achieve low-overhead type information retrieval and tagged object pointers compression-decompression. The evaluation has been conducted after integrating the Maxine VM and the ZSim microarchitectural simulator. The results, across all the DaCapo benchmark suite, pseudo-SPECjbb2005, SLAMBench and GraphChi-PR executed to completion, show up to 26 and 10 percent geometric mean heap space savings, up to 50 and 12 percent geometric mean dynamic DRAM energy reduction, and up to 49 and 3 percent geometric mean execution time reduction with no significant performance regressions.
Andrey Rodchenko, Christos Kotselidis, Andy Nisbet, Antoniu Pop, Mikel Luján
IEEE Trans. Computers4
2017 Paving the Way Towards a Highly Energy-Efficient and Highly Integrated Compute Node for the Exascale Revolution: The ExaNoDe Approach
abstract
Power consumption and high compute density are the key factors to be considered when building a compute node for the upcoming Exascale revolution. Current architectural design and manufacturing technologies are not able to provide the requested level of density and power efficiency to realise an operational Exascale machine. A disruptive change in the hardware design and integration process is needed in order to cope with the requirements of this forthcoming computing target. This paper presents the ExaNoDe H2020 research project aiming to design a highly energy efficient and highly integrated heterogeneous compute node targeting Exascale level computing, mixing low-power processors, heterogeneous co-processors and using advanced hardware integration technologies with the novel UNIMEM Global Address Space memory system.
Alvise Rigo, Christian Pinto, Kevin Pouget, Daniel Raho, Denis Dutoit, Pierre-Yves Martinez, Chris Doran, Luca Benini, Iakovos Mavroidis, Manolis Marazakis, Valeria Bartsch, Guy Lonsdale, Antoniu Pop, John Goodacre, Annaik Colliot, Paul M. Carpenter, Petar Radojkovic, Dirk Pleiter, Dominique Drouin, Benoît Dupont de Dinechin
DSD13
2017 MaxSim: A simulation platform for managed applications
abstract
Managed applications, written in programming languages such as Java, C# and others, represent a significant share of workloads in the mobile, desktop, and server domains. Microarchitectural timing simulation of such workloads is useful for characterization and performance analysis, of both hardware and software, as well as for research and development of novel hardware extensions. This paper introduces MaxSim, a simulation platform based on the Maxine VM, the ZSim simulator, and the McPAT modeling framework. MaxSim is able to simulate fast and accurately managed workloads running on top of Maxine VM and its capabilities are showcased with novel simulation techniques for: 1) low-intrusive microarchitectural profiling via pointer tagging on the x86-64 platforms, 2) modeling of hardware extensions related, but not limited to, tagged pointers, and 3) modeling of complex software changes via address-space morphing. Low-intrusive microarchitectural profiling is achieved by utilizing tagged pointers to collect type- and allocation-site-related hardware events. Furthermore, MaxSim allows, through a novel technique called address space morphing, the easy modeling of complex object layout transformations. Finally, through the codesigned capabilities of MaxSim, novel hardware extensions can be implemented and evaluated. We showcase MaxSim's capabilities by simulating the whole set of the DaCapo-9.12-bach benchmarks in less than a day while performing an up-to-date microarchitectural power and performance characterization. Furthermore, we demonstrate a hardware/software co-designed optimization that performs dynamic load elimination for array length retrieval achieving up to 14% L1 data cache loads reduction and up to 4% dynamic energy reduction. MaxSim is available at https://github.com/arodchen/MaxSim released as free software.
Andrey Rodchenko, Christos Kotselidis, Andy Nisbet, Antoniu Pop, Mikel Luján
ISPASS4
2017 Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions
abstract
Collecting hardware event counts is essential to understanding program execution behavior. Contemporary systems offer few Performance Monitoring Counters (PMCs), thus only a small fraction of hardware events can be monitored simultaneously. We present new techniques to acquire counts for all available hardware events with high accuracy by multiplexing PMCs across multiple executions of the same program, then carefully reconciling and merging the multiple profiles into a single, coherent profile. We present a new metric for assessing the similarity of statistical distributions of event counts and show that our execution profiling approach performs significantly better than Hardware Event Multiplexing.
Richard Neill, Andi Drebes, Antoniu Pop
ACM Trans. Archit. Code Optim.3
2016 Scalable Task Parallelism for NUMA: A Uniform Abstraction for Coordinated Scheduling and Memory Management
abstract
Dynamic task-parallel programming models are popular on shared-memory systems, promising enhanced scalability, load balancing and locality. Yet these promises are undermined by non-uniform memory access (NUMA). We show that using NUMA-aware task and data placement, it is possible to preserve the uniform abstraction of both computing and memory resources for task-parallel programming models while achieving high data locality. Our data placement scheme guarantees that all accesses to task output data target the local memory of the accessing core. The complementary task placement heuristic improves the locality of task input data on a best effort basis. Our algorithms take advantage of data-flow style task parallelism, where the privatization of task data enhances scalability by eliminating false dependences and enabling fine-grained dynamic control over data placement. The algorithms are fully automatic, application-independent, performance-portable across NUMA machines, and adapt to dynamic changes. Placement decisions use information about inter-task data dependences readily available in the run-time system and placement information from the operating system. We achieve 94% of local memory accesses on a 192-core system with 24 NUMA nodes, up to 5x higher performance than NUMA-aware hierarchical work-stealing, and even 5.6x compared to static interleaved allocation. Finally, we show that state-of-the-art dynamic page migration by the operating system cannot catch up with frequent affinity changes between cores and data and thus fails to accelerate task-parallel applications.
Andi Drebes, Antoniu Pop, Karine Heydemann, Albert Cohen 0001, Nathalie Drach-Temam
PACT2
2016 Interactive visualization of cross-layer performance anomalies in dynamic task-parallel applications and systems
abstract
This paper studies the interactive visualization and post-mortem analysis of execution traces generated by task-parallel programs. We focus on the detection of performance anomalies inaccessible to state-of-the-art performance analysis techniques, including anomalies deriving from the interaction of multiple levels of software abstractions, anomalies associated with the hardware, and anomalies resulting from interferences between optimizations in the application and run-time system. Building on our practical experience with the performance debugging of representative task-parallel applications and run-time systems for dynamic dependent task graphs, we designed a new tool called Aftermath. This tool enables the visualization of intricate anomalies involving multiple layers and components in the system. It also supports filtering, aggregation and joint visualization of key metrics and performance indicators, such as task duration, run-time state, hardware performance counters and data transfers. The tool also relates this information to the machine's topology. While not specifically designed for non-uniform memory access (NUMA) architectures, Aftermath takes advantage of the explicit memory regions and dependence information in dependent task models to precisely capture long-distance and inter-core effects. Aftermath supports traces of up to several gigabytes, with fast and intuitive navigation and the on-line configuration of new derived metrics. As it has proven invaluable to optimize both run-time environments and applications, we illustrate Aftermath on genuine cases encountered in the OpenStream project.
Andi Drebes, Antoniu Pop, Karine Heydemann, Albert Cohen 0001
ISPASS2
2016 NUMA-aware scheduling and memory allocation for data-flow task-parallel applications
abstract
Dynamic task parallelism is a popular programming model on shared-memory systems. Compared to data parallel loop-based concurrency, it promises enhanced scalability, load balancing and locality. These promises, however, are undermined by non-uniform memory access (NUMA) systems. We show that it is possible to preserve the uniform hardware abstraction of contemporary task-parallel programming models, for both computing and memory resources, while achieving near-optimal data locality. Our run-time algorithms for NUMA-aware task and data placement are fully automatic, application-independent, performance-portable across NUMA machines, and adapt to dynamic changes. Placement decisions use information about inter-task data dependences and reuse. This information is readily available in the run-time systems of modern task-parallel programming frameworks, and from the operating system regarding the placement of previously allocated memory. Our algorithms take advantage of data-flow style task parallelism, where the privatization of task data enhances scalability through the elimination of false dependences and enables fine-grained dynamic control over the placement of application data. We demonstrate that the benefits of dynamically managing data placement outweigh the privatization cost, even when comparing with target-specific optimizations through static, NUMA-aware data interleaving. Our implementation and the experimental evaluation on a set of high-performance benchmarks executing on a 192-core system with 24 NUMA nodes show that the fraction of local memory accesses can be increased to more than 99%, resulting in a speedup of up to 5× compared to a NUMA-aware hierarchical work-stealing baseline.
Andi Drebes, Antoniu Pop, Karine Heydemann, Nathalie Drach-Temam, Albert Cohen 0001
PPoPP2
2015 Effective Barrier Synchronization on Intel Xeon Phi Coprocessor
Andrey Rodchenko, Andy Nisbet, Antoniu Pop, Mikel Luján
Euro-Par3
2014 Energy-aware parallelization flow and toolset for C code
abstract
Multicore architectures are increasingly used in embedded systems to achieve higher throughput with lower energy consumption. This trend accentuates the need to convert existing sequential code to effectively exploit the resources of these architectures. We present a parallelization flow and toolset for legacy C code that includes a performance estimation tool, a parallelization tool, and a streaming-oriented parallelization framework. These are part of the work-in-progress EU FP7 PHARAON project that aims to develop a complete set of techniques and tools to guide and assist software development for heterogeneous parallel architectures. We demonstrate the effectiveness of the use of the toolset in an experiment where we measure the parallelization quality and time for inexperienced users, and the parallelization flow and performance results for the parallelization of a practical example of a stereo vision application.
Mihai T. Lazarescu, Albert Cohen 0001, Adrien Guatto, Nhat Minh Lê, Luciano Lavagno, Antoniu Pop, Andrei Sergeevich Terechko, Alexandru Sutii
SCOPES6
2014 Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages
abstract
We present a joint scheduling and memory allocation algorithm for efficient execution of task-parallel programs on non-uniform memory architecture (NUMA) systems. Task and data placement decisions are based on a static description of the memory hierarchy and on runtime information about intertask communication. Existing locality-aware scheduling strategies for fine-grained tasks have strong limitations: they are specific to some class of machines or applications, they do not handle task dependences, they require manual program annotations, or they rely on fragile profiling schemes. By contrast, our solution makes no assumption on the structure of programs or on the layout of data in memory. Experimental results, based on the OpenStream language, show that locality of accesses to main memory of scientific applications can be increased significantly on a 64-core machine, resulting in a speedup of up to 1.63× compared to a state-of-the-art work-stealing scheduler.
Andi Drebes, Karine Heydemann, Nathalie Drach-Temam, Antoniu Pop, Albert Cohen 0001
ACM Trans. Archit. Code Optim.4
2014 Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs
abstract
Task-parallel languages are increasingly popular. Many of them provide expressive mechanisms for intertask synchronization. For example, OpenMP 4.0 will integrate data-driven execution semantics derived from the StarSs research language. Compared to the more restrictive data-parallel and fork-join concurrency models, the advanced features being introduced into task-parallel models in turn enable improved scalability through load balancing, memory latency hiding, mitigation of the pressure on memory bandwidth, and, as a side effect, reduced power consumption. In this article, we develop a systematic approach to compile loop nests into concurrent, dynamically constructed graphs of dependent tasks. We propose a simple and effective heuristic that selects the most profitable parallelization idiom for every dependence type and communication pattern. This heuristic enables the extraction of interband parallelism (cross-barrier parallelism) in a number of numerical computations that range from linear algebra to structured grids and image processing. The proposed static analysis and code generation alleviates the burden of a full-blown dependence resolver to track the readiness of tasks at runtime. We evaluate our approach and algorithms in the PPCG compiler, targeting OpenStream, a representative dataflow task-parallel language with explicit intertask dependences and a lightweight runtime. Experimental results demonstrate the effectiveness of the approach.
Martin Kong, Antoniu Pop, Louis-Noël Pouchet, R. Govindarajan, Albert Cohen 0001, P. Sadayappan
ACM Trans. Archit. Code Optim.2
2013 EU FP7-288307 Pharaon Project: Parallel and Heterogeneous Architecture for Real-Time Applications
abstract
In this article, we present the work-in-progress of the EU FP7 PHARAON project, started in September 2011. The first objective of the project is the development of new techniques and tools capable to assist the designer in the development of parallel embedded systems, from executable specifications to target-specific implementation and debugging on a multicore platform. This tool chain will offer and implement several parallelization strategies, reflecting the functional and non-functional constraints of the system, and driving the designer into incremental parallelization and adaptation steps. The second objective of the project is to develop monitoring and control techniques in the middleware of the system capable to automatically adapt platform services to application requirements and therefore reduce power consumption transparently.
Héctor Posadas, Eugenio Villar, Florian Broekaert, Michel Bourdellès, Albert Cohen 0001, Antoniu Pop, Nhat Minh Lê, Adrien Guatto, Mihai T. Lazarescu, Luciano Lavagno, Andrei Sergeevich Terechko, Miguel Glassée, Daniel Calvo, Eduardo de las Heras
DSD6
2013 The TERAFLUX Project: Exploiting the DataFlow Paradigm in Next Generation Teradevices
abstract
Thanks to the improvements in semiconductor technologies, extreme-scale systems such as teradevices (i.e., composed by 1000 billion of transistors) will enable systems with 1000+ general purpose cores per chip, probably by 2020. Three major challenges have been identified: programmability, manageable architecture design, and reliability. TERAFLUX is a Future and Emerging Technology (FET) large-scale project funded by the European Union, which addresses such challenges at once by leveraging the dataflow principles. This paper describes the project and provides an overview of the research carried out by the TERAFLUX consortium.
Marco Solinas, Rosa M. Badia, François Bodin, Albert Cohen 0001, Paraskevas Evripidou, Paolo Faraboschi, Bernhard Fechner, Guang R. Gao, Arne Garbade, Sylvain Girbal, Daniel Goodman 0001, Behram Khan, Souad Koliai, Feng Li 0016, Mikel Luján, Laurent Morin, Avi Mendelson, Nacho Navarro, Antoniu Pop, Pedro Trancoso, Theo Ungerer, Mateo Valero, Sebastian Weis, Ian Watson, Stéphane Zuckerman, Roberto Giorgi
DSD19
2013 Correct and efficient work-stealing for weak memory models
abstract
Chase and Lev's concurrent deque is a key data structure in shared-memory parallel programming and plays an essential role in work-stealing schedulers. We provide the first correctness proof of an optimized implementation of Chase and Lev's deque on top of the POWER and ARM architectures: these provide very relaxed memory models, which we exploit to improve performance but considerably complicate the reasoning. We also study an optimized x86 and a portable C11 implementation, conducting systematic experiments to evaluate the impact of memory barrier optimizations. Our results demonstrate the benefits of hand tuning the deque code when running on top of relaxed memory models.
Nhat Minh Lê, Antoniu Pop, Albert Cohen 0001, Francesco Zappa Nardelli
PPoPP2
2013 Correct and Efficient Bounded FIFO Queues
abstract
Bounded single-producer single-consumer FIFO queues are one of the simplest concurrent data-structure, and they do not require more than sequential consistency for correct operation. Still, sequential consistency is an unrealistic hypothesis on shared-memory multiprocessors, and enforcing it through memory barriers induces significant performance and energy overhead. This paper revisits the optimization and correctness proof of bounded FIFO queues in the context of weak memory consistency, building upon the recent axiomatic formalization of the C11 memory model. We validate the portability and performance of our proven implementation over 3 processor architectures with diverse hardware memory models, including ARM and PowerPC. Comparison with state-of-the-art implementations demonstrate consistent improvements for a wide range of buffer and batch sizes.
Nhat Minh Lê, Adrien Guatto, Albert Cohen 0001, Antoniu Pop
SBAC-PAD4
2013 OpenStream: Expressiveness and data-flow compilation of OpenMP streaming programs
abstract
We present OpenStream, a data-flow extension of OpenMP to express dynamic dependent tasks. The language supports nested task creation, modular composition, variable and unbounded sets of producers/consumers, and first-class streams. These features, enabled by our original compilation flow, allow translating high-level parallel programming patterns, like dependences arising from StarSs' array regions, or universal low-level primitives like futures. In particular, these dynamic features can be embedded efficiently and naturally into an unmanaged imperative language, avoiding the complexity and overhead of a concurrent garbage collector. We demonstrate the performance advantages of a data-flow execution model compared to more restricted task and barrier models. We also demonstrate the efficiency of our compilation and runtime algorithms for the support of complex dependence patterns arising from StarSs benchmarks.
Antoniu Pop, Albert Cohen 0001
ACM Trans. Archit. Code Optim.1
2011 A stream-computing extension to OpenMP
abstract
This paper introduces an extension to OpenMP3.0 enabling stream programming with minimal, incremental additions that seamlessly integrate into the current specification. The stream programming model decomposes programs into tasks and explicits the flow of data among them, thus exposing data, task and pipeline parallelism. It helps the programmers to express concurrency and data locality properties, avoiding non-portable low-level code and early optimizations. We survey the diverse motivations and constraints converging towards the design of our simple yet powerful language extension, and we present experimental results of a prototype implementation in a public branch of GCC 4.5.
Antoniu Pop, Albert Cohen 0001
HiPEAC1
2010 Erbium: a deterministic, concurrent intermediate representation to map data-flow tasks to scalable, persistent streaming processes
abstract
Tuning applications for multicore systems involve subtle concurrency concepts and target-dependent optimizations. This paper advocates for a streaming execution model, called ER, where persistent processes communicate and synchronize through a multi-consumer processing applications, we demonstrate the scalability and efficiency advantages of streaming compared to data-driven scheduling. To exploit these benefits in compilers for parallel languages, we propose an intermediate representation enabling the compilation of data-flow tasks into streaming processes. This intermediate representation also facilitates the application of classical compiler optimizations to concurrent programs.
Cupertino Miranda, Antoniu Pop, Philippe Dumont, Albert Cohen 0001, Marc Duranton
CASES2