Динамический контроль корректности OpenMP-программ
Разработка и реализация алгоритма динамического контроля корректности использования директив OpenMP в программах, написанных на языке Fortran. Минимизация количества потребляемых ресурсов при работе отладчика. Сравнительный обзор существующих отладчиков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.10.2010 |
Размер файла | 83,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2400717
Write -> Read data-race
Memory read at "Jacobi_err.F90":39 conflicts with a prior memory write at "Jacobi_err.F90":38 (flow dependence)
2401245
Read -> Write data-race
Memory write at "Jacobi_err.F90":39 conflicts with a prior memory read at "Jacobi_err.F90":38 (anti dependence)
2401283
Read -> Write data-race
Memory write at "Jacobi_err.F90":39 conflicts with a prior memory read at "Jacobi_err.F90":37 (anti dependence)
315
Read -> Write data-race
Memory write at "Jacobi_err.F90":38 conflicts with a prior memory read at "Jacobi_err.F90":39 (anti dependence)
321
Диагностика программы Jacobi_error, выданная реализованным мной отладчиком (debugger), выглядит следующим образом.
(Jacobi_err.fdv:37 - Jacobi_err.fdv:37):variable eps - shared error(write-read)
(Jacobi_err.fdv:37 - Jacobi_err.fdv:37):variable eps - shared error(write-write)
(Jacobi_err.fdv:39 - Jacobi_err.fdv:37):array b - shared error(write-read)
(Jacobi_err.fdv:38 - Jacobi_err.fdv:39):array a - shared error(write-read)
Jacobi_err.fdv:49: variable init - init error
В таблице 4 приведены времена выполнения описанных программ для обоих инструментов (ITC, debugger), включая контрольный запуск программы без отладки (original).
Таблица 4: Время выполнения программ в секундах.
original |
debugger |
ITC |
||
Jacobi_correct |
0,66 |
183 |
193 |
|
Jacobi_error |
0,87 |
322 |
438 |
Заключение
В рамках проделанной работы были разработаны алгоритмы нахождения ошибок, описанных в постановке задачи, а также на их основе создан отладчик, осуществляющий динамический контроль корректности OpenMP-программ, написанных на языке Fortran 77.
Общий объем исходного кода разработанного отладчика составил около 4000 строк.
Было проведено тестирование, которое позволило оценить замедление скорости работы программы под управлением отладчика, а так же увеличение объема потребляемой памяти. Дополнительно реализованный отладчик был сравнен с существующим отладчиком Intel Thread Checker.
Для применения отладчика для реальных производственных программ, которые невозможно отлаживать на модельных исходных данных, требуется реализовать методы выборочного контроля, позволяющие кардинально сократить накладные расходы, сохранив высокую вероятность обнаружения ошибок и их точную локализацию.
Литература
1. OpenMP Application Program Interface Version 2.5 May 2005 [PDF](http://www.openmp.org/mp-documents/spec25.pdf)
2. Christian Terboven. Comparing Intel Thread Checker and Sun Thread Analyzer. 2007. [PDF](http://www.fz-juelich.de/nic-series/volume38/terboven.pdf)
3. M. Suess, C. Leopold. Common mistakes in OpenMP and how to avoid them. 2006. [PDF](http://www.michaelsuess.net/publications/suess_leopold_common_mistakes_06.pdf)
4. Sun Studio 12: Thread Analyzer User'sGuide. 2007 [HTML,PDF](http://docs.sun.com/app/docs/doc/820-0619)
5. Intel Thread Checker 3.1 - Documentation. [PDF](http://software.intel.com/en-us/articles/intel-thread-checker-documentation/)
Подобные документы
Модели параллельного программирования; отладка параллельных программ. Реализация экспериментальной версии системы сравнительной отладки Fortran-OpenMP программ: получение, сбор и запись трассы, инструментарий программ, используемый формат файлов трассы.
дипломная работа [92,8 K], добавлен 17.10.2013Анализ средств распараллеливания, предоставляемых технологиями OpenMP. Синтаксис и семантика функций технологии OpenMP на языке программирования Visual C++. Компиляция программы, проектирование интерфейса пользователя для взаимодействия с программой.
курсовая работа [492,0 K], добавлен 09.08.2015Разработка блока распараллеливания последовательной программы с языка Fortran на язык Fortran-DVM/OpenMP. Реализация блока DVM/OpenMP-эксперт на основе компонента DVM-эксперт. Тестирование системы алгоритмами Якоби, верхней релаксации и методом Гаусса.
дипломная работа [218,3 K], добавлен 15.10.2010Изучение средств распараллеливания, предоставляемых технологиями OpenMP. Исследование синтаксиса и семантики функций технологии OpenMP на языке программирования Visual C++). Проектирование интерфейса пользователя для взаимодействия с программой.
контрольная работа [773,9 K], добавлен 12.07.2015Технологія OpenMP як найпопулярніший засіб програмування комп'ютерів із загальною пам'яттю. Типи конструкцій OpenMP: функції виконуючого середовища OpenMP, директиви pragma. Аналіз параметрів операційного середовища OpenMP, особливості типів блокувань.
реферат [397,2 K], добавлен 09.06.2012Технология разработки параллельных программ для многопроцессорных вычислительных систем с общей памятью. Синтаксис, семантика и структура модели OpenMP: директивы, процедуры и переменные окружения. Распараллеливание по данным и операциям, синхронизация.
презентация [1,2 M], добавлен 10.02.2014Особенности параллельного программирования высокопроизводительных многопроцессорных или многомашинных вычислительных комплексов. Основные положения и понятия стандартов MPI и OpenMP. Средства компиляции параллельных операторов для языков C и Fortran.
лекция [177,9 K], добавлен 22.10.2014Анализ уязвимостей в многопоточных программах, написанных на языке С++. Создание программного обеспечения, выполняющего анализ многопоточных программ, написанных на С++, на предмет наличия в них ошибок синхронизации типа "гонки" и "заброшенные замки".
курсовая работа [755,9 K], добавлен 20.09.2016Степень переносимости исходного кода между различными платформами. Первый язык программирования высокого уровня, имеющий транслятор. Программа Fortran, ее версии, отличия от других программ. Составление программ на языке программирования Fortran.
курсовая работа [45,5 K], добавлен 04.06.2014Обзор алгоритмов решения задачи: точные методы, генетический и жадный алгоритмы. Характеристика жадного алгоритма: его описание, анализ точности приближения, вычислительной сложности. Программная реализация и проверка корректности и быстродействия.
курсовая работа [228,7 K], добавлен 14.10.2017