«Эффективность» нитей в многопроцессорных системах с общей памятью
Бесплатный доступ
Традиционно предполагается, что вычисление, разбитое на несколько нитей определённым образом, выполняется в системах с общей памятью (SMP или NUMA) быстрее, чем это же вычисление, но разбитое на несколько процессов. В представляемой работе высказана гипотеза о том, что такое предположение может быть неверным для вычислений с большими объёмами данных, главным образом по двум причинам. Во-первых, поддержка единого адресного пространства для нитей может быть существенно более накладной, чем суммарные затраты на переключение контекста выполнения между процессами. Во-вторых, даже если вычисление не требует интенсивного управления памятью, естественное ограничение на объём хранимого в TLB описания рабочего множества страниц, и в случае нитей приводит к необходимости частого обновления этого кэша трансляций. В статье описаны эксперименты и их результаты, которые подтверждают адекватность этой гипотезы.
Общая память, производительность, нити, процессы
Короткий адрес: https://sciup.org/147159160
IDR: 147159160 | УДК: 004.4’6
Thread «efficiency» on the shared memory multiprocessors
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.
Список литературы «Эффективность» нитей в многопроцессорных системах с общей памятью
- 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üpbach, A. Singhania, T. Roscoe, P. Barham, R. Isaacs//Proceedings of the 12th HotOS Workshop. -Monte Verita, 2009. -P. 19.
- Методика распределенных вычислений RiDE/М.О. Бахтерев, П.А. Васёв, А.Ю. Казанцев, И.А. Альбрехт,//Параллельные вычислительные технологии (ПаВТ’2011): тр. междунар. науч. конф. -М., 2011. -С. 418-426.