Явна багатопоточність

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Явна багатопоточність (англ. explicit multi-threading, XMT) — парадигма у інформатиці, призначена для побудови і програмування паралельних комп'ютерів, спроектованих навколо моделі паралельної машини з довільним доступом (PRAM). Більш пряме пояснення XMT починається з рудиментарною абстракцією, що зробила послідовне обчислювання простішим: кожна окрема інструкція, яка доступна для виконання, в послідовній програмі негайно виконується. Наслідком цієї абстракції є покрокове (індуктивне) пояснення інструкцій, що доступні для виконання. Зародкова паралельна абстракція XMT, що отримала назву Concurrent Execution (ICE) в Vishkin (2011), пояснює що на невизначений час багато інструкцій, доступних для одночасного виконання можна виконати негайно. Наслідком ICE є покрокове (індуктивне) пояснення інструкцій що доступні для паралельного виконання. Виходячи за рамки послідовного фон Нейманівського комп'ютера (єдиний успішна платформи на сьогоднішній день), прагнення XMT в тому, що комп'ютерні науки знову будуть в змозі збільшити математичну індукції за допомогою простої однострічкової обчислювальної абстракції.

Машина з довільним доступом до пам'яті (RAM) являє собою абстрактну модель, що використовується в інформатиці для вивчення алгоритмів і складності для стандартного послідовного обчислення. Модель PRAM є абстрактною паралельною моделлю обчислювальної машини, яка була введена для вивчення паралельних алгоритмів і складності паралельних обчислень, коли вони ще не були побудовані. Дослідники розробили великий базу знань паралельних алгоритмів моделі PRAM. Ці паралельні алгоритми також відомі за те, що прості, за мірками інших підходів до паралельних алгоритмів.

Це велика база знань паралельних алгоритмів для моделі PRAM і їх відносна простота вмотивована тим, що побудовані комп'ютери, за цією базою знань, можуть керуватися цими паралельних алгоритмів. Оскільки продуктивність паралельних програмістів вже давно вважається важливою для успіху паралельних комп'ютерів, спрощення алгоритмів має важливе значення.

Багатоядерні комп'ютери побудовані навколо двох або більше процесорних ядер, інтегрованих на одному кристалі інтегральних схем. Вони широко використовуються в багатьох областях, включаючи обчислення загального призначення. Явна багатопоточність (XMT) є парадигмою комп'ютерних наук для побудови і програмування багатоядерних комп'ютерів з десятками, сотнями або тисячами процесорних ядер.

Експериментальні роботи опубліковані в 2011 і 2012 роках, що демонструє значно більші прискорення для просунутих алгоритмів PRAM на XMT прототипах, аніж для одних і тих же проблем на впроваджених багатоядерних комп'ютерах.

Парадигма XMT була представлена Узі Вішкіном[en].

Основний рівень абстрації XMT[ред. | ред. код]

Парадигма явної багатопотоковісті обчислень (XMT) об'єднує кілька рівнів абстракції.

Фреймворк робочого часу (WT) (іноді називається глибина роботи), запропонований 1982-го року Шілоахом і Вішкіном[1], забезпечує простий спосіб для концептуалізації та опису паралельних алгоритмів. В рамках WT, паралельний алгоритм був вперше описаний в термінах паралельних раундів. Для кожного раунду, операції які повинні бути виконані описуються, але деякі питання можуть бути опущені. Наприклад, кількість операцій в кожному циклі не повинно бути передбачено, процесори не обов'язково повинні бути згадані і будь-яка інформація, яка може допомогти з призначенням процесорів до робочих місць не повинна враховуватися. По-друге, забезпечується[уточнити] заборонена інформація. Включення забороненої інформації, насправді, привело до підтверджень при доведенні теореми про планування.[2]. Фреймворк WT є корисним, оскільки в той час як він може значно спростити початковий опис паралельного алгоритму, вставляючи деталі заборонених інформації в початковий опис. Наприклад, каркас WT був прийнятий як основа представлення в паралельних книгах про паралельні алгоритми (для моделі PRAM)[3][4][5]. Вішкін[6] пояснює простий зв'язок між фреймворком WT і зародковою ICE абстракцією, що була відзначена вище.

Парадигма XMT може бути запрограмована за допомогою XMTC, паралельна багатопоточна мова програмування, яка є невеликим розширенням мови програмування C. XMT парадигма включає робочий процес програміста, який починається з лиття алгоритму в рамках WT і переходить до програмування його в XMTC.

У XMT багатоядерні комп'ютерні системи забезпечують, під час виконання, балансування навантаження багатопоточних програм, що включають кілька патентів. Один з них узагальнює зустрічну концепцію програми, яка є центральним елементом архітектури фон Неймана до багатоядерного апаратного забезпечення.

XMT прототипування і посилання на додаткову інформацію[ред. | ред. код]

[1]

[7]

[8] [9] [10] [11]

[12] [13]

Примітки[ред. | ред. код]

  1. а б Shiloach, Yossi; Vishkin, Uzi (1982). An O(n2 log n) parallel max-flow algorithm. Journal of Algorithms (англ.). № 3. с. 128—146.
  2. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою Brent1974 не вказано текст
  3. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою JaJa1992 не вказано текст
  4. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою KellerKesslerTraeff2001 не вказано текст
  5. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою Vishkin2009 не вказано текст
  6. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою Vishkin2011 не вказано текст
  7. JaJa, Joseph (1992). An Introduction to Parallel Algorithms (англ.). Addison-Wesley. {{cite web}}: Пропущений або порожній |url= (довідка)
  8. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою VishkinEtAl1998 не вказано текст
  9. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою NaishlosEtAl2003 не вказано текст
  10. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою WenVishkin2008 не вказано текст
  11. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою TorbertEtAl2010 не вказано текст
  12. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою CarageaVishkin2011 не вказано текст
  13. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою EdwardsVishkin2012 не вказано текст