Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Спекуляция на уровне потоков (TLS) - это метод спекулятивного выполнения части компьютерного кода, которая, как ожидается, будет выполняться позже, параллельно с обычным выполнением в отдельном независимом потоке . Такой спекулятивной ветке может потребоваться сделать предположения о значениях входных переменных. Если они окажутся недействительными, спекулятивная нить должна быть отброшена и уничтожена. Если предположения верны, программа может завершиться за более короткое время при условии, что поток можно было эффективно запланировать.

Он также известен как спекулятивная многопоточность (SpMT). [ необходима цитата ]

Описание [ править ]

TLS извлекает потоки из последовательного кода и выполняет их предположительно параллельно с безопасным потоком. Спекулятивный поток необходимо будет отбросить или перезапустить, если его предположения о состоянии ввода окажутся недействительными. Это метод динамического (во время выполнения) распараллеливания , который может выявить параллелизм, который могут не использовать методы статического (во время компиляции) параллелизма, поскольку во время компиляции нельзя гарантировать независимость потоков. Чтобы методика достигла цели сокращения общего времени выполнения, должен быть доступный ресурс ЦП, который можно эффективно выполнять параллельно с основным безопасным потоком. [1] : 2

Ссылки [ править ]

  1. ^ Мартинес, Хосе Ф .; Торреллас, Хосеп (2002). «Спекулятивная синхронизация» (PDF) . Материалы 10-й международной конференции по архитектурной поддержке языков программирования и операционных систем (ASPLOS-X) - ASPLOS '02 . ACM. п. 18. DOI : 10,1145 / 605397,605400 . ISBN 1581135742. S2CID  9189828 . Архивировано из оригинального (PDF) 2018-11-18.

