Abstract
Multicore machines are an extension of the single core personal computer that include several processors (cores) and a shared memory. As such, they are suitable for running parallel programs, including ParC, that use shared memory. Multicore machines replace single processor personal computers and are thus widely used. In this work we will use the term “core” instead of processor or CPU to indicate that several cores are packed in a single chip or actually in one die, functioning as a multi-processor machine. Basically, the parallelism available in multicore machines is used by the operating system to execute several unrelated processes in parallel (e.g., running two compilations and a web search on different cores). We will demonstrate that multicore machines can be used to execute parallel programs efficiently, programs that spawn many threads all communicating through shared memory. However, as an extension of a single core machine designed for personal computers, the mechanism using the shared memory is not as effective as it would have been had it been designed from scratch as a parallel machine. In fact, the shared memory of multicore machines is basically a simulation of shared memory over the single port memory module of the single core personal computer. Thus, it is important to understand how the shared memory of multicore machines works in order to determine how ParC can be implemented and used by multicore machines.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Adve, S.V., Pai, V.S., Ranganathan, P.: Recent advances in memory consistency models for hardware shared memory systems. Proc. IEEE 87(3), 445–455 (2002)
Blake, G., Dreslinski, R., Mudge, T.: A survey of multicore processors. IEEE Signal Process. Mag. 26(6), 26–37 (2009)
Bolosky, W.J., Scott, M.L.: False sharing and its effect on shared memory performance. In: USENIX Systems on USENIX Experiences with Distributed and Multiprocessor Systems, vol. 4, p. 3. USENIX Association, Berkeley (1993)
Geer, D.: Chip makers turn to multicore processors. Computer 38(5), 11–13 (2005)
Khan, M.A.: Optimization study for multicores. Technical report, The University of Uppsala (2009)
Kumar, R., Zyuban, V., Tullsen, D.M.: Interconnections in multi-core architectures: Understanding mechanisms, overheads and scaling. In: Proceedings of 32nd International Symposium on Computer Architecture (ISCA’05), pp. 408–419. IEEE, New York (2005). ISBN 076952270X
Papamarcos, M.S., Patel, J.H.: A low-overhead coherence solution for multiprocessors with private cache memories. Comput. Archit. News 12(3), 354 (1984)
Shasha, D., Snir, M.: Efficient and correct execution of parallel programs that share memory. ACM Trans. Program. Lang. Syst. 10(2), 282–312 (1988)
Smith, A.J.: Cache memories. ACM Comput. Surv. 14(3), 473–530 (1982)
Sweazey, P., Smith, A.J.: A class of compatible cache consistency protocols and their support by the IEEE futurebus. In: Proceedings of the 13th Annual International Symposium on Computer Architecture, pp. 414–423. IEEE Computer Society Press, Los Alamitos (1986). ISBN 081860719X
Torrellas, J., Lam, H., Hennessy, J.L.: False sharing and spatial locality in multiprocessor caches. IEEE Trans. Comput. 43(6), 651–663 (2002)
Vanderwiel, S.P., Lilja, D.J.: Data prefetch mechanisms. ACM Comput. Surv. 32(2), 174–199 (2000)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2012 Springer-Verlag London
About this chapter
Cite this chapter
Ben-Asher, Y. (2012). Multicore Machines. In: Multicore Programming Using the ParC Language. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-1-4471-2164-0_4
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2164-0_4
Publisher Name: Springer, London
Print ISBN: 978-1-4471-2163-3
Online ISBN: 978-1-4471-2164-0
eBook Packages: Computer ScienceComputer Science (R0)