77324

ЭФФЕКТИВНОСТЬ НИТЕЙ В СИСТЕМАХ С ОБЩЕЙ ПАМЯТЬЮ

Научная статья

Информатика, кибернетика и программирование

Бахтерев ИММ УрО РАН Екатеринбург Традиционно считается что в системах с общей памятью разбивать вычисление на параллельно выполняющиеся задачи эффективней при помощи нитей а не процессов. Когда же уточняют то говорят о контексте исполнения связанным с TLB Trnsltion Lookside Buffer специальный кэш ускоряющий трансляцию виртуальных адресов в физические который нужно сбрасывать и заполнять новыми значениями при переключении процессора на исполнение разных процессов и которой можно не изменять при переключении на исполнение нитей одного...

Русский

2015-02-02

29.5 KB

0 чел.

ЭФФЕКТИВНОСТЬ НИТЕЙ В СИСТЕМАХ С ОБЩЕЙ ПАМЯТЬЮ

М.О. Бахтерев

ИММ УрО РАН

Екатеринбург

Традиционно считается, что в системах с общей памятью разбивать вычисление на параллельно выполняющиеся задачи эффективней при помощи нитей, а не процессов. Это обычно обосновывают тем, что переключения контекста исполнения процессора с процесса на процесс намного затратней, чем его переключение с нити на нить. Но говоря о таких затратах, редко уточняют, что именно представляет собой этот контекст исполнения. Когда же уточняют, то говорят о контексте исполнения, связанным с TLB (Translation Lookaside Buffer - специальный кэш, ускоряющий трансляцию виртуальных адресов в физические), который нужно сбрасывать и заполнять новыми значениями при переключении процессора на исполнение разных процессов, и которй можно не изменять при переключении на исполнение нитей одного процесса. Считают, что именно эти дополнительные операции с TLB делают нити более эффективными в сравнении с процессами. Однако в подобных рассуждениях не учтено следующее.

 1. Большинство архитектур процессоров с поддержкой виртуальной памяти позволяют хранить в TLB трансляции для разных процессов. Достигается это поддержкой сегментации или механизмов управления адресными пространствами. Такими были и процессоры SPARC, в операционной системе для которых (SunOS 4.x) впервые появился современный вариант нитей. Вероятнее всего, поддержка нитей была предложена компанией SUN действительно для решения проблемы с чрезмерно высокими накладными расходами переключения контекста исполнения процессора на новый процесс, но этот контекст был связан не с TLB, а с кэшами процессора, которые работали по виртуальным адресам. Но в современных процессорах такие кэши почти не встречаются.

2. Объём TLB ограничен. Поэтому обработка больших объёмов данных, которые обычно возникают в супервычислениях, требует и в случае нитей интенсивного обновления TLB в ходе расчёта.

3. Требуемое семантикой нитей общее адресное пространство «бесплатно» образуется только при выполнении нитей на одном процессоре (один TLB). Когда нити выполняются на множестве процессоров, то каждое действие с адресным пространством: выделение или освобождение памяти, расширение стека - требует согласованного управления TLB всех процессоров, задействованных в вычислении. А для этого управления необходимы выполнение критических секций и в некоторых случаях (например, освобождение памяти) прерывание работы нитей. Кроме этого, дополнительные накладные расходы могут быть связаны со сложностью структуры общего адресного пространства. Ведь, даже если программа не предполагает совместное использование некоторых областей этого пространства, их захват и освобождение должны быть согласованы между нитями. Каждый захват при этом усложняет структуру пространства и увеличивает время выполнения последующих операций с памятью.

Таким образом, с нитями и процессами связаны два типа накладных расходов. Со стороны процессов: большая интенсивность операций с TLB. Со стороны нитей: дополнительные сложности поддержки общего адресного пространства. Так как априори не ясно, при помощи какой математической модели можно определить, какой вид издержек менее затратен, мы сравнили эти накладные расходы экспериментально. Для этого были написаны многонитевая и многопроцессорная версии программ для 4-ёх вычислительных нагрузок: умножение матриц хранящихся как построчно, так и плиткой, управление памятью, расчёты с интенсивными обменами. Наши результаты показывают, что во многих случаях нити не только не являются более эффективным средством декомпозиции вычисления на задачи, но и существенно проигрывают в этой эффективности процессам.

