Експоненціальна швидкість у зовнішній пам'яті


15

Фон

Зовнішня пам'ять або модель DAM визначає вартість алгоритму за кількістю вводу-виводу, який він виконує (по суті, кількість пропущених кеш-пам'яток). Ці часи роботи, як правило, наводяться з точки зору , розміру пам'яті та , кількості слів, які можна передати в пам'ять за один раз. Іноді і використовуються для і відповідно. Б Л З Б МMBLZBM

Наприклад, для сортування необхідна вартість а для наївного матричного множення потрібна . Θ ( n 3 / B Θ(N/BlogM/BN/B)Θ(n3/BM)

Ця модель використовується для аналізу «алгоритмів кеш-забудькуватий», які не мають знань або . Як правило, мета полягає в тому, щоб алгоритм, що не забув кеш, оптимально працював у моделі зовнішньої пам'яті; це не завжди можливо, як, наприклад, у проблемі перестановки (показано в Brodal, Faderberg 2003 ). Дивіться цю підписку Еріка Демена для подальшого пояснення алгоритмів, що не враховуються кеш-пам'ять, включаючи обговорення сортування та множення матриць.МBM

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

Моє запитання таке:

Чи є випадок, коли прискорення експоненціальне в ? Час роботи було б на зразок . Мене особливо цікавить алгоритм або структура даних, що не підлягає кешу, що відповідає цьому опису, але буде задоволений керованим кешом алгоритмом / структурою даних або навіть найвідомішою нижньою межею.f ( N , B ) / 2 O ( M )Mf(N,B)/2O(M)

Як правило, у більшості моделей прийнято вважати, що розмір слова якщо - вхідний розмір і чітко . Тоді прискорення дає поліноміальний прискорення в . Це змушує мене вважати, що якщо проблема, яку я шукаю, існує, вона не є многочленною. (Інакше ми можемо змінити розмір кешу на постійну, щоб отримати постійне число вводу-виводу, що здається малоймовірним).N M > w 2 M Nw=Ω(logN)NM>ш2МN


Ви можете здогадатися, але ? знайшов випадок, заданий як прискорення , достатній? N=Bpolylog(B)
vzn

На жаль, це має бути з точки зору , на жаль. Мені буде цікаво посилання, хоча. M
СамМ

Вікіпедія про кеш-пам'яті, що не враховує . fyi є деяка тонкість у позначенні цих полів. p7 виноска Demaine говорить у цій області, - розмір проблеми & іноді n = N / B, де n - кількість блоків, "але, мабуть, нижнє регістрове позначення вийшло з користі". ви використовуєте n вище та альтернативно N, мабуть, обидва як вхідний розмір. ви думаєте, що вам слід хоча б стандартизувати своє запитання. Nn=N/BnnN
vzn

Я редагував це для послідовності. - розмір вхідного сигналу, а n використовується лише для множення матриць, оскільки час виконання цієї проблеми, як правило, визначається через матрицю n × n (тобто N = n 2 )Nnn×nN=n2
SamM

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

Відповіді:


3

Я не впевнений, що зрозумів питання. Але мені здається, що при припущенні, що містить проблеми, що вимагають експоненціального часу, такі проблеми відповідали б вашим вимогам, оскільки якщо M є O ( log N ), вам знадобиться експоненціальна кількість операцій вводу / виводу ( оскільки ви не можете "залишитися" в одному блоці пам'яті розміром O ( log N ) більше, ніж кількість поліномів, не вступаючи в цикл) і якщо M = NPSPACEMO(logN)O(logN)M=Nвам знадобиться лише лінійна кількість операцій вводу / виводу. Крім того, що стосується Вашого спостереження, що така проблема не може належати до , це правильно, якщо прискорення повинно мати значення для M, що Ω ( N ) (оскільки це означатиме, що ми маємо експоненціальну кількість операцій). Але якщо прискорення стосується лише менших значень M , інтуїтивно я вважаю, що це неправда, тому що я вважаю, що слід створити проблему, яка насправді є об'єднанням менших задач розміром O ( log N ), кожна з яких потребує експоненціальної час у власному розмірі та експоненціальна кількість операцій вводу / виводу (тобто p oPMΩ(N)MO(logN) , оскільки p o l y ( N ) - експоненціальна в O ( log N ) ). На практиці я вважаю, що P S P A C E -повні проблеми, такі як T Q B F, виконують вашу умову.poly(N)poly(N)O(logN)PSPACETQBF


Боюся, я не дотримуюся деяких ваших аргументів. Якщо , будь-яка проблема у зовнішній пам'яті тривіальна. Як я вже згадував, M = O ( журнал N ) дещо нерозумно, оскільки це означає, що пам'ять має лише постійну кількість слів (можливо, але не про те, як загально досліджується зовнішня пам'ять). Я бачу, що ви говорите, що було експоненціальне посилення, але це нічого не говорить про проміжні значення. Наприклад, оптимальний Розділ у зовнішній пам'яті - це мінімум двох термінів (по суті, якщо все вписується в пам'ять, ми робимо щось зовсім інше, ніж якщо цього немає). Чи можете ви виключити це? M=Ω(N)M=O(logN)
СамМ

1
Я не розумію, чому будь-яка проблема у зовнішній пам'яті тривіальна, якщо . Якщо M = N / 2 і алгоритм займає експоненціальний час, можливо, ви будете змушені поміняти місцями (так би мовити) дві половини пам'яті в експоненціальній кількості разів. M=Ω(N)M=N/2
user8477

Ах, звичайно, ти маєш рацію щодо важливості постійного фактора. Це має багато сенсу; це, безумовно, хороша відправна точка.
СамМ

У мене немає аргументів для проміжних значень. На дуже поверхневому рівні я думаю, що деякі алгоритми зворотного відстеження мали б експоненціальну залежність від розміру пам'яті, оскільки операції вводу / виводу будуть потрібні на вузлах меншої глибини дерева пошуку. Ця залежність застосовуватиметься до проміжних значень. Це, звичайно, не говорить про притаманну складності проблеми, звичайно. Крім того, якщо у вас є , наведений вище аргумент «голубний отвір» (циклічний) все одно дасть приріст T ( N ) / 2 M, де T ( N ) - часова складність проблеми.M=ω(logN)T(N)/2MT(N)
user8477

-4

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

Зауважте, кого ви цитуєте, пише: "Принцип ідеї [алгоритмів, що забули кеш]] простий: розробляти алгоритми зовнішньої пам'яті, не знаючи і M. Але ця проста ідея має кілька дивно потужних наслідків".BM

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

  • B,M

  • TMs були винайдені в 1936 році Тьюринг і Хартманіс-Stearns теорем часу / простору ієрархії (що ви кілька натякає в цьому питанні) були відкриті в 1965 р Те буде примітні ~ 3 десятиліття ще теореми часу / простору ієрархії тепер розглядаються кілька початкові та викладали на бакалаврських класах. начебто не існує відповідних теорем ієрархії, встановлених у цій моделі, і як це зробити, це не тривіальна проблема. Ця модель насправді має більше "рухомих деталей", ніж стандартна машина Тьюрінга (яка вже має досить дивовижно складну динаміку), тобто схожа на розширену машину Тьюрінга.

  • Інша ідея полягає в тому, щоб якось перетворити цю модель зовнішньої пам’яті в ТМ, яка, як видається, не з’являється в літературі / опитуваннях з прихованими алгоритмами кешу, і, можливо, побачити, як можна було б перекласти теореми ієрархії Хартманіса-Стіарнса. Схоже, це стосується двох стрічок TM, де одна стрічка має розмір 'M', а інша стрічка нескінченна, а блоки передаються на 'M' розмірами 'B'. але також складність тут полягає в тому, що це більше модель ОЗУ, ніж модель Тьюрінга, яка використовує послідовний доступ до стрічки. з іншого боку, це може виникнути в тонкощах, пов'язаних з перетвореннями між одиночними та багатотактними ТМ .

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

  • ось грубий аргумент, заснований на 'M', який в основному є показником "основної пам'яті" та дискової пам'яті. що стосується алгоритму, можна очікувати, коли основна пам'ять зростає, лише наближається [асимптотично] до лінійного поліпшення алгоритмічної швидкості, і додавання "основної пам'яті" для отримання будь-якого надлінійного збільшення швидкості алгоритму здається інтуїтивно зрозумілим, як перевищення швидкості ліміт і "отримання чогось дарма". однак, не розумійте модель достатньо добре, щоб довести це [але, очевидно, нікого іншого немає, включаючи владу / засновників / експертів].

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

  • це навіть не здається інтуїтивно зрозумілим, або, можливо, ще не вивченим щодо того, як в цій моделі поводяться "малі" алгоритми складності, такі як L, або "великі" алгоритми, такі як не-P (наприклад, Expspace тощо). модель вимірює локальність пам’яті, яка, здається, принципово відрізняється, але переплітається з ієрархіями часу та простору.

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

  • це питання і модель нагадує мені закон Амдальса і підозрюю, що якийсь ще нерозкритий подібний закон, пов'язаний зі зменшенням прибутку, противаг / компромісів, може мати місце чи застосовуватись у цій галузі. грубе міркування: теорія алгоритму, що не піддається кешу, розглядає баланс / компроміс між скінченною "локальною" пам'яттю та зовнішнім "нескінченним" диском на основі витрат. це в основному два ресурси, які ведуть себе "паралельно" і, ймовірно, існує якийсь оптимальний компроміс між ними.


2
k

модель TM є базовою моделлю TCS та "містків thms" між її ієрархією складності (час / простір, базові класи складності, такі як P / NP тощо) з алгоритмами, що не відповідають обробці кешу, очевидно, залишаються для відображення. моделі зовнішньої пам’яті та споріднені моделі кешу, які забувають, в основному намагаються моделювати характеристики реальних дій, і література поки не зацікавлена ​​у великих теоретичних абстракціях, таких як запитання.
vzn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.