DOI 10.17586/0021-3454- 2017-60-10-961-966
УДК 004.254
ПРОБЛЕМА ЛОЖНОГО РАЗДЕЛЕНИЯ СТРОК КЭШ-ПАМЯТИ ПРОЦЕССОРОВ В МНОГОПРОЦЕССОРНЫХ СИСТЕМАХ
Санкт-Петербургский национальный исследовательский уни-верситет информационных технологий, механики и оптики, кафедра вычислительной техники;
Кузичкина А. О.
Университет ИТМО; кафедра вычислительной техники; студентка
Читать статью полностью
Аннотация. Исследована проблема ложного разделения строк кэш-памяти процессоров, обусловленная спецификой организации памяти в современных многоядерных многопроцессорных системах. Ложное разделение строк приводит к тому, что задачи, которые должны выполняться параллельно на нескольких ядрах, выполняются последовательно. Проблему трудно обнаружить, а ее наличие может стать причиной резкой деградации производительности системы в целом. В ходе проведенного исследования выявлены шаблоны программирования, использование которых для решения типовых задач в многопоточных приложениях приводит к ложному разделению. Экспериментальным путем измерено время выполнения шаблонов при наличии ложного разделения и после применения предложенных в работе методов для решения этой проблемы. Проанализированы зависимости ускорения выполнения шаблонов программирования и эффективности использования вычислительных ресурсов системы от числа параллельно работающих потоков. По результатам исследования установлено, что ложное разделение существенно влияет на временные характеристики работы многопоточных приложений, предложены методы его устранения.
Ключевые слова: многопроцессорные системы, кэш-память, ложное разделение, многопоточное приложение
Список литературы:
Список литературы:
- Цилькер Б. Я., Орлов С. А. Организация ЭВМ и систем. СПб: Питер, 2011. 688 с.
- Таненбаум Э. Архитектура компьютера. СПб: Питер, 2007. 843 с.
- Drepper U. What every programmer should know about memory // Red Hat, Inc. 2007. Vol. 11. 114 p.
- Venkataramani G., Hughes C. J., Kumar S., Prvulovic M. Coherence Miss Classification for Performance Debugging in Multi-Core Processors // Proc. of the 13th Workshop on Interaction between Compilers and Computer Architecture. 2009. 10 p.
- Hennessy J. L., Patterson D. A. Computer architecture a quantitative approach. Waltham (Massachusetts): Elsevier, 2012. 848 p.
- Уильямс Э. Параллельное программирование на C++ в действии. Практика разработки многопоточных программ. М.: ДМК Пресс, 2012. 672 c.
- Спецификации процессора Intel® Xeon® Processor E5-2690 [Электронный ресурс]: http://ark.intel.com/ru/products/64596/Intel-Xeon-Processor-E5-2690-20M-Cache-2_90-Ghz-8_00-Gts-Intel-QPI.
- Brendan G. Systems Performance: Enterprise and the Cloud. Upper Saddle River (New Jersey): Prentice Hall, 2013. 729 p.