Сравнение OpenMP на различных платформах

в 12:00, , рубрики: openmp, Исследования и прогнозы в IT, первый пост, студенты, Учебный процесс в IT

Всем привет! Недавно познакомился с замечательной штукой как OpenMP, на просторах есть много
описаний тут или тут, но нет красивых графиков которые бы показывали эффективность этой технологии. В этом посте я постараюсь наглядно показать эффективность работы с OpenMP на различных платформах. Кому интересно добро пожаловать!

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

Для проведения исследования был выбран алгоритм — вычисления числа ПИ с помощью интегральной формулы поскольку данный алгоритм хорошо поддаётся распараллеливанию и достаточно трудоёмкий с точки зрения вычислений.

Для распараллеливания алгоритма было решено использовать технологию openMP. Данная технология позволяет эффективно писать одинаковый код для разных сред выполнения, минимизируя погрешности, которые вносятся при написании кода программистом с использованием p_threads или Windows Threads, в ОС Linux и Windows, соответственно.

Для сравнения были выбраны 3 среды выполнения:

Тесты были проведены на компьютере с процессором.

  • Intel Сore i7-4771

    Если про первые две системы слышали многие, WSL еще малоизвестна. WSL — фича, которая появилась в Windows 10 сравнительно недавно. Ядро ubuntu 14.04 было встроено в ядро Win10. Эта система позволяет запускать linux приложения, работая в Windows, более того пользователю доступно практически полное рабочее окружение использовать которое так-же просто, как открыть проводник. Прочитать про неё можно например тут .

Теперь графики

Данные представленные на графиках усреднённые, было выполнено по 5 прогонов теста для каждой ОС. По оси ординат на графиках время в секунду, значения делений оси абсцисс приведены в таблице

1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 2 4 6 8 10 12 16 32 64 128 256 512 1024

Сравнение OpenMP на различных платформах - 1
Сравнение OpenMP на различных платформах - 2
Сравнение OpenMP на различных платформах - 3

Выводы

  • openMP — технология, которая позволит решить проблему скорости разработки многопоточного приложения, но не избавит от других проблем.
  • Многопоточность — сложная и важная тема, неправильное использование несомненно приведёт к ухудшению результата работы.
  • Linux VS Windows — дают практически одинаковые результаты, а значит использовать стоит ту платформу которая предоставляет нужный стек технологий и позволяет минимальными усилиями решить поставленную задачу.

Спасибо за внимание.

Автор: tawr1097

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js