• No se han encontrado resultados

Planificación de Tareas Dependientes Representadas por Grafos Acíclicos Dirigidos para Sistemas Computacionales Heterogéneos

N/A
N/A
Protected

Academic year: 2020

Share "Planificación de Tareas Dependientes Representadas por Grafos Acíclicos Dirigidos para Sistemas Computacionales Heterogéneos"

Copied!
96
0
0

Texto completo

(1)UNIVERSIDAD NACIONAL DE SAN AGUSTÍN ESCUELA DE POSGRADO UNIDAD DE POSGRADO DE LA FACULTAD DE INGENIERIA DE PRODUCCIÓN Y SERVICIOS. Planicación de Tareas Dependientes Representadas por Grafos Acíclicos Dirigidos para Sistemas Computacionales Heterogéneos. Tesis presentada por el Magister: Alvaro Henry Mamani Aliaga. Para optar el Grado de: Doctor en Ciencia de la Computación. Asesor: Prof. Dr. Luis Alberto Alfaro Casas. Arequipa - Perú 2018.

(2) i. Dedico este trabajo a mi familia. Mi hermoso hijo Paulo Sebastian y a mi bella esposa Edith. También a mis padres Emigio y Toribia y a mi hermano Jorge Miguel. Muchas gracias por el apoyo incondicional y por siempre estar a mi lado..

(3) ii.

(4) Agradecimientos Este trabajo, no solamente representa una tesis de doctorado, es mucho mas que eso, pues durante el desarrollo de la misma, aprendí, reí, me amanecí, sufrí, pero principalmente tuve el apoyo de personas extraordinarias. En primer lugar, agradezco a Dios, por haberme dado unos padres maravillosos y un hermano ejemplar; por haberme bendecido con una esposa grandiosa y un hermoso hijo. En segundo lugar, agradezco a mi familia, mi esposa Edith, muchas gracias por el constante apoyo y ánimo, que muchas veces me hicieron falta, por el amor y cariño que me das, eres mi complemento, mi media naranja, mi religión =); a mi hijito Paulo Sebastian, por darme una razón mas para vivir, por alegrar mis dias estresados, por ser mi pequeña bendición, disculpame por no haber podido darte el tiempo necesario que requerias por la tesis, te quiero mucho hijito. A mis padres, Emigio y Toribia, muchas gracias por el constante apoyo, por ser geniales, por siempre estar ahi cuando los necesito, son los mejores. A mi hermano Jorge Miguel, por siempre ser un ejemplo a seguir, un amigo con quien contar, siempre dandome los consejos necesarios y precisos, gracias Coquito =). A mis tios queridos, Andres y Angelica, que son como unos segundos padres, muchas gracias por todo. Al profesor Luis Alfaro, muchas gracias por el apoyo en diferentes momentos y por la guia brindada. A los diferentes profesores del doctorado: Yvan Tupac, Cristian Lopez, Juan Carlos Gutierrez, entre otros :D. Una mención y agradecimiento especial para mis estimados amigos y compañeros del doctorado: Yessenia Yari, José Ochoa, Carlos Atencio, José Herrera, Edward Hinojosa, Graciela Meza, Wilber Ramos, sin Ustedes esta etapa no seria lo genial que fue. Un agradecimento especial para el Fondecyt, la beca fue un alivio e hizo a un lado mis apuros nancieros. Finalmente a todos los colegas, amigos de la UNSA. Muchas personas ademas de las que mencioné, las cuales merecen mi sincero agradecimiento, si es que los olvidé mencionar, no se ofendan, saben que les agradezco desde el fondo de mi corazon. Gracias por el apoyo y la amistad :D.. iii.

(5) iv.

(6) Resumen En la actualidad, el procesamiento de grandes cantidades de datos es requerido por diferentes áreas, tanto en la academia como en la industria, para esto se utilizan sistemas computacionales heterogéneos, sin embargo, un aspecto muy importante en el procesamiento es la planicación de tareas. En el presente trabajo, se propone una metodología para la selección de un adecuado algoritmo de planicación, siguiendo métricas, las cuales brindan los datos necesarios para saber si el algoritmo tendrá buen desempeño tanto en el tipo de aplicaciones como en las características del sistema heterogéneo. Ademas, se proponen dos algoritmos de planicación: (i) Predict Earliest Finish Time with Clustering - PEFTC, el cual toma en cuenta las mejores características del algoritmo PEFT, pero en la etapa de asignación de recursos lo realiza en agrupaciones de tareas, esto mejora el desempeño al minimizar la comunicación entre tareas; (ii) Constrained Predict Earliest Finish Time - CoPEFT, el cual fue basado en las mejores características de los algoritmos PEFT y CEFT, aprovecha el cálculo que se realiza en el algoritmo CEFT, al encontrar caminos críticos restringidos, y en la fase de asignación de recursos utiliza la tabla de costos optimista propuesto por el algoritmo PEFT, preservando la complejidad algorítmica establecida en ambos algoritmos.. Palabras-clave: Planicación de tareas, algoritmos de planicación, DAG, Sistema computacional heterogéneo.. v.

(7) vi.

(8) Abstract Currently, processing of large amounts of data is required by dierent areas, both in industry and academia, to achieve this requirements, heterogeneous computational systems are used, however, a very important aspect in the processing is task scheduling. In the present work, a methodology is proposed for the selection of a suitable scheduling algorithm, following some metrics, which provide the necessary data to know if the algorithm will have good performance both in the kind of applications and with the characteristics of a heterogeneous system. In addition, in this work its proposed two scheduling algorithms: (i) Predict Earliest Finish Time with Clustering - PEFTC, which takes into account the best features of the PEFT algorithm, but in the resource allocation stage is performed using task clustering, this improves the performance by minimizing communication between tasks and processors; (ii) Constrained Predict Earliest Finish Time - CoPEFT, which was based on the best characteristics of the PEFT and CEFT algorithms, this algorithm takes advantage of the computation of restricted critical paths performed in the CEFT algorithm, and in the allocation phase of resources, it uses the optimistic cost table proposed by the PEFT algorithm, preserving the algorithmic complexity established in both algorithms.. Keywords: Task scheduling, scheduling algorithms, DAG, Heterogeneous computational systems.. vii.

(9) viii.

(10) Índice general Lista de abreviaturas. xi. Índice de algoritmos. xiii. Índice de guras. xv. Índice de tablas. xvii. 1 Introducción. 1. 1.1. Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.2. Contribuciones. 1.3. Organización del Trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2 Marco Conceptual 2.1. 2.2. 2 3 3. 5. Planicación de Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 2.1.1. Planicación Dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 2.1.2. Planicación Estática. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Problema de Planicación de Tareas Dependientes 2.2.1. . . . . . . . . . . . . . . . . . . .. 7. Atributos del Grafo usado por los Algoritmos de Planicación . . . . . . . . .. 9. 3 Estado del Arte. 11. 3.1. Algoritmo HEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 11. 3.2. Algoritmo Lookahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 12. 3.2.1. Lookahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 12. Algoritmo CEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 14. 3.3.1. 16. 3.3. 3.4. 3.5. Constrained Earliest Finish Time [Kha12] . . . . . . . . . . . . . . . . . . . .. Algoritmo PEFT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3.4.1. Tabla de Costos Optimista - OCT. 3.4.2. Fase de Priorización de Tareas. . . . . . . . . . . . . . . . . . . . . . . . .. 19. . . . . . . . . . . . . . . . . . . . . . . . . . .. 19. 3.4.3. Fase de Selección de Procesadores . . . . . . . . . . . . . . . . . . . . . . . . .. 20. 3.4.4. Predict Earliest Finish Time. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 20. Algoritmo iPEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 4 Infraestructura Heterogénea, Aplicaciones DAGs y Simulador 4.1. 19. 23. Infraestructura Heterogénea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 23. 4.1.1. 23. Proyecto DAS-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ix.

(11) x. ÍNDICE GENERAL. 4.2. 4.3. 4.1.2. EGEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 25. 4.1.3. Proyecto Grid5000. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 26. 4.1.4. Proyecto GridPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 28. Aplicaciones DAG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 4.2.1. Aplicación Montage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 31. 4.2.2. Aplicación CyberShake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 32. 4.2.3. Aplicación Epigenomics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34. 4.2.4. Aplicación LIGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 35. Simulador SimGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 4.3.1. Arquitectura. 38. 4.3.2. Componentes de SimGrid. 4.3.3. Implementación y Documentación. 4.3.4. Modelamiento de la Plataforma Grid y los Workloads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5 Análisis de Aplicaciones. 39 40 41. 43. 5.1. Análisis de las Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 43. 5.2. Análisis de la Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 47. 6 Metodología Extendida para Seleccionar un Algoritmo Planicación 6.1. 6.2. 49. Metodología para la Comparación de Algoritmos de Planicación . . . . . . . . . . .. 49. 6.1.1. Evaluación de Métricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 49. 6.1.2. Ampliación de Métricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 55. Metodología Extendida para Seleccionar un Algoritmo Planicación . . . . . . . . . .. 56. 7 Algoritmos de Planicación 7.1 Algoritmo Predict Earliest Finish Time with Clustering - PEFTC 7.2 Algoritmo Constrained Predict Earliest Finish Time - CoPEFT .. 59 . . . . . . . . . . .. 59. . . . . . . . . . . .. 60. 8 Conclusiones. 63. 8.1. Consideraciones Finales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 63. 8.2. Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 64. A Ejemplo de la Especicación de las Infraestructura Heterogénea. 65. B Publicaciones Realizadas durante el Doctorado. 71. Bibliografía. 73. Índice alfabético. 77.

