606 research outputs found
The role of concurrency in an evolutionary view of programming abstractions
In this paper we examine how concurrency has been embodied in mainstream
programming languages. In particular, we rely on the evolutionary talking
borrowed from biology to discuss major historical landmarks and crucial
concepts that shaped the development of programming languages. We examine the
general development process, occasionally deepening into some language, trying
to uncover evolutionary lineages related to specific programming traits. We
mainly focus on concurrency, discussing the different abstraction levels
involved in present-day concurrent programming and emphasizing the fact that
they correspond to different levels of explanation. We then comment on the role
of theoretical research on the quest for suitable programming abstractions,
recalling the importance of changing the working framework and the way of
looking every so often. This paper is not meant to be a survey of modern
mainstream programming languages: it would be very incomplete in that sense. It
aims instead at pointing out a number of remarks and connect them under an
evolutionary perspective, in order to grasp a unifying, but not simplistic,
view of the programming languages development process
Toward High-Performance Computing and Big Data Analytics Convergence: The Case of Spark-DIY
Convergence between high-performance computing (HPC) and big data analytics (BDA) is currently an established research area that has spawned new opportunities for unifying the platform layer and data abstractions in these ecosystems. This work presents an architectural model that enables the interoperability of established BDA and HPC execution models, reflecting the key design features that interest both the HPC and BDA communities, and including an abstract data collection and operational model that generates a unified interface for hybrid applications. This architecture can be implemented in different ways depending on the process- and data-centric platforms of choice and the mechanisms put in place to effectively meet the requirements of the architecture. The Spark-DIY platform is introduced in the paper as a prototype implementation of the architecture proposed. It preserves the interfaces and execution environment of the popular BDA platform Apache Spark, making it compatible with any Spark-based application and tool, while providing efficient communication and kernel execution via DIY, a powerful communication pattern library built on top of MPI. Later, Spark-DIY is analyzed in terms of performance by building a representative use case from the hydrogeology domain, EnKF-HGS. This application is a clear example of how current HPC simulations are evolving toward hybrid HPC-BDA applications, integrating HPC simulations within a BDA environment.This work was supported in part by the Spanish Ministry of Economy, Industry and Competitiveness under Grant TIN2016-79637-P(toward Unification of HPC and Big Data Paradigms), in part by the Spanish Ministry of Education under Grant FPU15/00422 TrainingProgram for Academic and Teaching Staff Grant, in part by the Advanced Scientific Computing Research, Office of Science, U.S.Department of Energy, under Contract DE-AC02-06CH11357, and in part by the DOE with under Agreement DE-DC000122495,Program Manager Laura Biven
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
FairGV: Fair and Fast GPU Virtualization
Increasingly high-performance computing (HPC) application developers are opting to use cloud resources due to higher availability. Virtualized GPUs would be an obvious and attractive option for HPC application developers using cloud hosting services. Unfortunately, existing GPU virtualization software is not ready to address fairness, utilization, and performance limitations associated with consolidating mixed HPC workloads. This paper presents FairGV, a radically redesigned GPU virtualization system that achieves system-wide weighted fair sharing and strong performance isolation in mixed workloads that use GPUs with variable degrees of intensity. To achieve its objectives, FairGV introduces a trap-less GPU processing architecture, a new fair queuing method integrated with work-conserving and GPU-centric co-scheduling polices, and a collaborative scheduling method for non-preemptive GPUs. Our prototype implementation achieves near ideal fairness (? 0.97 Min-Max Ratio) with little performance degradation (? 1.02 aggregated overhead) in a range of mixed HPC workloads that leverage GPUs
A Middleware Supporting Data Movement in Complex and Software-Defined Storage and Memory Architectures
International audienceAmong the broad variety of challenges that arise from workloads in a converged HPC and Cloud infrastructure, data movement is of paramount importance, especially oncoming exascale systems featuring multiple tiers of memory and storage. While the focus has, for years, been primarily on optimizing computations, the importance of improving data handling on such architectures is now well understood. As optimization techniques can be applied at different stages (operating system, run-time system, programming environment, and so on), a middleware providing a uniform and consistent data awareness becomes necessary. In this paper, we introduce a novel memory-and data-aware middleware called Maestro, designed for data orchestration
Adaptive Asynchronous Control and Consistency in Distributed Data Exploration Systems
Advances in machine learning and streaming systems provide a backbone to transform vast arrays of raw data into valuable information. Leveraging distributed execution, analysis engines can process this information effectively within an iterative data exploration workflow to solve problems at unprecedented rates. However, with increased input dimensionality, a desire to simultaneously share and isolate information, as well as overlapping and dependent tasks, this process is becoming increasingly difficult to maintain. User interaction derails exploratory progress due to manual oversight on lower level tasks such as tuning parameters, adjusting filters, and monitoring queries. We identify human-in-the-loop management of data generation and distributed analysis as an inhibiting problem precluding efficient online, iterative data exploration which causes delays in knowledge discovery and decision making. The flexible and scalable systems implementing the exploration workflow require semi-autonomous methods integrated as architectural support to reduce human involvement. We, thus, argue that an abstraction layer providing adaptive asynchronous control and consistency management over a series of individual tasks coordinated to achieve a global objective can significantly improve data exploration effectiveness and efficiency. This thesis introduces methodologies which autonomously coordinate distributed execution at a lower level in order to synchronize multiple efforts as part of a common goal. We demonstrate the impact on data exploration through serverless simulation ensemble management and multi-model machine learning by showing improved performance and reduced resource utilization enabling a more productive semi-autonomous exploration workflow. We focus on the specific genres of molecular dynamics and personalized healthcare, however, the contributions are applicable to a wide variety of domains
Recommended from our members
High Performance Computing for City-Scale Modelling and Simulations
The 21st Century is witnessing a rapid rise of urbanization both in the developed and the developing world. Cities increasingly need to be able to do more with less in order to provide for the well-being of their citizens in a sustainable way. The promise of Smart City is an emerging ability to understand, to respond to, and to shape human activity at urban population and geographic scales so that a more agile, adaptive, and
sustainable urban environment can be created (see Batty et al., 2012; Caragliu et al., 2011; Chourabi et al., 2012; Su et al., 2011 for early adoption of Smart City). To be effective, this requires the predictive power of data-driven modelling and city-scale computational simulations. Recently city-scale simulations are becoming possible thanks to a surge of development in the high-performance computing (HPC) domain
including advanced hardware, computational and algorithmic techniques such as domain decomposition across multi-GPUs and multigrid techniques. Advanced high performance computing systems (a billion billion calculations per second) are now becoming available to performance city-scale simulations with micro-scale models of
an individual objective (structure, people, vehicle, etc.) (e.g. Sánchez-Medina et al., 2010; Hori, 2011; Zia et al., 2012; Wijerathne et al., 2013; Pijanowski et al., 2014; Yoshimura et al., 2016; Johansen et al., 2017; Lu and Guan., 2017
Performance Observability and Monitoring of High Performance Computing with Microservices
Traditionally, High Performance Computing (HPC) softwarehas been built and deployed as bulk-synchronous, parallel
executables based on the message-passing interface (MPI) programming model.
The rise of data-oriented computing paradigms and an explosion
in the variety of applications that need to be supported on HPC
platforms have forced a re-think of the appropriate programming and execution models to integrate this new functionality.
In situ workflows demarcate a paradigm shift in
HPC software development methodologies enabling
a range of new applications ---
from user-level data services to machine learning (ML) workflows that run
alongside traditional scientific simulations.
By tracing the evolution of HPC software developmentover the past 30 years, this dissertation identifies the key elements and trends
responsible for the emergence of coupled, distributed, in situ workflows.
This dissertation's focus is on coupled in situ workflows
involving composable, high-performance microservices. After outlining the motivation
to enable performance observability of these services and why
existing HPC performance tools and techniques can not be applied in this context, this dissertation
proposes a solution wherein a set of techniques gathers, analyzes, and orients performance data from
different sources to generate observability. By leveraging microservice components initially designed
to build high performance data services,
this dissertation demonstrates their broader applicability for building and deploying performance
monitoring and visualization as services within an in situ workflow.
The results from this dissertation suggest that: (1) integration of
performance data from different sources is vital to understanding the performance
of service components, (2) the in situ (online) analysis of this performance data
is needed to enable the adaptivity of distributed components and manage monitoring data volume, (3) statistical modeling combined
with performance observations can help generate better service configurations, and (4) services are a promising
architecture choice for deploying in situ performance monitoring and visualization functionality.
This dissertation includes previously published and co-authored material and unpublished co-authored material
- …