Разработка и анализ параллельных поисковых структур данных, не чувствительных к размеру кеша Акишев Искандер Рустемович Научный руководитель: Елизаров Роман Анатольевич СПб ГУ ИТМО, 2008 1 Классический анализ алгоритмов Память Модель RAM: Доступ к любой ячейке за O(1) Процессор ... 2 Реальные системы 1. Наличие кешпамяти Основная память Кеш Быстрый доступ Медленный доступ Процессор Z/L блоков L слов ... 3 Реальные системы 1. Наличие кешпамяти Желание научиться располагать близкие элементы данных близко Следствие: указатели – «плохо» массивы – «хорошо» 4 Реальные системы 2. Параллельные системы Разделяемая память Процессор Процессор Процессор Процессор Локальная память Локальная память Локальная память Локальная память 5 Реальные системы 2. Параллельные системы Значительное усложнение алгоритмов: • • • • Необходимость синхронизации Опасности блокировок Недетерминизм … 6 Цель: Создание алгоритмов, которые учитывают эти особенности и, как следствие, эффективны на практике. 7 Основные идеи 1. Michael, Scott, 1996 Быстрый и простой алгоритм очереди без блокировок на основе связного списка ┴ Head Tail 8 Основные идеи 2. Развернутый связный список ┴ Head Head index Tail Tail index Вместо одиночных элементов – массивы 9 Основные идеи 3. Tsigas, Zhang, 2001 Простой подход к реализации очереди на массиве NULL(1) NULL(1) 0 NULL(0) NULL(0) NULL(0) NULL(0) NULL(0) NULL(0) 1 N-2 N-1 Head Tail 10 Новый алгоритм очереди Структура: Модифицированная очередь Майкла-Скотта xxxx xx Head dummy-node ┴ Параллельная очередь на основе массива Unfull Tail 11 Новый алгоритм очереди Преимущества: • Отсутствие блокировок • Использование массивов – Экономия памяти – Эффективность работы с кешом • Относительная простота • Высокая эффективность 12 Новый алгоритм очереди Недостатки: • Алгоритм чуть сложнее, чем у Майкла и Скотта • Свойство нечувствительности к параметрам кеша достигается только при выполнении дополнительных условий 13 Сравнение производительности 9 Количество операций 8 7 6 5 4 3 2 1 0 1 2 3 4 5 Количество процессоров в системе 6 7 8 Unrolled List Michael-Scott Intel Core 2 Duo 14 Сравнение производительности 9 Количество операций 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Количество процессоров в системе 24 25 26 27 28 29 30 31 32 Unrolled List Michael-Scott Sun Microsystems UltraSPARC-T1 15 Спасибо за внимание! 16