Помощь в написании студенческих работ
Антистрессовый сервис

Распараллеливание вычислительного процесса

РефератПомощь в написанииУзнать стоимостьмоей работы

При последовательной обработке данных, теряется огромное количество времени, из-за того, что данные оказываются в очереди на обработку, так как исполнительный процесс может обрабатывать только один канал. Такой способ сильно замедляет сервер, вследствие чего, падает общая производительность системы. Рисунок 6. Параллельная обработка каналов Для передачи данных между основным приложением… Читать ещё >

Распараллеливание вычислительного процесса (реферат, курсовая, диплом, контрольная)

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

Для поддержания высокой производительности в сервере необходимо применять способ параллельной (одновременной) обработки данных на нескольких процессорах компьютера. Для эффективного использования данного метода требуется оптимально распределить функции между основным и вспомогательными приложениями. Основной процесс займется осуществлением запуска приложений обработчиков каналов, инициализацией общих ресурсов, вводом изображений с устройств ввода, распределением исходных кадров между модулями в зависимости от алгоритма охраны, темпа ввода изображений и времени выполнения операций, а также обработкой полученных результатов. Все трудоемкие процедуры по детектированию движения переложим на отдельные исполнительные модули mpchannelmng. exe, которые будут работать каждый на своем процессорном ядре. На рисунке 7 представлен алгоритм работы системы с параллельной обработкой данных. Блоки, выделенные белым цветом, соответствуют работе основного модуля, а выделенные серым цветом обозначают исполнительные автономные модули.

Последовательная обработка каналов.

Рисунок 5. Последовательная обработка каналов Рассмотрим процедуры в основном модуле. Модуль загружает устройства ввода и определяет максимальное число рабочих каналов. Определяется максимальное количество разрешенных каналов детекторов движения. Устанавливается максимальное количество исполнительных модулей. Производится распределение каналов на каждом исполнительном модуле таким образом, чтобы на ограниченном числе модулей могли быть обработаны изображения всех каналов. Создаются управляющие классы, через которые осуществляется обмен данными с библиотеками, которые используются в отдельных модулях. Далее запускается процесс ввода изображений и распределение данных.

Рисунок 6. Параллельная обработка каналов Для передачи данных между основным приложением и обработчиками применен комбинированный метод обмена данными через общую память с оповещением о готовности данных путем пересылки сообщений между основным и исполнительными модулями.

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

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

Рисунок 7. Исполнительный модуль обработки.

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

Показать весь текст
Заполнить форму текущей работой