(12) Lista de abreviaturas ASCI. Advanced School for Computing and Imaging. BoT. Bag of Tasks (Saco de Tarefas). CERN. European Organization for Nuclear Research. CEFT. Constrianed Earliest Finish Time. DAG. Directed Acyclic Graph (Grafos Acíclicos Dirigidos). DAS-4. Distributed ASCI Supercomputer 4. DAX. Directed Acyclic Graph in XML. EGEE. Enabled Grid for E-sciencE. EGI. European Grid Intrastructure. FITS. Flexible Image Transport System. IPEFT. Improved Predict Earliest Finish Time. HEFT. Heterogeneous Earliest Finish Time. LCG. LCH Computing Grid. LHC. Large Hadron Collider. PEFT. Predict Earliest Finish Time. PSHA. Probabilistic Seismic Hazard Analysis. RENATER. Le Réseau National de télécommunications pour la Technologie l'Enseignement et la Recherch. xi.

(13) xii. LISTA DE ABREVIATURAS.

(14) Índice de algoritmos 3.1. Algoritmo HEFT [THW02]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 12. 3.3. lookahead [BSM10] y [Bit10]. . . . . . . . . . . . Algoritmo gen_CP() para generar caminos críticos [Kha12].. . . . . . . . . . . . . . .. 17. 3.4. Algoritmo para planicación CEFT [Kha12]. . . . . . . . . . . . . . . . . . . . . . . .. 18. 3.5. Algoritmo PEFT [AB14].. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 20. 7.1. Generar_agrupamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 60. 7.2. Algoritmo. 3.2. HEFT con. . . . . . . . . . . . . . .. 14. gen_CP_Modicado() para generar caminos críticos [Kha12].. xiii. . . . . . . .. 61.

(15) xiv. ÍNDICE DE ALGORITMOS.

(16) Índice de guras 2.1. Clasicación de las técnicas de planicación de tareas.. . . . . . . . . . . . . . . . . .. 3.1. Ejemplo de un grafo: nodos de A - F etiquetados con el promedio del costo de. 6. ejecución y aristas etiquetadas con los costos de comunicación. Esquema adaptado de [Kha12].. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15. 3.2. Esquema del grafo durante la generación de CCPs. Esquema adaptado de [Kha12].. .. 15. 4.1. Arquitectura del proyecto DAS-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 25. 4.2. Plataforma EGEE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 26. 4.3. La arquitectura del proyecto Grid5000. . . . . . . . . . . . . . . . . . . . . . . . . . .. 27. 4.4. La arquitectura del proyecto GridPP. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 29. 4.5. Estructura de la aplicación Montage. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 32. 4.6. Estructura de la aplicación CyberShake.. . . . . . . . . . . . . . . . . . . . . . . . . .. 33. 4.7. Estructura de la aplicación Epigenomics. . . . . . . . . . . . . . . . . . . . . . . . . .. 35. 4.8. Estructura de la aplicación LIGO.. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 4.9. Componentes del simulador SimGrid. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 39. 4.10 Capa: Ambientes de Programación. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 40. 5.1. Representación de los comportamientos de las aplicaciones.. 45. 6.1. HEFT: Desempeño las aplicaciones DAGs usando el algoritmo HEFT sobre diferentes infraestructuras.. 6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 52. HEFT: Escalalibidad presentatada por la aplicación Epigenomics ejecutada en la infraestructuras.. 6.5. 50. HEFT: Escalalibidad presentatada por la aplicación CyberShake ejecutada en la infraestructuras.. 6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. HEFT: Escalalibidad presentatada por la aplicación Montage ejecutada en la infraestructuras.. 6.3. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 52. HEFT: Escalalibidad presentatada por la aplicación Ligo ejecutada en la infraestructuras.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6.6. HEFT: Montage de 50 Tareas sobre DAS-3.. 6.7. HEFT: Montage de 500 Tareas sobre DAS-3.. 6.8. 53. . . . . . . . . . . . . . . . . . . . . . . .. 54. . . . . . . . . . . . . . . . . . . . . . .. 54. HEFT: Montage de 1000 Tareas sobre DAS-3. . . . . . . . . . . . . . . . . . . . . . .. 55. xv.

(17) xvi. ÍNDICE DE FIGURAS.

(18) Índice de tablas 3.1. Caminos críticos encontrados usando el promedio de costos de ejecución. . . . . . . .. 16. 3.2. CCPs correspondientes a los caminos críticos. . . . . . . . . . . . . . . . . . . . . . .. 16. 4.1. Características de la arquitectura DAS-4.. . . . . . . . . . . . . . . . . . . . . . . . .. 25. 4.2. Características de la arquitectura Grid5000. . . . . . . . . . . . . . . . . . . . . . . .. 28. 4.3. Características de la arquitectura GridPP. . . . . . . . . . . . . . . . . . . . . . . . .. 30. 4.4. Cantidad de tareas por nivel de la aplicación Montage. . . . . . . . . . . . . . . . . .. 32. 4.5. Cantidad de tareas por nivel de la aplicación Montage. . . . . . . . . . . . . . . . . .. 33. 4.6. Cantidad de tareas por nivel de la aplicación CyberShake.. . . . . . . . . . . . . . . .. 34. 4.7. Cantidad de tareas por nivel de la aplicación Epigenomics. . . . . . . . . . . . . . . .. 36. 4.8. Cantidad de tareas por nivel de la aplicación Ligo.. . . . . . . . . . . . . . . . . . . .. 38. 5.1. Cálculo de los workloads de las aplicaciones DAG . . . . . . . . . . . . . . . . . . . .. 46. 5.2. Cálculo de las medias de las cargas de trabajo en escala logarítmica de las aplicaciones. 6.1. DAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 46. Adaptabilidad del algoritmo HEFT.. 53. . . . . . . . . . . . . . . . . . . . . . . . . . . .. xvii.

(19) xviii. ÍNDICE DE TABLAS.

(20) Capítulo 1. Introducción En la computación distribuida, entre las características mas importantes en investigación, se tienen al procesamiento y al almacenamiento. En la actualidad se tienen diferentes investigaciones para cada aspecto. Los sistemas computacionales heterogéneos son una alternativa para obtener gran capacidad en el procesamiento, por lo tanto, una herramienta necesaria en la computación de alto desempeño, tambien conocida como. High Performance Computing, HPC por sus siglas en in-. glés. Diferentes áreas en la ciencia requieren alto poder computacional, y en muchos casos utilizan computación heterogénea para el procesamiento de datos. Muchos de los conceptos y técnicas establecidas en el área de la computación heterogénea son utilizados por el paradigma de la computación en la nube.. Large Hadron Collider (LHC) Organización Europea para la Investigación Nuclear - CERN1. Un buen ejemplo del uso de la computación heterogénea es el del proyecto LCG en la. considerado el mayor laboratorio de investigación en física de partículas del mundo, en el cual se requiere procesar aproximadamente 30 petabytes anualmente. El poder computacional necesario para el procesamiento de tal cantidad de datos utilizado, escapa de un amiente de computacional local (denominado. cluster en adelante) de una institución, esta organización utiliza en conjunto un. poder computacional de várias instituciones geográcamente dispersas alrededor del mundo. La eciencia en la ejecución de aplicaciones paralelas sobre un sistema computacional heterogéneo depende de las técnicas de planicación de tareas, la cual debe realizar un estudio minucioso, tanto de la aplicación paralela como de las características del sistema computacional, para poder hacer uso óptimo de los recursos computacionales. La planicación de tareas es un problema NP-completo [Pin16], ya estudiado en diversas investigaciones, pero en el entorno de un sistema computacional heterogéneo se torna un gran desafío debido a las características del mismo, entre las cuales podemos mencionar: dinamismo, heterogeneidad y recursos físicamente distantes unos de otros. Para que la computación heterogénea pueda alcanzar un buen desempeño, un conocimiento adecuado del escenario es necesario: (i) un estudio en profundidad de la planicación, (ii) el tipo de 1. http://home.cern/, último acceso el día 30 de julio del 2017.. 1.

