Desarrollo, optimización y autooptimización de algoritmos paralelos para análisis cinemático de sistemas multicuerpo basado en ecuaciones de grupo

  1. Cano Lorente, Jose Carlos
Dirigée par:
  1. Antonio Javier Cuenca Muñoz Directeur/trice
  2. Mariano Saura Directeur
  3. Domingo Giménez Cánovas Directeur/trice

Université de défendre: Universidad de Murcia

Fecha de defensa: 23 avril 2021

Jury:
  1. Vicente Emilio Vidal Gimeno President
  2. Juan Luis Aragón Alcaraz Secrétaire
  3. Francisco Javier González Varela Rapporteur

Type: Thèses

Résumé

Modeling is the discipline that allows the analysis and simulation of the behavior of a certain system through the numerical representation of its properties. Applications include among others the study of natural, climatic, population or mechanical systems. The modeling techniques available nowadays make it possible to afford the study of increasingly complex systems, usually requering the efficient use of computer systems to obtain its numerical resolution in times within the limits fixed by the computer resources. For this reason, scientists develop these models focusing on its subsequent translation into algorithms that can be executed in a computer. For example, in the field of engineering that studies multibody systems, a topological formulation facilitates automatic modeling and allows the efficient computational resolution of the system kinematics. The information obtained from this process can be applied afterwards to the design of new mechanisms, and covers aspects such as the analysis of the position of the elements that make up the system and the range of movement of the moving parts. Given the growing interest in the computational implementation of many scientific problems, it is possible to access software packages already developed by several research groups aiming to solve certain sub-problems in a particular area. Those can be reused afterwards for solving more complex problems. An example of those packages are the linear algebra libraries, widely used in these types of scientific problems, which have been subject to continuous study for their adaptation to the constant evolution of modern hardware configurations. The new hardware platforms incorporate more than one processing unit, either by integrating several processors in their CPUs, or by adding other units of massively parallel architecture, such as GPUs, or a combination of them, to make up hybrid computing nodes. The availability of this type of parallel hardware leads to an interest in exploiting the execution of simultaneous calculations, getting the benefit in the reduction of execution times. However, the optimal fit of parallel techniques requires a wide knowledge of the hardware and the available software libraries, many of which require the adjustment of a set of parameters for high performance. For this reason, it is not common for expert researchers in a specific scientific area to also be knowledgeable of the various existing parallel programming paradigms. This thesis focuses on covering the gap between the discipline of mechanical engineering and computing, providing to non expert users in parallelism a simulator that includes the analysis and optimization of algorithms through the appropriate selection and configuration of libraries. Based on the model of a multibody system in the form of a graph that collects the calculations (basically matrix algebra operations) and their dependencies, this software lets the user to adjust the parallelism and librarie's parameters and then to carry out simulations to analyze the influence of this adjustment on the execution times. A self-optimized execution will also find the most efficient way to group the calculations, as well as the appropriate library to be used and the optimal settings that should be applied in each resolution stage of the algorithm. Additionally, this thesis shows how this methodology can be applied to other disciplines outside the mechanical engineering field, specifically to those where problems can be posed with a similar approach, that is, as groupings of calculations consisting on matrix operations performed in a certain sequence. An example is the application to some basic linear algebra routines, such as the matrix multiplication.