279 research outputs found
Performance Evaluation of Checkpoint/Restart Techniques
Distributed applications running on a large cluster environment, such as the
cloud instances will have shorter execution time. However, the application
might suffer from sudden termination due to unpredicted computing node
failures, thus loosing the whole computation. Checkpoint/restart is a fault
tolerance technique used to solve this problem. In this work we evaluated the
performance of two of the most commonly used checkpoint/restart techniques
(Distributed Multithreaded Checkpointing (DMTCP) and Berkeley Lab
Checkpoint/Restart library (BLCR) integrated into the OpenMPI framework). We
aimed to test their validity and evaluate their performance in both local and
Amazon Elastic Compute Cloud (EC2) environments. The experiments were conducted
on Amazon EC2 as a well-known proprietary cloud computing service provider.
Results obtained were reported and compared to evaluate checkpoint and restart
time values, data scalability and compute processes scalability. The findings
proved that DMTCP performs better than BLCR for checkpoint and restart speed,
data scalability and compute processes scalability experiments
A Reliable and Cost-Efficient Auto-Scaling System for Web Applications Using Heterogeneous Spot Instances
Cloud providers sell their idle capacity on markets through an auction-like
mechanism to increase their return on investment. The instances sold in this
way are called spot instances. In spite that spot instances are usually 90%
cheaper than on-demand instances, they can be terminated by provider when their
bidding prices are lower than market prices. Thus, they are largely used to
provision fault-tolerant applications only. In this paper, we explore how to
utilize spot instances to provision web applications, which are usually
considered availability-critical. The idea is to take advantage of differences
in price among various types of spot instances to reach both high availability
and significant cost saving. We first propose a fault-tolerant model for web
applications provisioned by spot instances. Based on that, we devise novel
auto-scaling polices for hourly billed cloud markets. We implemented the
proposed model and policies both on a simulation testbed for repeatable
validation and Amazon EC2. The experiments on the simulation testbed and the
real platform against the benchmarks show that the proposed approach can
greatly reduce resource cost and still achieve satisfactory Quality of Service
(QoS) in terms of response time and availability
Exascale machines require new programming paradigms and runtimes
Extreme scale parallel computing systems will have tens of thousands of optionally accelerator-equiped nodes with hundreds of cores each, as well as deep memory hierarchies and complex interconnect topologies. Such Exascale systems will provide hardware parallelism at multiple levels and will be energy constrained. Their extreme scale and the rapidly deteriorating reliablity of their hardware components means that Exascale systems will exhibit low mean-time-between-failure values. Furthermore, existing programming models already require heroic programming and optimisation efforts to achieve high efficiency on current supercomputers. Invariably, these efforts are platform-specific and non-portable. In this paper we will explore the shortcomings of existing programming models and runtime systems for large scale computing systems. We then propose and discuss important features of programming paradigms and runtime system to deal with large scale computing systems with a special focus on data-intensive applications and resilience. Finally, we also discuss code sustainability issues and propose several software metrics that are of paramount importance for code development for large scale computing systems
Reliability for exascale computing : system modelling and error mitigation for task-parallel HPC applications
As high performance computing (HPC) systems continue to grow, their fault rate increases. Applications running on these systems have to deal with rates on the order of hours or days. Furthermore, some studies for future Exascale systems predict the rates to be on the order of minutes. As a result, efficient fault tolerance solutions are needed to be able to tolerate frequent failures.
A fault tolerance solution for future HPC and Exascale systems must be low-cost, efficient and highly scalable. It should have low overhead in fault-free execution and provide fast restart because long-running applications are expected to experience many faults during the execution. Meanwhile task-based dataflow parallel programming models (PM) are becoming a popular paradigm in HPC applications at large scale. For instance, we see the adaptation of task-based dataflow parallelism in OpenMP 4.0, OmpSs PM, Argobots and Intel Threading Building Blocks.
In this thesis we propose fault-tolerance solutions for task-parallel dataflow HPC applications. Specifically, first we design and implement a checkpoint/restart and message-logging framework to recover from errors. We then develop performance models to investigate the benefits of our task-level frameworks when integrated with system-wide checkpointing. Moreover, we design and implement selective task replication mechanisms to detect and recover from silent data corruptions in task-parallel dataflow HPC applications. Finally, we introduce a runtime-based coding scheme to detect and recover from memory errors in these applications.
Considering the span of all of our schemes, we see that they provide a fairly high failure coverage where both computation and memory is protected against errors.A medida que los Sistemas de Cómputo de Alto rendimiento (HPC por sus siglas en inglés) siguen creciendo, también las tasas de fallos aumentan. Las aplicaciones que se ejecutan en estos sistemas tienen una tasa de fallos que pueden estar en el orden de horas o días. Además, algunos estudios predicen que los fallos estarán en el orden de minutos en los Sistemas Exascale. Por lo tanto, son necesarias soluciones eficientes para la tolerancia a fallos que puedan tolerar fallos frecuentes.
Las soluciones para tolerancia a fallos en los Sistemas futuros de HPC y Exascale tienen que ser de bajo costo, eficientes y altamente escalable.
El sobrecosto en la ejecución sin fallos debe ser bajo y también se debe proporcionar reinicio rápido, ya que se espera que las aplicaciones de larga duración experimenten muchos fallos durante la ejecución. Por otra parte, los modelos de programación paralelas basados en tareas ordenadas de acuerdo a sus dependencias de datos, se están convirtiendo en un paradigma popular en aplicaciones HPC a gran escala. Por ejemplo, los siguientes modelos de programación paralela incluyen este tipo de modelo de programación OpenMP 4.0, OmpSs, Argobots e Intel Threading Building Blocks.
En esta tesis proponemos soluciones de tolerancia a fallos para aplicaciones de HPC programadas en un modelo de programación paralelo basado tareas. Específicamente, en primer lugar, diseñamos e implementamos mecanismos “checkpoint/restart” y “message-logging” para recuperarse de los errores.
Para investigar los beneficios de nuestras herramientas a nivel de tarea cuando se integra con los “system-wide checkpointing” se han desarrollado modelos de rendimiento. Por otra parte, diseñamos e implementamos mecanismos de replicación selectiva de tareas que permiten detectar y recuperarse de daños de datos silenciosos en aplicaciones programadas siguiendo el modelo de programación paralela basadas en tareas. Por último, se introduce un esquema de codificación que funciona en tiempo de ejecución para detectar y recuperarse de los errores de la memoria en estas aplicaciones.
Todos los esquemas propuestos, en conjunto, proporcionan una cobertura bastante alta a los fallos tanto si estos se producen el cálculo o en la memoria.Postprint (published version
State-preserving container orchestration in failover scenarios
Containers have been widely adopted for deployment of high availability applications
and services. This adoption is in part due to the native support
of fault tolerance mechanisms in container orchestration frameworks such as
Kubernetes. While Kubernetes provides service replication as a fault tolerance
mechanism for stateless applications, service replication does not satisfy
requirements for stateful applications. Currently this shortcoming is addressed
by data replication in databases. This requires a tight coupling and modification
of the stateful application to support high availability. Thus, this thesis
proposes a new Checkpoint/Restore (C/R) Kubernetes operator to achieve
fault tolerance for stateful applications without any modification of the application.
The operator takes a checkpoint in a configurable interval. In case
of a fault a new application container is created automatically from the most
recent checkpoint. We compare the proposed approach with a more conventional
approach in which we pull and restore the application state from the
application through an API. We measure the overhead of both methods, the
service interruption and the recovery time in case of faults. We find the C/R
Operator has similar performance in recovery time as the traditional approach,
but does not need any application modification. The results signify C/R as a
promising technology for a fault tolerance mechanism for stateful applications
MISO: Exploiting Multi-Instance GPU Capability on Multi-Tenant Systems for Machine Learning
GPU technology has been improving at an expedited pace in terms of size and
performance, empowering HPC and AI/ML researchers to advance the scientific
discovery process. However, this also leads to inefficient resource usage, as
most GPU workloads, including complicated AI/ML models, are not able to utilize
the GPU resources to their fullest extent -- encouraging support for GPU
multi-tenancy. We propose MISO, a technique to exploit the Multi-Instance GPU
(MIG) capability on the latest NVIDIA datacenter GPUs (e.g., A100, H100) to
dynamically partition GPU resources among co-located jobs. MISO's key insight
is to use the lightweight, more flexible Multi-Process Service (MPS) capability
to predict the best MIG partition allocation for different jobs, without
incurring the overhead of implementing them during exploration. Due to its
ability to utilize GPU resources more efficiently, MISO achieves 49% and 16%
lower average job completion time than the unpartitioned and optimal static GPU
partition schemes, respectively
- …