993 research outputs found
ScalAna: Automating Scaling Loss Detection with Graph Analysis
Scaling a parallel program to modern supercomputers is challenging due to
inter-process communication, Amdahl's law, and resource contention. Performance
analysis tools for finding such scaling bottlenecks either base on profiling or
tracing. Profiling incurs low overheads but does not capture detailed
dependencies needed for root-cause analysis. Tracing collects all information
at prohibitive overheads. In this work, we design ScalAna that uses static
analysis techniques to achieve the best of both worlds - it enables the
analyzability of traces at a cost similar to profiling. ScalAna first leverages
static compiler techniques to build a Program Structure Graph, which records
the main computation and communication patterns as well as the program's
control structures. At runtime, we adopt lightweight techniques to collect
performance data according to the graph structure and generate a Program
Performance Graph. With this graph, we propose a novel approach, called
backtracking root cause detection, which can automatically and efficiently
detect the root cause of scaling loss. We evaluate ScalAna with real
applications. Results show that our approach can effectively locate the root
cause of scaling loss for real applications and incurs 1.73% overhead on
average for up to 2,048 processes. We achieve up to 11.11% performance
improvement by fixing the root causes detected by ScalAna on 2,048 processes.Comment: conferenc
tf-Darshan: Understanding Fine-grained I/O Performance in Machine Learning Workloads
Machine Learning applications on HPC systems have been gaining popularity in
recent years. The upcoming large scale systems will offer tremendous
parallelism for training through GPUs. However, another heavy aspect of Machine
Learning is I/O, and this can potentially be a performance bottleneck.
TensorFlow, one of the most popular Deep-Learning platforms, now offers a new
profiler interface and allows instrumentation of TensorFlow operations.
However, the current profiler only enables analysis at the TensorFlow platform
level and does not provide system-level information. In this paper, we extend
TensorFlow Profiler and introduce tf-Darshan, both a profiler and tracer, that
performs instrumentation through Darshan. We use the same Darshan shared
instrumentation library and implement a runtime attachment without using a
system preload. We can extract Darshan profiling data structures during
TensorFlow execution to enable analysis through the TensorFlow profiler. We
visualize the performance results through TensorBoard, the web-based TensorFlow
visualization tool. At the same time, we do not alter Darshan's existing
implementation. We illustrate tf-Darshan by performing two case studies on
ImageNet image and Malware classification. We show that by guiding optimization
using data from tf-Darshan, we increase POSIX I/O bandwidth by up to 19% by
selecting data for staging on fast tier storage. We also show that Darshan has
the potential of being used as a runtime library for profiling and providing
information for future optimization.Comment: Accepted for publication at the 2020 International Conference on
Cluster Computing (CLUSTER 2020
Iso-energy-efficiency: An approach to power-constrained parallel computation
Future large scale high performance supercomputer systems require high energy efficiency to achieve exaflops computational power and beyond. Despite the need to understand energy efficiency in high-performance systems, there are few techniques to evaluate energy efficiency at scale. In this paper, we propose a system-level iso-energy-efficiency model to analyze, evaluate and predict energy-performance of data intensive parallel applications with various execution patterns running on large scale power-aware clusters. Our analytical model can help users explore the effects of machine and application dependent characteristics on system energy efficiency and isolate efficient ways to scale system parameters (e.g. processor count, CPU power/frequency, workload size and network bandwidth) to balance energy use and performance. We derive our iso-energy-efficiency model and apply it to the NAS Parallel Benchmarks on two power-aware clusters. Our results indicate that the model accurately predicts total system energy consumption within 5% error on average for parallel applications with various execution and communication patterns. We demonstrate effective use of the model for various application contexts and in scalability decision-making
Integrating Algorithmic and Systemic Load Balancing Strategies in Parallel Scientific Applications
Load imbalance is a major source of performance degradation in parallel scientific applications. Load balancing increases the efficient use of existing resources and improves performance of parallel applications running in distributed environments. At a coarse level of granularity, advances in runtime systems for parallel programs have been proposed in order to control available resources as efficiently as possible by utilizing idle resources and using task migration. At a finer granularity level, advances in algorithmic strategies for dynamically balancing computational loads by data redistribution have been proposed in order to respond to variations in processor performance during the execution of a given parallel application. Algorithmic and systemic load balancing strategies have complementary set of advantages. An integration of these two techniques is possible and it should result in a system, which delivers advantages over each technique used in isolation. This thesis presents a design and implementation of a system that combines an algorithmic fine-grained data parallel load balancing strategy called Fractiling with a systemic coarse-grained task-parallel load balancing system called Hector. It also reports on experimental results of running N-body simulations under this integrated system. The experimental results indicate that a distributed runtime environment, which combines both algorithmic and systemic load balancing strategies, can provide performance advantages with little overhead, underscoring the importance of this approach in large complex scientific applications
Performance and Power Analysis of HPC Workloads on Heterogenous Multi-Node Clusters
Performance analysis tools allow application developers to identify and characterize the inefficiencies that cause performance degradation in their codes, allowing for application optimizations. Due to the increasing interest in the High Performance Computing (HPC) community towards energy-efficiency issues, it is of paramount importance to be able to correlate performance and power figures within the same profiling and analysis tools. For this reason, we present a performance and energy-efficiency study aimed at demonstrating how a single tool can be used to collect most of the relevant metrics. In particular, we show how the same analysis techniques can be applicable on different architectures, analyzing the same HPC application on a high-end and a low-power cluster. The former cluster embeds Intel Haswell CPUs and NVIDIA K80 GPUs, while the latter is made up of NVIDIA Jetson TX1 boards, each hosting an Arm Cortex-A57 CPU and an NVIDIA Tegra X1 Maxwell GPU.The research leading to these results has received funding from the European Community’s Seventh Framework Programme [FP7/2007-2013] and Horizon 2020 under the Mont-Blanc projects [17], grant agreements n. 288777, 610402 and 671697. E.C. was partially founded by “Contributo 5 per mille assegnato all’Università degli Studi di Ferrara-dichiarazione dei redditi dell’anno 2014”. We thank the University of Ferrara and INFN Ferrara for the access to the COKA Cluster. We warmly thank the BSC tools group, supporting us for the smooth integration and test of our setup within Extrae and Paraver.Peer ReviewedPostprint (published version
New cross-layer techniques for multi-criteria scheduling in large-scale systems
The global ecosystem of information technology (IT) is in transition to a new generation
of applications that require more and more intensive data acquisition, processing and
storage systems. As a result of that change towards data intensive computing, there is a
growing overlap between high performance computing (HPC) and Big Data techniques in
applications, since many HPC applications produce large volumes of data, and Big Data
needs HPC capabilities.
The hypothesis of this PhD. thesis is that the potential interoperability and convergence
of the HPC and Big Data systems are crucial for the future, being essential the unification
of both paradigms to address a broad spectrum of research domains. For this reason, the
main objective of this Phd. thesis is purposing and developing a monitoring system to
allow the HPC and Big Data convergence, thanks to giving information about behaviors of
applications in a system which execute both kind of them, giving information to improve
scalability, data locality, and to allow adaptability to large scale computers. To achieve
this goal, this work is focused on the design of resource monitoring and discovery to
exploit parallelism at all levels. These collected data are disseminated to facilitate global
improvements at the whole system, and, thus, avoid mismatches between layers. The
result is a two-level monitoring framework (both at node and application level) with
a low computational load, scalable, and that can communicate with different modules
thanks to an API provided for this purpose. All data collected is disseminated to facilitate
the implementation of improvements globally throughout the system, and thus avoid
mismatches between layers, which combined with the techniques applied to deal with fault
tolerance, makes the system robust and with high availability.
On the other hand, the developed framework includes a task scheduler capable of managing
the launch of applications, their migration between nodes, as well as the possibility
of dynamically increasing or decreasing the number of processes. All these thanks to the
cooperation with other modules that are integrated into LIMITLESS, and whose objective
is to optimize the execution of a stack of applications based on multi-criteria policies. This
scheduling mode is called coarse-grain scheduling based on monitoring.
For better performance and in order to further reduce the overhead during the monitorization,
different optimizations have been applied at different levels to try to reduce
communications between components, while trying to avoid the loss of information. To
achieve this objective, data filtering techniques, Machine Learning (ML) algorithms, and
Neural Networks (NN) have been used.
In order to improve the scheduling process and to design new multi-criteria scheduling
policies, the monitoring information has been combined with other ML algorithms to
identify (through classification algorithms) the applications and their execution phases,
doing offline profiling. Thanks to this feature, LIMITLESS can detect which phase is executing an application and tries to share the computational resources with other applications
that are compatible (there is no performance degradation between them when both are
running at the same time). This feature is called fine-grain scheduling, and can reduce the
makespan of the use cases while makes efficient use of the computational resources that
other applications do not use.El ecosistema global de las tecnologías de la información (IT) se encuentra en transición
a una nueva generación de aplicaciones que requieren sistemas de adquisición de datos,
procesamiento y almacenamiento cada vez más intensivo. Como resultado de ese cambio
hacia la computación intensiva de datos, existe una superposición, cada vez mayor, entre
la computación de alto rendimiento (HPC) y las técnicas Big Data en las aplicaciones,
pues muchas aplicaciones HPC producen grandes volúmenes de datos, y Big Data necesita
capacidades HPC.
La hipótesis de esta tesis es que hay un gran potencial en la interoperabilidad y
convergencia de los sistemas HPC y Big Data, siendo crucial para el futuro tratar una
unificación de ambos para hacer frente a un amplio espectro de problemas de investigación.
Por lo tanto, el objetivo principal de esta tesis es la propuesta y desarrollo de un sistema
de monitorización que facilite la convergencia de los paradigmas HPC y Big Data gracias
a la provisión de datos sobre el comportamiento de las aplicaciones en un entorno en
el que se pueden ejecutar aplicaciones de ambos mundos, ofreciendo información útil
para mejorar la escalabilidad, la explotación de la localidad de datos y la adaptabilidad
en los computadores de gran escala. Para lograr este objetivo, el foco se ha centrado en
el diseño de mecanismos de monitorización y localización de recursos para explotar el
paralelismo en todos los niveles de la pila del software. El resultado es un framework
de monitorización en dos niveles (tanto a nivel de nodo como de aplicación) con una
baja carga computacional, escalable, y que se puede comunicar con distintos módulos
gracias a una API proporcionada para tal objetivo. Todos datos recolectados se difunden
para facilitar la realización de mejoras de manera global en todo el sistema, y así evitar
desajustes entre capas, lo que combinado con las técnicas aplicadas para lidiar con la
tolerancia a fallos, hace que el sistema sea robusto y con una alta disponibilidad.
Por otro lado, el framework desarrollado incluye un planificador de tareas capaz de
gestionar el lanzamiento de aplicaciones, la migración de las mismas entre nodos, además
de la posibilidad de incrementar o disminuir su número de procesos de forma dinámica.
Todo ello gracias a la cooperación con otros módulos que se integran en LIMITLESS, y
cuyo objetivo es optimizar la ejecución de una pila de aplicaciones en base a políticas
multicriterio. Esta funcionalidad se llama planificación de grano grueso.
Para un mejor desempeño y con el objetivo de reducir más aún la carga durante la
ejecución, se han aplicado distintas optimizaciones en distintos niveles para tratar de
reducir las comunicaciones entre componentes, a la vez que se trata de evitar la pérdida
de información. Para lograr este objetivo se ha hecho uso de técnicas de filtrado de datos,
algoritmos de Machine Learning (ML), y Redes Neuronales (NN).
Finalmente, para obtener mejores resultados en la planificación de aplicaciones y
para diseñar nuevas políticas de planificación multi-criterio, los datos de monitorización recolectados han sido combinados con nuevos algoritmos de ML para identificar (por
medio de algoritmos de clasificación) aplicaciones y sus fases de ejecución. Todo ello
realizando tareas de profiling offline. Gracias a estas técnicas, LIMITLESS puede detectar
en qué fase de su ejecución se encuentra una determinada aplicación e intentar compartir los
recursos de computacionales con otras aplicaciones que sean compatibles (no se produce
una degradación del rendimiento entre ellas cuando ambas se ejecutan a la vez en el mismo
nodo). Esta funcionalidad se llama planificación de grano fino y puede reducir el tiempo
total de ejecución de la pila de aplicaciones en los casos de uso porque realiza un uso más
eficiente de los recursos de las máquinas.This PhD dissertation has been partially supported by the Spanish Ministry of Science and Innovation under an FPI fellowship associated to a National Project with reference TIN2016-79637-P (from July 1,
2018 to October 10, 2021)Programa de Doctorado en Ciencia y Tecnología Informática por la Universidad Carlos III de MadridPresidente: Félix García Carballeira.- Secretario: Pedro Ángel Cuenca Castillo.- Vocal: María Cristina V. Marinesc
Scheduling Heterogeneous HPC Applications in Next-Generation Exascale Systems
Next generation HPC applications will increasingly time-share system resources with emerging workloads such as in-situ analytics, resilience tasks, runtime adaptation services and power management activities. HPC systems must carefully schedule these co-located codes in order to reduce their impact on application performance. Among the techniques traditionally used to mitigate the performance effects of time- share systems is gang scheduling. This approach, however, leverages global synchronization and time agreement mechanisms that will become hard to support as systems increase in size. Alternative performance interference mitigation approaches must be explored for future HPC systems. This dissertation evaluates the impacts of workload concurrency in future HPC systems. It uses simulation and modeling techniques to study the performance impacts of existing and emerging interference sources on a selection of HPC benchmarks, mini-applications, and applications. It also quantifies the cost and benefits of different approaches to scheduling co-located workloads, studies performance interference mitigation solutions based on gang scheduling, and examines their synchronization requirements. To do so, this dissertation presents and leverages a new Extreme Value Theory- based model to characterize interference sources, and investigate their impact on Bulk Synchronous Parallel (BSP) applications. It demonstrates how this model can be used to analyze the interference attenuation effects of alternative fine-grained OS scheduling approaches based on periodic real time schedulers. This analysis can, in turn, guide the design of those mitigation techniques by providing tools to understand the tradeoffs of selecting scheduling parameters
Performance Optimization Strategies for Transactional Memory Applications
This thesis presents tools for Transactional Memory (TM) applications that cover multiple TM systems (Software, Hardware, and hybrid TM) and use information of all different layers of the TM software stack. Therefore, this thesis addresses a number of challenges to extract static information, information about the run time behavior, and expert-level knowledge to develop these new methods and strategies for the optimization of TM applications
Scalable and Reliable Sparse Data Computation on Emergent High Performance Computing Systems
Heterogeneous systems with both CPUs and GPUs have become important system architectures in emergent High Performance Computing (HPC) systems. Heterogeneous systems must address both performance-scalability and power-scalability in the presence of failures. Aggressive power reduction pushes hardware to its operating limit and increases the failure rate. Resilience allows programs to progress when subjected to faults and is an integral component of large-scale systems, but incurs significant time and energy overhead. The future exascale systems are expected to have higher power consumption with higher fault rates. Sparse data computation is the fundamental kernel in many scientific applications. It is suitable for the studies of scalability and resilience on heterogeneous systems due to its computational characteristics.
To deliver the promised performance within the given power budget, heterogeneous computing mandates a deep understanding of the interplay between scalability and resilience. Managing scalability and resilience is challenging in heterogeneous systems, due to the heterogeneous compute capability, power consumption, and varying failure rates between CPUs and GPUs. Scalability and resilience have been traditionally studied in isolation, and optimizing one typically detrimentally impacts the other. While prior works have been proved successful in optimizing scalability and resilience on CPU-based homogeneous systems, simply extending current approaches to heterogeneous systems results in suboptimal performance-scalability and/or power-scalability.
To address the above multiple research challenges, we propose novel resilience and energy-efficiency technologies to optimize scalability and resilience for sparse data computation on heterogeneous systems with CPUs and GPUs. First, we present generalized analytical and experimental methods to analyze and quantify the time and energy costs of various recovery schemes, and develop and prototype performance optimization and power management strategies to improve scalability for sparse linear solvers. Our results quantitatively reveal that each resilience scheme has its own advantages depending on the fault rate, system size, and power budget, and the forward recovery can further benefit from our performance and power optimizations for large-scale computing. Second, we design a novel resilience technique that relaxes the requirement of synchronization and identicalness for processes, and allows them to run in heterogeneous resources with power reduction. Our results show a significant reduction in energy for unmodified programs in various fault situations compared to exact replication techniques. Third, we propose a novel distributed sparse tensor decomposition that utilizes an asynchronous RDMA-based approach with OpenSHMEM to improve scalability on large-scale systems and prove that our method works well in heterogeneous systems. Our results show our irregularity-aware workload partition and balanced-asynchronous algorithms are scalable and outperform the state-of-the-art distributed implementations. We demonstrate that understanding different bottlenecks for various types of tensors plays critical roles in improving scalability
Energy aware approach for HPC systems
International audienceHigh‐performance computing (HPC) systems require energy during their full life cycle from design and production to transportation to usage and recycling/dismanteling. Because of increase of ecological and cost awareness, energy performance is now a primary focus. This chapter focuses on the usage aspect of HPC and how adapted and optimized software solutions could improve energy efficiency. It provides a detailed explanation of server power consumption, and discusses the application of HPC, phase detection, and phase identification. The chapter also suggests that having the load and memory access profiles is insufficient for an effective evaluation of the power consumed by an application. The available leverages in HPC systems are also shown in detail. The chapter proposes some solutions for modeling the power consumption of servers, which allows designing power prediction models for better decision making.These approaches allow the deployment and usage of a set of available green leverages, permitting energy reduction
- …