EDBT 2026 Demo / reviewers in the wild / expert
Rafael Asenjo
dblp:81/5199 · also Rafael Asenjo Plaza
· DBLP profile ↗
41ranked-venue papers
2as first author
6since 2021 · last 2025
0000-0002-1570-3863ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 38 · 2 first-author · 6 since 2021Theory of computation · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Leveraging SYCL for Heterogeneous cDTW Computation on CPU, GPU, and FPGAabstractABSTRACT One of the most time‐consuming kernels of a recent epileptic seizure detection application is the computation of the constrained Dynamic Time Warping (cDTW) Distance Matrix. In this paper, we explore the design space of heterogeneous CPU, GPU, and FPGA implementations of this kernel using SYCL as a programming model. First, we optimize the CPU implementation leveraging the SIMD capability of SYCL and compare it with the latest C++26 SIMD library. Next, we tune the SYCL code to run on an on‐chip GPU, iGPU, as well as on a discrete NVIDIA GPU, dGPU. We also develop a SYCL implementation on an Intel FPGA. On top of that, we exploit simultaneous co‐processing on CPU+GPU and CPU+FPGA platforms by extending a previous heterogeneous scheduling framework to now support 2D partitioning strategies. Our evaluations demonstrate that SYCL seems well suited to exploit the SIMD capabilities of modern CPU cores and shows promising results for accelerating devices, both in terms of performance and energy efficiency. Moreover, we find that our scheduler enables the efficient co‐execution of work among the computing devices, and the results demonstrate that dynamic and adaptive partitioning strategies perform efficiently with overheads below 4%. Cristian Campos, Rafael Asenjo, Javier Hormigo, Angeles G. Navarro |
Concurr. Comput. Pract. Exp. | 2 |
| 2025 | Exploring data flow design and vectorization with oneAPI for streaming applications on CPU+GPUabstractAbstract In recent times, oneAPI has emerged as a competitive framework to optimize streaming applications on heterogeneous CPU+GPU architectures, since it provides portability and performance thanks to the SYCL programming language and efficient parallel libraries as oneTBB. However, this approach opens up a wealth of implementations alternatives in this type of applications: from how to design the data flow to how to exploit data parallelism. Choosing the best alternative is not trivial, so in this paper we analyze them and contribute with an analytical model based on queue theory that helps in the on-line selection of the alternative that maximizes the throughput and the occupancy of the CPU and GPU compute units. We explore the design space offered by: a) different APIs to define the data flow ( and Flow Graph from oneTBB, and SYCL from SYCL); b) alternative kernel implementations to express data parallelism (SYCL, AVX and ); and c) the mapping of the kernels into the available computing resources (CPU cores and GPU). The results show that the library can be 1.54x faster, 3% more energy efficient, and requires 7.36x less programming effort than AVX, and that implementations that enable asynchronous offloading of tasks to the devices as those based on SYCL and Flow Graph APIs outperform the other APIs, being up to 1.10x faster and up to 1.18x more energy efficient. Cristian Campos, Rafael Asenjo, Angeles G. Navarro |
J. Supercomput. | 2 |
| 2023 | SkyFlow: Heterogeneous streaming for skyline computation using FlowGraph and SYCLabstractThe skyline is an optimization operator widely used for multi-criteria decision making. It allows minimizing an n-dimensional dataset into its smallest subset. In this work we present SkyFlow, the first heterogeneous CPU+GPU graph-based engine for skyline computation on a stream of data queries. Two data flow approaches, Coarse-grained and Fine-grained, have been proposed for different streaming scenarios. Coarse-grained aims to keep in parallel the computation of two queries using a hybrid solution with two state-of-the-art skyline algorithms: one optimized for CPU and another for GPU. We also propose a model to estimate at runtime the computation time of any arriving data query. This estimation is used by a heuristic to schedule the data query on the device queue in which it will finish earlier. On the other hand, Fine-grained splits one query computation between CPU and GPU. An experimental evaluation using as target architecture a heterogeneous system comprised of a multicore CPU and an integrated GPU for different streaming scenarios and datasets, reveals that our heterogeneous CPU+GPU approaches always outperform previous only-CPU and only-GPU state-of-the-art implementations up to 6.86×and 5.19×, respectively, and they fall below 6% of ideal peak performance at most. We also evaluate Coarse-grained vs Fine-Grained finding that each approach is better suited to different streaming scenarios. Jose Carlos Romero, Angeles G. Navarro, Andrés Rodríguez Moreno, Rafael Asenjo |
Future Gener. Comput. Syst. | 4 |
| 2022 | Lightweight asynchronous scheduling in heterogeneous reconfigurable systemsabstractThe trend for heterogeneous embedded systems is the integration of accelerators and general-purpose CPU cores on the same die. In these integrated architectures, like the Zynq UltraScale+ board (CPU+FPGA) that we target in this work, hardware support for shared memory and low-overhead synchronization between the accelerator and the CPU cores make the case for exploring strategies that exploit a tight collaboration between the CPUs and the accelerator. In this paper we propose a novel lightweight scheduling strategy, FastFit, targeted to FPGA accelerators, and a new scheduler based on it, named MultiFastFit, which asynchronously tackles heterogeneous systems comprised of a variety of CPU cores and FPGA IPs. Our strategy significantly reduces the overhead to automatically compute the near-optimal chunksizes when compared to a previous state-of-the-art auto-tuned approach, which makes our approach more suitable for fine-grained applications. Additionally, our scheduler MultiFastFit has been designed to enable the efficient co-execution of work among compute devices in such a way that all the devices are busy while minimizing the load unbalance. Our approaches have been evaluated using four benchmarks carefully tuned for the low-power UltraScale+ platform. Our experiments demonstrate that the FastFit strategy always finds the near-optimal FPGA chunksize for any device configuration at a reasonable cost, even for fine-grained and irregular applications, and that heterogeneous CPU+FPGA co-executions that exploit all the compute devices are usually faster and more energy efficient than the CPU-only and FPGA-only executions. We have also compared MultiFastFit with other state-of-the-art scheduling strategies, finding that it outperforms other auto-tuned approach up to 2x and it achieves similar results to manually-tuned schedulers without requiring an offline search of the ideal CPU-FPGA partition or FPGA chunk granularity. Andrés Rodríguez Moreno, Angeles G. Navarro, Kris Nikov, José L. Núñez-Yáñez, Ruben Gran Tejero, Darío Suárez Gracia, Rafael Asenjo |
J. Syst. Archit. | 7 |
| 2021 | Efficient heterogeneous matrix profile on a CPU + High Performance FPGA with integrated HBMabstractIn this work, we study the problem of efficiently executing a state-of-the-art time series algorithm class – SCAMP – on a heterogeneous platform comprised of CPU + High Performance FPGA with integrated HBM (High Bandwidth Memory). The geometry of the algorithm (a triangular matrix walk) and the FPGA capabilities pose two challenges. First, several replicated IPs can be instantiated in the FPGA fabric, so load balance is an issue not only at system-level (CPU+FPGA), but also at device-level (FPGA IPs). And second, the data that each one of these IPs accesses must be carefully placed among the HBM banks in order to efficiently exploit the memory bandwidth offered by the banks while optimizing power consumption. To tackle the first challenge we propose a novel hierarchical scheduler named Fastfit, to efficiently balance the workload in the heterogeneous system while ensuring near-optimal throughput. Our scheduler consists of a two level scheduling engine: (1) the system-level scheduler, which leverages an analytical model of the FPGA pipeline IPs, to find the near-optimal FPGA chunk size that guarantees optimal FPGA throughput; and (2) a geometry-aware device-level scheduler, which is responsible for the effective partitioning of the FPGA chunk into sub-chunks assigned to each FPGA IP. To deal with the second challenge we propose a methodology based on a model of the HBM bandwidth usage that allows us to set the minimum number of active banks that ensure the maximum aggregated memory bandwidth for a given number of IPs. Through exhaustive evaluation we validate the accuracy of our models, the efficiency of our intra-device partition strategies and the performance and energy efficiency of our Fastfit heterogeneous scheduler, finding that it outperforms state-of-the-art previous schedulers by achieving up to 99.4% of ideal performance. Jose Carlos Romero, Angeles G. Navarro, Antonio Vilches, Andrés Rodríguez Moreno, Francisco Corbera, Rafael Asenjo |
Future Gener. Comput. Syst. | 6 |
| 2021 | Efficiency and productivity for decision making on low-power heterogeneous CPU+GPU SoCs
Denisa-Andreea Constantinescu, Angeles G. Navarro, Francisco Corbera, Juan-Antonio Fernández-Madrigal, Rafael Asenjo |
J. Supercomput. | 5 |
| 2020 | Performance evaluation of decision making under uncertainty for low power heterogeneous platforms
Denisa-Andreea Constantinescu, Angeles G. Navarro, Juan-Antonio Fernández-Madrigal, Rafael Asenjo |
J. Parallel Distributed Comput. | 4 |
| 2020 | Parallel multiprocessing and scheduling on the heterogeneous Xeon+FPGA platform
Andrés Rodríguez Moreno, Angeles G. Navarro, Rafael Asenjo, Francisco Corbera, Ruben Gran Tejero, Darío Suárez Gracia, José L. Núñez-Yáñez |
J. Supercomput. | 3 |
| 2020 | ScrimpCo: scalable matrix profile on commodity heterogeneous processors
Jose Carlos Romero, Antonio Vilches, Andrés Rodríguez Moreno, Angeles G. Navarro, Rafael Asenjo |
J. Supercomput. | 5 |
| 2019 | Exploring heterogeneous scheduling for edge computing with CPU and FPGA MPSoCs
Andrés Rodríguez Moreno, Angeles G. Navarro, Rafael Asenjo, Francisco Corbera, Ruben Gran Tejero, Darío Suárez Gracia, José L. Núñez-Yáñez |
J. Syst. Archit. | 3 |
| 2019 | Simultaneous multiprocessing in a software-defined heterogeneous FPGAabstractHeterogeneous chips that combine CPUs and FPGAs can distribute processing so that the algorithm tasks are mapped onto the most suitable processing element. New software-defined high-level design environments for these chips use general purpose languages such as C++ and OpenCL for hardware and interface generation without the need for register transfer language expertise. These advances in hardware compilers have resulted in significant increases in FPGA design productivity. In this paper, we investigate how to enhance an existing software-defined framework to reduce overheads and enable the utilization of all the available CPU cores in parallel with the FPGA hardware accelerators. Instead of selecting the best processing element for a task and simply offloading onto it, we introduce two schedulers, Dynamic and LogFit, which distribute the tasks among all the resources in an optimal manner. A new platform is created based on interrupts that removes spin-locks and allows the processing cores to sleep when not performing useful work. For a compute-intensive application, we obtained up to 45.56% more throughput and 17.89% less energy consumption when all devices of a Zynq-7000 SoC collaborate in the computation compared against FPGA-only execution. José L. Núñez-Yáñez, Sam Amiri, Mohammad Hosseinabady, Andrés Rodríguez Moreno, Rafael Asenjo, Angeles G. Navarro, Darío Suárez Gracia, Ruben Gran Tejero |
J. Supercomput. | 5 |
| 2019 | Correction to: Simultaneous multiprocessing in a software-defined heterogeneous FPGAabstractThe presentation of Table 2 was incorrect in the original article. The correct Table 2 is given below. The original article has been corr José L. Núñez-Yáñez, Sam Amiri, Mohammad Hosseinabady, Andrés Rodríguez Moreno, Rafael Asenjo, Angeles G. Navarro, Darío Suárez Gracia, Ruben Gran Tejero |
J. Supercomput. | 5 |
| 2019 | Toward a software transactional memory for heterogeneous CPU-GPU processors
Alejandro Villegas, Angeles G. Navarro, Rafael Asenjo, Oscar G. Plata |
J. Supercomput. | 3 |
| 2018 | Workload Partitioning Strategy for Improved Parallelism on FPGA-CPU Heterogeneous ChipsabstractIn heterogeneous computing, efficient parallelism can be obtained if every device runs the same task on a different portion of the data set. This requires designing a scheduler which assigns data chunks to compute units proportional to their throughputs. For FPGA-CPU heterogeneous devices, to provide the best possible overall throughput, a scheduler should accurately evaluate the different performance behaviour of the compute devices. In this article, we propose a scheduler which initially detects the highest throughput each device can obtain for a specific application with negligible overhead and then partitions the dataset for improved performance. To demonstrate the efficiency of this method, we choose a Zynq UltraScale+ ZCU102 device as the hardware target and parallelise four applications showing that the developed scheduler can provide up to 94.06% of the throughput achievable at an ideal condition, with comparable power and energy consumption. Sam Amiri, Mohammad Hosseinabady, Andrés Rodríguez Moreno, Rafael Asenjo, Angeles G. Navarro, José L. Núñez-Yáñez |
FPL | 4 |
| 2018 | Parallel algorithms for computing the smallest binary tree size in unit simplex refinement
Guillermo Aparicio, Jose M. G. Salmerón, Leocadio G. Casado, Rafael Asenjo, Eligius M. T. Hendrix |
J. Parallel Distributed Comput. | 4 |
| 2018 | Exploiting social network graph characteristics for efficient BFS on heterogeneous chips
Luis Remis, María Jesús Garzarán, Rafael Asenjo, Angeles G. Navarro |
J. Parallel Distributed Comput. | 3 |
| 2018 | Lightweight Hardware Transactional Memory for GPU Scratchpad MemoryabstractGraphics Processing Units (GPUs) have become the accelerator of choice for data-parallel applications, enabling the execution of thousands of threads in a Single Instruction - Multiple Thread (SIMT) fashion. Using OpenCL terminology, GPUs offer a global memory space shared by all the threads in the GPU, as well as a local memory space shared by only a subset of the threads. Programmers can use local memory as a scratchpad to improve the performance of their applications due to its lower latency as compared to global memory. In the SIMT execution model, data locking mechanisms used to protect shared data limit scalability. To take full advantage of the lower latency that local memory affords, and to provide an efficient synchronization mechanism, we propose GPU-LocalTM as a lightweight and efficient transactional memory (TM) for GPU local memory. To minimize the storage resources required for TM support, GPU-LocalTM allocates transactional metadata in the existing memory resources. Additionally, GPU-LocalTM implements different conflict detection mechanisms that can be used to match the characteristics of the application. For the workloads studied in our simulation-based evaluation, GPU-LocalTM provides from 1.1X up to 100X speedup over serialized critical sections. Alejandro Villegas, Rafael Asenjo, Angeles G. Navarro, Oscar G. Plata, David R. Kaeli |
IEEE Trans. Computers | 2 |
| 2017 | Hardware Support for Scratchpad Memory Transactions on GPU Architectures
Alejandro Villegas, Rafael Asenjo, Angeles G. Navarro, Oscar G. Plata, Rafael Ubal, David R. Kaeli |
Euro-Par | 2 |
| 2017 | On parallel Branch and Bound frameworks for Global OptimizationabstractBranch and Bound (B&B) algorithms are known to exhibit an irregularity of the search tree. Therefore, developing a parallel approach for this kind of algorithms is a challenge. The efficiency of a B&B algorithm depends on the chosen Branching, Bounding, Selection, Rejection, and Termination rules. The question we investigate is how the chosen platform consisting of programming language, used libraries, or skeletons influences programming effort and algorithm performance. Selection rule and data management structures are usually hidden to programmers for frameworks with a high level of abstraction, as well as the load balancing strategy, when the algorithm is run in parallel. We investigate the question by implementing a multidimensional Global Optimization B&B algorithm with the help of three frameworks with a different level of abstraction (from more to less): Bobpp, Threading Building Blocks (TBB), and a customized Pthread implementation. The following has been found. The Bobpp implementation is easy to code, but exhibits the poorest scalability. On the contrast, the TBB and Pthread implementations scale almost linearly on the used platform. The TBB approach shows a slightly better productivity. Juan F. R. Herrera, Jose M. G. Salmerón, Eligius M. T. Hendrix, Rafael Asenjo, Leocadio G. Casado |
J. Glob. Optim. | 4 |
| 2016 | Breadth-First Search on Heterogeneous Platforms: A Case of Study on Social NetworksabstractBreadth-First Search (BFS) is the core of many graph analysis algorithms and it is used in many problems, such as social network, computer network analysis, and data organization. BFS is an iterative algorithm that due to its irregular behavior is quite challenging to parallelize. Several approaches implement efficient algorithms for BFS for multicore architectures and for Graphics Processors, but it is still an open problem how to distribute the work among the main cores and the accelerators. In this paper, we assess several approaches to perform BFS on different heterogenous architectures (highend and embedded mobile processors composed of a multi-core CPU and an integrated GPU) with a focus on social network graphs. In particular, we propose two heterogenous approaches to exploit both devices. The first one, called Selective, selects on which device to execute each iteration. It is based on a previous approach, but we have adapted it to take advantage of the features of social network graphs (fewer iterations but more unbalanced). The second approach, referred as Concurrent, allows the execution of specific iterations concurrently in both devices. Our heterogenous implementations can be up to 1.56x faster and 1.32x more energy efficient with respect to the best of only-CPU or only-GPU baselines. We have also found that for a highly memory bound problem like BFS, the CPU-GPU collaborative execution is limited by the shared-memory bus bandwidth. Luis Remis, María Jesús Garzarán, Rafael Asenjo, Angeles G. Navarro |
SBAC-PAD | 3 |
| 2016 | Mapping Streaming Applications on Commodity Multi-CPU and GPU On-Chip ProcessorsabstractIn this paper, we consider the problem of efficiently executing streaming applications on commodity processors composed of several cores and an on-chip GPU. Streaming applications, such as those in vision and video analytic, consist of a pipeline of stages and are good candidates to take advantage of this type of platforms. We also consider that characteristics of the input may change while the application is running. Therefore, we propose a framework that adaptively finds the optimal mapping of the pipeline stages. The core of the framework is an analytical model coupled with information collected at runtime used to dynamically map each pipeline stage to the most efficient device, taking into consideration both performance and energy. Our experimental results show that for the evaluated applications running on two different architectures, our model always predicts the best configuration among the evaluated alternatives, and significantly reduces the amount of information that needs to be collected at runtime. This best configuration has, on the average, 20 percent higher throughput than the configuration recommended by a baseline state of the art approach, while the ratio throughput/energy is 43 percent higher. We have measured improvements in throughput and throughput/energy of up-to 81 and 204 percent, respectively, when the model is used to adapt to a video that changes from low to high definition. Antonio Vilches, Angeles G. Navarro, Rafael Asenjo, Francisco Corbera, Ruben Gran Tejero, María Jesús Garzarán |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2014 | A case study of different task implementations for multioutput stages in non-trivial parallel pipeline applications
Angeles G. Navarro, Rafael Asenjo, Francisco Corbera, Antonio J. Dios, Emilio L. Zapata |
Parallel Comput. | 2 |
| 2014 | Strategies for maximizing utilization on multi-CPU and multi-GPU heterogeneous architectures
Angeles G. Navarro, Antonio Vilches, Francisco Corbera, Rafael Asenjo |
J. Supercomput. | 4 |
| 2012 | Global Data Re-allocation via Communication Aggregation in ChapelabstractChapel is a parallel programming language designed to improve the productivity and ease of use of conventional and parallel computers. This language currently delivers sub optimal performance when executing codes that perform global data re-allocation operations on distributed memory architectures. This is mainly due to data communication that is done without aggregation (one message for each remote array element). In this work, we analyze Chapel's standard Block and Cyclic distribution modules and optimize the communication routines for array assignments by performing aggregation. Thanks to the expressive power of Chapel, the compiler and runtime have enough information to do communication aggregation without user intervention. The runtime relies on the low-level GAS Net networking layer, whose versions of one-sided bulk put/get routines that support strides are particularly useful for us. Experimental results conducted on Hector (a Cray XE6) and Jaguar (Cray XK6)reveal that the implemented techniques can lead to significant reductions in communication time. Alberto Sanz, Rafael Asenjo, Juan López, Rafael Larrosa, Angeles G. Navarro, Vassily Litvinov, Sung-Eun Choi, Bradford L. Chamberlain |
SBAC-PAD | 2 |
| 2012 | A data dependence test based on the projection of paths over shape graphs
Angeles G. Navarro, Francisco Corbera, Rafael Asenjo, Rosa Castillo, Emilio L. Zapata |
J. Parallel Distributed Comput. | 3 |
| 2011 | High-level template for the task-based parallel wavefront patternabstractGiven the arrival of multicore processors, it has become a matter of urgency to introduce parallel programming into mainstream computing. In emerging applications, a class of computational problem that poses a challenge to the programmers is the wavefront pattern. A particular characteristic of this pattern is multi-dimensional streaming of the computations that must follow a dependence pattern. The modern software stack for multicore systems offers task-based programming libraries like TBB (Threading Building Blocks), that allow an execution model based on lightweight asynchronous tasks. We suggest that TBB provides useful features to improve the scalability of these kinds of codes but at the cost of leaving some low-level task management details to the programmer. In this paper, we discuss such low-level task management issues and incorporate them into a high-level TBB-based template. The goal of the template is to improve the programmer's productivity such that a nonexpert user can easily code complex wavefront problems without having to deal with task creation, synchronization or scheduling mechanisms. With our template, the user only has to specify a definition file with the wavefront dependence pattern and the function that each task has to execute. In addition, we describe our experience with the TBB template when coding four complex real wavefront problems. In these experiments, we found that the template implementations reduced the programming effort from 25% to 50% at a cost of increasing the overhead up to 5% when compared to manual implementations of the same problem. Antonio J. Dios, Rafael Asenjo, Angeles G. Navarro, Francisco Corbera, Emilio L. Zapata |
HiPC | 2 |
| 2010 | Evaluation of the Task Programming Model in the Parallelization of Wavefront ProblemsabstractThis paper analyzes the applicability of the task programming model in the parallelization of generic wave front problems. Computations on this type of problems are characterized by a data dependency pattern across a data space, which can produce a variable number of independent tasks through the traversal of such space. Precisely, we think that it is better to formulate the parallelization of this wave front-based programs in terms of logical tasks, instead of threads for several reasons: more efficient matching of computations to available resources, faster start-up and creation task times, improved load balancing and higher level thinking. To implement the parallel wave front we have used two state-of-the art task libraries: TBB and OpenMP 3.0. In this work, we highlight the differences between both implementations, from a programmer standpoint and from the performance point of view. For it, we conduct several experiments to identify the factors that can limit the performance on each case. Besides, we present in the paper a wave front template based on tasks, template that makes easier the coding of parallel wave front codes. We have validated this template with three real dynamic programming algorithms, finding that the TBB-coded template always outperforms the OpenMP based-one. Antonio J. Dios, Rafael Asenjo, Angeles G. Navarro, Francisco Corbera, Emilio L. Zapata |
HPCC | 2 |
| 2009 | Analytical Modeling of Pipeline ParallelismabstractParallel programming is a requirement in the multi-core era. One of the most promising techniques to make parallel programming available for the general users is the use of parallel programming patterns. Functional pipeline parallelism is a pattern that is well suited for many emerging applications, such as streaming and "recognition, mining and synthesis" (RMS) workloads. In this paper we develop an analytical model for pipeline parallelism based on queueing theory. The model is useful to both characterize the performance and efficiency of existing implementations and to guide the design of new pipeline algorithms. We demonstrate the usefulness of the model by characterizing and optimizing two of the PARSEC benchmarks, ferret and dedup. We identified two issues with these codes: load imbalance and I/O bottlenecks. We addressed load imbalance using two techniques: i) parallel pipeline stage collapsing; and ii) dynamic scheduling. We implemented these optimizations using pthreads and the threading building blocks (TBB) libraries. We compare the performance of different alternatives and we note that the TBB implementation based on work stealing outperforms all other variants. Angeles G. Navarro, Rafael Asenjo, Siham Tabik, Calin Cascaval |
PACT | 2 |
| 2009 | Load balancing using work-stealing for pipeline parallelism in emerging applicationsabstractParallel programming is a requirement in the multi-core era. One of the most promising techniques to make parallel programming available for general users is the use of parallel programming patterns. Functional pipeline parallelism is a well suited pattern for many emerging applications, such as streaming and "Recognition, Mining and Synthesis" (RMS) workloads. In this paper we develop an analytical model for pipeline parallelism and use it to characterize and optimize two of the PARSEC benchmarks which use the parallel pipeline pattern, ferret and dedup. We identify two scalability limitations: load imbalance and I/O bottlenecks. We address load imbalance using two techniques: parallel pipeline stage collapsing and dynamic scheduling. We implemented these optimizations using Pthreads and the Threading Building Blocks (TBB) libraries. We compare predicted and measured performance of all these implementations on a large scale SMP machine and we note that the work-stealing TBB implementation outperforms all other variants. Angeles G. Navarro, Rafael Asenjo, Siham Tabik, Calin Cascaval |
ICS | 2 |
| 2008 | Parallelizing irregular C codes assisted by interprocedural shape analysisabstractIn the new multicore architecture arena, the problem of improving the performance of a code is more in the software side than in the hardware one. However, optimizing irregular dynamic data structure based codes for such architectures is not easy, either by hand or compiler assisted. Regarding this last approach, shape analysis is a static technique that achieves abstraction of dynamic memory and can help to disambiguate, quite accurately, memory references in programs that create and traverse recursive data structures. This kind of analysis has promising applicability for accurate data dependence tests in loops or recursive functions that traverse dynamic data structures. However, support for interprocedural programs in shape analysis is still a challenge, especially in the presence of recursive functions. In this work we present a novel fully context-sensitive interprocedural shape analysis algorithm that supports recursion and can be used to uncover parallelism. Our approach is based on three key ideas: i) intraprocedural support based on "coexistent links sets" to precisely describe the memory configurations during the abstract interpretation of the C code; ii) interprocedural support based on "recursive flow links" to trace the state of pointers in previous calls; and Hi) annotations of the read/written heap locations during the program analysis. We present preliminary experiments that reveal that our technique compares favorably with related work, and obtains precise memory abstractions in a variety of recursive programs that create and manipulate dynamic data structures. We have also implemented a data dependence test over our interprocedural shape analysis. With this test we have obtained promising results, automatically detecting parallelism in three C codes, which have been successfully parallelized. Rafael Asenjo, Rosa Castillo, Francisco Corbera, Angeles G. Navarro, Adrian Tineo, Emilio L. Zapata |
IPDPS | 1 |
| 2007 | Detecting loop-carried dependences in programs with dynamic data structures
Angeles G. Navarro, Francisco Corbera, Adrian Tineo, Rafael Asenjo, Emilio L. Zapata |
J. Parallel Distributed Comput. | 4 |
| 2006 | Towards a Versatile Pointer Analysis Framework
Rosa Castillo, Adrian Tineo, Francisco Corbera, Angeles G. Navarro, Rafael Asenjo, Emilio L. Zapata |
Euro-Par | 5 |
| 2005 | A Novel Approach for Detecting Heap-Based Loop-Carried DependencesabstractThe problem of data dependences in pointer-based codes is crucial to various compiler optimizations. The approach presented in this paper focus on detecting data dependences induced by heap-directed pointers on loops that access dynamic data structures. Knowledge about the shape of the data structure accessible from a heap-directed pointer provides critical information for disambiguating heap accesses originating from it. Our approach is based on a previously developed shape analysis that maintains topological information of the connections among the different nodes (memory locations) in the data structure. As a novelty, our approach carries out abstract interpretation of the statements being analyzed, annotating memory locations with read/write information. This information will be later used in a very accurate dependence test, which we describe in this paper. We also discuss its application to three different programs: the sparse matrix-vector product, mst from Olden and twolf from the SPEC CPU2000 suite. Adrian Tineo, Francisco Corbera, Angeles G. Navarro, Rafael Asenjo, Emilio L. Zapata |
ICPP | 4 |
| 2005 | On the parallelization of irregular and dynamic programs
Oscar G. Plata, Rafael Asenjo, Eladio Gutiérrez, Francisco Corbera, Angeles G. Navarro, Emilio L. Zapata |
Parallel Comput. | 2 |
| 2004 | A Framework to Capture Dynamic Data Structures in Pointer-Based CodesabstractTo successfully exploit all the possibilities of current computer/multicomputer architectures, optimization compiling techniques are a must. However, for codes based on pointers and dynamic data structures, these optimization techniques have to be necessarily carried out after identifying the characteristics and properties of the data structure used in the code. We describe the framework and the analyzer we have implemented to capture complex data structures generated, traversed, and modified in codes based on pointers. Our method assigns a reduced set of reference shape graph (RSRSG) to each statement to approximate the shape of the data structure after the execution of such a statement. With the properties and operations that define the behavior of our RSRSG, the method can accurately detect complex recursive data structures such as a doubly linked list of pointers to trees where the leaves point to additional lists. Several experiments are carried out with real codes to validate the capabilities of our analyzer. Francisco Corbera, Rafael Asenjo, Emilio L. Zapata |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 2001 | Progressive Shape Analysis for Real C CodesabstractDynamic and pointer-based data structures are widely used in symbolic or irregular C codes. However there is still a lack of compiler techniques to deal with the automatic optimization of such codes. In this paper we take a first step towards this final objective: the automatic identification of the data structure used in the code. More precisely, we describe the framework and the compiler we have implemented to capture complex data structures generated, traversed, and modified in C codes. Our method assigns a reduced set of reference shape graphs (RSRSG) to each sentence to approximate the shape of the data structure after the execution of such a sentence. With the properties and operations that define the behavior of our RSRSG, the method can accurately detect complex recursive data structures. The compiler makes a progressive analysis in which the level of detail is increased during the analysis when needed. Several experiments are carried out with complex data structures to validate the capabilities of our compiler. Francisco Corbera, Rafael Asenjo, Emilio L. Zapata |
ICPP | 2 |
| 2000 | Automatic parallelization of irregular applications
Eladio Gutiérrez, Rafael Asenjo, Oscar G. Plata, Emilio L. Zapata |
Parallel Comput. | 2 |
| 1999 | Access Descriptor Based Locality Analysis for Distributed-Shared Memory MultiprocessorsabstractMost of today's multiprocessors have a Distributed-Shared Memory (DSM) organization, which enables scalability while retaining the convenience of the shared-memory programming paradigm. Data locality is crucial for performance in DSM machines, due to the difference in access times between local and remote memories. In this paper, we present a compile-time representation that captures the memory locality exhibited by a program in the form of a graph known as Locality-Communication Graph (LCG). In the LCG, each node represents a DO loop nest which can have at most one level of parallelism. Not all loops need to be represented within a node and, therefore, the LCG may contain cycles. Our representation works whether the loops represented by the nodes are perfectly nested or not, and the subscript expressions and loop limits can be affine or non-affine expressions of the loop indices. The LCG provides essential information that a parallelizing compiler can use to automatically choose a good iteration/data distribution and to schedule the communication operations required during program execution. Angeles G. Navarro, Rafael Asenjo, Emilio L. Zapata, David A. Padua |
ICPP | 2 |
| 1999 | New shape analysis techniques for automatic parallelization of C codesabstractAutomaticparallelization of codes with complex data structures is becoming very important.These complex, and often, recursive data structures are widely used in scientific computing.Shape analysis is one of the key steps in the automatic parallelization of such codes.In this paper we extend the Static Shape Graph (SSG) method to enable the successful and accurate detection of complex doubly linked structures.In addition, these techniques have been implemented in a compiler, which has been validated for several C codes.In particular, we present the results the compiler achieves for the C sparse LU factorization algorithm.The output SSG for this case study perfectly describes the complex data structure used during the LU code.'This work was supported by the Francisco Corbera, Rafael Asenjo, Emilio L. Zapata |
International Conference on Supercomputing | 2 |
| 1999 | Data-parallel support for numerical irregular problems
Emilio L. Zapata, Oscar G. Plata, Rafael Asenjo, Guillermo P. Trabado |
Parallel Comput. | 3 |
| 1993 | Parallel WZ factorization on mesh multiprocessors
Rafael Asenjo, Manuel Ujaldon, Emilio L. Zapata |
Microprocess. Microprogramming | 1 |