Estudio de viabilidad de SYCL como modelo de programación unificado para sistemas heterogéneos basados en GPUs en bioinformática
Material type:
Item type | Home library | Collection | Call number | URL | Status | Date due | Barcode | |
---|---|---|---|---|---|---|---|---|
![]() |
Biblioteca de la Facultad de Informática | TES 23/39 (Browse shelf(Opens below)) | Available | DIF-05321 | ||||
![]() |
Biblioteca de la Facultad de Informática | Biblioteca digital | Link to resource | No corresponde | ||||
![]() |
Biblioteca de la Facultad de Informática | Biblioteca digital | Link to resource | No corresponde |
Browsing Biblioteca de la Facultad de Informática shelves Close shelf browser (Hides shelf browser)
Tesis (Doctorado en Ciencias Informáticas) - Universidad Nacional de La Plata. Facultad de Informática, 2023.
1. Introducción -- 1.1. Motivación -- 1.2. Objetivos -- 1.3. Metodología -- 1.4. Alcances y limitaciones -- 1.5. Contribuciones -- 1.6. Publicaciones -- 1.7. Organización de la tesis -- 2. Marco Referencial -- 2.1. Sistemas heterogéneos basados en GPUs -- 2.1.1. HPC -- 2.1.2. Consolidación de aceleradores -- 2.1.3. GPUs -- 2.1.3.1. Tipos de GPUs -- 2.1.3.2. Características -- 2.1.4. Fabricantes -- 2.1.4.1. GPUs de NVIDIA -- 2.1.4.2. GPUs de AMD -- 2.1.4.3. GPUs de Intel -- 2.2. Modelos de programación heterogénea -- 2.2.1. CUDA -- 2.2.1.1. Modelo de plataforma -- 2.2.1.2. Modelo de ejecución -- 2.2.1.3. Modelo de memoria -- 2.2.2. OpenCL -- 2.2.2.1. Modelo de plataforma -- 2.2.2.2. Modelo de ejecución -- 2.2.2.3. Modelo de memoria -- 2.2.2.4. Comparación entre CUDA y OpenCL -- 2.2.3. OpenMP -- 2.2.3.1. Modelo de programación -- 2.2.3.2. Modelo de ejecución -- 2.2.3.3. Modelo de memoria -- 2.2.3.4. Soporte para programación heterogénea -- 2.2.4. OpenACC -- 2.2.4.1. Modelo de plataforma -- 2.2.4.2. Modelo de ejecución -- 2.2.4.3. Modelo de memoria -- 2.2.5. Kokkos -- 2.2.5.1. Modelo de plataforma -- 2.2.5.2. Modelo de ejecución -- 2.2.5.3. Modelo de memoria -- 2.2.6. RAJA -- 2.2.6.1. Modelo de plataforma -- 2.2.6.2. Modelo de ejecución -- 2.2.6.3. Modelo de memoria -- 2.3. SYCL -- 2.3.1. Modelo de plataforma -- 2.3.1.1. Compilación y ejecución -- 2.3.1.2. Backend SYCL -- 2.3.2. Modelo de ejecución -- 2.3.2.1. Modelo de Ejecución de la Aplicación SYCL -- 2.3.2.2. Modelo de Ejecución del Kernel en SYCL -- 2.3.3. Modelo de memoria -- 2.3.3.1. Buffers y Accessors -- 2.3.3.2. USM -- 2.3.4. Implementaciones SYCL -- 2.3.5. Comparación de los modelos de programación heterogénea -- 2.4. Métricas de evaluación -- 2.4.1. Rendimiento -- 2.4.2. Portabilidad -- 2.4.2.1. Ejemplo -- 2.4.3. Costo de programación -- 2.5. Bioinformática -- 2.5.1. Introducción -- 2.5.1.1. Aplicaciones -- 2.5.2. Alineamiento de secuencias biológicas (ASB) -- 2.5.3. Algoritmos para ASB -- 2.5.4. Clasificación de algoritmos -- 2.5.4.1. Alineamientos globales y locales -- 2.5.4.2. Programación dinámica y heurísticas -- 2.5.5. Algoritmos basados en programación dinámica -- 2.5.5.1. Global -- 2.5.5.2. Local -- 2.5.5.3. Semi-global -- 2.5.5.4. Solapado -- 2.5.6. Bases de datos biológicas -- 2.5.6.1. Colaboración Internacional de Bases de Datos de Secuencias de Nucleótidos -- 2.5.6.2. Bases de datos de proteínas -- 2.5.6.3. Bases de datos de nucleicos -- 2.5.7. Aceleración de ASB -- 2.5.8. GCUPS -- 2.5.9. Implementaciones para GPU -- 2.5.9.1. Búsqueda de similitud -- 2.5.9.2. Alineamiento de a pares -- 3. Caso de Estudio y Migración a SYCL -- 3.1. Selección de software para ASB -- 3.2. Caso de estudio: SW# -- 3.3. Herramientas y frameworks -- 3.3.1. Ecosistema de programación Intel oneAPI -- 3.3.2. Herramienta de migración -- 3.4. Proceso de migración -- 3.4.1. Errores de compilación y alertas -- 3.4.2. Errores en ejecución -- 3.4.3. Verificación funcional -- 3.4.4. Modernización de código y optimizaciones -- 3.4.5. Estandarización a SYCL (opcional) -- 3.5. Evaluación del esfuerzo de programación -- 3.6. Trabajos relacionados y discusión -- 4. Resultados Experimentales -- 4.1. Diseño experimental -- 4.1.1. Hardware -- 4.1.2. Software -- 4.1.3. Pruebas -- 4.1.4. Objetivos -- 4.2. Resultados de rendimiento y portabilidad -- 4.2.1. Rendimiento y funcionalidad -- 4.2.1.1. Tamaño del work-group -- 4.2.1.2. Longitudes de secuencia de consulta y bases de datos -- 4.2.1.3. Algoritmo de alineamiento y esquema de puntuación -- 4.2.1.4. Alineamiento de secuencias de ADN -- 4.2.2. Modelo para portabilidad de rendimiento -- 4.2.2.1. Instrucciones core de SW# -- 4.2.2.2. Características arquitectónicas en las GPUs de NVIDIA -- 4.2.2.3. Características arquitectónicas en las GPUs de AMD -- 4.2.2.4. Características arquitectónicas en las GPUs de Intel -- 4.2.2.5. Características arquitectónicas en CPUs -- 4.2.2.6. Rendimiento teórico máximo para plataformas usadas -- 4.2.3. Portabilidad en GPU individual -- 4.2.4. Portabilidad en multi-GPU -- 4.2.5. Portabilidad en CPU -- 4.2.6. Portabilidad en CPU-GPU -- 4.2.7. Portabilidad en implementaciones SYCL -- 4.3. Trabajos relacionados y discusión -- 5. Conclusiones y Trabajos Futuros -- 5.1. Conclusiones -- 5.2. Trabajos futuros