Thread "Efficency" on the Shared Memory Multiprocessors

Authors

  • M. O. Bakhterev Institute of Mathematics and Mechanics, Ural Branch of the Russian Academy of Sciences (Yekaterinburg, Russian Federation)

Abstract

It is tradition to assume that computation decomposed in the certain way into several threads is executed on the systems with shared memory (SMP or NUMA) more efficiently than the same computation but decomposed into several processes. In the presented work we hypothesize that this assumption may be false for the computations with big data volumes, mainly by two reasons. Firstly, the support of common shared address space for the treads may introduce substantially more overhead than aggregate expenses on the execution context switching between processes. Secondly, even when computation does not require intensive memory management, the natural limitation for the memory workset description volume stored in TLB results in necessity to frequently renew that translation cache in the case of using threads too. Experiments and their results which prove our hypothesis correctness are described later in the article.

Author Biography

M. O. Bakhterev, Institute of Mathematics and Mechanics, Ural Branch of the Russian Academy of Sciences (Yekaterinburg, Russian Federation)

младший научный сотрудник отдела системного обеспечения

References

AMD64 Architecture Programmer's Manual Volume 2: System Programming - Advanced Micro Devices, 2011.

Appleton, R. Understanding a Context Switching Benchmark // Linux J. - 1999. - № 57. - P. 1-6.

Sigoure, B. How long does it take to make context switch? - 2010. - URL: http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html (дата обращения: 16.10 2012).

SunOS Multi-thread Architecture / M.L. Powell, S.R. Kleiman, S. Barton, D. Shah, D. Stein, M. Weeks // Proceedings of the Winter USENIX Conference. - Dallas, TX, 1991. - P. 65-80.

The SPARC Architecture Manual. Version 8. - Menlo Park, CA: SPARC International Inc, 1991.

Performance of Address-Space Multiplexing on the Pentium / V. Uhlig, U. Dannowski, E. Skoguld, A. Haeberlen, G. Heiser. - 2002.

Jacob, B. Virtual Memory in Contemporary Microprocessors / B. Jacob, T. Mudge // IEEE Micro. - 1998. - V. 18, № 4. - P. 60-75.

Таненбаум, Э. Современные Операционные системы. - 3-е изд. / Э. Таненбаум. - СПб: Питер, 2010.

An Overview of the Singularity Project / G. Hunt, J. R. Larus, M. Abadi, M. Aiken, P. Barham, M. Fahndrich, C. Hawblitzel, O. Hodson, S. Levi, N. Murphy, B. Steensgaard, D. Tarditi, T. Wobber, and Brian D. Zill. - Microsoft Research, 2005.

Исходные тексты Linux 3.3.4. Функция switch_mm. - URL: http://lxr.linux.no/#linux+v3.3.4/arch/x86/include/asm/mmu_context.h#L33 (дата обращения: 16.10.2012).

Бахтерев, М.О. Набор тестов Thread proc benchmark. - URL: https://github.com/coda/thread-proc (дата обращения: 16.10.2012).

Snyder, P. tmpfs: A Virtual Memory File System // Proceedings of the European USENIX Conference. - France, Nice, 1990. - P. 241-248.

A 40nm 16-Core 128-Thread CMT SPARC SoC Processor / J. Shin, K. Tam, D. Huang, B. Petrick, H. Pham, C. Hwang, H. Li, A. Smith, T. Johnson, F. Schumacher, D. Greenhill, A. Leon, A. Strong // ISSCC Digest. - 2010. - № 56. - P. 98-99.

Your computer is already a distributed system. Why isn't your OS? / A. Baumann, S. Peter, A. Sch"upbach, A. Singhania, T. Roscoe, P. Barham, R. Isaacs // Proceedings of the 12th HotOS Workshop. - Monte Verit`a, 2009. - P. 19.

Методика распределенных вычислений RiDE / М.О. Бахтерев, П.А. Васёв, А.Ю. Казанцев, И.А. Альбрехт, // Параллельные вычислительные технологии (ПаВТ'2011): тр. междунар. науч. конф. - М., 2011. - С. 418-426.

Issue

Section

Programming