Jordi Garcia
Polytechnic University of Catalonia
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Jordi Garcia.
conference on high performance computing (supercomputing) | 1995
Jordi Garcia; Eduard Ayguadé; Jesús Labarta
Data distribution is one of the key aspects that a parallelizing compiler for a distributed memory architecture should consider, in order to get efficiency from the system. The cost of accessing local and remote data can be one or several orders of magnitude different, and this can dramatically affect performance. In this paper, we present a novel approach to automatically perform static data distribution. All the constraints related to parallelism and data movement are contained in a single data structure, the Communication-Parallelism Graph (CPG). The problem is solved using a linear 0-1 integer programming model and solver. In this paper we present the solution for one-dimensional array distributions, although its extension to multi-dimensional array distributions is also outlined. The solution is static in the sense that the layout of the arrays does not change during the execution of the program. We also show the feasibility of using this approach to solve the problem in terms of compilation time and quality of the solutions generated.
conference on high performance computing (supercomputing) | 1996
Jordi Garcia; Eduard Ayguadé; Jesús Labarta
This paper describes the design of a data distribution tool which automatically derives the data mapping for the arrays and the parallelization strategy for the loops in a Fortran 77 program. The layout generated can be static or dynamic, and the distribution is one-dimensional BLOCK or CYCLIC. The tool takes into account the control flow statements in the code in order to better estimate the behavior of the program. All the information regarding data movement and parallelism is contained in a single data structure named Communication-Parallelism Graph (CPG). The CPG is used to model a minimal path problem in which time is the objective function to minimize. It is solved using a general purpose linear programming solver, which finds the optimal solution for the whole problem. The experimental results will illustrate the quality of the solutions generated and the feasibility of the approach in terms of compilation time.
languages and compilers for parallel computing | 1994
Eduard Ayguadé; Jordi Garcia; Mercè Gironès; Jesús Labarta; Jordi Torres; Mateo Valero
This paper describes some aspects of the implementation of our Data Distribution Tool (DDT), which accepts programs written in Fortran77 and obtains alignment and distribution HPF directives for the arrays used in the program. In particular, we describe the phases of the tool which analyze reference patterns in loops, record preferences for alignment and obtain the alignment functions. These functions are static in the sense that they do not change within the scope of the code analyzed (routine or loop). We propose the use of a set of well-known techniques to extend the scope of the reference pattern analysis and we evaluate their effectiveness in a set of programs from the Perfect Club and SPEC benchmarks.
IEEE Transactions on Parallel and Distributed Systems | 2001
Jordi Garcia; Eduard Ayguadé; Jesús Labarta
Parallel architectures with physically distributed memory provide a cost-effective scalability to solve many large scale scientific problems. However, these systems are very difficult to program and tune. In these systems, the choice of a good data mapping and parallelization strategy can dramatically improve the efficiency of the resulting program. In this paper, we present a framework for automatic data mapping in the context of distributed memory multiprocessor systems. The framework is based on a new approach that allows the alignment, distribution, and redistribution problems to be solved together using a single graph representation. The Communication Parallelism Graph (CPG) is the structure that holds symbolic information about the potential data movement and parallelism inherent to the whole program. The CPG is then particularized for a given problem size and target system and used to find a minimal cost path through the graph using a general purpose linear 0-1 integer programming solver. The data layout strategy generated is optimal according to our current cost and compilation models.
parallel computing | 1998
Eduard Ayguadé; Jordi Garcia; Ulrich Kremer
Abstract Parallel architectures with physically distributed memory providing computing cycles and large amounts of memory are becoming more and more common. To make such architectures truly usable, programming models and support tools are needed to ease the programming effort for these parallel systems. Automatic data distribution tools and techniques play an important role in achieving that goal. This paper discusses state-of-the-art approaches to fully automatic data and computation partitioning. A kernel application is used as a case study to illustrate the main differences of four representative approaches. The paper concludes with a discussion of promising future research directions for automatic data layout.
languages and compilers for parallel computing | 1995
Eduard Ayguadé; Jordi Garcia; Mercè Gironès; M. Luz Grande; Jesús Labarta
Data distribution is one of the key aspects to consider in a parallelizing environment for Massive Parallel Processors. Automatic data distribution proposals may be categorized as either static or dynamic, depending on whether the distribution of the arrays is allowed to change throughout the execution of the program. This paper describes the features and implementation of the intra-procedural data remapping module implemented in our automatic data distribution research tool. The solution to the remapping problem for a sequence of computational phases consists in selecting a mapping among the possible candidates for each phase and introduce remapping actions between consecutive phases. Control flow information is used to identify how phases are sequenced during the execution of the application.
annual mediterranean ad hoc networking workshop | 2016
Amir Sinaeepourfard; Jordi Garcia; Xavier Masip-Bruin; Eva Marín-Tordera; Jordi Cirera; Glòria Grau; Francesc Casaus
Nowadays, Smart Cities are positioned as one of the most challenging and important research topics, highlighting major changes in peoples lifestyle. Technologies such as smart energy, smart transportation or smart health are being designed to improve citizens quality of life. Smart Cities leverage the deployment of a network of devices - sensors and mobile devices-, all connected through different means and/or technologies, according to their network availability and capacities, setting a novel framework feeding end-users with an innovative set of smart services. Aligned to this objective, a typical Smart City architecture is organized into layers, including a sensing layer (generates data), a network layer (moves the data), a middleware layer (manages all collected data and makes it ready for usage) and an application layer (provides the smart services benefiting from this data). In this paper a real Smart City is analyzed, corresponding to the city of Barcelona, with special emphasis on the layers responsible for collecting the data generated by the deployed sensors. The amount of daily sensors data transmitted through the network has been estimated and a rough projection has been made assuming an exhaustive deployment that fully covers all city. Finally, we discuss some solutions to both reduce the data transmission and improve the data management.
Scientific Programming | 1997
Eduard Ayguadé; Jordi Garcia; Mercè Gironès; M. Luz Grande; Jesús Labarta
This article describes the main features and implementation of our automatic data distribution research tool. The tool (DDT) accepts programs written in Fortran 77 and generates High Performance Fortran (HPF) directives to map arrays onto the memories of the processors and parallelize loops, and executable statements to remap these arrays. DDT works by identifying a set of computational phases (procedures and loops). The algorithm builds a search space of candidate solutions for these phases which is explored looking for the combination that minimizes the overall cost; this cost includes data movement cost and computation cost. The movement cost reflects the cost of accessing remote data during the execution of a phase and the remapping costs that have to be paid in order to execute the phase with the selected mapping. The computation cost includes the cost of executing a phase in parallel according to the selected mapping and the owner computes rule. The tool supports interprocedural analysis and uses control flow information to identify how phases are sequenced during the execution of the application.
international parallel and distributed processing symposium | 1996
Jordi Garcia; Eduard Ayguadé; Jesús Labarta
Physically-distributed memory multiprocessors are becoming popular and data distribution and loop parallelization are aspects that a parallelizing compiler has to consider in order to get efficiency from the system. The cost of accessing local and remote data can be one or several orders of magnitude different, and this can dramatically affect the performance of the system. It would be desirable to free the programmer from considerations of the low-level details of the target architecture, to program explicit processes or specify interprocess communication. We present an approach to automatically derive static or dynamic data distribution strategies for the arrays used in a program. All the information required about data movement and parallelism is contained in a single data structure, called the Communication-Parallelism Graph (CPG). The problem is modeled and solved using a general purpose linear 0-1 integer programming solver. This allows us to find the optimal solution for the problem for one-dimensional array distributions. We also show the feasibility of using this approach in terms of compilation time and quality of the solutions generated.
frontiers in education conference | 2014
David López; Fermín Sánchez; Eva Vidal; Josep Pegueroles; Marc Alier; Jose Cabré; Jordi Garcia; Helena García
The introduction of sustainability skills into higher education curricula is a natural effect of the increasing importance of sustainability in our daily lives. Topics like green computing, sustainable design or environmental engineering have become part of the knowledge required by todays engineers. Furthermore, we strongly believe that the introduction of this skill will eventually enable future engineers to develop sustainable products, services and projects. The Final Year Project is the last academic stage facing students and a step towards their future professional engineering projects. As such, it constitutes a rehearsal for their professional future and an ideal opportunity for reflecting on whether their Final Year Project is sustainable or not, and to what extent. It also provides a good tool for reviewing the lessons learned about sustainability during the degree course and for applying them in a holistic and integrated way. In this paper, we present a guide that allows both students and advisors to think carefully about the sustainability of engineering projects, in particular the Final Year Project.