Methods and Experiences for Developing Abstractions for Data-intensive, Scientific Applications

02/20/2020
by   Andre Luckow, et al.
0

Developing software for scientific applications that require the integration of diverse types of computing, instruments and data present challenges that are distinct from commercial software, due to scale, heterogeneity, and the need to integrate various programming and computational models with evolving and heterogeneous infrastructure. Pervasive and effective abstractions are thus critical. The process of developing abstractions for scientific applications and infrastructures is not well understood. While theory-based approaches are suited for well-defined, closed environments, they have severe limitations for designing abstractions for complex, real-world systems. The design science research (DSR) method provides the basis for designing effective systems that can handle real-world complexities. DSR consists of two complementary phases: design and evaluation. This paper applies the DSR method to the development of abstractions for scientific applications. Specifically, we address the critical problem of distributed resource management on heterogeneous infrastructure, a challenge that currently limits many scientific applications. We use the pilot-abstraction, a widely used resource management abstraction for high-performance, high throughput, big data, and streaming applications, as a case study. We evaluate the activities of the process and extensively evaluate the artifacts using different methods, including conceptual modeling, performance characterizations, and modeling. We demonstrate the applicability of the DSR method for holistically handling the complexity of parallel and distributed computing environments addressing important application, system, and infrastructure challenges of scientific applications. Finally, we capture our experiences and formulate different lessons learned.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset