11 research outputs found

    Aprovechamiento del paralelismo de tareas en factorizaciones de matrices jerárquicas sobre procesadores multinúcleo

    Full text link
    [EN] Hierarchical matrices are a numerical tool for representing, in a sparse way and in a linear-logarithmic storage cost, dense problems that arise in integral and partial differential equations. For some basic linear algebra operations (addition, multiplication, factorizations, etc.), this representation results, in addition, in a computational cost of linear-quadratic order. In this work, the extraction of task level parallelism will be addressed in a basic operation of a hierarchical matrix factorization, by using the environment parallelization OmpSs, which automatically allows to detect dependencies among tasks, and performs the scheduling on a multicore processor.[ES] Las matrices jerárquicas son una herramienta numérica para representar, de forma dispersa y con costes de almacenamiento lineal-logarítmico, problemas densos que surgen en ecuaciones integrales y diferenciales parciales. Para algunas operaciones básicas del álgebra lineal (suma, multiplicación, factorizaciones, etc.), esta representación redunda además en unos costes computacionales de orden lineal-cuadrático. En este trabajo se abordará la extracción de paralelismo a nivel de tarea en una operación básica de factorización de una matriz jerárquica, utilizando el entorno de paralelización OmpSs para detectar de forma automática dependencias entre tareas, y realizar la planificación sobre un procesador multinúcleo.Carratalá Sáez, R. (2016). Aprovechamiento del paralelismo de tareas en factorizaciones de matrices jerárquicas sobre procesadores multinúcleo. http://hdl.handle.net/10251/68576TFG

    Los cuaterniones y su importancia en la representación gráfica por ordenador

    Get PDF
    Treball Final de Grau en Matemàtica Computacional. Codi: MT1030. Curs acadèmic 2013-2014El presente Proyecto Final de Grado auna una recopilaciónon de los aspectos más importantes de mi estancia en prácticas y un estudio sobre las isometrías lineales y afines y los cuaterniones. Mi estancia en practicas estuvo dedicada a la programación de videojuegos colaborando con el equipo Catness, uno de los que integran la empresa PaynoPain, situada en el Espaitec de la Universitat Jaume I de Castellon. Concretamente, programé funciones que permiten al usuario editar un cubo moviendo sus vértices o sus caras, así como realizar extrusiones del mismo. Durante la estancia, descubrí la existencia de los ángulos de Euler, utilizados en la descripción de giros en el cubo, y de lo que constituye su principal defecto: el Gimbal Lock, que podría traducirse como “bloqueo giroscopico”. La búsqueda de información sobre ellos me llevó hasta los cuaterniones; unos números, creados en el siglo XIX, que son de la forma: q = a + bi + cj + dk donde a, b, c, d ∈ R con i 2 = j 2 = k 2 = ijk = −1. Precisamente a su estudio dedico un capítulo completo en este documento. Cabe añadir que actualmente los cuaterniones son muy útiles en la representación gráfica por ordenador, debido, entre otras cosas, a la posibilidad que ofrecen de representar con ellos rotaciones en el espacio tridimensional evitando el Gimbal Lock

    Sobre el paralelismo anidado de tareas en la factorización LU de Matrices Jerárquicas

    Get PDF
    Ponencia presentada en las XXX Jornadas de Paralelismo (JP2019) y las IV Jornadas de Computación Empotrada y Reconfigurable (JCER2019) / Jornadas Sociedad de Arquitectura y Tecnología de Computadores (SARTECO, 18-19, septiembre 2019).En este artículo se presenta una versión paralela de la factorización LU de Matrices Jerárquicas (H-matrices) provenientes de Métodos de Elementos de Contorno (BEM). Estas matrices contienen estructuras internas cuya dimensión varía durante la ejecución de operaciones sobre las mismas, por lo que es necesario desligar las estructuras de datos de aquellas utilizadas para representar las dependencias en las tareas en las que se basa la implementación paralelizada. Utilizamos el modelo de programación OmpSs-2 y su runtime para determinar el flujo de datos intrínseco al paralelismo en tiempo de ejecución, así como para aprovechar las dependencias débiles de tareas y la "liberación temprana" (early release) de dependencias. Gracias a estas funcionalidades, puede acelerarse la ejecución de la versión paralela de la H-LU y mejorarse el rendimiento

    Exploiting nested task-parallelism in the H-LU factorization

    Get PDF
    [EN] We address the parallelization of the LU factorization of hierarchical matrices (H-matrices) arising from boundary element methods. Our approach exploits task-parallelism via the OmpSs programming model and runtime, which discovers the data-flow parallelism intrinsic to the operation at execution time, via the analysis of data dependencies based on the memory addresses of the tasks' operands. This is especially challenging for H-matrices, as the structures containing the data vary in dimension during the execution. We tackle this issue by decoupling the data structure from that used to detect dependencies. Furthermore, we leverage the support for weak operands and early release of dependencies, recently introduced in OmpSs-2, to accelerate the execution of parallel codes with nested task-parallelism and fine-grain tasks. As a result, we obtain a significant improvement in the parallel performance with respect to our previous work.The researchers from Universidad Jaume I (UJI) were supported by projects CICYT TIN2014-53495-R and TIN2017-82972-R of MINECO and FEDER; project UJI-B2017-46 of UJI; and the FPU program of MECD.Carratalá-Sáez, R.; Christophersen, S.; Aliaga, JI.; Beltrán, V.; Börm, S.; Quintana Ortí, ES. (2019). Exploiting nested task-parallelism in the H-LU factorization. Journal of Computational Science. 33:20-33. https://doi.org/10.1016/j.jocs.2019.02.004S203333Hackbusch, W. (1999). A Sparse Matrix Arithmetic Based on \Cal H -Matrices. Part I: Introduction to {\Cal H} -Matrices. Computing, 62(2), 89-108. doi:10.1007/s006070050015Grasedyck, L., & Hackbusch, W. (2003). Construction and Arithmetics of H -Matrices. Computing, 70(4), 295-334. doi:10.1007/s00607-003-0019-1Dongarra, J. J., Du Croz, J., Hammarling, S., & Duff, I. S. (1990). A set of level 3 basic linear algebra subprograms. ACM Transactions on Mathematical Software, 16(1), 1-17. doi:10.1145/77626.79170Buttari, A., Langou, J., Kurzak, J., & Dongarra, J. (2009). A class of parallel tiled linear algebra algorithms for multicore architectures. Parallel Computing, 35(1), 38-53. doi:10.1016/j.parco.2008.10.002Quintana-Ortí, G., Quintana-Ortí, E. S., Geijn, R. A. V. D., Zee, F. G. V., & Chan, E. (2009). Programming matrix algorithms-by-blocks for thread-level parallelism. ACM Transactions on Mathematical Software, 36(3), 1-26. doi:10.1145/1527286.1527288Badia, R. M., Herrero, J. R., Labarta, J., Pérez, J. M., Quintana-Ortí, E. S., & Quintana-Ortí, G. (2009). Parallelizing dense and banded linear algebra libraries using SMPSs. Concurrency and Computation: Practice and Experience, 21(18), 2438-2456. doi:10.1002/cpe.1463Aliaga, J. I., Badia, R. M., Barreda, M., Bollhofer, M., & Quintana-Orti, E. S. (2014). Leveraging Task-Parallelism with OmpSs in ILUPACK’s Preconditioned CG Method. 2014 IEEE 26th International Symposium on Computer Architecture and High Performance Computing. doi:10.1109/sbac-pad.2014.24Agullo, E., Buttari, A., Guermouche, A., & Lopez, F. (2016). Implementing Multifrontal Sparse Solvers for Multicore Architectures with Sequential Task Flow Runtime Systems. ACM Transactions on Mathematical Software, 43(2), 1-22. doi:10.1145/2898348Aliaga, J. I., Carratala-Saez, R., Kriemann, R., & Quintana-Orti, E. S. (2017). Task-Parallel LU Factorization of Hierarchical Matrices Using OmpSs. 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). doi:10.1109/ipdpsw.2017.124The OpenMP API specification for parallel programming, http://www.openmp.org/.OmpSs project home page, http://pm.bsc.es/ompss.Perez, J. M., Beltran, V., Labarta, J., & Ayguade, E. (2017). Improving the Integration of Task Nesting and Dependencies in OpenMP. 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS). doi:10.1109/ipdps.2017.69HLIBpro library home page, https://www.hlibpro.com/.Bempp library home page, https://bempp.com/.HACApK library github repository, https://github.com/hoshino-UTokyo/hacapk-gpu.hmglib library github repository, https://github.com/zaspel/hmglib.HiCMA library github repository, https://github.com/ecrc/hicma.Hackbusch, W., & Börm, S. (2002). -matrix approximation of integral operators by interpolation. Applied Numerical Mathematics, 43(1-2), 129-143. doi:10.1016/s0168-9274(02)00121-

    UVaFTLE: Lagrangian finite time Lyapunov exponent extraction for fluid dynamic applications

    Get PDF
    Producción CientíficaThe determination of Lagrangian Coherent Structures (LCS) is becoming very important in several disciplines, including cardiovascular engineering, aerodynam- ics, and geophysical fluid dynamics. From the computational point of view, the extraction of LCS consists of two main steps: The flowmap computation and the resolution of Finite Time Lyapunov Exponents (FTLE). In this work, we focus on the design, implementation, and parallelization of the FTLE resolution. We offer an in-depth analysis of this procedure, as well as an open source C implementation (UVaFTLE) parallelized using OpenMP directives to attain a fair parallel efficiency in shared-memory environments. We have also implemented CUDA kernels that allow UVaFTLE to leverage as many NVIDIA GPU devices as desired in order to reach the best parallel efficiency. For the sake of reproducibility and in order to con- tribute to open science, our code is publicly available through GitHub. Moreover, we also provide Docker containers to ease its usage.Ministerio de Economía, Industria y Competitividad, Consejo Asesor de Educación de Castilla y León y Programas del Fondo de Desarrollo (FEDER): Proyecto PCAS (TIN2017-88614-R) y Proyecto PROPHET-2 (VA226P20).Ministerio de Ciencia e Innovación, Agencia Estatal de Investigación y “European Union NextGenerationEU/PRTR” : (MCIN/ AEI/10.13039/501100011033) - (grant TED2021-130367B-I00)Junta de Castilla y León (project VA182P20)Red Española de Supercomputación (RES) (projects IM-2022-2-0015 and IM-2022-3-0021)Publicación en abierto financiada por el Consorcio de Bibliotecas Universitarias de Castilla y León (BUCLE), con cargo al Programa Operativo 2014ES16RFOP009 FEDER 2014-2020 DE CASTILLA Y LEÓN, Actuación:20007-CL - Apoyo Consorcio BUCL

    Analysis of Parallelization Strategies in the context of Hierarchical Matrix Factorizations

    No full text
    H-matrices offer log-linear storage and computations costs, thanks to a controlled accuracy loss. This is the reason why they are specially suitable for Boundary Element Methods (BEM). Task-parallelism strategies are applied to tiled/block algorithms to provide powerful and efficient parallel solutions for multicore architectures. The main objective of this thesis is designing, implementing and evaluating parallel algorithms to operate efficiently with H-matrices in multicore architectures. The first contribution is a study in which we prove that task-parallelism is suitable for operating with H-matrices, while illustrating the difficulties of parallelizing its complex implementations. Afterwards, we explain how the OmpSs-2 programming model helped us avoid the described issues and attain a fair efficiency. Lastly, we explain the creation of the open source library H-Chameleon, based on Tile H-Matrices (a regularized version of H-matrices), which is competitive-with-pure-H-matrices precision and compression ratios, and leverages the benefits of tile algorithms applied to (regular) tiles.Las H-Matrices presentan un coste de almacenamiento y cómputo logarítmico-lineal gracias a una pérdida de precisión controlable. Por ello, son apropiadas para los Métodos de Elementos de Contorno. Las estrategias de paralelismo de tareas, aplicadas a algoritmos a bloques, posibilitan soluciones paralelas eficientes para arquitecturas multinúcleo. El objetivo principal de esta tesis es diseñar, implementar y evaluar algoritmos paralelos para operar eficientemente con H-Matrices en arquitecturas multinúcleo. En la primera contribución de esta tesis demostramos que el paralelismo de tareas es apropiado para operar con H-Matrices, ilustrando también las dificultades de dichas implementaciones. A continuación, explicamos cómo el modelo de programación OmpSs-2 permite sortear dichas cuestiones para alcanzar una buena eficiencia. Finalmente, explicamos el diseño de H-Chameleon, una librería de código abierto basada en Tile H-Matrices (H-Matrices regularizadas), capaz de mantener un ratio de precisión y compresión competitivo con las H-Matrices puras, beneficiándose de los algoritmos a bloques (regulares).Programa de Doctorat en Informàtic

    Leveraging teaching on demand: Approaching HPC to undergrads

    No full text
    High Performance Computing (HPC) is a highly demanded discipline in companies and institutions. However, as students and also afterwards as professors, we observed a lack of HPC related content in the engineering degrees at our university, including Computer Science. Thus, we designed and offered the engineering students a non-mandatory course entitled “Build your own cluster employing Raspberry Pi” to provide the students with HPC skills. With this course, we covered the basics of supercomputing (hardware, networking, software tools, performance evaluation, cluster management, etc.). This was possible thanks to leveraging the flexibility and versatility of Raspberry Pi devices, and the students' motivation that arose from the hands-on experience. Moreover, the course included a “Teaching on demand” component to let the attendees choose a field to explore, based on their own interests. In this paper, we offer all the details to let anyone fully reproduce the course. Besides, we analyze and evaluate the methodology that let us fulfill our objectives: increase the students' HPC skills and knowledge in such a way that they feel capable of utilizing it in their mid-term professional career

    Algorithmes parallèles pour améliorer l’efficacité dessolveurs utilisant des matrices hiérarchiques

    Get PDF
    In this paper, we describe and evaluate an extension of the Chameleon library to operate with hierarchical matrices (H-Matrices) and hierarchical arithmetic (H-Arithmetic), producing efficient solvers for linear systems arising in Boundary Element Methods (BEM). Our approach builds upon an open-source H-Matrices library from Airbus, named Hmat-oss, that collects sequential numerical kernels for both hierarchical and low-rank structures; the tiled algorithms and task-parallel decompositions available in Chameleon for the solution of linear systems; andthe StarPU runtime system to orchestrate an efficient task-parallel (multi-threaded) execution on a multicore architecture.Using an application producing matrices with features close to real industrial applications, we present shared-memory results that demonstrate a fair level of performance, close to (and sometimes better than) the one offered by a pure H-Matrix approach, as proposed by Airbus Hmat proprietary (and non open-source) library. Hence, this combination Chameleon + Hmat-oss proposes the most efficient fully open-source software stack to solve dense compressible linear systems on shared memory architectures (distributed memory is under development).Algorithmes parallèles pour améliorer l’efficacité dessolveurs utilisant des matrices hiérarchiquesRésumé :Dans cet article, nous présentons et évaluons les performances d’une extension de la bibliothèque Chameleon qui utilise des matrices hiérarchiques et des opérations en arithmétique hiérarchique afin de fournir une résolution efficace des systèmes linéaires apparaissant dans le cadre de la méthode des éléments finis de frontière (BEM). Notre approche se repose sur Hmat-oss, une bibliothèque de matrices hiérarchiques open-source fournie par Airbus qui propose des noyaux de calcul séquentiels pour les matrices hiérarchiques et de rang faible. Elle repose également sur les algorithmes à base de tuiles et le parallélisme par tâches disponible dans Chameleon pour la résolution de systèmes linéaires et sur le support d’exécution StarPU qui se charge d’ordonnancer efficacement les tâches dans un contexte multicœur.Afin de valider nos résultats, nous utilisons une application qui fournit des matrices similaires à celles obtenues dans un contexte industriel. Nous présentons des résultats en mémoire partagée qui présentent un très bon niveau de performance, proche (et parfois meilleur) que celui obtenu avec une approche H-matrice classique, comme proposée dans la bibliothèque propriétaire Hmat d’Airbus. Cette combinaison entre Chameleon et Hmat-ossest à ce jour la plus efficace implémentation open-source qui permet de compresser des systèmes linéaires en mémoire partagée (les développements étant en cours dans la version distribuée)
    corecore