0 800 330 485
Працюємо без вихідних!
Гаряча лінія
Графік роботи
Пн - Пт 09:00 - 20:00
Сб - Нд 10:00 - 17:00
Пишіть в чат:
Для отримання інформації щодо існуючого замовлення - прохання використовувати наш внутрішній чат.

Щоб скористатися внутрішнім чатом:

  1. Авторизуйтеся у кабінеті клієнта
  2. Відкрийте Ваше замовлення
  3. Можете писати та надсилати файли Вашому менеджеру

Параллелизм как средство оптимизации вычислительных систем для Windows 7 (ID:111000)

Тип роботи: магістерська
Дисципліна:Програмування
Сторінок: 171
Рік виконання: 2015
Вартість: 2100
Купити цю роботу
Зміст
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ ВВЕДЕНИЕ РАЗДЕЛ 1. Параллелизм как основа высокопроизводительных вычислений 1.1. Принципы построения параллельных вычислительных систем 1.2. Основные этапы разработки параллельных приложений 1.3. Многопоточность и синхронизация РАЗДЕЛ 2. Технология параллельного программирования на платформе .NET 2.1. Основные понятия и компоненты библиотеки Microsoft Parallel Extensions (PFX), библиотека Task Parallel Library (TPL) 2.2. Многопоточность в .NET Framework 2.3. Особенности отладки многопоточных Windows-приложений в MS Visual Studio РАЗДЕЛ 3. Оптимизации вычислений при решении практических задач 3.1. Поиск простых чисел 3.2. Вращение в трехмерном пространстве с использованием кватернионов вращения 3.3. Клеточная модель «Игра Жизнь» Дж.Конвея РАЗДЕЛ 4. Разработка электронного учебно-методического комплекса «Оптимизация распараллеливанием вычислений» ...
Не підійшла ця робота?
Ви можете замовити написання нової роботи "під ключ" із гарантією
Замовити нову
Зразок роботи
ЗАКЛЮЧЕНИЕ В процессе исследования были получены следующие результаты. При изучении принципов построения параллельных систем был рассмотрен общепринятый подход к классификации ВС, предложенный М.Флинном в 1966 г, где основным определяющим архитектурным параметром является взаимодействие потока команд и потока данных (операндов и результатов), и выделяют следующие четыре класса ВС: • SISD (Single Instruction, Single Data) • SIMD (Single Instruction, Multiple Data) • MISD (Multiple Instructions, Single Data) • MIMD (Multiple Instructions, Multiple Data) . Кроме классификации ВС по Флинну, рассмотрена также классификация по Джонсону. И, если классификация Флинна относит почти все параллельные вычислительные системы к одному классу – MIMD, то Джонсон предлагает дальнейшее разделение многопроцессорных систем на основе используемых способах организации оперативной памяти. Классификация Джонсона основана на структуре памяти (global - глобальная или distributed - распределенная) и механизме коммуникаций и синхронизации (shared variables - разделяемые переменные или message passing - передача сообщений). Системы GMSV (global-memory-shared-variables) часто называются также мультипроцессорами с разделяемой памятью (shared-memory multiprocessors). Системы DMMP (distributed-memory-message-passing) также называемые мультикомпьютерами с распределенной памятью (distributed-memory multicomputers). Для определения эффективных способов организации параллельных вычислений было предложено разбивать задачу на следующие этапы: анализ, дизайн, реализация, отладка, тестирование и настройка. Было определено, что «идеальная» параллельная программа обладает следующими свойствами: — длины параллельно выполняемых ветвей равны между собой. — полностью исключены простои из-за ожидания данных, передачи управления и возникновения конфликтов при использовании общих ресурсов. — обмен данными полностью совмещен с вычислениями. Увеличение степени эффективности параллелизма (уменьшение временных затрат на накладные расходы) достигается следующими способами: — укрупнением единиц распараллеливания; — уменьшением сложности алгоритмов генерации параллельных процедур (подпрограмм); — изначальной подготовкой пакета различных вариантов исходных данных; — распараллеливанием алгоритмов генерации параллельных процедур (подпрограмм). В работе предложено оценивать степень эффективности этапа реализации на основе ряда критериев выполнения четырёх основных подзадач: выделение независимых частей, определение информационного взаимодействия между частями, масштабирование задач и их распределение между процессорами. При изучении особенностей многопоточности и синхронизации в ОС Windows были определены основные понятия: поток (thread) и процесс (process). Под «потоком» понимают «поток команд», то есть последовательность инструкций, которые считывает и исполняет процессор. Процесс – это набор потоков, работающих в едином адресном пространстве. В этом пространстве размещаются код и данные приложения (обычно это один exe- и несколько dll-модулей). Именно единство этого пространства и делает обмен данными между потоками приложения предельно простым. Windows называют многопоточной операционной системой с вытесняющей многозадачностью, потому что каждый поток может быть остановлен в произвольный момент времени и вместо него выбран для исполнения другой. Каждому потоку назначается уровень приоритета с нулевого (самого низкого) до 31 (самого высокого). В Windows поддерживаются шесть классов приоритетов: Idle (холостого хода), Below Normal (ниже обычного), Normal (обычный), Above Normal (выше обычного), High (высокий) и Real time (реального времени). По умолчанию выбирается приоритет Normal. Программу, которая реализует тот или иной алгоритм планирования исполнения задач, называют планировщиком (scheduler). В многопроцессорных системах используется динамическое планирование - т.е. планирование с учетом состояния процессов системы в текущий момент времени. Выделяют два подхода: — Work Sharing - централизованное планирование, при котором планировщик контролирует единый пул задач в системе и назначает задачи процессорам; — Work Stealing - децентрализованное планирование, при котором единый планировщик отсутствует, а процессоры сами выбирают какие задачи им исполнять. Для гарантии того, что любая часть разделяемых данных защищена от возможности изменения их значений множеством потоков, используется синхронизация - согласование действий различных потоков. Существует несколько категорий средств синхронизации потоков: — приостановка выполнения потока (Suspend(), Resume(),Sleep(), Yield(), Join()); — блокирующие конструкции; — конструкции подачи сигналов; — незадерживающие средства синхронизации. В целом, было показано, что инструменты .net для организации многопоточности и синхронизации в Windows достаточно обширны и позволяют эффективно решать возникающие в ходе проектирования задачи. Актуальность параллельных вычислений обусловила появление множества научных и исследовательских работ в данной области. В этой связи, студенты сталкиваются со сложной задачей ознакомления и систематизации огромного пласта информации, представленного в виде разнообразных книг, брошюр и статей. На наш взгляд, использование преимуществ интерактивных систем обучения могло бы существенно повысить эффективность данного процесса. Поэтому одной из задач, поставленных перед данным исследованием, стала разработка электронного учебно-методического комплекса (ЭУМК), который сочетал бы в себе подачу теоретического материала, демонстрацию преимуществ отдельных методов распараллеливания при решении конкретных задач и проверку полученных знаний. Учитывая основное предназначение данного ЭУМК – стать удобным подручным инструментом для изучения основ параллельных вычислений, - мы выбрали для демонстрации задачу элементарного уровня – поиск простых чисел (реализовав два алгоритма: решето Эратосфена и решето Аткина), и задачу среднего уровня – клеточный автомат «Жизнь» Конвея. Для каждой из этих задач представлены несколько способов решения: «обычные» последовательные вычисления, распараллеливание с помощью инструментов библиотеки TPL и с помощью PLINQ. Производятся замеры времени выполнения в зависимости от максимального числа при поиске простых чисел или от размерности игрового поля в клеточном автомате. Тем самым студент получает возможность провести эмпирические исследования эффективности представленных решений для разных входных данных и разных конфигураций ПК и сделать соответствующие выводы. Мы считаем, что обобщение полученного практического опыта будет полезно для более глубокого понимания сущности параллельных вычислений, их необходимости и возможностей, а также облегчит переход к решению более сложных задач. В работе подробно рассмотрены предметная область, функциональное предназначение, требования к техническому и программному обеспечению ЭУМК, проанализирована структура программного продукта, разработана подробная инструкция пользователя. Все задачи, поставленные перед приложением, реализованы. На наш взгляд, проведенное исследование будет полезно для научных работников, разработчиков, аспирантов и студентов, специализирующихся или интересующихся проблематикой параллельных вычислений. Кроме того, разработанный учебно-методический комплекс может широко применяться как в практике преподавания, так и для организации самостоятельного обучения.