Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , алгоритмы внешней памяти или вне ядра алгоритмов являются алгоритмами , которые предназначены для данных процесса , которые являются слишком большими , чтобы вписаться в компьютере основной память одновременно. Такие алгоритмы должны быть оптимизированы для эффективного извлечения и доступа к данным, хранящимся в медленной основной памяти ( вспомогательной памяти ), такой как жесткие диски или ленточные накопители , или когда память находится в компьютерной сети . [1] [2] Алгоритмы внешней памяти анализируются в модели внешней памяти .

Модель [ править ]

Кэш слева содержит блоки размером каждый, всего M объектов. Объем внешней памяти справа неограничен.

Алгоритмы внешней памяти анализируются в идеализированной модели вычислений, называемой моделью внешней памяти (или моделью ввода-вывода , или моделью доступа к диску ). Модель внешней памяти - это абстрактная машина, аналогичная модели RAM-машины , но с кеш-памятью в дополнение к основной памяти . Модель учитывает тот факт, что операции чтения и записи в кэше выполняются намного быстрее, чем в основной памяти , и что чтение длинных непрерывных блоков происходит быстрее, чем чтение в случайном порядке с использованием головки чтения и записи диска . Время работы из алгоритмав модели внешней памяти определяется количеством требуемых операций чтения и записи в память. [3] Эта модель была введена Alok Aggarwal и Джеффри Виттер в 1988 году [4] Внешняя модель памяти связана с кэш-модели не обращая внимания , но алгоритмы во внешней памяти модели могут знать , как размер блока , и кэш размер. По этой причине модель иногда называют моделью с учетом кеширования . [5]

Модель состоит из процессора с внутренней памятью или кеш-памятью размера M , подключенного к неограниченной внешней памяти. И внутренняя и внешняя память разделена на блоки размера B . Одна операция ввода / вывода или передачи памяти состоит из перемещения блока из B смежных элементов из внешней памяти во внутреннюю, а время работы алгоритма определяется количеством этих операций ввода / вывода. [4]

Алгоритмы [ править ]

Алгоритмы в модели внешней памяти используют тот факт, что при извлечении одного объекта из внешней памяти извлекается весь блок размером . Это свойство иногда называют местностью.

Поиск элемента среди объектов возможен во внешней модели памяти с помощью B-дерева с коэффициентом ветвления . С помощью B-дерева поиск, вставка и удаление могут выполняться во времени (в нотации Big O ). Информация теоретически это минимальное время выполнения, возможное для этих операций, поэтому использование B-дерева является асимптотически оптимальным . [4]

Внешняя сортировка - это сортировка во внешней памяти. Внешняя сортировка может быть выполнена с помощью сортировки по распределению, которая похожа на быструю сортировку , или с помощью сортировки слиянием по пути . Оба варианта обеспечивают асимптотически оптимальное время выполнения для сортировки N объектов. Эта оценка также применима к быстрому преобразованию Фурье в модели внешней памяти. [2]

Проблема перестановки состоит в том, чтобы переставить элементы в определенную перестановку . Это можно сделать либо путем сортировки, для чего требуется указанная выше среда выполнения сортировки, либо путем вставки каждого элемента по порядку и игнорирования преимущества локальности. Таким образом, перестановку можно произвести вовремя.

Приложения [ править ]

Модель внешней памяти захватывает иерархию памяти , которая не моделируется в других распространенных моделях, используемых при анализе структур данных , таких как машина с произвольным доступом , и полезна для доказательства нижних границ для структур данных. Модель также полезна для анализа алгоритмов, которые работают с наборами данных, слишком большими для размещения во внутренней памяти. [4]

Типичным примером являются географические информационные системы , особенно цифровые модели рельефа , где полный набор данных легко превышает несколько гигабайт или даже терабайт данных.

Эта методология выходит за рамки процессоров общего назначения и также включает вычисления на GPU, а также классическую цифровую обработку сигналов . В вычислениях общего назначения на графических процессорах (GPGPU) используются мощные графические карты (GPU) с небольшим объемом памяти (по сравнению с более привычной системной памятью, которую чаще всего называют просто RAM ) с относительно медленным переходом между процессорами и процессорами. Передача памяти графического процессора (по сравнению с пропускной способностью вычислений).

История [ править ]

Раннее использование термина «вне ядра» в качестве прилагательного в 1962 году по отношению к устройствам , которые помимо основной памяти в качестве IBM 360 . [6] Первое использование термина «вне ядра» применительно к алгоритмам появилось в 1971 году. [7]

См. Также [ править ]

  • Внешняя сортировка
  • Онлайн алгоритм
  • Алгоритм потоковой передачи
  • Алгоритм без кеширования
  • Параллельная внешняя память
  • Обход графа внешней памяти

Ссылки [ править ]

  1. ^ Vitter, JS (2001). «Алгоритмы внешней памяти и структуры данных: работа с МАССИВНЫМИ ДАННЫМИ». ACM Computing Surveys . 33 (2): 209–271. CiteSeerX  10.1.1.42.7064 . DOI : 10.1145 / 384192.384193 .
  2. ^ Б Vitter, JS (2008). Алгоритмы и структуры данных для внешней памяти (PDF) . Основы и тенденции теоретической информатики . Серия «Основы и тенденции теоретической информатики». 2 . Ганновер, Массачусетс: Теперь издатели. С. 305–474. CiteSeerX 10.1.1.140.3731 . DOI : 10.1561 / 0400000014 . ISBN   978-1-60198-106-6.
  3. ^ Чжан, Дунхуэй; Цотрас, Василис Дж .; Левиальди, Стефано; Гринштейн, Жорж; Берри, Дэймон Эндрю; Гуэ-Брюне, Валери; Кош, Харальд; Деллер, Марио; Деллер, Марио; Кош, Харальд; Майер, Пол; Бхаттачарья, Арнаб; Лйоса, Вебьорн; Нак, Фрэнк; Бартолини, Илария; Гуэ-Брюне, Валери; Мэй, Дао; Руи, Йонг; Круциану, Мишель; Ши, Фрэнк Ю.; Фань, Вэньфэй; Ульман-Каллере, Молли; Кларк, Юджин; Аронсон, Самуэль; Меллин, Джонас; Берндтссон, Микаэль; Grahne, Gösta; Бертосси, Леопольдо; Дун, Гочжу; и другие. (2009). «Модель ввода-вывода вычислений». Энциклопедия систем баз данных . Springer Science + Business Media . С. 1333–1334. DOI : 10.1007 / 978-0-387-39940-9_752 . ISBN 978-0-387-35544-3.
  4. ^ a b c d Аггарвал, Алок; Виттер, Джеффри (1988). «Сложность ввода / вывода сортировки и связанных с ней задач» . Коммуникации ACM . 31 (9): 1116–1127. DOI : 10.1145 / 48529.48535 .
  5. ^ Demaine, Эрик (2002). Алгоритмы и структуры данных без кеширования (PDF) . Конспект лекций Летней школы EEF по массивным массивам данных. Орхус: БРИКС.
  6. ^ НАСА SP . НАСА. 1962. с. 276.
  7. ^ Компьютеры в кризисе . ACM. 1971. с. 296.

Внешние ссылки [ править ]

  • Out of Core SVD и QR
  • Вне основной графики
  • Дизайн скалапака