Analyzing the limitations of parallelism in hardware and software through threaded programming
DOI:
https://doi.org/10.54097/hset.v41i.6738Keywords:
technology industries, high performance, decision tree, Thread programmingAbstract
Parallel computing is applied across various technology industries for solving complex scientific problems that desire high performance and efficiency while can help utilize the resource to save time, money, and energy. This technique has been developed over decades as the physical limits of chips have been reached. The development of parallel computing is closely bonded with the evolution of hardware and software implementation, and there are many forms of parallelism applied to different systems to improve their performance. This paper focused on threaded programming by applying parallelism to a decision tree program and testing the program performance with variables of thread number and device configuration while aiming to demonstrate the limitation of parallelism from both software and hardware aspects. The experiment's outcome in this paper shows that the overall trend of the performance variation for different devices is similar. Still, an improvement in the performance will be affected by the hardware implementation. In contrast, a device with a better configuration performs better. To summarize this research, parallelism can only be fully utilized when applied to a properly designed program running on a robust machine. Therefore, the innovation of hardware and software is essential to the future development of parallel computing.
Downloads
References
“Introduction to Parallel Computing.” GeeksforGeeks, June 4, 2021. Retrieved August 21, 2022, from https://www.geeksforgeeks.org/introduction-to-parallel-computing/
Kriha, Walter. “Why Is Parallel Programming so Hard to Express?” Computer Science Blog, October 24, 2016. Retrieved August 21, 2022, from https://blog.mi.hdm-stuttgart.de/index.php/2016/10/24/why-is-parallel-programming-so-hard-to-express/
Robey, Robert, and Yuliana Zamora. “Chapter 1 Why Parallel Computing?” Essay. In Parallel and High Performance Computing. Manning, 2021.
Rauber, Thomas, and Rünger Gudula. “2.1 Processor Architecture and Technology Trends.” Essay. In Parallel Programming for Multicore and Cluster Systems, p.7–10. Springer, 2013.
Venu, Balaji. "Multi-core processors-an overview." arXiv preprint arXiv:1110.3535 (2011).
Wilson, Gregory V. “The History of the Development of Parallel Computing,” October 28, 1994. Retrieved August 21, 2022, from https://webdocs.cs.ualberta.ca/~paullu/C681/parallel.timeline.html
Navarro, Cristobal A., Nancy Hitschfeld-Kahler, and Luis Mateu. "A survey on parallel computing and its applications in data-parallel problems using GPU architectures." Communications in Computational Physics 15, no. 2 (2014): 285-329.
Wang, Lizhe, Jie Tao, Gregor von Laszewski, and Holger Marten. "Multicores in Cloud Computing: Research Challenges for Applications." J. Comput. 5, no. 6 (2010): 958-964.
Nemirovsky, Mario, and Dean M. Tullsen. "Multithreading architecture." Synthesis Lectures on Computer Architecture 8, no. 1 (2013): 1-109.
“What Is Hyper-Threading?” Intel. Retrieved September 17, 2022, from https://www.intel.com/content/www/us/en/gaming/resources/hyper-threading.html.
Pacheco, Peter. “2.4 Parallel Software” An introduction to parallel programming, p.47. Elsevier, 2011.
“Intel® Optane™ Persistent Memory 200 Series Brief.” Intel. Retrieved September 17, 2022, from https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/optane-persistent-memory-200-series-brief.pdf.
Downloads
Published
Issue
Section
License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.