Дальнейшее чтение [ править ]

  • Йяпанис, Параскевас; Росас-Хам, Демиан; Браун, Гэвин; Лужан, Микель (2013). «Оптимизация систем времени выполнения программного обеспечения для спекулятивного распараллеливания» . ACM-транзакции по архитектуре и оптимизации кода . 9 (4): 1-27. DOI : 10.1145 / 2400682.2400698 .
  • Джонсон, Ник П .; Ким, Ханджун; Прабху, Пракаш; Закс, Аял; Август, Дэвид I. (2012). «Спекулятивное разделение на приватизацию и сокращение» (PDF) . Труды 33-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . PLDI '12. С. 359–370. DOI : 10.1145 / 2254064.2254107 .
  • Бховмик, Анасуа; Франклин, Манодж (2002). «Общая структура компилятора для спекулятивной многопоточности». Материалы четырнадцатого ежегодного симпозиума ACM по параллельным алгоритмам и архитектурам . SPAA '02. С. 99–108. DOI : 10.1145 / 564870.564885 .
  • Брюнинг, Дерек; Девабхактуни, Шрикришна; Амарасингхе, Саман (2000). Softspec: Программный спекулятивный параллелизм (PDF) . ФДДО-3. С. 1–10.
  • Чен, Майкл К .; Олукотун, Кунле (1998). «Использование параллелизма на уровне методов в однопоточных программах на Java». Международная конференция по параллельным архитектурам и методам компиляции . ПАКТ 1998. С. 176–184. DOI : 10,1109 / PACT.1998.727190 .
  • Чен, Майкл К .; Олюкотун, Кунле (2003). «Система Jrpm для динамического распараллеливания программ Java». Материалы 30-го ежегодного международного симпозиума по компьютерной архитектуре . ISCA '03. С. 434–446. DOI : 10.1145 / 859618.859668 .
  • Синтра, Марсело; Льянос, Диего Р. (2003). «На пути к эффективному и надежному программному спекулятивному распараллеливанию на многопроцессорных системах». Материалы девятого симпозиума ACM SIGPLAN по принципам и практике параллельного программирования . PPoPP '03. С. 13–24. DOI : 10.1145 / 781498.781501 .
  • Кук, Джонатан Дж. (2002). «Обратное выполнение байт-кода Java». Компьютерный журнал . 45 (6): 608–619. CiteSeerX  10.1.1.20.4765 . DOI : 10.1093 / comjnl / 45.6.608 .
  • Хиноны, Карлос Гарсия; Мадрилес, Карлос; Санчес, Хесус; Маркуэлло, Педро; Гонсалес, Антонио; Таллсен, Дин М. (2005). «Компилятор Mitosis: Инфраструктура для спекулятивной потоковой передачи, основанная на предварительных вычислениях». Материалы конференции 2005 ACM SIGPLAN по разработке и реализации языков программирования . PLDI '05. С. 269–279. DOI : 10.1145 / 1065010.1065043 .
  • Ху, Шивэнь; Бхаргава, Рави; Джон, Лизи Куриан (2003). «Роль прогнозирования возвращаемого значения в использовании спекулятивного параллелизма на уровне методов» (PDF) . JILP . 5 : 1–21.
  • Кази, Иффат Х. (2000). Модель динамически адаптивного распараллеливания на основе спекулятивной многопоточности (кандидатская диссертация). Университет Миннесоты. С. 1–188.
  • Пикетт, Кристофер Дж. Ф.; Вербрюгге, Кларк (2005). «SableSpMT: программная среда для анализа спекулятивной многопоточности в Java». Материалы 6-го семинара ACM SIGPLAN-SIGSOFT по Программному анализу для программных средств и инженерии . ПАСТА '05. С. 59–66. DOI : 10.1145 / 1108792.1108809 .
  • Пикетт, Кристофер Дж. Ф.; Вербрюгге, Кларк (2005). «Спекуляция на уровне программных потоков для языка Java и среды виртуальных машин» (PDF) . Материалы 18-й международной конференции «Языки и компиляторы для параллельных вычислений» . LCPC '05. LNCS. 4339 . С. 304–318. DOI : 10.1007 / 978-3-540-69330-7_21 .
  • Портер, Лео; Чой, Бумёнг; Таллсен, Дин М. (2009). «Отображение пути от аппаратной транзакционной памяти к спекулятивной многопоточности». 18-я Международная конференция по параллельным архитектурам и методам компиляции . ПАКТ '09. С. 313–324. DOI : 10,1109 / PACT.2009.37 .
  • Рундберг, Питер; Стенстрем, Пер (2001). «Полностью программная система предположений о зависимостях данных на уровне потоков для многопроцессоров» (PDF) . JILP . 3 : 1–28.
  • Стеффан, Дж. Грегори; Колохан, Кристофер; Чжай, Антония; Моури, Тодд С. (2005). «Подход STAMPede к спекуляции на уровне потоков». ACM-транзакции в компьютерных системах . 23 (3): 253–300. CiteSeerX  10.1.1.79.4317 . DOI : 10.1145 / 1082469.1082471 . S2CID  10499545 .
  • Уэйли, Джон; Козыракис, Христос (2005). «Эвристика для спекулятивного распараллеливания на уровне методов на основе профиля». Международная конференция по параллельной обработке . ICPP 2005. С. 147–156. DOI : 10.1109 / ICPP.2005.44 .
  • Ренау, Хосе; Штраус, Карин; Сезе, Луис; Лю, Вэй; Саранги, смрути; Так, Джеймс; Торреллас, Хосеп (2006). «Энергоэффективные спекуляции на уровне потоков» (PDF) . IEEE Micro . 26 (1): 80–91. DOI : 10.1109 / MM.2006.11 . S2CID  206472480 .
  • Ёсизоэ, Кадзуки; Мацумото, Такаши; Хираки, Кей (1998). «Спекулятивное параллельное выполнение на JVM» . Британский семинар по HPNC . С. 1–20.
  • Oancea, Cosmin E .; Майкрофт, Алан; Харрис, Тим (2009). «Облегченная реализация на месте для предположений на уровне программных потоков» (PDF) . Материалы двадцать первого ежегодного симпозиума по параллелизму в алгоритмах и архитектурах . SPAA '09. С. 1–10. DOI : 10.1145 / 1583991.1584050 .