OpenMP ва openCV компилятори ёрдамида ишлаш унумдорлиги | Статья в журнале «Техника. Технологии. Инженерия»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Спецвыпуск

Опубликовано в Техника. Технологии. Инженерия №2 (4) апрель 2017 г.

Дата публикации: 04.05.2017

Статья просмотрена: 53 раза

Библиографическое описание:

Уразматов, Т. К. OpenMP ва openCV компилятори ёрдамида ишлаш унумдорлиги / Т. К. Уразматов. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2017. — № 2.1 (4.1). — С. 30-32. — URL: https://moluch.ru/th/8/archive/57/2326/ (дата обращения: 19.12.2024).



В данной статье описывается процесс OpenMР и OpenCV было предложено использование компиляторов, результаты работы в обоих компилятором. Производительность OpenMР и OpenCV компилятора ясно показано на примере диаграммы.

Ключевые слова: OpenMР, OpenCV, производительность

This article describes the process of OpenMР and OpenCV has been offered the use of compilers, the results of working in both the compiler. OpenMР and OpenCV compiler's performance is clearly shown in the chart view.

Keywords: OpenMР, OpenCV, productivity

Мультимедиа тизимларида тасвирларни қайта ишлаганда вейлет жараёнларини тадбиғ этиш яхши натижа беради. Айниқса параллелаштириш алгоритмларидан фойдаланиш унумдорлик даражасини оширишга ёрдам беради. Тасвирларни қайта ишлаганда биринчи усул ёрдамида амалга оширамиз. Бу усулнинг амалга ошиш алгоритми қуйидагича амалга ошади: дастурга юкланган тасвир 2^N қиймат билан амалга ошади. N нинг қиймати тасвир бўлинган матрицаси 16х16 ўлчамга эга бўлгунча амалга ошади. Бу ҳолатда мисол сифатида N = 1 га тенг бўлганда тасвир 4 та матрицага ажралада.

Танланган мавзунинг долзарблиги ҳисоблаш техникасидан фойдаланган ҳолда жараёнларни математик моделлаштиришда, шунингдек маълумотлар базаси кўринишида берилган турли табиатли маълумотларни таҳлил қилинишида қурилган илмий ишларнинг тез ривожланишининг натижаси ҳисобланади.

Бундан кўринади алгоритм OpenMP дан фойдаланганда 2 ядроли процессорда амалга оширилганда 2 та оқимга 2 марта бўлиб берилади ва цикл 2 марта айланишга тўғри келади. Кетма кет амалга оширганда эса бу амаллар бажарилганда цикл 4 маротаба айланишга тўғри келади. Бу ҳолатни назарий жихатдан тахлил қиладиган бўлсак, унумдорлик 2 маротаба ошади деган хулосага келишимиз мумкин. Аммо OpenMP ёрдамида оқимларга ажратганда хотира ва процессор билан оқимларни ташкиллаштирганда маълум вақт сарфланади. Чунки оқим яратилганда хотирага ҳосил бўлаётган оқим учун динамик хотира яратиш лозим ва оқим ўз жараёнини якунлаганда динамик хотирани ўчириш керак бўлади. Кейинги жараён бу оқимларни процессорда бажарилиш учун навбатга қўйиш. [1.-78с] Бу ҳолда ҳам маълум даражада вақт сарфланади. OpenMP пакетидан фойдаланган ҳолда тасвирни қайта ишлаганда 2 ядроли процессорда қайта ишлаганда қуйидаги 1 – жадвалда кўрсатилган натижаларга эришилди. Жадвалнинг биринчи устунида қайта ишланаётган тасвирнинг нечта матрицага бўлиниши ва бўлинган ҳар бир матрицанинг қандай ўлчамга эга эканлиги кўрсатилган.

1 – жадвал

2 ядроли процессорда тасвирларни қайта ишлаганда сарфланган вақт ва унумдорлик

N x N

Оддий алгоритмёрдамиа

OpenMP ёрдамида

OpenCV ёрдамида

Унумдорлик

4 ta 1024

5141,619

3862,97

3781,4

1,331

16 ta 512

5381,641

4230,043

4123,03

1,279

64 ta 256

5498,038

4550,084

4435,01

1,208

256 ta 128

5657,647

5166,368

4987,1

1,109

1024 ta 64

5954,337

5862,022

5621,02

1,016

4096 ta 32

7029,633

7888,272

7678,2

0,891

16384 ta 16

9878,041

13121,636

12234,5

0,753

Натижалардан шуни кўришимиз мумкин, бир оқимли кетма кет қайта ишлаш амалга оширганда OpenMP ва OPENCV ёрдамида амалга оширганга нисбатан кўпроқ вақт талаб қилиши мумкин.[2.-36с]

OpenMP ёрдамида 2 ядроли процессорда эришилган унумдорликни график кўриниши

OpenMP ёрдамида тасвирни қайта ишлаганда #pragma omp parallel дириктиваси процессорни максимал ҳолда оқимларга ажратишга ҳаракат қилади. Яъни 2 ядроли процессорда максимал ҳолда 2 та оқимни яратиб бериши мумкин. Аммо оқимларни максимал ҳолда белгилаб бериш билан унумдорликка эришиб бўлмайди. Чунки оқимларни ташкиллаштиришга ҳам боғлиқ ҳисобланади. Бу вазифини OpenMP компилятори ташкиллаштириб беради.[3.-56с]

Айнан шу ҳолатни 4 ядроли процессорда амалга оширганимизда 2 – жадвалдаги натижаларни кўришимиз мумкин:

Ядролар сонининг ошиши оқимлар сонини ошишига имкон беради. 4 ядроли процессорда максимал ҳолда 4 та оқим ташкиллаштиришимиз мумкин.

2 – жадвал.

4 ядроли процессорда тасвирларни қайта ишлаганда сарфланган вақт ва унумдорлик

N x N

Одатда

OpenMP

OpenCV

Унумдорлик

4 ta 1024

1873,058

679,337

658,211

2,757

16 ta 512

1693,052

701,696

689,234

2,413

64 ta 256

1581,531

977,97

954,42

1,617

256 ta 128

2017,086

1676,533

1579,241

1,203

1024 ta 64

1446,008

1776,122

1721,201

0,814

4096 ta 32

1630,208

2636,226

2564,125

0,618

16384 ta 16

2143,645

7029,12

6875,01

0,305

OpenMP ёрдамида 4 ядроли процессорда эришилган унумдорликни график кўриниши

Юқоридаги натижалардан шуни кўришимиз мумкинки, унумдорлик натижаси n ядроли процессорларда n дан ошмаслигини кўришимиз мумкин. 2 ва 4 ядроли процессорларни унумдорлигини солиштирганимизда қуйидаги фарқни кўришимиз мумкин.[4.-34с]

Хулоса қилиб айтганда маълумотларни қайта ишлашда кўп ядроли процессорларга мўлжалланган параллелаштириш алгоритмларини қўллаш яхши самара берди. С++дастурлаш тилидан фойдаланилди ва параллел алгоритмни таъминлаб OpenMP ва OpenCV компиляторлари директиваларидан фойдаланилди ва улар ёрдамида процессор унумдорлик даражаси ошди.

Иш давомида тасвирларни қайта ишлашда тасвир қийматларини байтли массивга ўзлаштириш, вейвлет-жараёнларни амалга оширганда оқимларга ажратиш усуллари ва хотирани параллел ҳолда динамик жой ажратиш каби жараёнлар бажарилди ва яхши самарадорлик кўрсатди.

Адабиётлар:

  1. Шпаковский Г.И. Реализация параллельных вычислений: MPI, OpenMP, класте­ры, грид, многоядерные процессоры, графические процессоры, квантовые компьютеры. – Минск: Белорусский Государственный Университет, 2010. – 155с.
  2. Ярославский Л.П. «Введение в цифровую обработку изображений», Москва сов.радио, 2012й.
  3. Грузман И.С. «Цифровая обработка изображений в информационных системах», Новосибирск 2012г.
  4. Антонов А.С. Параллельное программирование с использованием технологии OpenMP. – М: издательство Московского Университета, 2011 г. – 77с.
Основные термины (генерируются автоматически): MPI, OPENCV.

Ключевые слова

производительность, OpenCV, OpenMР

Похожие статьи

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Процесс разработки программного продукта по методологии SCRUM

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

Разработка программного модуля защиты информации методом стеганографии

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

Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Обработка конкурентных транзакций в распределенных системах на примере Java

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

Разработка программы расписания поездов на основе библиотеки MFC и объектно ориентированного подхода

Статья посвящена описанию процесса проектирования и разработки программы, которая должна отображать расписание поездов в виде строк с данными, а также оставшееся время до отбытия, обновляющееся в реальном времени. на основе библиотеки MFC в Visual C+...

Методы разработки видеоигр: выбор подходящей методологии для успешного проекта

В данной статье приводятся три популярных метода разработки продукта: DevOps, Канбан и SCRUM, которыми пользуются международные игровые компании.

Похожие статьи

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Процесс разработки программного продукта по методологии SCRUM

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

Разработка программного модуля защиты информации методом стеганографии

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

Модификация архитектуры web-приложения, основанной на паттерне CQRS, для повышения производительности

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало возмо...

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Обработка конкурентных транзакций в распределенных системах на примере Java

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

Разработка программы расписания поездов на основе библиотеки MFC и объектно ориентированного подхода

Статья посвящена описанию процесса проектирования и разработки программы, которая должна отображать расписание поездов в виде строк с данными, а также оставшееся время до отбытия, обновляющееся в реальном времени. на основе библиотеки MFC в Visual C+...

Методы разработки видеоигр: выбор подходящей методологии для успешного проекта

В данной статье приводятся три популярных метода разработки продукта: DevOps, Канбан и SCRUM, которыми пользуются международные игровые компании.

Задать вопрос