Concurrency Challenges and Optimization Strategies in MultiCore Architectures

Authors

  • Dr. Vikram Aggarwal School of Computing, King Saud University, Riyadh, Saudi Arabia Author

DOI:

https://doi.org/10.63282/3050-9246.IJETCSIT-V3I2P102

Keywords:

Concurrency, multi-core processors, lock-free algorithms, transactional memory, workload balancing, parallel algorithms, cache optimization, hybrid concurrency control, dynamic workload balancing, hardware support

Abstract

Multi-core architectures have become the cornerstone of modern computing, offering significant performance improvements through parallel processing. However, these benefits come with substantial challenges, particularly in managing concurrency. This paper explores the key challenges in concurrent programming on multi-core systems and presents a comprehensive overview of optimization strategies. We delve into issues such as race conditions, deadlocks, and false sharing, and discuss advanced techniques like lock-free algorithms, transactional memory, and workload balancing. The paper also includes empirical evaluations and case studies to illustrate the effectiveness of these strategies. Finally, we provide a comparative analysis of different optimization techniques and offer recommendations for future research

Downloads

Download data is not yet available.

References

[1] Adedoyin, A. A., Negre, C. F. A., Mohd-Yusof, J., Bock, N., Osei-Kuffuor, D., Fattebert, J.-L., Wall, M. E., Niklasson, A. M.N., & Mniszewski, S. M. (2021). Performance optimizations of recursive electronic structure solvers targeting multi-core architectures. arXiv preprint arXiv:2102.08505. https://arxiv.org/abs/2102.08505

[2] Borkar, S., & Chien, A. A. (2011). The future of microprocessors. Communications of the ACM, 54(5), 67–77. https://doi.org/10.1145/1941487.1941507

[3] Boyd-Wickizer, S., Chen, H., Chen, R., Mao, Y., Kaashoek, M. F., Morris, R., Pesterev, A., Stein, L., Wu, M., Dai, Y., Zhang, Y., & others. (2010). Corey: An operating system for many cores. In Proceedings of the 8th USENIX conference on Operating systems design and implementation (pp. 43–57). USENIX Association.

[4] Cantini, R., Marozzo, F., Orsino, A., Talia, D., Trunfio, P., Badia, R. M., Ejarque, J., & Vázquez, F. (2022). Block size estimation for data partitioning in HPC applications using machine learning techniques. arXiv preprint arXiv:2211.10819. https://arxiv.org/abs/2211.10819

[5] Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., & McDonald, J. (2001). Parallel programming in OpenMP. Morgan Kaufmann.

[6] Fatourou, P., Kallimanis, N. D., Kanellou, E., Makridakis, O., & Symeonidou, C. (2024). Efficient distributed data structures for future many-core architectures. arXiv preprint arXiv:2404.05515. https://arxiv.org/abs/2404.05515

[7] GeeksforGeeks. (n.d.). Challenges in programming for multicore systems. Retrieved from https://www.geeksforgeeks.org/challanges-in-programming-for-multicore-system/

[8] Gustafson, J. L. (1988). Reevaluating Amdahl's law. Communications of the ACM, 31(5), 532–533. https://doi.org/10.1145/42411.42415

[9] Herlihy, M., & Shavit, N. (2012). The art of multiprocessor programming (Revised Reprint). Morgan Kaufmann.

[10] Iorga, D., Sorensen, T., & Donaldson, A. F. (2018). Do your cores play nicely? A portable framework for multi-core interference tuning and analysis. arXiv preprint arXiv:1809.05197. https://arxiv.org/abs/1809.05197

[11] Juyal, C., Kulkarni, S., Kumari, S., Peri, S., & Somani, A. (2019). Achieving starvation-freedom with greater concurrency in multi-version object-based transactional memory systems. arXiv preprint arXiv:1904.03700. https://arxiv.org/abs/1904.03700

[12] Kirk, D. B., & Hwu, W.-M. W. (2016). Programming massively parallel processors: A hands-on approach (3rd ed.). Morgan Kaufmann.

[13] Lee, E. A. (2006). The problem with threads. Computer, 39(5), 33–42. https://doi.org/10.1109/MC.2006.180

[14] McCool, M., Reinders, J., & Robison, A. (2012). Structured parallel programming: Patterns for efficient computation. Morgan Kaufmann.

[15] McKenney, P. E. (2011). Is parallel programming hard, and, if so, what can you do about it? Linux Technology Center, IBM Beaverton.

[16] Sutter, H. (2005). The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobb's Journal, 30(3), 202–210.

[17] Tanenbaum, A. S., & Bos, H. (2014). Modern operating systems (4th ed.). Pearson.

[18] Williams, S., Waterman, A., & Patterson, D. (2009). Roofline: An insightful visual performance model for multicore architectures. Communications of the ACM, 52(4), 65–76. https://doi.org/10.1145/1498765.1498785

[19] Zhang, Y., Chen, X., & Shen, K. (2010). NUMA-aware thread scheduling: Case study on OpenSolaris and Linux. In USENIX Annual Technical Conference (pp.19–19).

[20] Zhuravlev, S., Blagodurov, S., & Fedorova, A. (2010). Addressing shared resource contention in multicore processors via scheduling. ACM SIGARCH Computer Architecture News, 38(1), 129–142. https://doi.org/10.1145/1735970.1736013

Published

2022-05-18

Issue

Section

Articles

How to Cite

1.
Aggarwal V. Concurrency Challenges and Optimization Strategies in MultiCore Architectures. IJETCSIT [Internet]. 2022 May 18 [cited 2025 Sep. 12];3(2):12-2. Available from: https://ijetcsit.org/index.php/ijetcsit/article/view/62

Similar Articles

11-20 of 193

You may also start an advanced similarity search for this article.