Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры

    Дисциплина: Технические
    Тип работы: Диплом
    Тема: Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры

    ВВЕДЕНИЕ

    Необходимость решения сложных

    фундаментльных и прикладных задач постоянно обуславливает исследования в области разработки и создания высокопроизводительных вычислительных средств. Производительности

    современных ЭВМ недостаточно для обеспечения требуемого решения многих задач. Один из наиболее эффективных способов повышения производительности заключается в распараллеливании

    вычислений в многопроцессорных и параллельных структурах.

    В параллельном программировании, так же как и в последовательном, существует много различных средств для создания параллельного программного обеспечения. В данном разделе мы кратко

    опишем лишь несколько средств непосредственного программирования (кодирования) параллельных алгоритмов.

    Все инструменты для разработки параллельных программ можно разделить на несколько типов:

    Concurrent C++ (CC++) и

    Fortran M (FM). Эти языки предоставляют собой небольшой набор расширений языков C++ и

    Fortran и предоставляют программисту явное управление параллелизмом, коммуникациями и распределением заданий между процессорами. Языки CC++ и FM лучше всего подходят для

    реализации алгоритмов, в которых присутствуют динамическое создание заданий, нерегулярные схемы коммуникаций, а также для написания библиотек параллельного программирования. Недостатком

    программ, созданных с помощью данных языков программирования, является их недостаточная переносимость. Кроме того, компиляторы этих языков не всегда входят в стандартный комплект

    программного обеспечения, поставляемый с компьютером.

    межпроцессных коммуникаций (

    interprocess

    communication) такие как разделяемая память (

    shared

    memory), семафоры (

    semaphores), очереди сообщений (

    message

    queues), сигналы (

    signals) удобно использовать при программировании в модели разделяемой памяти. При

    использовнии низкоуровневых средств

    межроцессных коммуникаций программисту кроме кодирования непосредственно вычислительного алгоритма, требуется самому создавать процедуры синхронизации процессов, что может

    быть источником дополнительных трудностей.

    Parsytec,

    поставляеются со специализированной операционной системой

    Parix, обеспечивающей реализацию параллельных алгоритмов на программном уровне. ОС

    Parix предоставляет разработчику библиотеку системных функций, обеспечивающих синхронную и асинхронную передачу данных, получение информации о конфигурации вычислительного

    узла, на котором запущена программа и т.д. Недостатком таких библиотек является их

    специализированность, т.е. узкая направленность на конкретную параллельную машину и, как следствие, плохую переносимость.

    MPI называют ассемблером для параллельных систем).

    В рамках данной дипломной работы была создана система

    FLOWer

    — набор утилит, облегчающих написание параллельных программ. В основе системы лежит модель управления потоком данных. Обычно в вычислительных системах, управляемых потоком

    данных, команды машинного уровня управляются доступностью данных, проходящих по дугам графа потока данных (ГПД). В данной системе используется принцип управления укрупненным потоком

    данных (

    Large-Grain

    Data

    Flow), в котором единица планирования вычислений — процесс — крупнее (возможно, намного крупнее), чем одна машинная команда.

    Для задания ГПД был разработан специальный язык

    DGL (

    Dataflow

    Graph

    Language). ГПД, записанный на этом языке, легко настраивается под конкретную многопроцессорную систему — число вершин и дуг графа может определяться через внешние

    параметры, которые вводятся пользователем, считываются из файла или

    задавются каким-либо другим способом. В качестве параметров можно использовать число процессоров в системе, степень загруженности системы и т.д.

    В состав системы

    FLOWer

    входят:

    DGL;

    Структура параллельной программы, написанной в системе

    FLOWer

    , мало отличается от структуры последовательной программы. Так, процессы записываются

    ввиде отдельных функций, которые

    считавают значения параметров из входных дуг ГПД и передают результат в выходные. Использование модели управлен...

    Забрать файл

    Похожие материалы:


    Добавить комментарий
    Старайтесь излагать свои мысли грамотно и лаконично

    Введите код:
    Включите эту картинку для отображения кода безопасности
    обновить, если не виден код



ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены