Интернет-журнал «Отходы и ресурсы»
           

2020. — Т 7. — №2 - перейти к содержанию номера...

Постоянный адрес этой страницы - https://resources.today/09inor220.html

This article metadata is also available in English

DOI: 10.15862/09INOR220 (https://doi.org/10.15862/09INOR220)

Полный текст статьи в формате PDF (объем файла: 426.4 Кбайт)


Ссылка для цитирования этой статьи:

Зайнетдинов, А. Р. Улучшение производительности фрагментов компьютерного кода с большими временными затратами на основе технологий параллельного программирования / А. Р. Зайнетдинов, О. Ю. Рудзейт, А. В. Недяк // Отходы и ресурсы. — 2020. — Т 7. — №2. — URL: https://resources.today/PDF/09INOR220.pdf. — DOI: 10.15862/09INOR220. (дата обращения: 19.04.2024).


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

Зайнетдинов Артём Ришатович
ФГОУ ВО «Дальневосточный федеральный университет», Владивосток, Россия
Магистрант
E-mail: zainet.ar@gmail.com

Рудзейт Олег Юрьевич
ФГОУ ВО «Дальневосточный федеральный университет», Владивосток, Россия
Магистрант
E-mail: rudzeyt18@mail.ru

Недяк Антон Витальевич
ФГОУ ВО «Дальневосточный федеральный университет», Владивосток, Россия
Магистрант
E-mail: nedyaq@gmail.com

Аннотация. В данной статье рассмотрен процесс преобразования выполнения программы из однопоточного режима в многопоточный. Проведена оценка влияния количества потоков выполнения на общее время исполнения кода. Проблема затрат большого количества времени на выполнения программ решается с помощью инкрементального распараллеливания, когда в код, который предназначен для последовательного исполнения, добавляются распараллеливающие директивы. Приводятся аналоги библиотек для работы с потоками в других языках программирования и преимущества работы OpenMP над другими библиотеками. Рассмотрена модель работы распараллеливающих директив OpenMP, позволяющих без особых временных затрат выполнить фрагмент кода во многопоточном режиме. Также в статье представлен пример программного кода, реализованного с помощью языка С++, в который встроены распараллеливающие директивы библиотеки OpenMP. В данной модели оценено время исполнения фрагмента кода программы при различном количестве потоков. Исследование показало, что с увеличением количества потоков время выполнения программы значительно уменьшается в среднем в 1,5–2 раза. Это происходит до того момента, пока количество потоков не станет равно количеству ядер процессора. Если количество потоков становится больше, чем количество ядер процессора, то время выполнения программы остается практически неизменным. Представленная библиотека OpenMP позволяет значительно сократить время работы программы, которое может быть критичным для работ систем реального времени, сократить время создания многопоточных приложений простыми вставками директив библиотеки, уменьшить количество ошибок, допускаемых программистом в ходе работы с многопоточными приложениями.

Ключевые слова: потоки; распараллеливание; библиотека OpenMP; язык программирования C++; многопоточность; производительность; директива

Скачать

Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.

ISSN 2500-0659 (Online)

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

Добавить комментарий