Презентация посвящена вопросам использования параллельных алгоритмов для создания современных эффективных программных решений. Актуальность данной тематики обусловлена снижением темпов роста тактовой частоты микропроцессоров и возрастанием внимания к использованию всех возможностей многоядерных и многопроцессорных систем. В работе рассмотрен ряд базовых параллельных алгоритмов, таких как умножение матриц, параллельная сортировка Бэтчера, метод Гаусса решения систем линейных алгебраических уравнений и так далее. Приведена реализация этих алгоритмов c использованием языка программирования Си++.
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...Ontico
Что нужно хранить для того, чтобы была возможность ответить на этот вопрос?
Для точного ответа нужно через равные интервалы времени сохранять множество посетителей сайта (пусть это для простоты будут IP-адреса), которых мы за прошедший интервал увидели. Понятное дело, что такой объём информации хранить нереально, а даже, если получится, придётся объединять большое количество множеств и считать элементы в том множестве, которое получилось в итоге. Это очень долго. Не спасает ситуацию даже переход от точных алгоритмов к приблизительным: гарантировать точность либо не получится, либо придётся использовать объём памяти и вычислительные ресурсы, сопоставимые с точным алгоритмом.
В 80-х годах появились первые вероятностные алгоритмы для приблизительной оценки количества элементов в множестве. При большом количестве уникальных элементов эти алгоритмы дают приблизительную оценку, которая отличается от истинного значения в (1±e), e<1>0.5. То есть они могут вернуть оценку, которая сильно отличается от истинного значения с некоторой вероятностью (1-p). Чем больше требуется точность, и чем меньше нужна вероятность ошибки, тем больше ресурсов требуют алгоритмы. Сохраняя внутреннее состояние одного из таких алгоритмов через равные промежутки времени в базе данных, мы можем оценить приблизительное количество уникальных посетителей не только за произвольный интервал времени, но и за произвольное объединение любых интервалов времени, например, мы можем посчитать общее количество уникальных IP, которых мы наблюдали в промежутке времени с 17:00 до 18:00 в течение последней недели.
В 2000-ные в научном сообществе велась активная работа по достижению теоретически оптимальных характеристик (т.е. потребление памяти, сложность добавления нового элемента, сложность запроса) вероятностных приблизительных алгоритмов для оценки кардинальности (количества элементов в множестве), разрабатывался необходимый инструментарий.
Первый такой алгоритм был предложен в 2010 году. О нём-то мы и поговорим.
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...Alexey Paznikov
ЛЕКЦИЯ 2. Коллективные операции в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Лекция 4. Производные типы данных в стандарте MPIAlexey Paznikov
ЛЕКЦИЯ 4. Производные типы данных в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Доклад Кулагина И.И., Пазникова А.А., Курносова М.Г. "Оптимизация информационных обменов в параллельных PGAS-программах" на 3-й Всероссийской научно-технической конференции «Суперкомпьютерные технологии» (СКТ-2014)
29 сентября – 4 октября 2014 г., с. Дивноморское
Презентация посвящена вопросам использования параллельных алгоритмов для создания современных эффективных программных решений. Актуальность данной тематики обусловлена снижением темпов роста тактовой частоты микропроцессоров и возрастанием внимания к использованию всех возможностей многоядерных и многопроцессорных систем. В работе рассмотрен ряд базовых параллельных алгоритмов, таких как умножение матриц, параллельная сортировка Бэтчера, метод Гаусса решения систем линейных алгебраических уравнений и так далее. Приведена реализация этих алгоритмов c использованием языка программирования Си++.
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...Ontico
Что нужно хранить для того, чтобы была возможность ответить на этот вопрос?
Для точного ответа нужно через равные интервалы времени сохранять множество посетителей сайта (пусть это для простоты будут IP-адреса), которых мы за прошедший интервал увидели. Понятное дело, что такой объём информации хранить нереально, а даже, если получится, придётся объединять большое количество множеств и считать элементы в том множестве, которое получилось в итоге. Это очень долго. Не спасает ситуацию даже переход от точных алгоритмов к приблизительным: гарантировать точность либо не получится, либо придётся использовать объём памяти и вычислительные ресурсы, сопоставимые с точным алгоритмом.
В 80-х годах появились первые вероятностные алгоритмы для приблизительной оценки количества элементов в множестве. При большом количестве уникальных элементов эти алгоритмы дают приблизительную оценку, которая отличается от истинного значения в (1±e), e<1>0.5. То есть они могут вернуть оценку, которая сильно отличается от истинного значения с некоторой вероятностью (1-p). Чем больше требуется точность, и чем меньше нужна вероятность ошибки, тем больше ресурсов требуют алгоритмы. Сохраняя внутреннее состояние одного из таких алгоритмов через равные промежутки времени в базе данных, мы можем оценить приблизительное количество уникальных посетителей не только за произвольный интервал времени, но и за произвольное объединение любых интервалов времени, например, мы можем посчитать общее количество уникальных IP, которых мы наблюдали в промежутке времени с 17:00 до 18:00 в течение последней недели.
В 2000-ные в научном сообществе велась активная работа по достижению теоретически оптимальных характеристик (т.е. потребление памяти, сложность добавления нового элемента, сложность запроса) вероятностных приблизительных алгоритмов для оценки кардинальности (количества элементов в множестве), разрабатывался необходимый инструментарий.
Первый такой алгоритм был предложен в 2010 году. О нём-то мы и поговорим.
Лекция 2. Коллективные операции в MPI. Параллельные алгоритмы случайного блуж...Alexey Paznikov
ЛЕКЦИЯ 2. Коллективные операции в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Лекция 4. Производные типы данных в стандарте MPIAlexey Paznikov
ЛЕКЦИЯ 4. Производные типы данных в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Доклад Кулагина И.И., Пазникова А.А., Курносова М.Г. "Оптимизация информационных обменов в параллельных PGAS-программах" на 3-й Всероссийской научно-технической конференции «Суперкомпьютерные технологии» (СКТ-2014)
29 сентября – 4 октября 2014 г., с. Дивноморское
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 6. Параллельная сортировка. Алгоритмы комбинаторного поиска. Параллельный ввод-вывод в MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...Alexey Paznikov
ЛЕКЦИЯ 2. POSIX Threads. Жизненный цикл потоков. Планирование. Синхронизация
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Alexey Paznikov
ЛЕКЦИЯ 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI умножения матрицы на вектор, метода Монте-Карло, решение линейных алгебраических уравнений (СЛАУ) методами Гаусса и сопряжённых градиентов
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ЛЕКЦИЯ 4. Шаблоны многопоточного программирования
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 8. Многопоточное программирование без использования блокировок. Модель потребитель-производитель. Потокобезопасный стек. Проблема ABA. Указатели опасности.
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 3. Реентерабельность. Сигналы. Локальные данные потоков. Принудительное завершение потоков
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
أفضل 11 موقع لعمل اختبارات إلكترونية (Slide Decks).pdfqorrectdm
مع تطور التكنولوجيا، أصبحت أنظمة وأدوات الامتحانات الإلكترونية جزءاً أساسياً من التعليم الحديث. في هذا العرض، سنستعرض أفضل الأنظمة والأدوات التي تساعد المؤسسات التعليمية على تحسين عمليات الامتحان وتقديم تجربة تعليمية متميزة.
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 6. Параллельная сортировка. Алгоритмы комбинаторного поиска. Параллельный ввод-вывод в MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...Alexey Paznikov
ЛЕКЦИЯ 2. POSIX Threads. Жизненный цикл потоков. Планирование. Синхронизация
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Alexey Paznikov
ЛЕКЦИЯ 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI умножения матрицы на вектор, метода Монте-Карло, решение линейных алгебраических уравнений (СЛАУ) методами Гаусса и сопряжённых градиентов
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ЛЕКЦИЯ 4. Шаблоны многопоточного программирования
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 8. Многопоточное программирование без использования блокировок. Модель потребитель-производитель. Потокобезопасный стек. Проблема ABA. Указатели опасности.
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
ЛЕКЦИЯ 3. Реентерабельность. Сигналы. Локальные данные потоков. Принудительное завершение потоков
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
أفضل 11 موقع لعمل اختبارات إلكترونية (Slide Decks).pdfqorrectdm
مع تطور التكنولوجيا، أصبحت أنظمة وأدوات الامتحانات الإلكترونية جزءاً أساسياً من التعليم الحديث. في هذا العرض، سنستعرض أفضل الأنظمة والأدوات التي تساعد المؤسسات التعليمية على تحسين عمليات الامتحان وتقديم تجربة تعليمية متميزة.
2. ЧТО ТАКОЕ ОТСОРТИРОВАННЫЙ МАССИВ?
• В МАТЕМАТИКЕ НА ПРОИЗВОЛЬНОМ МНОЖЕСТВЕ G МОЖЕТ БЫТЬ ЗАДАНО
ОТНОШЕНИЕ Ρ, НАЗЫВАЕМОЕ ОТНОШЕНИЕМ СРАВНЕНИЯ, ЕСЛИ ДЛЯ ЛЮБЫХ A, B,
C ИЗ G ВЫПОЛНЯЕТСЯ УСЛОВИЕ:
ЕСЛИ (A Ρ B) И (B Ρ C), ТО (A Ρ C)
• ДЛЯ КОЛЬЦА ЦЕЛЫХ ЧИСЕЛ ИЛИ ПОЛЕЙ ДЕЙСТВИТЕЛЬНЫХ ЧИСЕЛ ТАКИМ
ОТНОШЕНИЕМ СРАВНЕНИЯ ЯВЛЯЕТСЯ ПРИВЫЧНОЕ НАМ ОТНОШЕНИЕ СРАВНЕНИЯ
“БОЛЬШЕ-МЕНЬШЕ” И ОБОЗНАЧАЕМОЕ СИМВОЛАМИ
< > <= >=
dmitry@protopopov.ru
3. ЧТО ТАКОЕ ОТСОРТИРОВАННЫЙ МАССИВ?
• ОДНОМЕРНЫЙ МАССИВ [A0, A1, … , AN-1] НАЗЫВАЕТСЯ ОТСОРТИРОВАННЫМ
ОТНОСИТЕЛЬНО ОТНОШЕНИЯ СРАВНЕНИЯ Ρ ЕСЛИ ВЫПОЛНЯЕТСЯ УСЛОВИЕ
ЕСЛИ I<J , ТО (AI Ρ AJ)
• В НАИБОЛЕЕ ЧАСТЫХ СИТУАЦИЯХ МЫ РАССМАТРИВАЕМ ЛИБО МАССИВЫ
ЦЕЛЫХ ЧИСЕЛ, ЛИБО МАССИВЫ ДЕЙСТВИТЕЛЬНЫХ ЧИСЕЛ, И
УПОРЯДОЧИВАЕМ МАССИВЫ ЛИБО ПО ВОЗРАСТАНИЮ, ЛИБО ПО УБЫВАНИЮ
dmitry@protopopov.ru
4. КАК ОПРЕДЕЛЯЕТСЯ ОТНОШЕНИЕ
СРАВНЕНИЯ В ПРОГРАММАХ
• КЛАССИЧЕСКИМ СПОСОБОМ ОПРЕДЕЛЕНИЯ ОТНОШЕНИЯ СРАВНЕНИЯ ДВУХ ОБЪЕКТОВ В
ПРОГРАММАХ ЯВЛЯЕТСЯ ОБЪЯВЛЕНИЕ ФУНКЦИИ С ДВУМЯ АРГУМЕНТАМИ – ССЫЛКАМИ НА
СРАВНИВАЕМЫЕ ОБЪЕКТЫ ИЛИ АРГУМЕНТАМИ-ИНСТАНСАМИ СРАВНИВАЕМЫХ ОБЪЕКТОВ,
ПРОФИЛЬ КОТОРОЙ СЛЕДУЮЩИЙ
𝑓 𝑎, 𝑏 < 0, ЕСЛИ A < B
𝑓 𝑎, 𝑏 > 0, ЕСЛИ A > B
𝑓 𝑎, 𝑏 == 0, ЕСЛИ A == B
• ОПРЕДЕЛЁННАЯ ТАКИМ ОБРАЗОМ ФУНКЦИЯ ИСПОЛЬЗУЕТСЯ В КАЧЕСТВЕ АРГУМЕНТА АЛГОРИТМА
СОРТИРОВКИ ОДНОМЕРНОГО МАССИВА
dmitry@protopopov.ru
5. КАК ОПРЕДЕЛЯЕТСЯ ОТНОШЕНИЕ
СРАВНЕНИЯ В ПРОГРАММАХ
• ДЛЯ СРАВНЕНИЯ ДВУХ ЦЕЛЫХ ЧИСЕЛ В ПРОГРАММАХ ОБЪЯВЛЯЕТСЯ ФУНКЦИЯ
СЛЕДУЮЩЕГО ВИДА
INT COMPARE(INT A,INT B) { RETURN (A-B); }
• ОЧЕВИДНО, ЧТО ДЛЯ ТАКОЙ ФУНКЦИИ ВЫПОЛНЕНО
COMPARE(A,B) < 0 ЕСЛИ A < B
COMPARE(A,B) > 0 ЕСЛИ A > B
COMPARE(A,B) == 0 ЕСЛИ A == B
• ДЛЯ ОПРЕДЕЛЕНИЯ ОБРАТНОГО ПОРЯДКА СОРТИРОВКИ ДОСТАТОЧНО УМНОЖИТЬ
ДАННУЮ ФУНКЦИЮ НА -1
dmitry@protopopov.ru
6. СЛИЯНИЕ ДВУХ ИЛИ НЕСКОЛЬКИХ
ОТСОРТИРОВАННЫХ МАССИВОВ В ОДИН
ОТСОРТИРОВАННЫЙ МАССИВ
• БАЗОВЫМ АЛГОРИТМОМ ДЛЯ АЛГОРИТМА СОРТИРОВКИ СЛИЯНИЯМИ ЯВЛЯЕТСЯ АЛГОРИТМ
СЛИЯНИЯ ДВУХ ИЛИ НЕСКОЛЬКИХ ОТСОРТИРОВАННЫХ МАССИВОВ В ОДИН
ОТСОРТИРОВАННЫЙ МАССИВ
• НА ВХОД АЛГОРИТМА ПОСТУПАЮТ ОТСОРТИРОВАННЫЕ ОДНОМЕРНЫЕ МАССИВЫ
РАЗЛИЧНОЙ ДЛИНЫ. БЕЗ ОГРАНИЧЕНИЯ ОБЩНОСТИ, РАССМОТРИМ ОТСОРТИРОВАННЫЕ
ПО-ВОЗРАСТАНИЮ МАССИВЫ.
1. КАЖДЫЙ МАССИВ РАССМАТРИВАЕТСЯ КАК ОЧЕРЕДЬ ИЗ ЭЛЕМЕНТОВ
2. ПОКА В ОЧЕРЕДЯХ ЕСТЬ ЭЛЕМЕНТЫ, ТО СРАВНИВАЕМ ПЕРВЫЕ ЭЛЕМЕНТЫ ИЗ ОЧЕРЕДЕЙ И
НАИМЕНЬШИЙ ЭЛЕМЕНТ ПЕРЕНОСИМ В КОНЕЦ ИТОГОВОГО МАССИВА, ПРИ ЭТОМ
СООТВЕТСТВУЮЩАЯ ОЧЕРЕДЬ УМЕНЬШАЕТСЯ.
3. ЕСЛИ ОСТАЛАСЬ ТОЛЬКО ОДНА НЕПУСТАЯ ОЧЕРЕДЬ, ТО ВСЕ ЕЁ ЭЛЕМЕНТЫ ПЕРЕНОСИМ В КОНЕЦ
ИТОГОВОГО МАССИВА
dmitry@protopopov.ru
7. СЛИЯНИЕ ДВУХ ИЛИ НЕСКОЛЬКИХ
ОТСОРТИРОВАННЫХ МАССИВОВ В ОДИН
ОТСОРТИРОВАННЫЙ МАССИВ
СХЕМА СЛИЯНИЯ МАССИВОВ
dmitry@protopopov.ru
Выбор
минимального
значения
8. СЛИЯНИЕ ДВУХ ИЛИ НЕСКОЛЬКИХ
ОТСОРТИРОВАННЫХ МАССИВОВ В ОДИН
ОТСОРТИРОВАННЫЙ МАССИВ
• АЛГОРИТМ СЛИЯНИЯ ДВУХ ИЛИ НЕСКОЛЬКИХ ОТСОРТИРОВАННЫХ МАССИВОВ В
ОДИН ОТСОРТИРОВАННЫЙ МАССИВ ПРИМЕНЯЕТСЯ ТАКЖЕ И В ДРУГИХ
АЛГОРИТМАХ СОРТИРОВКИ, НАПРИМЕР:
• НА ШАГЕ ЧЁТНО-НЕЧЁТНОЙ СОРТИРОВКИ, С РЕАЛИЗАЦИЕЙ, ПРОИЗВОДЯЩЕЙ
СЛИЯНИЕ ДВУХ МАССИВОВ В ОДИН ОТСОРТИРОВАННЫЙ
• НА ШАГЕ БИТОНИЧЕСКОЙ СОРТИРОВКИ, ПРИ СЛИЯНИИ УЖЕ ОТСОРТИРОВАННЫХ
МАССИВОВ РАЗМЕРА СТЕПЕНИ ДВОЙКИ.
• МОЖЕТ ТАКЖЕ ПРИМЕНЯТСЯ НА ШАГЕ КОРЗИННОЙ СОРТИРОВКИ, В
ЗАВИСИМОСТИ ОТ ВЫБОРА СПОСОБА ФОРМИРОВАНИЯ КОРЗИН
dmitry@protopopov.ru
9. СОРТИРОВКА СЛИЯНИЯМИ
• ДЛЯ СОРТИРОВКИ СЛИЯНИЯМИ ИСПОЛЬЗУЕТСЯ СЛЕДУЮЩИЙ АЛГОРИТМ:
1. РАЗДЕЛЯЕМ ИСХОДНЫЙ МАССИВ НА НЕСКОЛЬКО ПОДМАССИВОВ
2. ПРОИЗВОДИМ СОРТИРОВКУ КАЖДОГО МАССИВА ЛИБО РЕКУРСИВНЫМ ВЫЗОВОМ
АЛГОРИТМА, ЛИБО КАКИМ-ЛИБО ДРУГИМ АЛГОРИТМОМ СОРТИРОВКИ
3. ПРОИЗВОДИМ СЛИЯНИЕ ОТСОРТИРОВАННЫХ ПОДМАССИВОВ В ИТОГОВЫЙ
МАССИВ
ПРИМЕЧАНИЕ - МОЖНО ПРОИЗВОДИТЬ РЕКУРСИВНОЕ ДЕЛЕНИЕ ПОДМАССИВОВ
ВПЛОТЬ ДО РАЗМЕРА ИЗ ОДНОГО ЭЛЕМЕНТА. ОЧЕВИДНО, ЧТО МАССИВ ИЗ
ОДНОГО ЭЛЕМЕНТА ЯВЛЯЕТСЯ ОТСОРТИРОВАННЫМ МАССИВОМ.
dmitry@protopopov.ru
11. ИСПОЛЬЗОВАНИЕ СОРТИРОВКИ
СЛИЯНИЯМИ ПРИ ПАРАЛЛЕЛЬНОЙ
ОБРАБОТКЕ
• АЛГОРИТМ СЛИЯНИЯ ДВУХ ИЛИ НЕСКОЛЬКИХ ОТСОРТИРОВАННЫХ
МАССИВОВ В ОДИН ОТСОРТИРОВАННЫЙ МАССИВ ИСПОЛЬЗУЕТСЯ ПРИ
ПАРАЛЛЕЛЬНОЙ ОБРАБОТКЕ ОБЫЧНО ТОЛЬКО КАК ЧАСТЬ ОБЩЕГО
АЛГОРИТМА, ВЫПОЛНЯЕМОГО В ПОТОКЕ ИЛИ НА ПРОЦЕССОРЕ, ПОСКОЛЬКУ
НЕ МОЖЕТ БЫТЬ РАЗДЕЛЁН НА НЕЗАВИСИМЫЕ ЗАДАЧИ, ВЫПОЛНЯЕМЫЕ
ПАРАЛЛЕЛЬНО. ДЛЯ ЭТОГО АЛГОРИТМА ТРЕБУЕТСЯ ПОСЛЕДОВАТЕЛЬНЫЙ
ДОСТУП К ДАННЫМ ПОДМАССИВОВ-ОЧЕРЕДЕЙ.
• ПАРАЛЛЕЛЬНОСТЬ СОРТИРОВКИ СЛИЯНИЯМИ МОЖЕТ БЫТЬ ПОЛУЧЕНА
ТОЛЬКО НА ПАРАЛЛЕЛЬНОЙ ОБРАБОТКЕ ПОДМАССИВОВ, НА КОТОРЫЕ БУДЕТ
РАЗДЕЛЁН ИСХОДНЫЙ МАССИВ
dmitry@protopopov.ru
12. СПАСИБО ЗА ВНИМАНИЕ
• КОНТАКТЫ
• ДМИТРИЙ ПРОТОПОПОВ, МОСКВА, РОССИЯ
DMITRY@PROTOPOPOV.RU
+7 916 6969591
ИСХОДНЫЕ КОДЫ И ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ДОСТУПНЫ ПО АДРЕСУ
HTTPS://GITHUB.COM/DPROTOPOPOV/PARALLELSORTING
dmitry@protopopov.ru