Які алгоритми не можна паралелізувати?


24

Чи є якийсь алгоритм, який складно паралелізувати чи дослідження все ще активне?

Я хотів дізнатися про будь-який алгоритм чи будь-яке дослідницьке поле при паралельних обчисленнях.

Що-небудь, що я шукав, "паралельна" реалізація зроблена. Просто хочу трохи вивчити будь-яке невивчене поле паралельних обчислень.


1
Що саме ви маєте на увазі під "паралелізацією"? Можливо, кожен алгоритм є паралельним, просто не завжди добре. (У будь-якому випадку може бути цікавіше знайти нові алгоритми.)
— Рафаель

Ви правильно зрозуміли, моя мета - знайти алгоритми, які важко паралелізувати. Чи можете ви розповісти більше про те, що ви маєте на увазі, знаходячи нові алгоритми?
— Поліном Протон

Ви не відповідали на моє запитання. Скільки процесорів ви дозволяєте (5, p , n , ∞ )? Яку швидкість та / або ефективність ви потребуєте (будь-яка швидкість, швидкість лінійна за кількістю процесорів, полі-логарифмічний загальний час)?
— Рафаель

На сьогоднішній день я шукаю алгоритми, які складно паралелізувати, тобто досліджувати поле, а потім приймати рішення відповідно до їх вивчення.
— Поліном Протон

Відповіді:


11

це в основному відкрита дослідницька проблема, що стосується питання NC =? P, де NC приймається як клас ефективних паралельних алгоритмів.

У впливовому / широкомасштабному опитуванні Берклі "пейзаж паралельних обчислень" є класи алгоритмів або паралелізму, поділених на "гномів". з 1-ї ідентифікованої 6-ої, це виглядає як проблеми -body, можливо, порівняно складно ефективно паралелізувати, оскільки n збільшується, оскільки між n n- точками є n ^ 2 взаємодії .ннн2н

пізніше вони додали ще 6 матеріалів у документ і припускають, що останній під назвою "FSMs" (p14), де проблема пов'язана з обчисленням FSM, як обчислення (наприклад, й стан FSM), може бути протилежною "бентежно паралельній" щось вони пропонують називати "бентежно послідовним".н

дивіться також, чи є відомі алгоритми в sci. комп. що не можна паралелізувати , scicomp.se


1
Блискуче, дякую за посилання та пояснення!
— Поліном Протон

11

Ця стаття надає низку проблем, які легко вирішити послідовно, але важко паралелізувати: http://en.wikipedia.org/wiki/P-complete

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


Це передбачає теоретико-теоретичне визначення поняття "паралелізабельність", яке може представляти чи не представляти інтерес.
— Рафаель

@Raphael: AFAIK, багато класичних проблем, повних P, важко паралелізувати не тільки в теорії, але і на практиці (навіть якщо у вас порівняно невелика кількість процесорів).
— Jukka Suomela

@JukkaSuomela Також є випадки, коли теорія складності припускає твердість, але на практиці все добре працює. Крім того, позитивні результати на практиці теж не означають багато .
— Рафаель

NС=П

7

З практичної точки зору, ви запитуєте про суттєво послідовні алгоритми. Є багато кандидатів, таких як хеш-ланцюжок, який, як вважають, дуже важко паралелізувати. Хеш-ланцюг широко використовується в криптографії. Наприклад, схема шифрування паролів bcrypt була розроблена, щоб спробувати ускладнити прискорення хешу шляхом паралелізації. Інший приклад - повторне квадратування (знову ж таки, в криптографії).


Я знайшов декілька паперів, які паралелізують хеш-ланцюжок, але не прочитали його повністю. Я пройду через те саме. У будь-якому випадку, дякую за вклад!
— Поліном Протон

1
@ Невідомі посилання на ці документи будуть вдячні.
— m33lky

@ m33lky Вибачте, у мене зараз немає жодного з цих паперів. Це було ще в січні, і я нарешті продовжив своє дослідження з іншої теми. Однак ви можете шукати в Інтернеті програми вченого google, і я впевнений, що у вас вийде багато робіт
— Поліном Протон

З практичної точки зору, це також варто відзначити , що якщо алгоритм є , наприклад , пам'яті пов'язані, то розпаралелювання не надто допомагає: stackoverflow.com/questions/868568 / ...
— Чіро Сантіллі新疆改造中心法轮功六四事件
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.