Зменшення складності з паралелізмом


10

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


Чи можете ви трохи уточнити своє запитання? Тривіально постійне число процесорів -> в кращому випадку ви можете покращити час роботи постійним коефіцієнтом. Я думаю, це було не те, що ти маєш на увазі?
Jukka Suomela

Msgstr "Не відносно розміру вводу". Що ви точно означаєте під цим? O (1)?
Ар'ябхата

Я маю на увазі процесори O (1). @Jukka: це те, що я можу сказати, чи можна обчислювальну складність лише зменшити, додавши кількість процесорів відносно вхідного розміру?
Нік Ларсен

Відповіді:


12

Якщо ви маєте на увазі процесори O (1), то ні, складність обчислень не може бути зменшена.

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


Дякую за швидку відповідь. Не створюючи іншого питання для чогось настільки пов'язаного між собою, чи можна зменшити складність обчислювальної техніки, використовуючи ряд процесорів відносно чогось іншого, ніж розмір вводу?
Нік Ларсен

2
@Nick: Щось інше, ніж розмір введення, це O (1) :-)
Aryabhata

Дякую, у мене були проблеми з думкою про все інше, але я хотів бути впевненим.
Нік Ларсен

Напишіть, чи зможете ви досягти прискорення за допомогою декількох процесорів, які зростають з деякою кількістю, відмінною від вхідного розміру, я не впевнений, що відповідь "ні". Є проблеми, складність яких зростає за допомогою певного параметра, який відрізняється (хоча, очевидно, не залежить від) розміру вводу. Що робити, якщо для якоїсь проблеми з графіком я дозволив вам, наприклад, декілька процесорів, пов’язаних із шириною дерева дерева?
Аарон Рот

@Aaron: Якщо кількість дозволених процесорів якось пов'язана з входом, то так, ми точно не можемо сказати "ні". Звичайно, якщо ми не конкретні, це безглузде питання.
Ар'ябхата

6

Існує поле з грубозернистими паралельними алгоритмами, де час роботи (та інші витрати обчислювальних ресурсів) розглядають як функцію незалежних параметрів n (розмір вводу) та p (кількість процесорів), часто під природним припущенням n >> стор .

Хороший вихідний пункт - це google для "об'ємно-синхронного паралелізму".


Чи може змінитися клас складності, якщо ви дозволите апаратному масштабуванню масштабуватися з вхідними даними? У мене виникають проблеми з Google, що це мирянин: /
Геренюк

3

Вас може зацікавити цей документ:

Суперлінійна продуктивність у паралельних обчисленнях у режимі реального часу Селімом Акл.

Він наводить приклади обчислювальних задач, у яких "послідовне рішення більш ніж у разів повільніше, ніж n -процесорне паралельне рішення"; це робиться шляхом творчої інтерпретації поняття "обчислювальна проблема".nn


1

pp

O(f(n)/p)O((1/p)f(n))O(cf(n))O(f(n))c=1/p

TT/p+SomeMoreTime

Але НЕ змінюється складність.


1

"ви не можете обчислити його з 1 процесором, але ви можете обчислити з 2."

Це неможливо, якщо припустити, що обидва процесори є ТМ або менш потужною моделлю. З Вікіпедії, для мульти-стрічкових машин:

Ця модель інтуїтивно здається набагато потужнішою, ніж односмугова модель, але будь-яка багатосмугова машина, незалежно від того, наскільки величина k, може бути змодельована односмуговою машиною, використовуючи лише квадратично більший час обчислення (Papadimitriou 1994, Thrm 2.1)

Також для багатоголових машин, від "Лінійного моделювання часу багатошарових машин для тюрінга з стрибками в голову" Вальтера Дж. Савича та Пола М.Б. Вітані:

Основний результат цієї роботи показує, що, враховуючи машину Тюрінга з декількома головами для читання-запису на стрічку і яка має додаткову операцію з переміщенням в русі "переміщення даної голови в положення якоїсь іншої заданої головки", можна ефективно сконструювати a багатотапна машина Тьюрінга з однією головою для читання і запису на стрічку, яка імітує її в лінійний час; тобто, якщо оригінальна машина працює в часі T (n), то імітувальна машина буде працювати в часі cT (n), для деякої постійної c.


Тут ми маємо чудовий приклад вартості абстракції. Реальні комп'ютери (як реалізація RM) можуть бути паралелізовані краще, ніж ТМ.
Рафаель

Що означає RM? Якщо це було неправильним типом, і ви маєте на увазі ТМ, я не згоден. Багатоканальні / багатоголові ТМ не повинні турбуватися про зв’язок процесора та закон Амдала. Крім того, я не бачу, як комп'ютер може працювати краще, ніж TM із випадковим доступом, і навпаки, тобто я вважаю, що вони рівноцінні.
chazisop

0

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

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


2
Це здається помилковим, якщо ви не працюєте в якійсь жорсткій моделі. Один процесор міг просто переплутати інструкції, які в іншому випадку будуть працювати на 2, викликаючи принаймні 2х + O (1) уповільнення. Я думаю, що під «чорною скринькою» ви маєте на увазі, що переплетення неможливе? Навіть тоді, якщо ви можете припинити обчислення в чорному ящику, які займають занадто багато часу, ви все одно можете імітувати два процесори, багаторазово відгадуючи та подвоюючи необхідну довжину обчислень для кожного процесу.
Аарон Рот

Але це, в свою чергу, вимагає від нас можливості припинити обчислення. Я маю на увазі, що ви не можете робити паралельно або на 1 процесорі в моделі, де єдине, що ви можете зробити, це запустити обчислення, поки воно не закінчиться.
jkff

Тепер я розумію, що ви мали на увазі, але я вважаю, що це не повне. Ви не можете обчислити його з 2 ні. Якщо одна машина продовжує працювати, а інша відповідає ТАК, відповідь - ТАК. Але що робити, якщо вона повертає НІ? Ви не можете відповісти детерміновано, тому що не знаєте, чи машина все ще працює або вона застрягла (тобто проблема HALTING).
chazisop
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.