3 research outputs found

    Exploiting asymmetric multi-core systems with flexible system software

    Get PDF
    Asymmetric multi-cores (AMCs) are a successful architectural solution for both mobile devices and supercomputers. These architectures combine different types of processing cores designed at different performance and power optimization points, thus exposing a performance-power trade-off. By maintaining two types of cores, AMCs are able to provide high performance under the facility power budget. However, there are significant challenges when using AMCs such as scheduling and load balancing. This thesis initially explores the potential of AMCs when executing current HPC applications and searches for the most appropriate execution model. Specifically we evaluate several execution models on an Arm big.LITTLE AMC using the PARSEC benchmark suite that includes representative HPC applications. We compare schedulers at the user, OS and runtime system levels, using both static and dynamic options and multiple configurations, and assess the impact of these options on the well-known problem of balancing the load across AMCs. Our results demonstrate that scheduling is more effective when it takes place in the runtime system as it improves the user-level scheduling by 23%, while the heterogeneous-aware OS scheduling solution improves the user-level scheduling by 10%. Following this outcome, this thesis focuses on increasing performance of AMC systems by improving scheduling in the runtime system level. Scheduling in the runtime system level is provided by the use of task-based parallel programming models. These programming models offer programming flexibility as they consist of an interface and a runtime system to manage the underlying resources and threads. In this thesis we improve scheduling with task-based programming models by providing three novel task schedulers for AMCs. These dynamic scheduling policies reduce total execution time either by detecting the longest or the critical path of the dynamic task dependency graph of the application. They use dynamic scheduling and information discoverable during execution, fact that makes them implementable and functional without the need of off-line profiling. In our evaluation we compare these scheduling approaches with an existing state-of the art heterogeneous scheduler and we track their improvement over a FIFO baseline scheduler. We show that the heterogeneous schedulers improve the baseline by up to 1.45x on a real 8-core AMC and up to 2.1x on a simulated 32-core AMC. Another enhancement we provide in task-based programming models is the adaptability to fine grained parallelism. The increasing number of cores on modern CMPs is pushing research towards the use of fine grained workloads, which is an important challenge for task-based programming models. Our study makes the observation that task creation becomes a bottleneck when executing fine grained workloads with task-based programming models. As the number of cores increases, the time spent generating tasks is becoming more critical to the entire execution. To overcome this issue, we propose TaskGenX. TaskGenX minimizes task creation overheads and relies both on the runtime system and a dedicated hardware. On the runtime system side, TaskGenX decouples the task creation from the other runtime activities. It then transfers this part of the runtime to a specialized hardware. From our evaluation using 11 HPC workloads on both symmetric and AMC systems, we obtain performance improvements up to 15x, averaging to 3.1x over the baseline. Finally, this thesis presents a showcase for a real-time CPU scheduler with the goal to increase the frames per second (FPS) of the game-play on mobile devices with AMC systems. We design and implement the RTS scheduler in the Android framework. RTS provides an efficient scheduling policy that takes into account the current temperature of the system to perform task migration. RTS solution increases the median FPS of the baseline mechanisms by up to 7.5% and at the same time it maintains temperature stable.Los procesadores multin煤cleos asim茅tricos (AMC) son una soluci贸n arquitect贸nica exitosa para dispositivos m贸viles y supercomputadores. Estas arquitecturas combinan diferentes tipos de n煤cleos de procesamiento dise帽ados con diferentes propiedades de rendimiento y potencia. Al mantener dos o m谩s tipos de n煤cleos, los AMCs pueden proporcionar un alto rendimiento con un consumo bajo de energ铆a de las infraestructuras. Sin embargo, existen importantes desaf铆os al usar los AMC, como la programaci贸n y el equilibrio de carga. Esta tesis explora inicialmente el potencial de los AMC al ejecutar aplicaciones actuales de Computacion de Alto Rendimiento (HPC) y busca el modelo de ejecuci贸n m谩s apropiado para ellas. Espec铆ficamente evaluamos varios modelos de ejecuci贸n en un procesador asim茅trico Arm big.LITTLE utilizando las aplicaciones PARSEC que son aplicaciones representativas de HPC. En este trabajo se compara la programaci贸n en los niveles de usuario, sistema operativo y librer铆a y evaluamos el impacto de estas opciones en el conocido problema de equilibrar la carga entre los AMCs. Nuestros resultados demuestran que la programaci贸n es m谩s efectiva cuando se lleva a cabo en el nivel del runtime, ya que mejora la programaci贸n del nivel de usuario en un 23%, mientras que la soluci贸n de programaci贸n del sistema operativo heterog茅neo mejora la programaci贸n del nivel de usuario en un 10%. Siguiendo este resultado, esta tesis se centra en aumentar el rendimiento de los sistemas AMC mejorando la programaci贸n al nivel de librer铆a. La programaci贸n en este nivel se proporciona mediante el uso de Modelos de Programaci贸n Paralelos Basados en Tareas (MPBT). Estos modelos de programaci贸n ofrecen flexibilidad de programaci贸n, ya que consisten en una interfaz y un runtime para administrar los recursos e hilos subyacentes. En esta tesis, mejoramos la programaci贸n con MPBT al proporcionar tres nuevos planificadores de tareas para AMCs. Estos planificadores din谩micos reducen el tiempo total de ejecuci贸n ya sea detectando la camino m谩s largo o el camino cr铆tico del grafo de dependencia de tareas de la aplicaci贸n, que es generado din谩micamente. En nuestra evaluaci贸n, comparamos estos planificadores con un planificador heterog茅neo existente y demonstramos su mejora sobre un planificador FIFO. Mostramos que los planificadores heterog茅neos mejoran el planificador FIFO en hasta 1.45x en un AMC real de 8 n煤cleos y hasta 2.1x en un AMC simulado de 32 n煤cleos. Otra contribuci贸n en los MPBT es la adaptabilidad al paralelismo de grano fino. El creciente n煤mero de n煤cleos en los chip multin煤cleos modernos est谩 empujando la investigaci贸n hacia el uso de cargas de trabajo de grano fino, que es un desaf铆o importante para los MPBT. Nuestro estudio observa que la creaci贸n de tareas bloquea la ejecuci贸n con cargas de trabajo de grano fino con MPBT. Cuando el n煤mero de n煤cleos aumenta, el tiempo empleado en generar tareas pasa a ser m谩s cr铆tico para toda la ejecuci贸n. Nuestra soluci贸n es TaskGenX, que minimiza los costes de creaci贸n de tareas y se basa en una extensi贸n del runtime y en un hardware dedicado. En el runtime, TaskGenX desacopla la creaci贸n de tareas de las otras actividades del runtime, ejecutando esta actividad en un hardware especializado. Evaluamos 11 aplicaciones de HPC con TaskGenX en sistemas sim茅tricos y AMC y obtenemos mejoras de rendimiento de hasta 15x, con un promedio de 3.1x sobre la implementaci贸n de referencia. Finalmente, esta tesis presenta un planificador de CPU con el objetivo de aumentar los fotogramas por segundo (FPS) para juegos en dispositivos m贸viles con sistemas AMC. Dise帽amos e implementamos el planificador de Real-Time Scheduler (RTS) en Android. El RTS proporciona una pol铆tica de programaci贸n eficiente que tiene en cuenta la temperatura actual del sistema para realizar la migraci贸n de tareas. La soluci贸n RTS aumenta la FPS mediana de los mecanismos de referenciaPostprint (published version

    Exploiting asymmetric multi-core systems with flexible system software

    Get PDF
    Asymmetric multi-cores (AMCs) are a successful architectural solution for both mobile devices and supercomputers. These architectures combine different types of processing cores designed at different performance and power optimization points, thus exposing a performance-power trade-off. By maintaining two types of cores, AMCs are able to provide high performance under the facility power budget. However, there are significant challenges when using AMCs such as scheduling and load balancing. This thesis initially explores the potential of AMCs when executing current HPC applications and searches for the most appropriate execution model. Specifically we evaluate several execution models on an Arm big.LITTLE AMC using the PARSEC benchmark suite that includes representative HPC applications. We compare schedulers at the user, OS and runtime system levels, using both static and dynamic options and multiple configurations, and assess the impact of these options on the well-known problem of balancing the load across AMCs. Our results demonstrate that scheduling is more effective when it takes place in the runtime system as it improves the user-level scheduling by 23%, while the heterogeneous-aware OS scheduling solution improves the user-level scheduling by 10%. Following this outcome, this thesis focuses on increasing performance of AMC systems by improving scheduling in the runtime system level. Scheduling in the runtime system level is provided by the use of task-based parallel programming models. These programming models offer programming flexibility as they consist of an interface and a runtime system to manage the underlying resources and threads. In this thesis we improve scheduling with task-based programming models by providing three novel task schedulers for AMCs. These dynamic scheduling policies reduce total execution time either by detecting the longest or the critical path of the dynamic task dependency graph of the application. They use dynamic scheduling and information discoverable during execution, fact that makes them implementable and functional without the need of off-line profiling. In our evaluation we compare these scheduling approaches with an existing state-of the art heterogeneous scheduler and we track their improvement over a FIFO baseline scheduler. We show that the heterogeneous schedulers improve the baseline by up to 1.45x on a real 8-core AMC and up to 2.1x on a simulated 32-core AMC. Another enhancement we provide in task-based programming models is the adaptability to fine grained parallelism. The increasing number of cores on modern CMPs is pushing research towards the use of fine grained workloads, which is an important challenge for task-based programming models. Our study makes the observation that task creation becomes a bottleneck when executing fine grained workloads with task-based programming models. As the number of cores increases, the time spent generating tasks is becoming more critical to the entire execution. To overcome this issue, we propose TaskGenX. TaskGenX minimizes task creation overheads and relies both on the runtime system and a dedicated hardware. On the runtime system side, TaskGenX decouples the task creation from the other runtime activities. It then transfers this part of the runtime to a specialized hardware. From our evaluation using 11 HPC workloads on both symmetric and AMC systems, we obtain performance improvements up to 15x, averaging to 3.1x over the baseline. Finally, this thesis presents a showcase for a real-time CPU scheduler with the goal to increase the frames per second (FPS) of the game-play on mobile devices with AMC systems. We design and implement the RTS scheduler in the Android framework. RTS provides an efficient scheduling policy that takes into account the current temperature of the system to perform task migration. RTS solution increases the median FPS of the baseline mechanisms by up to 7.5% and at the same time it maintains temperature stable.Los procesadores multin煤cleos asim茅tricos (AMC) son una soluci贸n arquitect贸nica exitosa para dispositivos m贸viles y supercomputadores. Estas arquitecturas combinan diferentes tipos de n煤cleos de procesamiento dise帽ados con diferentes propiedades de rendimiento y potencia. Al mantener dos o m谩s tipos de n煤cleos, los AMCs pueden proporcionar un alto rendimiento con un consumo bajo de energ铆a de las infraestructuras. Sin embargo, existen importantes desaf铆os al usar los AMC, como la programaci贸n y el equilibrio de carga. Esta tesis explora inicialmente el potencial de los AMC al ejecutar aplicaciones actuales de Computacion de Alto Rendimiento (HPC) y busca el modelo de ejecuci贸n m谩s apropiado para ellas. Espec铆ficamente evaluamos varios modelos de ejecuci贸n en un procesador asim茅trico Arm big.LITTLE utilizando las aplicaciones PARSEC que son aplicaciones representativas de HPC. En este trabajo se compara la programaci贸n en los niveles de usuario, sistema operativo y librer铆a y evaluamos el impacto de estas opciones en el conocido problema de equilibrar la carga entre los AMCs. Nuestros resultados demuestran que la programaci贸n es m谩s efectiva cuando se lleva a cabo en el nivel del runtime, ya que mejora la programaci贸n del nivel de usuario en un 23%, mientras que la soluci贸n de programaci贸n del sistema operativo heterog茅neo mejora la programaci贸n del nivel de usuario en un 10%. Siguiendo este resultado, esta tesis se centra en aumentar el rendimiento de los sistemas AMC mejorando la programaci贸n al nivel de librer铆a. La programaci贸n en este nivel se proporciona mediante el uso de Modelos de Programaci贸n Paralelos Basados en Tareas (MPBT). Estos modelos de programaci贸n ofrecen flexibilidad de programaci贸n, ya que consisten en una interfaz y un runtime para administrar los recursos e hilos subyacentes. En esta tesis, mejoramos la programaci贸n con MPBT al proporcionar tres nuevos planificadores de tareas para AMCs. Estos planificadores din谩micos reducen el tiempo total de ejecuci贸n ya sea detectando la camino m谩s largo o el camino cr铆tico del grafo de dependencia de tareas de la aplicaci贸n, que es generado din谩micamente. En nuestra evaluaci贸n, comparamos estos planificadores con un planificador heterog茅neo existente y demonstramos su mejora sobre un planificador FIFO. Mostramos que los planificadores heterog茅neos mejoran el planificador FIFO en hasta 1.45x en un AMC real de 8 n煤cleos y hasta 2.1x en un AMC simulado de 32 n煤cleos. Otra contribuci贸n en los MPBT es la adaptabilidad al paralelismo de grano fino. El creciente n煤mero de n煤cleos en los chip multin煤cleos modernos est谩 empujando la investigaci贸n hacia el uso de cargas de trabajo de grano fino, que es un desaf铆o importante para los MPBT. Nuestro estudio observa que la creaci贸n de tareas bloquea la ejecuci贸n con cargas de trabajo de grano fino con MPBT. Cuando el n煤mero de n煤cleos aumenta, el tiempo empleado en generar tareas pasa a ser m谩s cr铆tico para toda la ejecuci贸n. Nuestra soluci贸n es TaskGenX, que minimiza los costes de creaci贸n de tareas y se basa en una extensi贸n del runtime y en un hardware dedicado. En el runtime, TaskGenX desacopla la creaci贸n de tareas de las otras actividades del runtime, ejecutando esta actividad en un hardware especializado. Evaluamos 11 aplicaciones de HPC con TaskGenX en sistemas sim茅tricos y AMC y obtenemos mejoras de rendimiento de hasta 15x, con un promedio de 3.1x sobre la implementaci贸n de referencia. Finalmente, esta tesis presenta un planificador de CPU con el objetivo de aumentar los fotogramas por segundo (FPS) para juegos en dispositivos m贸viles con sistemas AMC. Dise帽amos e implementamos el planificador de Real-Time Scheduler (RTS) en Android. El RTS proporciona una pol铆tica de programaci贸n eficiente que tiene en cuenta la temperatura actual del sistema para realizar la migraci贸n de tareas. La soluci贸n RTS aumenta la FPS mediana de los mecanismos de referenci

    A Hybrid GA-based Scheduling Algorithm for Heterogeneous Computing Environments

    No full text
    corecore