Towards Enabling I/O Awareness in Task-based Programming Models

11/02/2021
by   Hatem Elshazly, et al.
0

Storage systems have not kept the same technology improvement rate as computing systems. As applications produce more and more data, I/O becomes the limiting factor for increasing application performance. I/O congestion caused by concurrent access to storage devices is one of the main obstacles that cause I/O performance degradation and, consequently, total performance degradation. Although task-based programming models made it possible to achieve higher levels of parallelism by enabling the execution of tasks in large-scale distributed platforms, this parallelism only benefited the compute workload of the application. Previous efforts addressing I/O performance bottlenecks either focused on optimizing fine-grained I/O access patterns using I/O libraries or avoiding system-wide I/O congestion by minimizing interference between multiple applications. In this paper, we propose enabling I/O Awareness in task-based programming models for improving the total performance of applications. An I/O aware programming model is able to create more parallelism and mitigate the causes of I/O performance degradation. On the one hand, more parallelism can be created by supporting special tasks for executing I/O workloads, called I/O tasks, that can overlap with the execution of compute tasks. On the other hand, I/O congestion can be mitigated by constraining I/O tasks scheduling. We propose two approaches for specifying such constraints: explicitly set by the users or automatically inferred and tuned during application's execution to optimize the execution of variable I/O workloads on a certain storage infrastructure. Our experiments on the MareNostrum 4 Supercomputer demonstrate that using I/O aware programming model can achieve up to 43 compared to the I/O non-aware implementation.

READ FULL TEXT

page 12

page 13

page 15

page 17

research
11/27/2020

Introducing the Task-Aware Storage I/O (TASIO) Library

Task-based programming models are excellent tools to parallelize and sea...
research
03/12/2018

Increasing the Degree of Parallelism Using Speculative Execution in Task-based Runtime Systems

Task-based programming models have demonstrated their efficiency in the ...
research
04/22/2022

nOS-V: Co-Executing HPC Applications Using System-Wide Task Scheduling

Future Exascale systems will feature massive parallelism, many-core proc...
research
09/21/2022

UPIR: Toward the Design of Unified Parallel Intermediate Representation for Parallel Programming Models

The complexity of heterogeneous computing architectures, as well as the ...
research
07/12/2022

The OpenMP Cluster Programming Model

Despite the various research initiatives and proposed programming models...
research
08/12/2022

Accelerating Task-based Iterative Applications

Task-based programming models have risen in popularity as an alternative...
research
10/14/2022

Probabilistic Scheduling of Dynamic I/O Requests via Application Clustering for Burst-Buffer Equipped HPC

Burst-Buffering is a promising storage solution that introduces an inter...

Please sign up or login with your details

Forgot password? Click here to reset