Empowering computational science through extreme scalability
Creators: name: D'Auria, Matteo
Publisher: name: Universita degli studi di Salerno
Year: 2021
Subjects: subject: INF/01 INFORMATICA
subject: Computational science
subject: Scalability
subject: Simulation Optimization

description: 2019 - 2020
description: Computational science is an ever-expanding research eld. It combines tech- nologies, modern computational methods, and simulations to address prob- lems too complex to be e ectively predicted by theory alone or too expensive or dangerous to be reproduced in the laboratory. This scienti c domain is a multidisciplinary eld and impacts several sciences, engineering, and hu- manities problems. The success of the computational science approach has resulted in an increasing demand for computing resources to improve the performance of solutions and enable the growth of models, both in size and quality. For these reasons, parallel and distributed computing paradigms and exploiting Cloud Computing have become essential in computational scien- tists' everyday lives. Cloud provides a huge amount of computational power, easily accessible to everyone in a price-aware manner. As a result, the no- tion of \scalability" of an application, running over parallel or distributed systems, has become central in computational science. In a nutshell, an application is scalable if it can e ciently exploit an increasing amount of computational power (e.g., number of nodes or processors). In this domain, a relevant research challenge is to provide scalability at di erent levels, from software libraries to frameworks and tools for helping the solution of scienti c problems. Providing scalability permits scientists to face massive and com- plex problems in a transparent and easy as possible way. This dissertation discusses frameworks and parallel languages that allow scientists to approach computational science problems under the lens of the extreme scalability re- quirement. Contributions of this work can be summarized in three principal categories: languages and tools, Agent-based Model (ABM) and simulation, and Optimization via Simulation (OvS). Many real-world scienti c applications consist of orchestrating several di erent independent tasks or methods for accomplishing a particular work- load. These work ows are usually computationally and time demanding, thus exploiting parallel and distributed techniques became essential. This dissertation presents FLY, a domain-speci c language for scienti c applica- tions, which aims at reconciling Cloud and High-Performance Computing paradigms. FLY adopts a multi-cloud approach by providing a powerful, ef- fective, and pricing-e cient tool for developing scalable work ow-based scien- ti c applications. FLY exploits di erent and at the same time Function-as-a- Service cloud providers as computational backends in a transparent manner. This dissertation describes the programming model of FLY, its language def- inition, and the FLY source-to-source compiler. Furthermore, it is discussed a performance evaluation of FLY on a popular benchmark for distributed computing frameworks, along with a collection of case studies with an analy- sis of their performance results and costs. Finally, a real use case scenario is shown that implements an Optimization via Simulation process using FLY for carrying out a distributed evaluation of simulations on an AWS backend. ABM is a bottom-up modeling approach, where independent decision- making agents model a complex system. Large-scale emergent behavior in ABMs is a ected by the dimension of the population and the complexity of each agent's behavior. However, the computational cost of the simula- tion grows together with the increasing of model details. This dissertation presents the architecture and the implementation of an open-source library for developing Agent-Based Models using the Rust language. Rust-AB is able to exploit both sequential and parallel computing platforms. An inves- tigation on the ability of Rust to develop ABM simulations are discussed, as well as several models developed with Rust-AB are described. Finally, a performance comparison against the well-known Java ABM toolkit MASON is also presented... [edited by Author]