(21) 2. INTRODUCCIÓN. 1.2. aplicación que será ejecutada y (iii) el tipo de arquitectura en la que se llevará a cabo la ejecución. Por lo tanto, un análisis de los algoritmos de planicación, la arquitectura y el tipo de aplicación son importantes para lograr un buen rendimiento. Las aplicaciones que requieren este tipo de poder computacional, se caterogizan generalmente en dos tipo: (i) tareas sin dependencia, también. Bag-of-Task, en inglés), las cuales poseen varias tareas que pueden ser. denominada bolsa de tareas (. ejecutadas independientemente una de la otra; y (ii) tareas con dependencia o tareas dependientes, las cuales tienen tareas que deben respetar en su ejecución la predencia de una con respecto a la otra. La representación de las tareas dependientes es a través de un grafo acíclico dirigido, (Directed Acyclic Graph, DAG). En el presente trabajo, se propone una metodología para la selección de un adecuado algoritmo de planicación, siguiendo métricas, las cuales brindan los datos necesarios para saber si el algoritmo tendrá buen desempeño tanto en el tipo de aplicaciones como en las características del sistema heterogéneo. Adicionalmente, se proponen dos algoritmos de planicación: (i) Predict Earliest Finish Time with Clustering - PEFTC, el cual toma en cuenta las mejores características del algoritmo PEFT, pero en la etapa de asignación de recursos lo realiza en agrupaciones de tareas, esto mejora el desempeño al minimizar la comunicación entre tareas; (ii) Constrained Predict Earliest Finish Time - CoPEFT, el cual fue basado en las mejores características de los algoritmos PEFT y CEFT, aprovecha el cálculo que se realiza en el algoritmo CEFT, al encontrar caminos críticos restringidos, y en la fase de asignación de recursos utiliza la tabla de costos optimista propuesto por el algoritmo PEFT, preservando la complejidad algorítmica establecida en ambos algoritmos.. 1.1. Objetivos El objetivo general de la presente tesis consiste proponer dos enfoques para la planicación de tareas con dependencia para el procesamiento de grandes cantidades de datos en sistemas computacionales heterogéneos Entre los objetivos especícos del trabajo, se tienen los siguientes:. (a) Proponer una metodología que basada en las características de las aplicaciones y arquitecturas del sistema computacional heterogéneo sirva para el apoyo de la decisión para establecer cuales deben ser las carácterísticas del algoritmo de planicación para conseguir un buen desempeño; (b) realizar un análisis comparativo de los algoritmos de planicación para tareas con dependencia para sistemas computacionales heterogéneos; (c) proponer dos nuevas formas de planicación de tareas dependientes para sistemas computacionales heterogéneos..

(22) CONTRIBUCIONES. 1.3. 3. 1.2. Contribuciones Las principales contribuciones de este trabajo son describas a seguir:. (a) Levantamiento bibliográco de las principales técnicas de planicación de tareas para sistemas computacionales heterogéneos. (b) Conceptos consolidados sobre la planicación de tareas y el proceso para la simulación de algoritmos de planicación con tareas dependientes. (c) Una metodología para en análisis de algoritmos de planicación de tareas dependientes sobre el tipo de aplicaciones para sistemas computacionales heterogéneos. (d) Dos algoritmos de planicación para el estado del arte en el área de planicación de tareas dependientes en sistemas computacionales heterogéneos.. 1.3. Organización del Trabajo En el Capítulo 2 se presentan los conceptos básicos para el entendimiento de diferentes deniciones y algoritmos usados en el presente trabajo; así como tambien se describe detalladamente el problema de planicación de tareas en sistemas heterogéneos. Es bien conocido que el problema de planicación de tareas es NP-Completo, por lo cual, se considera para nes de la tesis una explicación minuciosa del mismo. En el Capítulo 3 se describen los trabajos relacionados a la presente tesis. Mas relevantes algoritmos de planicación basados en lista para sistemas heterogéneos propuestos en la literatura. Entre los cuales se tienen: (i) HEFT, (ii) Lookahead; (iii) PEFT; (iv) CEFT y (v) IPEFT. En el Capítulo 4 se describen a los sistemas computacionales heterogéneos, las aplicaciones y el simulador utilizados en los experimentos realizados en la presente tesis. Entre los sistemas computacionales, se tiene a los proyectos: (i) DAS-4, de Holanda; (ii) Grid5000 de Francia y (iii) GridPP del Reino Unido. En las aplicaciones se tienen: (i) Montage; (ii) Cybershake; (iii) Epigenomics y (iv) Ligo. El simulador utilizado es el Simgrid. Todos ellos explicados minuciosamente en el capítulo. En el Capítulo 5 se realiza un análisis de las aplicaciones tomadas como referencia en la presente tesis. Tambien, se presenta una forma de diferenciar los tipos de aplicaciones existentes en la ejecución en ambiente heterogéneos y porque es importante tomar en cuenta las diferencias del tiempo de ejecución de cada tarea. En el Capítulo 6 se detallan las métricas que deben tomarse en consideración para evaluar un algoritmo de planicación. Posteriormente, se explica la metodología que debe tenerse en cuenta para seleccionar un algoritmo de planicación de acuerdo a las características tanto de la aplicación como el sistema computacional heterogéneo..

(23) 4. INTRODUCCIÓN. 1.3. En el Capítulo 7 se describen los dos algoritmos de planicación propuestos en el presente trabajo, tomando como referencia los algoritmos bien conocidos PEFT y CEFT. Finalmente, en el Capítulo 8 son expuestos las conclusiones del presente trabajo así como tambien las direcciones para continuar con el mismo en la sección de trabajos futuros. En los apéndices se encuentran: (i) un ejemplo de la especicación del sistema computacional heterogéneo Grid5000 (Apéndice A), se puede observar en el archivo que la especicación de las características para la simulación es muy detallada, considerando velocidad de cada nodo, ancho de banda, latencia, entre otros aspectos relevantes. (ii) Una lista de publicaciones elaboradas durante el doctorado (Apéndice B)..

(24) Capítulo 2. Marco Conceptual En este capítulo se presentarán conceptos necesarios para el correcto entendimiento de esta tesis. Aquí se dene el problema de la planicación de tareas dependientes contextualizandolo en torno a los sistemas computacionales heterogéneos.. 2.1. Planicación de Tareas El problema de planicación de tareas ha sido ampliamente estudiando en diferentes formas. +. en la literatura [CK88], [THW02], [CPC 03], [Bit10], [Bat10], [MA11], [Pin16], [NS17a]. Se dene a la planicación de tareas como la asignación de tareas a los elementos de procesamento (recursos computacionales) con el objetivo de que dicha asignación sea efectuada de forma eciente para minimizar el tiempo de ejecución de las aplicaciones. Desde otro punto de vista, el objetivo tambien es maximizar el uso de los recursos computacionales disponibles y minimizar los costos relativos a la comunicación, esto conlleva a minimizar el tiempo de nalización de las aplicaciones, tambien conocido como. Makespan.. El problema de. planicación de tareas a sido estudiando por varios investigadores, la taxonomía de clasicación mas aceptada en la literatura es mostrada en la Figura 2.1 [Dan05] [CK88]. En dicha clasicación, los métodos de planicación son divididos en local y global. La planicación local se reere al problema de asignación de tareas al processador local, esto signica, es aquel realizado normalmente por el sistema operativo. La planicación global se reere al problema de decidir sobre qué recursos ejecutar las tareas de una aplicación en un ambiente distribuido, por este motivo nos centraremos en el tipo de planicación global.. 2.1.1. Planicación Dinámica En la planicación dinámica generalmente es aplicada cuando es difícil estimar el costo de las aplicaciones, las tareas son ejecutadas en tiempo real o dinamicamente (. 5. online scheduling)..

(25) MARCO CONCEPTUAL. 6. Figura 2.1:. 2.1. Clasicación de las técnicas de planicación de tareas. Esquema adaptado de [CK88].. Estas asumen que se sabe muy poco,. a priori, acerca de las necesidades de los recursos de una tarea,. o del ambiente en el cual la misma será ejecutada. En la planicación dinámica, puede ser realizada la redistribución de las tareas a los procesadores durante a ejecución de la aplicación.. 2.1.2. Planicación Estática En la planicación estática, la asignación de tareas a los procesadores es realizada antes del início del programa. Así, la asignación de una aplicación es estática y una estimativa del costo computacional debe ser realizada con anticipación. Una de las principais ventajas del modelo estático es que es más fácil programar desde el punto de vista del planicador. La asignación de tareas es jada. a priori. y la estimativa de costo de la tarea tambien es simplicada. Cabe resaltar que. el término planicación estática en la literatura tiene el mismo signicado que planicación determinista [CK88]. En el caso de que se conozca toda la información sobre el estado del sistema, así como las necesidades de recursos de un proceso, se puede realizar una asignación óptima en función de algún criterio. Ejemplos de estas medidas de optimización son la minimización del tiempo total de nalización de las tareas, maximización de la utilización de recursos en el sistema o maximización del rendimiento del sistema. En el caso de que estos problemas sean computacionalmente inviables, se pueden intentar soluciones subóptimas. Dentro del ámbito de las soluciones subóptimas al problema de planicación, se pueden considerar dos categorías generales [AB14]:.

(26) PROBLEMA DE PLANIFICACIÓN DE TAREAS DEPENDIENTES. 2.2. 7. 2.1.2.1. Algoritmos de Aproximación En los cuales para llegar a una solución óptima y mejorarla se requiere un mayor número de iteraciones, el tipo de iteraciones depende del algoritmo, lo que implica que en este grupo se tengan soluciones computacionalmente costosas.. 2.1.2.2. Algoritmos Basados en Heuristicas Esta categoria se compone de tres subcategorias:. Clustering : esta técnica consiste en crear grupos de tareas (clusters. de tareas) que tienen de-. pendencia de datos entre sí. Esas tareas son asignadas al mismo recurso. Esta técnica es propuesta principalmente para sistemas homogéneos [AB14]. Existe algunos trabajos que utilizan esta técnica para sistemas heterogéneos [BFR04], pero dichas propuestas tienen limitaciones sistemas heterogéneos escalables.. Basado en duplicación :. esta técnica produce cortos. makespans,. pero tiene dos desventajas:. (i) los algoritmos poseen una complejidad computacional costosa, costo cúbico, en relación al número de tareas; (ii) y la ejecución duplicada de las tareas, lo que conlleva a un uso excesivo de energia. Esta desventaja debe evaluarse, no solamente por el uso de energia, sino tambien que en un entorno compartido, pocos procesadores estan disponibles para ejecutar aplicaciones concurrentes [AB14].. Listas : la técnica de planicación basada en listas produce planicaciones mas ecientes, sin comprometer el makespan y con una complejidad algoritmica generalmente cuadrática en relación al número de tareas [AB14].. El presente trabajo es enfocado al estudio y análisis de técnicas basadas en listas, tomando como referencia las ténicas con mayor númro en referencias bibliográcas y revelevancia en la comunidad académica.. 2.2. Problema de Planicación de Tareas Dependientes Una aplicación con tareas con dependencia es representada o modelada por un Grafo Acíclico Dirigido (DAG,. Directed Acyclic Graph). En la literatura se utiliza la siguiente formalización. al problema de planicación de tareas. Sea,. G = (V, E),. un grafo acíclico dirigido, donde:. V. es el conjunto de tareas. v;. E. es el conjunto de relaciones de precedencia entre dichas tareas..

(27) 8. MARCO CONCEPTUAL. 2.2. En este contexto cada arista tanto, la tarea. ti. (i, j) ∈ E. representa una restrición de precedencia, por lo. debe terminar su ejecución antes que la tarea. La tarea que no tiene antecesores es llamada hijos es llamada. tarea de salida.. tj. comience [THW02].. tarea de entrada. y la tarea que no tiene. Los algoritmos de planicación de tareas generalmente requieren. solamente una tarea de entrada y una tarea de salida. En el caso de existir mas de una tarea de salida, estas serán conectadas con costo de comunicación igual a cero para una pseudotarea de salida, tambien con costo de computación cero. Também, consideramos lo seguiente:. R. de. r. un conjunto recursos heterogeneos conectados;. Dados v ×v una matriz de comunicación de datos, donde dadosi,k costo necesario para ir desde la tarea. W. es una matriz. v×r. ti. para la tarea. tk ;. de costo de computación, en la cual cada. ejecución estimado para completar la tarea. ti. es el costo de comunicación,. en el recurso. wi,j. representa el tiempo de. rj .. Antes de la planicación, las tareas generalmente son etiquetadas con la media de sus costos de ejecución. La media del costo de ejecución de una tarea. wi =. r X. ti. es representada en la Ecuación 2.1:. wi,j /r. (2.1). j=1. B. de. ci,k. es. El costo de transferir datos de un recurso para otro es representado por la matriz tamaño. r × r.. La Ecuación 2.2 dene el costo de comunicación de la arista. el costo para transferir datos de la tarea. ti. para la tarea. tk ,. (i, k),. donde. asignadas a los recursos. rm. y. rn ,. respectivamente.. ci,k = Lm +. En el caso que las tareas. ti. y. tk. dadosi,k Bm,n. (2.2). sean asignadas al mismo recurso, el valor de. ci,k. será. cero, pues el costo da comunicación dentro de un mismo recurso es despreciable en comparación con el costo de comunicación entre recursos. Antes de la planicación, la media de los costos de comunicación, denida por la Ecuación 2.3 es utilizada para etiquetar las aristas.. ci,k = L +. donde,. B. dadosi,k B. representa la media del costo para transferir datos entre recursos y. (2.3). L. representa la media. de la latencia de los recursos. Tambien es necesario denir las funciones. earliest execution start time EST (ti , rj ) y earliest.

(28) PROBLEMA DE PLANIFICACIÓN DE TAREAS DEPENDIENTES. 2.2. 9. execution nish time EF T (ti , rj ), que son derivados de una planicación parcial. Para la tarea de entrada. tentrada ,. EST. el valor de. es:. EST (tentrada , rj ) = 0 Los valores de. EF T. y de. EST. (2.4). de las otras tareas son calculados recursivamente, iniciando. en la tarea de entrada, como es mostrado en las ecuaciones 2.5 y 2.6, respectivamente. Para calcular el. EF T. de una tarea. ti ,. todas las tareas predecesoras de la tarea. n EST (ti , rj ) = máx avail[j],. máx. ti. deben haber sido planicadas.. o (AF T (tm ) + cm,i ). (2.5). tm ∈pred(ti ). EF T (ti , rj ) = wi,j + EST (ti , rj ) donde. prec(ti ). (2.6). es el conjunto de tareas predecesoras inmediatas de la tarea. el tiempo en que el recurso. rj. ti. y. avail[j]. representa. estará disponible para ejecutar una tarea, despues de terminar de. ejecutar las tareas actualmente planicadas en el mismo.. start time y el earliest nish time de tm sobre el recurso rj es igual al tiempo de início actual (actual start time ) AST (tm ) y el tiempo de nalización actual (actual nish time ) AF T (tm ) de la tarea tm , respectivamente. Despues de que una tarea tm es asignada a un recurso. rj , el earliest. Despues de que todas las tareas del grafo fueron planicadas, la longitud de la planicación (esto es, el tiempo de nalización total) será el tiempo de nalización de la tarea de salida tsaida , también conocido como. makespan, el cual está representada por la ecuación 2.11. makespan = AF T (tsaida ). (2.7). 2.2.1. Atributos del Grafo usado por los Algoritmos de Planicación Las tareas son ordenadas en los algoritmos usando sus prioridades de planicación, que son basados en la clasicación de las variables La variable. ranku. de una tarea. ti. o. ranku. y. downward rank. o. rankd .. es recursivamente denida por la Ecuación 2.8.. ranku (ti ) = wi +. donde,. upward rank. máx (ci,j + ranku (tj )). (2.8). succ(ti ) es el conjunto de sucesores inmediatos de la tarea ti . ci,j. es el costo de comunicación. medio de la arista. (i, j),. y. wi. tj ∈succ(ti ). es o costo de computación medio de la tarea. ti .. Cada valor. ranku. es. calculado recursivamente recorriendo el grafo de tareas de atrás para adelante, a partir de la tarea.

(29) MARCO CONCEPTUAL. 10. 2.2. de salida. Para la tarea de salida. tsaida ,. el valor de. ranku. es igual a:. ranku (tts aida ) = wsaida La variable. ranku (ti ). (2.9). representa la longitud del camino crítico desde la tarea. tarea de salida, incluyendo el costo de computación de la tarea De la misma forma, la variable. rankd. para la. ti .. ti. de una tarea. ti. es recursivamente denida por la. Ecuación 2.10:. rankd (ti ) =. donde. pred(ti ). máx. tj ∈pred(ti ). n o rankd (tj ) + wj + cj,i. es el conjunto de tareas predecesoras inmediatas de. ti .. (2.10). Las variables. rankd. son. calculados recursivamente recorriendo el grafo de tareas para adelante, comenzando en la tarea de entrada del grafo. Para la tarea de entrada La variable. ti ,. rankd (ti ). tentrada ,. el valor. rankd. es igual a cero.. es la distancia mas larga desde la tarea de entrada hasta la tarea de. excluyendo el costo de computación de la tarea en sí [THW02].. earliest start time y el earliest nish time de tm sobre el recurso rj es igual al tiempo de início actual (actual start time ) AST (tm ) y el tiempo de nalización actual (actual nish time ) AF T (tm ) de la tarea tm , respectivamente. Despues que una tarea. tm. es asignada a un recurso. rj ,. el. Despues de que todas las tareas del grafo fueron planicadas, la longitud de la planicación (o sea, el tiempo de conclusión total) será el tempo de nalización de la tarea de salida la Ecuación 2.11 es denido el. tsaida .. En. makespan en el caso de tener una tarea de salida. makespan = AF T (tsaida ). (2.11).

(30) Capítulo 3. Estado del Arte Con el objetivo de contextualizar las contribuciones de la presente tesis, fueron analisados diferentes algoritmos de planicación. Los trabajos relacionados a la presente tesis son trabajos sobre planicación de tareas basadas en lista, dado a que esta técnica produce planicaciones mas ecientes sin comprometer el. makespan y con una complejidad algoritmica generalmente cuadrática. en relación al número de tareas [AB14].. 3.1. Algoritmo HEFT El algoritmo de planicación nica de. list scheduling. Heterogeneous Earliest Finish Time. [THW02] utiliza la téc-. para planicar tareas dependientes en sistemas heterogéneos. El algoritmo. HEFT es bien conocido por obtener buenos resultados y baja complejidad algorítmica. Este algoritmo posee dos fases, la fase de asignar prioridad en las tareas y la fase de selección de recursos para las tareas en orden decreciente de las prioridades; posteriormente planica cada tarea seleccionada en el recurso que minimiza el tiempo de nalización de la tarea.. Priorización de tareas: en esta fase es calculada la prioridad de esa prioridad es igual a la variable. ranku ,. de cada tarea. El valor. cuyo cálculo es basado en la media de los costos de. computación y los costos de comunicación. Despues de calculadas las prioridades de cada tarea, se genera una lista de las tareas en orden decreciente. El orden decreciente de valores. ranku proporciona. un orden topológico de las tareas, que es un orden lineal que preserva las restricciones de precedencia.. Selección de recursos: asignación de una tarea. ti. en la fase de selección de recursos es considerada la posible. a un recurso. rj. time ). Aquí, el planicador seleciona la tarea ti recurso. r∈R. son calculados los tiempos. asignada al recurso. rj. que minimiza el. earliest nish. que minimice su tiempo de nalización (. EST. EF T. de la lista con mayor prioridad, despues para cada y. EF T. de la tarea. de cada tarea. ti ,. y nalmente la tarea es. ti .. El pseudocódigo del algoritmo HEFT es representado en el algoritmo 3.1.. 11.

(31) 12. ESTADO DEL ARTE. 3.2. Algoritmo 3.1 Algoritmo HEFT [THW02]. 1:. Calcular el costo de computación de las tareas y el costo de comunicación de las aristas con los valores de las medias.. 2:. Calcular. ranku. para todas las tareas recorriendo el grafo, comenzando en la tarea de salida. tasksaida . 3:. Ordenar las tareas en una lista de planicación basado en el orden decreciente de los valores. ranku .. 4: 5: 6: 7: 8: 9: 10:. while (Existen tareas no planicadas en la lista) do Selecionar la primera tarea. for cada recurso rj end for end while. ti ,. Calcular el valor. Asignar la tarea. ti. de la lista para la planicación.. en el conjunto de recursos. EF T (ti , rj ). al recurso. rj. (rj ∈ R). do. usando la técnica. que minimiza el. EF T. scheduling list.. de la tarea. ti .. 3.2. Algoritmo Lookahead El algoritmo conocido con el nombre de Heft con. Lookahead, o simplemente Lookahead [BSM10]. es una propuesta basada en el algoritmo HEFT. En dicho algoritmo al momento de seleccionar tareas, la toma de decición no se basa unicamente en dicha tarea, sino que tambien analisa el impacto en la planicación sobre las tareas sucesoras al elegirla. Los autores consideran cuatro diferentes posibilidades para incrementar al algoritmo HEFT información de. Lookahead [Bit10]:. Lookahead: donde el recurso releccionado para la tarea t es aquella que minimiza el máximo EF T. entre todos los sucesores de. t,. en todos los recursos donde. Lookahead con promedio ponderado de EF T : minimiza el promedio ponderado de los es ponderado usando el. ranku. EF T s. t. podría ser asignada. el recurso seleccionado para de todos los sucesores de. t,. t. es aquel que. donde el promedio. de cada tarea.. Alteración de la lista de prioridades: dado que las primeras dos tareas no planicadas y listas son independientes, ellas son individualmente consideradas, en turnos, para la asignación haciendo uso de la información de lokkahead de los sucesores de ambas. La tarea que seleccionada primero cuando el máximo. EF T. fue minimizado es la tarea que será planicada.. Alteración de la lista de prioridades con promerio ponderado de EF T : la misma alteración de la lista de prioridades, pero en este caso utilizando el promedio ponderado de los los sucesores en lugar de unicamente el. EF T s. de. EF T .. 3.2.1. Lookahead En su trabajo [BSM10] los autores presentan dos implementaciones de las cuatro posibilidades describas anteriormente. Para esto, utilizan la descripción del algoritmo HEFT, incluyendo el cálculo del atributo de prioridad. ranku. para cada tarea. ti ,. denido en la ecuación 2.8..

(32) ALGORITMO LOOKAHEAD. 3.3. Se tiene que tomar en cuenta que la versión de HEFT con que precisan ser tratados. Sea. t. 13. lookahead trae algunos problemas. la tarea con mayor prioridad lista para ser asignada, entonces. t. es. analisada en cada recurso y sus sucesores son asignados usando HEFT para calcular sus tiempos estimados de término de acuerdo con el recurso donde los sucesores de. t. para calcular el. EF T. t,. t es asignado. Sin embargo, algunos (o todos). pueden no estar listos inmediatamente despues la asignación de de los sucesores de. t. t.. Por lo tanto,. se considera solamente los precedesores asignados y. ignorando otros atrasos que puedan surgir debido a algun predecesor no asignado. Entonces, la. estimación del tiempo de término calculada es, de cierta forma, optimista. Otro aspecto importante es que existen varias formas de seleccionar un recurso para una tarea. t. basado en estimaciones de. tiempos de término de sus sucesores. El trabajo considera dos:. 1. Seleccionar el recurso que minimiza el máximo donde. t. EF T. es analisada. En otras palabras, signica que. de los sucesores de. t. t. entre los recursos. será asignada al recurso que ofresca el. menor tiempo de ejecución para todos los sucesores de. t,. los cuales fueron asignados usando. HEFT. 2. Seleccionar el recurso que minimice el promedio ponderado sucesores de. t.. El motivo para usar el promedio ponderado es que. baja clasicación dada por el de una tarea. t. ranku. es el. En la versión. de los sucesores con. Wavg. es calculada de la siguiente forma:. Wavgt = L. EF T. reciben un peso mas bajo. El promedio ponderado. P. donde. EF T , denominado Wavg , para los. tj ∈L (ranku (tj ). P. × EF Ttj ). tj ∈L ranku (tj ). ,. (3.1). conjunto de lookahead, conteniendo las tareas que son usadas en el lookahead. de lookahead descrita, t es asignada en el recurso que ofresca el menor EF T. para si mismo.. La versión basada en la minimización del. EF T. máximo es mostrada en el Algoritmo 3.2.. La versión que utiliza el promedio ponderado requiere una modicación en la el. Wavgt. para. EF Tri .. linea8. para atribuir. Algo importante es la complejidad algorítmica del tiempo de ejecución del. lookahead aumenta la complejidad del algoritmo HEFT por un factor de r × c, donde número de recursos y c es el número promedio de hijos por tarea. Realizar un lookahead. algoritmo con. r. es el. es factible, sin embargo, incrementa la complejidad del algoritmo. En los experimentos mostrados en [BSM10] y [Bit10], muestran que no hay mejora signicativa en los resultados con el algoritmo presentado si se utiliza. lookaheads con profundidad 2 o 3.. En los trabajos [BSM10] y [Bit10] se explica la segunda técnica, el algoritmo HEFT con. lookahead y alteración en las prioridades para mayor detalle..

(33) 14. ESTADO DEL ARTE. 3.3. Algoritmo 3.2 HEFT con lookahead [BSM10] y [Bit10]. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:. Ordenar las tareas usando. ranku. while (Existen tareas no planicadas en la lista) do ← tarea no planicada con mayor ranku ← sucesores de t for all cada recurso (rj ∈ R) do planica t en ri planica todas las tareas de L usando HEFT EF Tri ← máximo EF T entre las tareas en L. t. L. end for end while. Retornar la planicación hasta el estado anterior al inicio de este bucle. Asignar la tarea. t. al recurso. ri. tal que. EF Tri ≤ EF Trk ∀rk ∈ R. 3.3. Algoritmo CEFT En su trabajo [Kha12] proponen al algoritmo denominado Constrained Earliest Finish Time (CEFT), algoritmo para planicación de tareas en sistemas heterogéneos usando el concepto. constrained critical paths,. de caminos críticos restringidos (. denominado CCP en adelante). Segun. los autores, el algoritmo toma en cuenta una visión más amplia del grafo en entrada. Además, con los CPP generados estaticamente se puede realizar la planicación de tareas con mayor eciencia que otras propuestas. El camino crítico es el camino mas largo desde el nodo de inicio hasta el nodo nal de todo el grafo que representa a la aplicación. La longitud de un camino es calculado como el promedio de la suma de los costos de ejecución y costos de comunicación de todo el camino. Intuitivamente, una efectiva planicación será producida cuando la tarea que pertenece al camino crítico es planicada primero. Sin embargo, todas las tareas del camino crítico podrían no estar listas para ser planicadas. Siguiendo la idea plasmada anteriormente, una tarea en la cual todos sus predecesores han sido planicados es denominada. tarea lista. La colección de tareas que comprende solo tareas listas. para ser planicadas formarán un camino crítico restringido o tambien denominado CCP. Cada CCP puede ser asignado a un procesador basado en el tiempo de término de sus tareas. Siguiendo el orden de la ejecución, una tarea es considerada lista para ser planicada cuando sus precedesores han sido planicados. Para la planicación, el grafo se recorre inicialmente y se encuentran los caminos críticos basado en los costos promedio de ejecución y los costos de comunicación. El grafo posteriormente es podado de los nodos que constituyen un camino crítico. Los recorridos posteriores del grafo podado producirán los caminos críticos restantes. Mientras los nodos del grafo de tareas son eliminanados, se agregan pseudo-aristas al grafo, de modo que los nodos del grafo se mantengan conectados. Para un nodo que se haya convertido en un nodo libre (que no existe en ningun camino desde el nodo de inicio hasta el nodo de salida) después de la poda, se agrega una pseudo-arista al nodo de inicio si no tiene predecesores. De forma similar, se agrega una pseudo-arista al nodo de salida si el nodo no tiene sucesores. Posteriormente, los CCP se forman seleccionando nodos listos en los caminos críticas en una forma. round-robin [Kha12]..

(34) ALGORITMO CEFT. 3.3. 15. Para entender mejor el algoritmo CEFT, los autores en el trabajo [Kha12] especican grácamente el proceder del algoritmo. Considere el grafo con los nodos. A, B, C, D, E,. y. F,. el cual. es mostrado en la Figura 3.1. El primer camino crítico calculado a partir de los costos de ejecución y costos de comunicación, desde el nodo. start hasta el nodo exit contiene a los nodos A, B, y F . Estos. nodos serán podados (eliminados) del grafo junto con las aristas de los mismos. Posteriormente. start hasta el nodo C ; (ii) desde el nodo C hasta el nodo exit; y (iii) desde el nodo E hasta el nodo exit. Esto asegura que para cada nodo siempre se tenga el nodo start y el nodo exit. Resultado de este proceso. pseudo-aristas son adicionadas al grafo podado de la siguiente forma: (i) desde el nodo. se muestra en la Figura 3.2a.. Figura 3.1: Ejemplo de un grafo: nodos de A - F etiquetados con el promedio del costo de ejecución y aristas etiquetadas con los costos de comunicación. Esquema adaptado de [Kha12].. Grafo despues de la poda del segundo camino crítico D − E (b). Grafo despues de la poda del primer camino crítico A − B − F. (a). Figura 3.2:. Esquema del grafo durante la generación de CCPs. Esquema adaptado de [Kha12].. Continuando de la misma forma, los nodos. D. y. E. del segundo camino crítico serán re-. movidos para producir el grafo mostrado en la Figura 3.2b. El tercer camino crítico, por lo tanto, unicamente tendrá al nodo. C..

(35) 16. ESTADO DEL ARTE Tabla 3.1:. 3.3. Caminos críticos encontrados usando el promedio de costos de ejecución. CRITICAL PATHS A-B-C D-E C. Tabla 3.2:. CCPs correspondientes a los caminos críticos. CONSTRAINED CRITICAL PATHS A-B D-E C F. Las Tablas 3.1 y 3.2 muestran el camino crítico y el CCP encontrado a partir del ejemplo. El primer CCP contiene los nodos. AyB. porque dichos nodos pueden comenzar la ejecución. Desde. que no exista nodos en el camino crítico, el segundo camino crítico es usado para producir el segundo CCP, el cual contiene a los nodos. D y E . De forma similar, el tercer CCP contiene al nodo C. a partir del tercer camino crítico. Continuando en una forma round-robin, se obtiene el nodo. tomado. E. para. producir el cuarto CCP. Para todas las tareas en un CCP, un procesador es asignado. Considerar a todas las tareas de un CCP no solo reduce el costo de comunicación, sino que tambien ofrece una visión amplia del grafo de tareas. Por esta razon, se produce mejores resultados en la planicación en comparación con otros enfoques de planicación para sistemas heterogeneos.. 3.3.1. Constrained Earliest Finish Time [Kha12] Inicialmente, se encontrarán los caminos críticos usando el Algoritmo 3.3. Usando los nodos del grafo en orden topológico,. VT ,. la longitud del camino crítico es calculado en las lineas. 5 − 22.. De forma descendente, la suma del costo de ejecución promedio (AEC ) es calculada para cada nodo. Los nodos a lo largo del camino en el grafo, que producen el valor más grande de la suma de los valores de. AEC. y el costo de comunicación forman el camino crítico. CPcount .. También se. mantiene una lista de predecesores para realizar un seguimiento de los nodos en el camino crítico. Si dos caminos producen la misma longitud, el último camino (en el cruce topológico de los nodos) se selecciona como camino crítico. El grafo es podado de los nodos pertenecientes al camino crítico (lineas. 30−32). Las pseudo-aristas se agregan posteriormente al grafo de modo que siempre haya un. camino desde el nodo. 33 − 39).. start hasta el nodo exit al atravesar cualquiera de los nodos del grafo (lineas. El procedimiento de búsqueda de caminos críticos se itera hasta que todos los nodos de. tareas hayan sido procesados. El Algoritmo de planicación CEFT 3.4 funciona en dos fases. En la primera fase, se encuentran los CCP que son representadas por colas de tareas que están listas para ser planicadas. Al principio, los caminos críticos se generan utilizando el método. gen_CP () dado en el Algoritmo 3.3.. Los caminos críticos se recorren y los nodos listos se insertan en las colas CCP. Qj , ∀j = 1, 2, . . . |Q|..

(36) ALGORITMO CEFT. 3.3. Algoritmo 3.3 Algoritmo gen_CP() para generar caminos críticos [Kha12]. 1: // Sea Gtmp contiene vértices VT en orden topológico y 2: count = 0; Gtmp = (VT , E) 3: while (Existan tareas en Gtmp ) do 4: // Encontrar la longitud del camino crítico 5: Inicializar L(vi ) = 0, para cada vi ∈ VT 6: for cada vi ∈ VT do 7: for cada arista vi → wj do 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:. P|P |. aristas. E. Tp (w ). AEC(wj ) = k=1|P |k j // Sea Π(vi , wj ) el peso de la arista vi → wj if L(wj ) ≤ L(vi ) + AEC(wj ) + Π(vi , wj ) then L(wj ) = L(vi ) + AEC(wj ) + Π(vi , wj ) P redC(wj ) = vi. end for. end for. end if. loc = 1, maxL = 0 for k = 1 hasta |VT | do if L(vk ) ≥ maxL then maxL = L(vk ). end for. end if. loc = k. Sea node = Vloc // último nodo del camino crítico // Adiciona nodos al camino crítico actual CPcount CPcount = {Vloc } while node 6= start do node = P redC(node) CPcount = CPcount ∪ node. end while. // Podar el grafo y adicionar pseudo-aristas G0 = (CPcount , ECP ) // son las aristas de los nodos en el CPcount Gtmp = Gtmp − G0 for cada uk ∈ CPcount do if |P red(uk )| == 0 then Gtmp = Gtmp ∪ (null, start → uk )) else if |Succ(uk )| == 0 then Gtmp = Gtmp ∪ (null, uk → exit)). end for end while return. CP. end if. count+ = 1. 17.

(37) 18. ESTADO DEL ARTE. 3.4. Un nodo listo en un camino crítico es el que tiene todos sus predecesores procesados. Si no hay más nodos listos en un camino crítico, el CCP toma nodos del siguiente camino crítico siguiendo un recorrido round-robin de los caminos críticos. En la segunda fase, los CCPs son asignados a los procesadores. Todas las colas basadas en CCP que contienen tareas listas para la planicación, se recorren en orden (linea de cada nodo. w,. mostrado en la ecuación 2.5, con respecto a cada procesador. Correspondiente a un predecesor del nodo. w,. el valor de. inicio y el tiempo de disponibilidad del recurso. EST. 13).. Pr. La. EST. es calculado.. es el máximo posible del tiempo de. pr .. Algoritmo 3.4 Algoritmo para planicación CEFT [Kha12]. 1: // Fase 1: Encontrar los constrained critical paths (CCPs) 2: // encontrar el conjunto de caminos críticos C 3: C = gen_CP () 4: j = 1 5: for i = 1 hasta |C| do 6: while existan nodos listos en Ci do 7: insertar el nodo listo Vk. Queue. en la Cola. (Qj ) //. constrained critical path. 8: end while 9: j ←j+1 10: i ← i %|C| 11: end for 12: // Fase 2: Asignar y planicar tareas 13: for j = {1, 2, . . . , |Q|} do 14: for cada procesador Pr ∈ P do 15: for cada nodo w ∈ Qj do 16: encontrar el EST de la tarea w , explicado en 2.5 17: encontrar el EF T de la tarea w , explicado en 2.6 18: end for 19: encontrar el tiempo de nalización del camino crítico restringidos Qj. end for. 20: 21: 22: 23:. Epr (Qj ) = max(EF T (w)∀w∈Qj ). Asignar al procesador el camino crítico restrintigo. end for. Sea. Px. El cálculo del. Qj. que minimice el valor. Epr (Qj ). el procesador asignado, actualizar el tiempo de nalización actual. EF T. es motrado en la ecuación 2.6. Como un CCP puede contener vários. CCP. nodos el tiempo de nalización del utilizando el mismo procesador. Pr .. se le asignarán las tareas (linea. 21).. es el mayor valor de los. EF T s. de las tareas del CCP. El procesador que minimice el tiempo de nalización del CCP Posteriormente, el actual tiempo de nalización de las tareas. se actualiza y el procesador seleccionado continua para todos los CCPs encontrados. La complejidad del algoritmo CEFT para un grafo de tareas con. n. nodos y. m. aristas es. O(n×|P |(n+m+degin )), donde |P | es el número de procesadores considerados para la planicación y. degin. representa el grado del grafo de tareas..

(38) ALGORITMO PEFT. 3.4. 19. 3.4. Algoritmo PEFT El algoritmo. Predict Earliest Finish Time,. PEFT [AB14], tiene 2 fases: (i) la fase de. priorización de tareas para calcular prioridades para las tareas, y (ii) una fase de selección de procesadores para seleccionar el mejor procesador para ejecutar la tarea actual. La novedad del algoritmo propuesto es su capacidad para pronosticar mediante el cálculo. optimistic cost table, OCT) mientras se mantiene la complejidad. de una tabla de costos optimista (. algoritmica en tiempo cuadrático, como se explica en la siguiente sección.. 3.4.1. Tabla de Costos Optimista - OCT El algoritmo PEFT se basa en el cálculo de una tabla de costos optimista en la que se basan la prioridad de la tarea y la selección del procesador. La OCT es una matriz en la que las las indican el número de tareas y las columnas indican el número de procesadores, donde cada elemento. OCT (ti , pk ). indica el máximo de los caminos más cortos desde las tareas sucesoras de. hacia el nodo de salida, teniendo en cuenta que el procesador El valor OCT de la tarea. ti. en el procesador. pk. pk. es seleccionado para la tarea. ti ti .. se dene recursivamente mediante la ecuación 3.2. atravesando el DAG desde la tarea de salida hasta la tarea de entrada:. i h OCT (ti , pk ) = maxtj ∈succ(ti ) minpw ∈P {OCT (tj , pw ) + w(tj , pw ) + ci,j } ci,j = 0 donde,. ci,j. por el procesador. pw . OCT (ti , pk ) tarea. ti. si. pw = pk ,. es el promedio del costo de comunicación, el cual es cero si. pk ,. y. w(tj , pw ). (3.2). es el tiempo de ejecución de la tarea. tj. tj. es evaluado. sobre el procesador. representa el tiempo máximo de procesamiento optimista de los sucesores de la. porque considera que las tareas sucesoras son ejecutadas en el procesador que minimiza. el tiempo de procesamiento (comunicaciones y ejecución) independientemente de la disponibilidad del procesador, dado que OCT se calcula antes de comenzar la planicación. Debido a que se dene recursivamente y los sucesores ya tienen un costo optimista hacia el nodo de salida, solo se considera el primer nivel de sucesores. Para la tarea de salida, la procesadores. OCT (nexit , pk ) = 0. para todos los. pk ∈ P .. 3.4.2. Fase de Priorización de Tareas Para denir la prioridad de una tarea, se calcula el promedio OCT para cada tarea, el cual es denida en la ecuación 3.3.. PP rankoct (ti ) =. k=1 OCT (ti , pk ). P. (3.3).

(39) ESTADO DEL ARTE. 20. Comparando. 3.5. ranku. y. rankoct ,. se puede ver que. ranku. usa el costo promedio de compu-. tación para cada tarea y también acumula los costos descendientes máximos de las tareas descendientes hasta el nodo de salida. Por el contrario, el. rankoct. es un promedio sobre un conjunto de. valores que se calcularon con el costo de cada tarea en cada procesador.. 3.4.3. Fase de Selección de Procesadores Para seleccionar un procesador para una tarea, se calcula el suma a. EF T. EF T. optimista. (OEF T ),. que. el tiempo de computación del camino más largo hacia el nodo de salida. De esta forma,. se hace una predicción en la selección del procesador; quizás no se llegue a seleccionar el procesador que ofrece el tiempo de nalización más temprano para la tarea actual, pero esperamos lograr un tiempo de nalización más corto para las tareas en los próximos pasos. El objetivo es garantizar que las tareas futuras nalicen antes, que es el objetivo de la tabla. OCT .. El. OEF T. se dene en la. ecuación 3.4.. OEF T (ti , pj ) = EF T (ti , pj ) + OCT (ti , pj ). (3.4). 3.4.4. Predict Earliest Finish Time El algoritmo PEFT 3.5 comienza por calcular la tabla OCT y. rankoct. en la línea. 1.. Luego. crea una lista lista vacía y coloca la tarea de entrada en la parte superior de la lista. En el ciclo while, de las líneas. 4. a. 10,. en cada iteración, el algoritmo planicará la tarea con valor más alto de. rankoct .. Algoritmo 3.5 Algoritmo PEFT [AB14]. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:. rankoct para todas las tareas ready − list y colocar nentry como. Calcular la table OCT y Crear una lista vacia. while ready − list no este vacia do ni ←. tarea con mayor. for all procesador pj. rankoct. de la lista. ready − list P. en el conjunto de procesadores. do. calcular el valor EF T (ni , pj ) usando la politica OEF T (ni , pj ) = EF T (ni , pj ) + OCT (ni , pj ). end for. ni al procesador pj ready − list. Asignar la tarea. end while. tarea inicial. Actualizar. que minimice el. OEF T. basada en inserción. de la tarea. ni. Después seleccionar la tarea para la planicación, el algoritmo PEFT calcula los valores de. OEF T. para la tarea en todos los procesadores. En la fase de selección de procesadores, el objetivo. es garantizar que las tareas futuras nalicen antes, pero en lugar de analizar todas las tareas hasta el nal, para reducir la complejidad se utiliza la tabla OCT, que incorpora esa información. En la línea. ni .. 9,. el procesador. pj. que alcanza el mínimo. OEF T (ni , pj ). es seleccionado para ejecutar la tarea.

(40) ALGORITMO IPEFT. 3.5. 21. 3.5. Algoritmo iPEFT +. En el trabajo [ZQW 17] se propone el algoritmo llamado: predicción del tiempo mas. Improved Predict Earliest Finish Time, iPEFT). Este algoritmo calcula las prioridades. temprano, (. de las tareas con una tabla de costos pesimista, implementa la característica de predicción con una tabla de costos de nodo crítico. Similar a los anteriores algoritmos, el algoritmo iPEFT consta de dos fases: la priorización de las tareas y la selección de los procesadores. En la primera fase, a cada tarea se le asigna una prioridad basada en la longitud del camino mas largo desde la tarea actual hasta la tarea de salida, el cálculo de dicha longitud es badado en la media del costo de ejecución de la tarea actual y la tabla de costos pesimista. En la segunda fase, la selección del procesador para la tarea actual, basado en el cálculo del valor. vi. es. CN P (vi ), el procesador del nodo crítico (mostrado en la ecuación 3.5);. y la tabla de costos de los nodos críticos (CNCT), cuya cálculo es detalladamente explicado en el. +. artículo [ZQW 17]..  true, CN P (vi ) = f alse,. if. ∃vj ∈ succ(vi ), vj esCN yvi noesCN. otherwise. (3.5).

(41) 22. ESTADO DEL ARTE. 3.5.

(42) Capítulo 4. Infraestructura Heterogénea, Aplicaciones DAGs y Simulador En este capítulo se presentarán la infraestructura heterogénea utilizada en los experimentos, las aplicaciones, un análisis de las aplicaciones y el simulador.. 4.1. Infraestructura Heterogénea Existen diversos tipos de infraestructura heterogénea, entre ellos los centros de datos para uso exclusivo de investigación, así como tambien los diferentes centros de datos de empresas como Google, Facebook, entre otros. Diferentes lugares en el mundo poseen estos centros para uso exclusivo o no, los mismo poseen entre sus componentes diferentes arquitecturas en procesamiento e interconexión, formadas por múltiples nodos compuestos por. clusters, computadores personales,. servidores, supercomputadores entre otros. Cada infraestructura puede poseer nodos homogéneos o heterogéneos, tanto en. hardware como en software.. Para intereses de la presente tesis, existen infraestructuras con pocas restriciones en el uso. Estas infraestructuras generalmente son usadas para investigaciones en comunicación de. softwares,. computación paralela, planicación, aplicaciones paralelas y aplicaciones distribuídas. Actualmente, esas plataformas se encuentran disponibles para simulación. Este gran aporte fue dado por el proyecto. SimGrid, sobre el cual es posible ejecutar simulaciones con características semejantes a la. infraestructura real [FQS08].. 4.1.1. Proyecto DAS-4 El proyecto por cinco 1. Distributed ASCI Supercomputer 4 (DAS-4)1 es una infraestructura compuesta. clusters heterogéneos geogracamente distribuídos en el país de Holanda, desarrollado por. http://www.cs.vu.nl/das4/, último acceso el 08 de junio de 2017.. 23.

(43) INFRAESTRUCTURA HETEROGÉNEA, APLICACIONES DAGS Y SIMULADOR. 24. 4.1. Advanced School for Computing and Imaging (ASCI)2 . Inicialmente, el proyecto fue denominado + DAS [BBH 00], compuesto por cuatro clusters homogéneos, distribuidos en diferentes regiones y. la. proyectado para realizar investigación en aplicaciones paralelas y distribuidas.. The Netherlands Organization for Scientic Research (NWO/NCF), por el proyecto the Virtual Laboratory for e-Science (VL-e), por uniEl proyecto DAS-4 es nanciado por la fundación. versidades y por organizaciones. El objetivo del proyecto es proveer a los investigadores del ASCI una infraestructura con gran poder computacional, principalmente enfocado en temas de investigación que abarquen computación paralela y distribuida, computación grid y análisis de contenido multimedia en larga escala. Las instituciones que estan directamente envueltas en el proyecto son las siguientes:. Universidad de Vrije, Amsterdam (VU); Universidad de Leiden (LU); Universidad de Amsterdam (UvA); Universidad Tecnológica Delft (TUD); The MultimediaN Consortium (UvA-MN).. 4.1.1.1. Arquitectura El proyecto DAS-3 posee una interconexión entre los nodos basada en bra óptica, alcanzando una gran velocidad en la interconexión. Es compuesto por aproximadamente 200 nodos, entre los cinco. clusters localizados en cada una de las instituciones. En comparación con versiones anteriores, DAS, DAS-2 y DAS-3, el proyecto DAS-4 posee. nodos heterogéneos y la interconexión entre cada nodo usa una tecnología de red llamada. Band. 3. . La tecnología. InniBand ofrece interconexiones de alta velocidad y baja latencia.. Inni-. En la Figura 4.1 es mostrado un esquema de la arquitectura del proyecto DAS-4, en la. clusters. Este esquema es una adaptación de la especicación generada en 4 el proyecto The Platform Description Archive (PDA) .. cual se tienen los cinco. En la Tabla 4.1 son presentadas las características de cada nodo, poder de procesamento y ancho de banda, por otro lado, la velocidad de conexión entre cada nodo en media es esa alta velocidad es produto del uso de la tecnología. 1, 00E +011b/s,. InniBand en la interconexión entre los nodos. de la grid. Estas informaciones fueron usadas para el modelamiento de esta arquitectura.. http://www.asci.tudelft.nl/, último acceso el 08 de junio de 2017. http://www.mellanox.com/, último acceso el 08 de junio de 2017. 4 http://pda.gforge.inria.fr/, último acceso el 08 de junio de 2017. 2 3.

(44) INFRAESTRUCTURA HETEROGÉNEA. 4.1. Figura 4.1:. Band.. 25. Arquitectura del proyecto DAS-4. Cinco instituciones conectadas usando la tecnología Inni-. Cluster. Nodes Type. Speed. Memory Storage Network. VU. 74. dual quad-core. 2.4 GHz. 24 GB. 30 TB. IB and GbE. LU. 16. dual quad-core. 2.4 GHz. 48 GB. 50 TB. IB and GbE. UvA. 16. dual quad-core. 2.4 GHz. 24 GB. 30 TB. IB and GbE. TUD. 32. dual quad-core. 2.4 GHz. 24 GB. 18 TB. IB and GbE. UvA-MN. 36. dual quad-core. 2.4 GHz. 24 GB. 30 TB. IB and GbE. ASTRON. 24. dual quad-core. 2.4 GHz. 24 GB. 24 TB. IB and GbE. Tabla 4.1: Características de la arquitectura DAS-4. El total de nodos es 200 aproximadamente. La media del poder computacional es 2, 40GF lops/s.. 4.1.2. EGEE Enabling Grids for E-sciencE). El proyecto EGEE (. ya fue concluido en abril de 2010,. dejando un gran aporte en la investigación e innovación a través de Europa y alrededor del mundo. La gran infraestructura de computación y de trabajo continuado, comenzó en el proyecto europeo. DataGrid en el año 2001, continuando a través de tres fases sucesivas de proyecto: EGEE-I, II e III (2004-2010). El proyecto EGEE representó la mayor infraestructura de computación grid a nivel mun-.

(45) INFRAESTRUCTURA HETEROGÉNEA, APLICACIONES DAGS Y SIMULADOR. 26. 4.1. dial, con aproximadamente 200.000 CPUs, trabajando en conjunto mas de 300 nodos en 50 paises, y 13 millones de tareas ejecutadas cada mes. Esta infraestructura puede ser utilizada en cualquier tipo de aplicación cientíca que precise de gran capacidad de procesamiento. Actualmente una nueva organización fue creada para continuar el proyecto,. Infrastructure.. EGI.eu5 ,. cuyo objetivo es la coordinación y evolución de la. European Grid. 4.1.2.1. Arquitectura La gura 4.2, muestra la plataforma EGEE generada para intereses de simulación. Para intereses de simulación esta plataforma fue creada a partir de 20 nodos, sumando aproximadamente 1000 procesadores.. Figura 4.2:. Plataforma EGEE. 4.1.3. Proyecto Grid5000 El proyecto Grid5000. 6. +. +. [BCC 06, CCD 05] es una infraestructura cientíca creada para. el estudio de sistemas paralelos y distribuidos de larga escala. El objetivo del proyecto es proveer una infraestructura experimental altamente monitorizable, controlable y recongurable para sus 5 6. http://www.egi.eu/ http://www.grid5000.fr/, último acceso el 08 de junio de 2017..

(46) INFRAESTRUCTURA HETEROGÉNEA. 4.1. 27. usuarios. El objetivo inicial del proyecto fue alcanzar los 5.000 procesadores en la infraestructura, posteriormente reformulado para 5.000 núcleos. Este objetivo fue alcanzado en el año 2009.. La arquitectura del proyecto Grid5000. EL mapa de Francia, donde cada institución o universidad estan unidas por um red de alta velocidad. Figura 4.3:. 4.1.3.1. Arquitectura La infraestructura del proyecto está geogracamente distribuida. Inicialmente, estaba compuesta por nueve instituciones entre universidades y centros de investigación en el território frances. Posteriormente, se agregaron dos nodos localizados en Porto Alegre - Brasil y Luxemburgo. La arquitectura de los procesadores que componen el proyecto Grid5000 es heterogénea, entre los principales tipos tenemos: AMD, Opteron, Intel Xeon, Intel Itanium 2 y PowerPC. Cada. cluster. usa una interconexión Gigabit (. GigaEthernet o Myrinet). y todos los nodos en Grid5000. 7. estan interconectados en una gran red llamada RENATER , cuya velocidad de la red llega a los. 10Gigabit/sec. En la Figura 4.3 es presentada la distribución de los. clusters del proyecto Grid5000 en el. territorio frances. En la Tabla 4.2 se muestra los. clusters pertenecientes a Grid5000 los cuales serán usados. en la especicación de esta arquitectura. 7. http://www.renater.fr/, último acceso el 08 de junio de 2017..

Figure

Figura 2.1: Clasicación de las técnicas de planicación de tareas. Esquema adaptado de [CK88].
Figura 3.2: Esquema del grafo durante la generación de CCPs. Esquema adaptado de [Kha12].
Figura 4.1: Arquitectura del proyecto DAS-4. Cinco instituciones conectadas usando la tecnología Inni- Inni-Band.
Figura 4.2: Plataforma EGEE
+7

Referencias

Documento similar

Presidente de la Comisión Nacional de los Mercados y la Competencia (CNMC)D. 10:00 Mesa Inaugural: Mejora de la regulación económica

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

Dicha certificación, expedida por el Centro organizador de dichos estudios, deberá indicar, además de la relación de asignaturas cursadas y superadas, la

De este modo se constituye un espacio ontológico y epistemológico a la vez, en el que cada elemento (cada principio) ocupa un lugar determinado en la totalidad, y desde ahí está

De esta manera, Elster no busca contradecir las aportaciones davidsonianas, sino más bien, llevarlas a un nuevo y más alto nivel de análisis, ya que incluso este filósofo

nes de una misma comunidad político-religiosa y, cultural, con muy ligeras diferencias en su zona Central, la mediterránea.' Es cierto que en las regiones montañosas del

Cancioneiro de Madrid. 1 Nunca espeiei de amor contentamiento. 5v) 2 Es en todo tan corta esta jornada. 6v) 3 Aquel camino larguo de mis daños. 8v) 5 El tiempo en toda cosa

La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la