Сравнительный анализ эффективности инструментария MPI и NET для задачи суммирования - Курсовая работа

бесплатно 0
4.5 151
Рассмотрение технологии создания программ для параллельных компьютеров с использованием стандарта MPI и определение их эффективности. Изучение проблемы распараллеливания, способов взаимодействия параллельных процессов и этапов работы анализатора.


Аннотация к работе
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Курсовая работа по дисциплине "Параллельные вычисления и многопоточное программирование" на тему: "Сравнительный анализ эффективности инструментария mpi и net для задачи суммирования" Выполнил: Студент 5-го курсаСегодня невозможно представить себе эффективную организацию работы без применения компьютеров в таких областях, как планирование и управление производством, проектирование и разработка сложных технических устройств, издательская деятельность, образование - словом, во всех областях, где возникает необходимость в обработке больших объемов информации. Однако наиболее важным по-прежнему остается использование их в том направлении, для которого они собственно и создавались, а именно, для решения больших задач, требующих выполнения громадных объемов вычислений. Такие задачи возникли в середине прошлого века в связи с развитием атомной энергетики, авиастроения, ракетно-космических технологий и ряда других областей науки и техники. Численное моделирование, заполняя промежуток между физическими экспериментами и аналитическими подходами, позволило изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения. Стало возможным моделировать в реальном времени процессы интенсивных физико-химических и ядерных реакций, глобальные атмосферные процессы, процессы экономического и промышленного развития регионов и т.д.Исторически сложилось так, что для создания «отзывчивых» клиентских приложений, масштабируемых серверов и для распараллеливания алгоритмов разработчики напрямую манипулировали потоками. Но это же вело к взаимоблокировкам (deadlocks), активным блокировкам (livelocks), очередям на блокировках (lock convoys), «топтанию потоков на месте» (two-step dances), конкуренции за блокировки (race conditions), превышению лимита (oversubscription) и уйме других нежелательных проблем в приложениях. При наличии примерно 50 типов в этом пространстве имен в базовых сборках .NET Framework 3.5 (включая такие типы, как Thread, THREADPOOL, Timer, Monitor, MANUALRESETEVENT, READERWRITERLOCK и Interlocked) никто не должен был бы винить .NET Framework в легковесном отношении к поддержке потоков. С радостью констатирую, что эта проблема устранена в .NET Framework 4 и что в будущих версиях .NET Framework будет внесено много усовершенствований в этой области. В конце концов, параллелизм и параллельная обработка сводятся к вопросам производительности, а разработчики, заинтересованные в максимальном быстродействии, должны искать его в неуправляемых языках, которые обеспечивают полный доступ к «железу» и контроль над каждым битом, позволяют манипулировать кеш-линиями и выполнять interlocked-операции…, правильно?Если система не поддерживает многопоточные приложения, то PAL должен будет реализовать собственный планировщик потоков режима пользователя (и в этом случае окажется, что потоки .NET являются аналогами волокон, а не потоков ядра). К сожалению, в .NET, во-первых, не предусмотрено передачи аргументов в эту процедуру, во-вторых, процедура должна быть статическим методом, и в-третьих, класс Thread является опечатанным. В процессе умножения и суммирования элементов матриц синхронизация не выполняется, поэтому при достаточно большом размере матриц гарантированно будут возникать ошибки (необходимо синхронизировать выполнение некоторых действий в потоках, чтобы избежать возникновения ошибок, - об этом ниже, при рассмотрении средств синхронизации): using System; Работающий поток может быть переведен в состояние ожидания (WAITSLEEPJOIN ) явным или неявным вызовом соответствующих методов (Thread.Sleep, Thread.Join и др.) или приостановлен (Suspended ) с помощью метода Thread.Suspend(). Завершение функции потока нормальным образом переводит поток в состояние "завершен" (Stopped ), а досрочное прекращение работы вызовом метода Thread.Abort переведет его в состояние "прерван" (Aborted ).В системе DVM существуют развитые средства анализа эффективности выполнения параллельной DVM-программы. Эти средства являются более мощными, чем те, которые существуют для MPI-программ, поскольку многие важные характеристики выполнения MPI-программ (например, соотношение параллельных и последовательных вычислений) невозможно определить изза отсутствия необходимой информации. Поэтому важно создать такие средства для получения характеристик эффективности MPI-программ, которые могли бы быть доступны пользователям на любых многопроцессорных ЭВМ.Общее время использования процессоров (Total time) - произведение времени выполнения (Execution time) на число используемых процессоров (Processors). Потенциальные потери изза разброса времен (Time_variation) и все компоненты.

План
Содержание

Введение

1. Проблема распараллеливания в Инструментарии.NET

2. Суммирование в инструментарии .net

3. Средство анализа эффективности MPI программ

3.1 Постановка задачи

3.2 Этапы работы анализатора

3.3 Устройство анализатора

3.3.1 Сбор трассы

3.3.2 Анализ

3.3.3 Визуализация

4.Задача суммирования на MPI

Заключение
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?