Лабораторная: Настройка и запуск на суперкомпьютере
Лабораторная работа: Основы работы на суперкомпьютере и настройка среды программирования
Новинка
Описание
Лабораторная работа № 1 по дисциплине «Параллельные вычислительные системы»
Тема: Основы работы на суперкомпьютере («ПГНИУ-Кеплер») и настройка среды программирования
Введение
В эпоху стремительного развития информационных технологий и увеличения объёмов обрабатываемых данных, суперкомпьютеры становятся неотъемлемой частью научных исследований, инженерных разработок и анализа больших данных. Суперкомпьютер «Пермский государственный национальный исследовательский университет-Кеплер» представляет собой высокопроизводительную вычислительную систему, предназначенную для решения сложных вычислительных задач в различных областях науки и техники.
Лабораторная работа №1 направлена на ознакомление студентов с основами работы на суперкомпьютере «ПГНИУ-Кеплер», а также с настройкой и использованием среды программирования для компиляции и запуска программ. В ходе выполнения лабораторной работы студенты приобретут практические навыки удалённого подключения к суперкомпьютеру, управления операционной системой Linux в консольном и графическом режимах, а также компиляции и выполнения различных типов программных заданий.
Постановка задачи
Целью лабораторной работы №1 «Основы работы на суперкомпьютере («ПГНИУ-Кеплер») и настройка среды программирования» является приобретение знаний, умений и навыков, необходимых для успешной работы на суперкомпьютере «ПГНИУ-Кеплер» и в среде программирования ПК по параллельному программированию. Для достижения поставленной цели необходимо решение следующих основных задач:
Изучить и освоить регламенты и правила, необходимые для получения доступа к суперкомпьютеру «ПГНИУ-Кеплер» и эффективного его использования.
Изучить основные способы подключения к суперкомпьютеру и примеры используемого для этого программного обеспечения.
Освоить навыки подключения к суперкомпьютеру и удалённого управления операционной системой Linux:
3.1. Подключение в консольном режиме.
3.2. Подключение в графическом режиме.
Изучить виды классификаций архитектур суперкомпьютеров и научиться классифицировать ресурсы суперкомпьютера «ПГНИУ-Кеплер» по минимум трём различным критериям.
Освоить процессы компиляции программ на суперкомпьютере «ПГНИУ-Кеплер»:
5.1. Компиляция последовательных программ.
5.2. Компиляция многопоточных программ с использованием OpenMP.
Освоить навыки запуска программных заданий на вычислительных узлах суперкомпьютера «ПГНИУ-Кеплер» для разных типов программ:
6.1. Запуск последовательных программ.
6.2. Запуск многопоточных программ (OpenMP).
6.3. Запуск многозадачных программ (MPI).
6.4. Запуск гибридных программ для GPU (CUDA).
Освоить навыки написания параллельных программ в среде программирования на ПК (ноутбуке) для организации параллельных вычислений:
7.1. Разработка OpenMP-программ.
7.2. Разработка MPI-программ.
7.3. Разработка CUDA-программ для GPU.
В процессе выполнения лабораторной работы студенты познакомятся с архитектурой суперкомпьютера «ПГНИУ-Кеплер», научатся эффективно подключаться к системе, компилировать и запускать различные типы программ, а также оптимизировать свои вычислительные задачи для достижения максимальной производительности.
Задания к лабораторной работе
Ознакомиться с регламентами и правилами доступа к суперкомпьютеру «ПГНИУ-Кеплер».
Изучить основные методы подключения к суперкомпьютеру и используемое программное обеспечение.
Выполнить подключение к суперкомпьютеру:
в консольном режиме с использованием SSH;
в графическом режиме (например, через X2go или VNC).
Сгенерировать SSH-ключи для безопасного подключения (например, с помощью PuttyKeyGen).
Изучить архитектуру суперкомпьютера «ПГНИУ-Кеплер»:
определить количество процессоров, видеопроцессоров, оперативной памяти;
описать системную, сервисную и управляющую сети;
охарактеризовать систему хранения данных.
Выполнить компиляцию программ на суперкомпьютере:
последовательной программы;
многопоточной программы с OpenMP;
многозадачной программы с MPI;
гибридной программы для GPU (CUDA).
Выполнить компиляцию аналогичных программ в локальной среде разработки (на ПК или ноутбуке).
Составить отчёт о выполнении лабораторной работы, включив в него описание всех этапов, скриншоты и выводы.
Лабораторная работа № 2 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в OpenMP. Операции с массивами. Быстрая сортировка
Введение
В современных вычислительных системах увеличение объёмов обрабатываемых данных и усложнение задач требует применения эффективных методов параллельного программирования. Одним из таких методов является использование библиотеки OpenMP, которая позволяет легко внедрять параллелизм в существующие последовательные программы. Лабораторная работа №2 посвящена изучению основ параллельного программирования с использованием OpenMP, а также реализации и оптимизации различных алгоритмов работы с массивами данных, включая операции сложения элементов и быструю сортировку. Целью данной работы является приобретение практических навыков разработки параллельных программ, оценки их производительности и понимание преимуществ многопоточности в обработке больших массивов данных.
Постановка задач
Целью лабораторной работы №2 является приобретение знаний, умений и навыков в области технологии параллельного программирования средствами библиотеки OpenMP. Для достижения поставленной цели необходимо решить следующие задачи:
Изучить способы разделения задач между потоками:
Ознакомиться с основными концепциями многопоточности.
Освоить директивы OpenMP для распределения вычислительных задач между потоками.
Освоить параллельные циклы для выполнения арифметических операций:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Запустить программы как на суперкомпьютере «ПГНИУ-Кеплер», так и в локальной среде программирования.
Провести анализ результатов при использовании различных количеств потоков.
Реализовать параллельную быструю сортировку:
Написать последовательный и параллельный варианты программы быстрой сортировки массива размером более 100000 элементов.
Выполнить запуск программ на суперкомпьютере и в локальной среде.
Оценить производительность при использовании различных количеств потоков.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать результаты производительности.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Научиться компилировать программы с использованием OpenMP.
Освоить запуск параллельных программ с различным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить эффективность использования потоков и выявить оптимальные конфигурации для различных типов задач.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием OpenMP.
В процессе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится применять директивы OpenMP для ускорения вычислений, а также приобретет навыки анализа и оптимизации производительности разработанных программ.
Лабораторная работа № 3 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в MPI. Операции с массивами. Пузырьковая сортировка
Введение
В современном мире, где объемы обрабатываемых данных стремительно растут, эффективное использование вычислительных ресурсов становится ключевым фактором для успешного решения сложных задач. Параллельное программирование позволяет значительно ускорить процесс вычислений за счет одновременного выполнения множества операций. Одним из наиболее распространенных инструментов для реализации параллельных вычислений является библиотека MPI (Message Passing Interface).
Лабораторная работа №3 направлена на ознакомление с основами технологии параллельного программирования средствами библиотеки MPI. В рамках работы мы будем изучать способы разделения задач между процессами, а также реализовывать и оптимизировать различные алгоритмы обработки массивов данных. Особое внимание будет уделено параллельной реализации арифметических операций и алгоритма пузырьковой сортировки, что позволит на практике оценить преимущества и особенности использования MPI в сравнении с последовательными подходами.
Постановка задач
Целью лабораторной работы №3 «Введение в MPI. Операции с массивами. Пузырьковая сортировка» является приобретение знаний, умений и навыков в области технологии параллельного программирования средствами библиотеки MPI. Для достижения поставленной цели необходимо решить следующие основные задачи:
Изучить основы технологии параллельного программирования средствами библиотеки MPI:
Ознакомиться с концепциями и принципами работы MPI.
Понять механизмы передачи сообщений между процессами и синхронизации их работы.
Используя средства библиотеки MPI, научиться решать задачи сложения (и других арифметических операций) элементов:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Провести запуск программ как на суперкомпьютере «Пермский государственный национальный исследовательский университет-Кеплер», так и в локальной среде программирования.
Использовать различные варианты количества используемых потоков для анализа влияния параллелизма на производительность.
Используя средства библиотеки MPI, научиться реализовывать параллельную работу пузырьковой сортировки элементов:
Написать последовательный и параллельный варианты программы для выполнения пузырьковой сортировки массива размером более 100000 элементов.
Запустить программы на суперкомпьютере и в локальной среде программирования.
Исследовать влияние количества потоков на скорость сортировки и эффективность параллельного подхода.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать полученные результаты и оценить эффективность параллельных вычислений.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Освоить процесс компиляции программ с использованием MPI.
Научиться запускать параллельные программы с разным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить масштабируемость и эффективность использования потоков.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием MPI.
В ходе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится применять библиотеку MPI для ускорения вычислений, а также приобретет навыки оценки и оптимизации производительности разработанных программ.
Лабораторная работа № 4 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в CUDA. Операции с массивами. Сортировка слиянием
Введение
В условиях стремительного развития вычислительных технологий и увеличения объёмов обрабатываемых данных эффективность выполнения сложных вычислительных задач становится всё более важной. Одним из ключевых инструментов для повышения производительности является использование графических процессоров (GPU) в качестве ускорителей вычислений. Язык программирования CUDA C, разработанный компанией NVIDIA, предоставляет возможности для параллельного программирования на GPU, позволяя значительно ускорить выполнение вычислительных задач за счёт эффективного распределения ресурсов графического процессора.
Лабораторная работа №4 посвящена изучению основ технологии параллельного программирования с использованием графических процессоров на примере языка CUDA C. В ходе выполнения работы студент познакомится с основными принципами работы с CUDA, научится реализовывать параллельные операции над массивами данных и будет сравнивать производительность последовательных и параллельных алгоритмов сортировки. Особое внимание будет уделено реализации и оптимизации алгоритма сортировки слиянием на GPU, что позволит оценить преимущества использования CUDA для решения задач обработки больших объёмов данных.
Постановка задач
Целью лабораторной работы №4 «Введение в CUDA. Операции с массивами. Сортировка слиянием» является приобретение знаний, умений и навыков в области технологии параллельного программирования с использованием графических процессоров в качестве ускорителей вычислений на примере языка CUDA C. Для достижения поставленной цели необходимо решить следующие основные задачи:
Изучить основы технологии параллельного программирования с использованием графических процессоров в качестве ускорителей вычислений на примере языка CUDA C:
Ознакомиться с архитектурой GPU и принципами работы CUDA.
Изучить основные концепции параллельного программирования, такие как потоки, блоки и сетки.
Используя средства графического процессора, научиться решать задачи сложения (и других арифметических операций) элементов массива:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Запустить программы на суперкомпьютере «Пермский государственный национальный исследовательский университет-Кеплер» и в локальной среде программирования.
Использовать различные варианты количества используемых потоков для анализа влияния параллелизма на производительность.
Используя средства графического процессора, научиться реализовывать параллельную работу сортировки элементов методом слияния:
Написать последовательный и параллельный варианты программы сортировки массива размером более 100000 элементов.
Запустить программы на суперкомпьютере и в локальной среде программирования.
Сравнить время работы последовательного и параллельного алгоритмов для различных последовательностей данных.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать полученные результаты и оценить эффективность параллельных вычислений.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Освоить процесс компиляции программ с использованием CUDA.
Научиться запускать параллельные программы с разным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить масштабируемость и эффективность использования потоков.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием CUDA.
В процессе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится использовать возможности графических процессоров для ускорения вычислений, а также приобретет навыки оценки и оптимизации производительности разработанных программ.Показать/скрыть дополнительное описание
Тема: Основы работы на суперкомпьютере («ПГНИУ-Кеплер») и настройка среды программирования
Введение
В эпоху стремительного развития информационных технологий и увеличения объёмов обрабатываемых данных, суперкомпьютеры становятся неотъемлемой частью научных исследований, инженерных разработок и анализа больших данных. Суперкомпьютер «Пермский государственный национальный исследовательский университет-Кеплер» представляет собой высокопроизводительную вычислительную систему, предназначенную для решения сложных вычислительных задач в различных областях науки и техники.
Лабораторная работа №1 направлена на ознакомление студентов с основами работы на суперкомпьютере «ПГНИУ-Кеплер», а также с настройкой и использованием среды программирования для компиляции и запуска программ. В ходе выполнения лабораторной работы студенты приобретут практические навыки удалённого подключения к суперкомпьютеру, управления операционной системой Linux в консольном и графическом режимах, а также компиляции и выполнения различных типов программных заданий.
Постановка задачи
Целью лабораторной работы №1 «Основы работы на суперкомпьютере («ПГНИУ-Кеплер») и настройка среды программирования» является приобретение знаний, умений и навыков, необходимых для успешной работы на суперкомпьютере «ПГНИУ-Кеплер» и в среде программирования ПК по параллельному программированию. Для достижения поставленной цели необходимо решение следующих основных задач:
Изучить и освоить регламенты и правила, необходимые для получения доступа к суперкомпьютеру «ПГНИУ-Кеплер» и эффективного его использования.
Изучить основные способы подключения к суперкомпьютеру и примеры используемого для этого программного обеспечения.
Освоить навыки подключения к суперкомпьютеру и удалённого управления операционной системой Linux:
3.1. Подключение в консольном режиме.
3.2. Подключение в графическом режиме.
Изучить виды классификаций архитектур суперкомпьютеров и научиться классифицировать ресурсы суперкомпьютера «ПГНИУ-Кеплер» по минимум трём различным критериям.
Освоить процессы компиляции программ на суперкомпьютере «ПГНИУ-Кеплер»:
5.1. Компиляция последовательных программ.
5.2. Компиляция многопоточных программ с использованием OpenMP.
Освоить навыки запуска программных заданий на вычислительных узлах суперкомпьютера «ПГНИУ-Кеплер» для разных типов программ:
6.1. Запуск последовательных программ.
6.2. Запуск многопоточных программ (OpenMP).
6.3. Запуск многозадачных программ (MPI).
6.4. Запуск гибридных программ для GPU (CUDA).
Освоить навыки написания параллельных программ в среде программирования на ПК (ноутбуке) для организации параллельных вычислений:
7.1. Разработка OpenMP-программ.
7.2. Разработка MPI-программ.
7.3. Разработка CUDA-программ для GPU.
В процессе выполнения лабораторной работы студенты познакомятся с архитектурой суперкомпьютера «ПГНИУ-Кеплер», научатся эффективно подключаться к системе, компилировать и запускать различные типы программ, а также оптимизировать свои вычислительные задачи для достижения максимальной производительности.
Задания к лабораторной работе
Ознакомиться с регламентами и правилами доступа к суперкомпьютеру «ПГНИУ-Кеплер».
Изучить основные методы подключения к суперкомпьютеру и используемое программное обеспечение.
Выполнить подключение к суперкомпьютеру:
в консольном режиме с использованием SSH;
в графическом режиме (например, через X2go или VNC).
Сгенерировать SSH-ключи для безопасного подключения (например, с помощью PuttyKeyGen).
Изучить архитектуру суперкомпьютера «ПГНИУ-Кеплер»:
определить количество процессоров, видеопроцессоров, оперативной памяти;
описать системную, сервисную и управляющую сети;
охарактеризовать систему хранения данных.
Выполнить компиляцию программ на суперкомпьютере:
последовательной программы;
многопоточной программы с OpenMP;
многозадачной программы с MPI;
гибридной программы для GPU (CUDA).
Выполнить компиляцию аналогичных программ в локальной среде разработки (на ПК или ноутбуке).
Составить отчёт о выполнении лабораторной работы, включив в него описание всех этапов, скриншоты и выводы.
Лабораторная работа № 2 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в OpenMP. Операции с массивами. Быстрая сортировка
Введение
В современных вычислительных системах увеличение объёмов обрабатываемых данных и усложнение задач требует применения эффективных методов параллельного программирования. Одним из таких методов является использование библиотеки OpenMP, которая позволяет легко внедрять параллелизм в существующие последовательные программы. Лабораторная работа №2 посвящена изучению основ параллельного программирования с использованием OpenMP, а также реализации и оптимизации различных алгоритмов работы с массивами данных, включая операции сложения элементов и быструю сортировку. Целью данной работы является приобретение практических навыков разработки параллельных программ, оценки их производительности и понимание преимуществ многопоточности в обработке больших массивов данных.
Постановка задач
Целью лабораторной работы №2 является приобретение знаний, умений и навыков в области технологии параллельного программирования средствами библиотеки OpenMP. Для достижения поставленной цели необходимо решить следующие задачи:
Изучить способы разделения задач между потоками:
Ознакомиться с основными концепциями многопоточности.
Освоить директивы OpenMP для распределения вычислительных задач между потоками.
Освоить параллельные циклы для выполнения арифметических операций:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Запустить программы как на суперкомпьютере «ПГНИУ-Кеплер», так и в локальной среде программирования.
Провести анализ результатов при использовании различных количеств потоков.
Реализовать параллельную быструю сортировку:
Написать последовательный и параллельный варианты программы быстрой сортировки массива размером более 100000 элементов.
Выполнить запуск программ на суперкомпьютере и в локальной среде.
Оценить производительность при использовании различных количеств потоков.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать результаты производительности.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Научиться компилировать программы с использованием OpenMP.
Освоить запуск параллельных программ с различным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить эффективность использования потоков и выявить оптимальные конфигурации для различных типов задач.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием OpenMP.
В процессе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится применять директивы OpenMP для ускорения вычислений, а также приобретет навыки анализа и оптимизации производительности разработанных программ.
Лабораторная работа № 3 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в MPI. Операции с массивами. Пузырьковая сортировка
Введение
В современном мире, где объемы обрабатываемых данных стремительно растут, эффективное использование вычислительных ресурсов становится ключевым фактором для успешного решения сложных задач. Параллельное программирование позволяет значительно ускорить процесс вычислений за счет одновременного выполнения множества операций. Одним из наиболее распространенных инструментов для реализации параллельных вычислений является библиотека MPI (Message Passing Interface).
Лабораторная работа №3 направлена на ознакомление с основами технологии параллельного программирования средствами библиотеки MPI. В рамках работы мы будем изучать способы разделения задач между процессами, а также реализовывать и оптимизировать различные алгоритмы обработки массивов данных. Особое внимание будет уделено параллельной реализации арифметических операций и алгоритма пузырьковой сортировки, что позволит на практике оценить преимущества и особенности использования MPI в сравнении с последовательными подходами.
Постановка задач
Целью лабораторной работы №3 «Введение в MPI. Операции с массивами. Пузырьковая сортировка» является приобретение знаний, умений и навыков в области технологии параллельного программирования средствами библиотеки MPI. Для достижения поставленной цели необходимо решить следующие основные задачи:
Изучить основы технологии параллельного программирования средствами библиотеки MPI:
Ознакомиться с концепциями и принципами работы MPI.
Понять механизмы передачи сообщений между процессами и синхронизации их работы.
Используя средства библиотеки MPI, научиться решать задачи сложения (и других арифметических операций) элементов:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Провести запуск программ как на суперкомпьютере «Пермский государственный национальный исследовательский университет-Кеплер», так и в локальной среде программирования.
Использовать различные варианты количества используемых потоков для анализа влияния параллелизма на производительность.
Используя средства библиотеки MPI, научиться реализовывать параллельную работу пузырьковой сортировки элементов:
Написать последовательный и параллельный варианты программы для выполнения пузырьковой сортировки массива размером более 100000 элементов.
Запустить программы на суперкомпьютере и в локальной среде программирования.
Исследовать влияние количества потоков на скорость сортировки и эффективность параллельного подхода.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать полученные результаты и оценить эффективность параллельных вычислений.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Освоить процесс компиляции программ с использованием MPI.
Научиться запускать параллельные программы с разным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить масштабируемость и эффективность использования потоков.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием MPI.
В ходе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится применять библиотеку MPI для ускорения вычислений, а также приобретет навыки оценки и оптимизации производительности разработанных программ.
Лабораторная работа № 4 по дисциплине «Параллельные вычислительные системы»
Тема: Введение в CUDA. Операции с массивами. Сортировка слиянием
Введение
В условиях стремительного развития вычислительных технологий и увеличения объёмов обрабатываемых данных эффективность выполнения сложных вычислительных задач становится всё более важной. Одним из ключевых инструментов для повышения производительности является использование графических процессоров (GPU) в качестве ускорителей вычислений. Язык программирования CUDA C, разработанный компанией NVIDIA, предоставляет возможности для параллельного программирования на GPU, позволяя значительно ускорить выполнение вычислительных задач за счёт эффективного распределения ресурсов графического процессора.
Лабораторная работа №4 посвящена изучению основ технологии параллельного программирования с использованием графических процессоров на примере языка CUDA C. В ходе выполнения работы студент познакомится с основными принципами работы с CUDA, научится реализовывать параллельные операции над массивами данных и будет сравнивать производительность последовательных и параллельных алгоритмов сортировки. Особое внимание будет уделено реализации и оптимизации алгоритма сортировки слиянием на GPU, что позволит оценить преимущества использования CUDA для решения задач обработки больших объёмов данных.
Постановка задач
Целью лабораторной работы №4 «Введение в CUDA. Операции с массивами. Сортировка слиянием» является приобретение знаний, умений и навыков в области технологии параллельного программирования с использованием графических процессоров в качестве ускорителей вычислений на примере языка CUDA C. Для достижения поставленной цели необходимо решить следующие основные задачи:
Изучить основы технологии параллельного программирования с использованием графических процессоров в качестве ускорителей вычислений на примере языка CUDA C:
Ознакомиться с архитектурой GPU и принципами работы CUDA.
Изучить основные концепции параллельного программирования, такие как потоки, блоки и сетки.
Используя средства графического процессора, научиться решать задачи сложения (и других арифметических операций) элементов массива:
Разработать последовательный и параллельный варианты программы для вычисления суммы элементов массива размером более 100000.
Запустить программы на суперкомпьютере «Пермский государственный национальный исследовательский университет-Кеплер» и в локальной среде программирования.
Использовать различные варианты количества используемых потоков для анализа влияния параллелизма на производительность.
Используя средства графического процессора, научиться реализовывать параллельную работу сортировки элементов методом слияния:
Написать последовательный и параллельный варианты программы сортировки массива размером более 100000 элементов.
Запустить программы на суперкомпьютере и в локальной среде программирования.
Сравнить время работы последовательного и параллельного алгоритмов для различных последовательностей данных.
Работа с одномерными и двумерными массивами:
Одномерные массивы:
Создать последовательный и параллельный варианты программ для выполнения операций сложения, вычитания, умножения и деления элементов двух одномерных массивов одинакового размера (более 100000 элементов).
Запустить программы на суперкомпьютере и в локальной среде, используя различные количества потоков.
Проанализировать полученные результаты и оценить эффективность параллельных вычислений.
Двумерные массивы:
Разработать последовательные и параллельные программы для выполнения аналогичных операций над двумя двумерными массивами с совпадающими размерностями (более 100000 элементов).
Выполнить запуск и анализ производительности при различных конфигурациях потоков.
Компиляция и запуск программ:
Освоить процесс компиляции программ с использованием CUDA.
Научиться запускать параллельные программы с разным количеством потоков как на суперкомпьютере, так и в локальной среде.
Анализ результатов:
Сравнить время выполнения последовательных и параллельных версий программ.
Оценить масштабируемость и эффективность использования потоков.
Сделать выводы о преимуществах и ограничениях параллельного программирования с использованием CUDA.
В процессе выполнения лабораторной работы студент ознакомится с основными принципами параллельного программирования, научится использовать возможности графических процессоров для ускорения вычислений, а также приобретет навыки оценки и оптимизации производительности разработанных программ.Показать/скрыть дополнительное описание
Отчёт по практике работы с кластером: подключение по SSH/VPN, генерация ключей, компиляция и запуск программ на CPU/GPU, примеры OpenMP, MPI и CUDA, замеры эффективности при разном числе потоков. Подходит для студентов прикладной математики и информатики..
Характеристики лабораторной работы
Учебное заведение
Семестр
Просмотров
1
Размер
2,73 Mb
Список файлов
отчет-1.docx
отчет-2.docx
отчет-3.docx
отчет-4.docx
🎓 Никольский - Помощь студентам 📚 Любые виды работ: тесты, сессии под ключ, практики, курсовые и дипломные с гарантией результата ✅ Все услуги под ключ ✅ Знаем все тонкости именно вашего ВУЗа ✅ Сдадим или вернем деньги
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
МФПУ «Синергия»
nikolskypomosh









