Акишев И.Р. Разработка и анализ параллельных поисковых

advertisement
Разработка и анализ
параллельных поисковых структур
данных, не чувствительных к
размеру кеша
Акишев Искандер Рустемович
Научный руководитель:
Елизаров Роман Анатольевич
СПб ГУ ИТМО, 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
Download