ВКР: Динамический анализ программ на языке Фортран
Описание
Введение.
За последние пятьдесят лет произошел огромный скачок прогресса, в частности это касается развития вычислительной техники и как факт решение многих задач, требующих каких либо вычислительных мощностей. По закону Мура каждые полтора года производительность компьютеров при той же самой цене удваивается. Однако даже при таком стремительном развитии вычислительной техники, остается определенный класс задач, требующий достаточно серьезных временных затрат для своего решения. В частности задачи из областей атомной энергетики, астрономии, сейсмологии, метеорологии и так далее. Задачи данного типа имеют большой объем обрабатываемой информации и что бы сократить временные рамки для решения таких задач их необходимо распараллеливать. Основная нагрузка распараллеливания естественно ложиться на программистов, но человеческое мышление последовательно и поэтому при больших и объемных задачах такой труд весьма затруднителен. Возникает потребность в создании некоторого инструмента способного облегчить труд человека и помочь ему лучше вникнуть в распараллеливаемую программу.
Сегодня существуют две основные архитектуры параллельных компьютеров: симметричные мультипроцессорные системы с общей памятью (SMP) и мультипроцессорные системы с распределенной памятью (MPP). Основное преимущество SMP - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов. SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислители, а 2-, 4-х процессорные ПК на основе Pentium и Pentium Pro стали уже массовым товаром. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. Применение технологий типа UPA, основанной на коммутации пакетов вместо общей шины (в семействе Ultra Sun) и локальной кэш-памяти большого объема, способно частично решить проблему, подняв число процессоров до 32.
Альтернатива SMP - архитектура MPP. Каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Процессор, в памяти которого находятся нужные данные, посылает сообщение тому процессору, которому они требуются, а последний принимает его. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. На нем основаны все машины, имеющие производительность в сотни миллиардов операций в секунду.
Но эта архитектура имеет ряд существенных недостатков. Во-первых, требуется быстродействующее коммуникационное оборудование, обеспечивающее среду передачи сообщений. Во-вторых, при создании программ необходимо учитывать топологию системы и специальным образом распределять данные между процессорами, чтобы минимизировать число пересылок и объем пересылаемых данных. Последнее обстоятельство и мешает широкому внедрению подобных архитектур. Процесс написания достаточно крупной программы, пользуясь примитивами передачи сообщений, чрезвычайно трудоемок – даже программирование решения системы линейных уравнений требует недель напряженного труда. К тому же необходимо не только отладить программу, но и настроить ее таким образом, чтобы эффект от распараллеливания был бы достаточно весомым. Из-за того, что MPP-системы включают различное число процессоров, объединенных коммуникационными подсистемами различной топологии и пропускной способности, поддерживающими разные наборы примитивов, программы, стремящиеся максимально полно использовать возможности компьютера, оказываются жестко привязанными к его архитектуре. В итоге число пакетов программ, разработанных для каждой из MPP-систем, весьма ограниченно. Это сдерживает распространение таких систем и делает их дороже, что, в свою очередь, не способствует росту числа приложений. В результате возникает порочный круг.
Создатели некоторых компьютерных архитектур, в частности разработчики Cray T3D и T3E, пошли по пути создания виртуальной общей памяти. Каждый процессор по-прежнему может обращаться напрямую только к своей локальной памяти, однако все узлы используют единое адресное пространство. Если программа обратилась по адресу, принадлежащему локальной памяти другого процессора, генерируется аппаратное прерывание по особому случаю адресации, и операционная система выполняет пересылку страницы с одного узла на другой. В результате можно ускорять программы, первоначально разработанные для последовательных систем, транслируя их при помощи распараллеливающего компилятора. Благодаря чрезвычайно высокому быстродействию коммуникационной системы (пиковая скорость передачи данных между двумя узлами составляет 300 Мбайт/с в каждом направлении) этот подход в целом оправдывает себя. Впрочем, когда на одну страницу виртуальной памяти попадает несколько "популярных" переменных, считываемых и модифицируемых множеством процессоров, возникает эффект пинг-понга: страница непрерывно мигрирует с узла на узел и производительность системы падает
Файлы условия, демо
Характеристики ВКР
Список файлов
- Динамический анализ программ на языке Фортран
- Дипломная работа.doc 167,5 Kb
- Презентация.ppt 173,5 Kb