Обмеження паралельних обчислень


21

Мені цікаво в широкому сенсі про те, що відомо про алгоритми паралелізації в П. Я знайшов наступну статтю у Вікіпедії про цю тему:

http://en.wikipedia.org/wiki/NC_%28complexity%29

Стаття містить таке речення:

Невідомо, чи NC = P, але більшість дослідників підозрюють, що це помилково, це означає, що, ймовірно, є деякі простежувані проблеми, які "є по своїй суті послідовними" і не можуть бути значно вирішені за допомогою паралелізму

Це звучить розумно? Чи відомі випадки, коли проблема P не може бути вирішена за допомогою паралелізму?



Так, це звучить розумно. Розділ у книзі « Комп’ютерна складність » Пападімітріу дає хороші пояснення для вивчення цієї теми.
Tsuyoshi Ito

Відповіді:


17

Навіть невідомо, чи NC = P, але здається, що проблеми P-завершені по суті важко паралелізувати. До них відносяться лінійне програмування та ріг-SAT. (Навпаки, проблеми в НК здаються досить легко паралелізувати.)

Дивіться питання Проблеми між NC та P: Скільки було вирішено із цього списку? для довідкового матеріалу (включаючи посилання на класичний підручник, який зараз доступний для безкоштовного завантаження), та подальше обговорення проблем, які є в P, але невідомо, що можна паралелізувати.

Див. Питання Узагальнена теорема Ладнера щодо структури класів складності між NC та P. Коротко, якщо вони різняться, то існує нескінченно багато класів складності суворо між NC та P.

Дивіться питання NC = P наслідки? для гарної демонстрації Райана Вільямса, що можна посилити колапси в ієрархії класів складності в межах P на, можливо, більш неправдоподібні колапси, такі як PSPACE = EXP .

Варто зазначити, що одним із наслідків того, що Horn-SAT є P-повним, та наведеними вище посиланнями, є те, що не представляється можливим паралелізувати загальні запити SQL у базах даних, якщо ми також не зможемо переписати будь-які масштабні обчислення для використання лише розумний обсяг зберігання. Це дивовижна невідповідність - я думаю, що цілком суперечливо твердити, що існують обмеження на стиснення , але я часто бачу статті, які здаються побудованими на припущенні, що можна паралелізувати будь-який запит до бази даних.


Звичайно, ви не зможете паралелізувати будь-яку частину запиту до бази даних або принаймні будь-яким прямим способом. Однак запит до бази даних (виключаючи підзапити, щоб зробити речі простішими) можна звести до повного сканування таблиці через якусь об'єднану таблицю, а сама об'єднана таблиця завжди може бути сканована паралельно. Ось чому, збільшуючи паралелізм параметрів в Oracle, більш схильне використовувати сканування повної таблиці, а не індекси.
sclv

@sclv: Це правда, але загалом проміжні з'єднання можуть бути експоненціальними у вхідному розмірі? Таким чином, можна паралелізувати через з'єднання, але ціною необхідності сканування експоненціальної кількості кортежів.
Андраш Саламон

1
Що ви вважаєте розміром вводу? Крім того, якщо у вас є m n o перехресне з'єднання, завжди є можливість, що ви могли б повернути саме стільки кортежів, тобто немає кращого обмеження у гіршому випадку. І це є більш практичним, ніж теоретичним, але взагалі ви переживаєте не про паралельне виконання присудка над рядком у будь-якому випадку, а про пропускну здатність вводу-виводу, оскільки саме там, як правило, пов'язана межа.
sclv

10

Ну, якби були відомі випадки, тоді ми змогли б розділити P і NC. Але існує багато проблем, які, як відомо, є P-повними (тобто при скороченні простору журналу), і вони створюють такий самий бар'єр для показу P = NC, як і проблеми NP-завершення для P = NP. Серед них можна віднести лінійне програмування та узгодження (і максимальні потоки загалом).

Кетан Малмулі довів результат, відокремлюючи P і слабку форму NC (без бітових операцій) ще в 1994 році. У певному сенсі його поточна програма для P vs NP злітає звідти, де це закінчилося ( дуже вільно ).

У книзі " Обмеження паралельних обчислень " детальніше про це.


2
Остерігайся. Я не думаю, що відповідність є P-завершеною. Відомо, що відповідність є в RNC шляхом тестування поліноміальної ідентичності (перевірка, якщо визначник матриці Тутта графіка однаково дорівнює нулю). Якби це було P-повним, то ймовірна краха P = RNC виникла б.
slimton

argh ти правий. Я мав би дотримуватися максимальних потоків. дякую за виправлення
Суреш Венкат

0

Я відповів на аналогічне запитання: Чи є відомі проблеми / алгоритми в наукових обчисленнях, які неможливо прискорити паралелізацією на сайті Computational Science . Дозвольте мені процитувати його тут, оскільки він пропонує практичну точку зору на дуже конкретний приклад такої проблеми:

(Відомий) швидкий маршируючий метод для розв’язання рівняння Ейконана не можна прискорити паралелізацією. Існують і інші методи (наприклад, швидкі розгортки) для вирішення рівняння Ейконала, які піддаються паралелізації, але навіть тут потенціал для (паралельного) прискорення обмежений.

Проблема рівняння Ейконала полягає в тому, що потік інформації залежить від самого рішення. Вкрай кажучи, інформація протікає за характеристиками (тобто світловими променями в оптиці), але характеристики залежать від самого рішення. А потік інформації для розрізненого рівняння Ейконала ще гірший, вимагає додаткових наближень (як неявно присутні в методах швидкого розгортання), якщо бажане паралельне прискорення.

Щоб побачити труднощі при паралелізації, уявіть собі приємний лабіринт, як у деяких прикладах на веб-сторінці Сетьяна . Кількість комірок на найкоротшому шляху через лабіринт (ймовірно) є нижньою межею для мінімальної кількості кроків / ітерацій будь-якого (паралельного) алгоритму, що вирішує відповідну задачу.

(Я пишу "(ймовірно) є", тому що нижчі межі, як відомо, важко довести, і часто вимагають певних розумних припущень щодо операцій, які використовуються алгоритмом.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.