ANALYSIS OF PARELLEL MULTIPROCESSOR EXECUTION OF DIFFERENT PROGRAMMING APPROACHES

Authors

  • Leonid Djinevski University of Skopje, Skopje, North Macedonia

Keywords:

OpenMP, Parallel.For, multiprocessor

Abstract

The necessity of parallel programming for leveraging the full potential of modern multicore processors cannot be overstated. One of the fundamental algorithms used extensively across a multitude of fields is the array sum reduction algorithm. This algorithm is pivotal in scenarios requiring the aggregation of array elements, a task that can benefit significantly from parallel processing techniques. Implementing the array sum reduction algorithm on a multiprocessor system can be approached using various parallel programming models.
This paper delves into a comparative analysis of two prominent parallel programming approaches for the array sum reduction algorithm on a shared memory microprocessor environment. We explore the implementation and performance characteristics of C with OpenMP, a well-established and widely adopted parallel programming model in the C programming ecosystem, and C# with Parallel.For, a robust and flexible parallel programming framework within the .NET environment.
Our analysis involves a rigorous empirical evaluation and benchmarking process to assess the execution efficiency, scalability, and ease of implementation associated with each approach. By systematically examining these factors, we aim to elucidate the specific contexts and application scenarios where each parallel programming paradigm excels or may present limitations. Furthermore, we consider the development overhead and learning curve associated with adopting these technologies, providing a holistic view of their practicality in real-world applications.
In addition to performance metrics, we examine the debugging and maintenance complexities that developers may encounter when working with these paradigms. We also assess the extent to which each approach supports advanced parallelism features such as task parallelism and load balancing. Another important aspect of our study is the interoperability of these programming models with other tools and libraries commonly used in high-performance computing.
Through this comparative study, we seek to provide developers and researchers with a comprehensive understanding of the trade-offs involved in selecting between C with OpenMP and C# with Parallel.For. The insights garnered from our evaluation will aid in making informed decisions, ensuring optimal performance and resource utilization in parallel programming applications tailored to modern multicore processors. Ultimately, our findings contribute to the broader discourse on parallel computing best practices and the future directions of parallel algorithm development.
Our results aim to serve as a reference point for future research, highlighting potential areas for enhancement in both programming models. We hope to inspire further innovation in parallel computing techniques, fostering advancements that can lead to more efficient and scalable software solutions.

References

Aho, A. V., Kernighan, B. W., & Weinberger, P. J. (2023). The AWK programming language. Addison-Wesley Professional. Bak, S., Bertoni, C., Boehm, S., Budiardja, R., Chapman, B. M., Doerfert, J., ... & Yeung, P. K. (2022). OpenMP application experiences: Porting to accelerated nodes. Parallel Computing, 109, 102856. Chandra, R. (2001). Parallel programming in OpenMP. Morgan Kaufmann.

Chi, Y., Guo, L., Lau, J., Choi, Y. K., Wang, J., & Cong, J. (2021, May). Extending high-level synthesis for task-parallel programs. In 2021 IEEE 29th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM) (pp. 204-213). IEEE. Ciccozzi, F., Addazi, L., Asadollah, S. A., Lisper, B., Masud, A. N., & Mubeen, S. (2022). A comprehensive exploration of languages for parallel computing. ACM Computing Surveys (CSUR), 55(2), 1-39. Cvijić, B., & Ranilović, P. (2024). From. NET Core to. NET 8: A Comprehensive Analysis of Performance, Features, and Migration Pathways. JITA-APEIRON, 27(1), 69-77. Griffiths, I. (2022). Programming C# 10. " O'Reilly Media, Inc.". Karstadt, E., & Schwartz, O. (2020). Matrix multiplication, a little faster. Journal of the ACM (JACM), 67(1), 1-31. Okur, Semih, and Danny Dig. "How do developers use parallel libraries?." Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. 2012. Torres, R., Ferrer, R., & Teruel, X. (2022, May). A novel set of directives for multi-device programming with openmp. In 2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) (pp. 401-410). IEEE. Zhu, X., Whitehead Jr, E. J., Sadowski, C., & Song, Q. (2015). An analysis of programming language statement frequency in C, C++, and Java source code. Software: practice and experience, 45(11), 1479-1495.

Downloads

Published

2024-08-17

How to Cite

Djinevski, L. (2024). ANALYSIS OF PARELLEL MULTIPROCESSOR EXECUTION OF DIFFERENT PROGRAMMING APPROACHES. KNOWLEDGE - International Journal , 65(3), 293–297. Retrieved from https://ojs.ikm.mk/index.php/kij/article/view/6928