Работа выполнена при поддержке программы Президиума РАН № 18 "Алгоритмы и математическое обеспечение для вычислительных систем  сверхвысокой производительности", а также проекта 12-П-1-1034 УрО РАН.


 

А также другие работы, которые могут Вас заинтересовать

77894. Правовые формы распоряжения исключительными правами ГК РФ предусматривает такие формы реализации пр. 29.5 KB
  Правовые формы распоряжения исключительными правами ГК РФ предусматривает такие формы реализации права автора путем заключения договоров: договор об отчуждении исключительного права; лицензионный договор; договор о залоге исключительного авторского права; договор авторского заказа. По договору об отчуждении исключительного права правообладатель передает или обязуется передать принадлежащее ему исключительное право на результат интеллектуальной деятельности или на средство индивидуализации в полном объеме другой стороне...
77895. Транспортные договоры 31.5 KB
  Особенность транспортных договоров: регулируются ГК РФ общие положения о перевозках транспортными уставами и кодексами правилами перевозки грузов пассажиров и багажа. По договору перевозки пассажира перевозчик обязуется перевезти пассажира в пункт назначения а в случае сдачи пассажиром багажа также доставить багаж в пункт назначения и...
77896. Договор хранения 32.5 KB
  Объект индивидуально-определенные вещи вещи определенные родовыми признаками. Может потребовать досрочного расторжения договора когда вещи стали опасны для окружающих. Обязан обеспечить сохранность вещи независимо от того хранение возмездное или безвозмездное. Обязан вернуть вещь немедленно и в том же состоянии с учетом нормального ухудшения вещи.
77897. Сравнительный анализ договора поручения, комиссии, агентского договора 27 KB
  Сравнительный анализ договора поручения комиссии агентского договора По договору поручения одна сторона поверенный обязуется совершить от имени и за счет другой стороны доверителя определенные юридические действия. По договору комиссии одна сторона комиссионер обязуется по поручению другой стороны комитента за вознаграждение совершить одну или несколько сделок от своего имени но за счет комитента. По агентскому договору одна сторона агент обязуется за вознаграждение совершать по поручению другой стороны принципала...
77898. Имущественное страхование. Формы и виды страхования 33.5 KB
  Страховой риск это событие на случай наступления которого проводится страхование. Страховой интерес убытки которые могут возникнуть у страхователя при наступлении страхового случая и от которого он страхуется. Виды страхования: I имущественное страхование: а особый объект страхования...
77899. Сравнительный анализ займа и кредита 34 KB
  В случаях когда срок возврата договором не установлен или определен моментом востребования сумма займа должна быть возвращена заемщиком в течение 30 дней со дня предъявления займодавцем требования об этом если иное не предусмотрено договором. По договору финансирования под уступку денежного требования одна сторона финансовый агент передает или обязуется передать другой стороне клиенту денежные средства в счет денежного требования клиента кредитора к третьему лицу должнику вытекающего из предоставления клиентом товаров...
77900. Договор банковского счета 31.5 KB
  Договор банковского счета По договору банковского счета банк обязуется приниматься и зачислять поступающие на счет открытый клиенту денежные средства выполнять распоряжения клиента о перечислении и выдаче соответствующих сумм со счета и проведении других операций со счета. Субъекты: банк иная кредитная организация которая имеет право на ведение банковских операций; клиент ФЛ ЮЛ. Правовое регулирование: закон о ЦБ РФ о банках и банковской деятельности инструкция ЦБ об открытии и закрытии банковских счетов счетов по вкладам...
77901. Обязательства по совместной деятельности 29.5 KB
  Обязательства по совместной деятельности По договору простого товарищества двое или несколько лиц товарищей обязуются соединить свои вклады и совместно действовать без образования ЮЛ для извлечения прибыли или достижения иной не противоречащей закону цели. СУ: вклад который должен внести каждый из товарищей в общее дело. Должна быть дана денежная оценка вклада товарищей которая определяется по соглашению сторон. Правовой режим: имущество является общей долевой собственностью товарищей договором может быть установлено иное.