Efficiency of small grain parallelism in modern computer systems

Authors

DOI:

https://doi.org/10.18372/2073-4751.70.16847

Keywords:

multi-core computer systems, fine-grained parallelism

Abstract

When choosing an approach to designing software for multi-core computer systems, one of the first things to solve is the issue of granularity. The degree of granularity varies from fine-grained to coarse-grained. Coarse-grained parallelism: each parallel computation is quite independent of the others, and relatively rare exchange of information between individual computations is required. Fine-grained parallelism: each parallel calculation is quite small and elementary, consisting of dozens of commands. Effective parallel execution requires a masterful balance between the degree of granularity of programs and the amount of communication delay that occurs between different granules. In particular, if the communication delay is minimal, the best performance is promised by a fine-grained division of the program. This is the case when data parallelism works. If the communication delay is large, a coarse-grained division of programs is better. Modern parallel programming languages ​​and libraries, along with tools for creating streams and organizing their interaction, also contain tools for supporting fine-grained parallelism. The paper presents the results of research into the use of fine-grained parallelism with the use of tools of different parallel programming languages ​​and libraries. It is shown that its use in an optimal combination with other types of parallelism provides an opportunity to improve the efficiency of multi-core computer systems.

References

Doug L. A Java Fork/Join Framework. In Proceedings of the ACM 2000 conference on Java Grande (JAVA '00). – 2020. – P. 36-43.

Ponge J. Fork and Join: Java Can Excel at Painless Parallel Programming Too! [Електронний ресурс]. – Режим доступу: http://www.oracle.com/technetwork/articles/java/fork-join-422606.html

Published

2022-06-24

Issue

Section

Статті