Швидкість від алгоритмічного прогресу порівняно з обладнанням


14

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


8
Можливо, краще підходить для cs.stackexchange.
Yuval Filmus

дійсно є велика зміна парадигми протягом останніх кількох років закону про wrt moores, тактових швидкостей та паралелізму, і це було висвітлено у багатьох статтях / статтях ....
vzn

Відповіді:


8

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

див. [1] або [2], який заявляє

У доповіді незалежної групи радників з питань науки та технологій Білого дому, опублікованому в грудні минулого року, цитується дослідження, яке показує, що підвищення продуктивності виконання завдань на обчислення, що є результатом вдосконалення програмних алгоритмів, часто перевершує прибутки, що приписуються більш швидким процесорам.
...
Але дорадчий звіт Білого дому посилається на дослідження, включаючи дослідження прогресу впродовж 15-річного періоду щодо базового завдання планування виробництва. За цей час швидкість завершення розрахунків покращилася в 43 мільйони. Згідно з загальним показником, показник приблизно в 1000 був пов'язаний з більш високими швидкостями процесора, згідно з дослідженнями Мартіна Гротшеля, німецького вченого і математика. І все-таки фактор в 43 000 був обумовлений поліпшенням ефективності програмних алгоритмів.

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

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

фактична цитата у звіті знаходиться на сторінці 71:

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

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

однак є кілька інших нових / останніх фундаментальних / масових явищ / тенденцій / зрушень в останні роки або те, що Intels Grove називає "перегинними точками", які виникають в апаратному відношенні програмного забезпечення. aka "gamechangers":

  • зростання надмірних обчислень "Exascale" може бути досягнуто не так швидко, як "Petascale" через обмеження масштабування апаратних засобів
  • тактові швидкості, головний привід попереднього збільшення швидкості, мають плато (частково через обмеження тепла / охолодження)
  • апаратне забезпечення зазнає значного переходу до менш обчислювальних, більш енергоефективних пристроїв, наприклад мобільних пристроїв, центрів обробки даних / віртуалізації / хмари тощо
  • поліпшення паралелізму програмного та апаратного забезпечення (наприклад, "багатоядерність") стає все більш критичним для підвищення продуктивності (де теорія має багато що сказати про те, як паралелізувати алгоритми)

[1] skeptic.se, чи є прогрес в алгоритмах, що перемагає прогрес в апараті

[2] Прогрес програмного забезпечення перемагає Лора щодо блогу Moores Law NYT

[3] ЗВІТ ПРЕЗИДЕНТУ ТА КОНГРЕСУ, що проектує дигітальне майбутнє: ФЕДЕРАЛЬНО ФОНДОВАНЕ ДОСЛІДЖЕННЯ І РОЗВИТКУ ТЕХНОЛОГІЇ МЕРЕЖІ ТА ІНФОРМАЦІЇ Грудень 2010


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

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