Обзор компании Intel в рамках параллельного программирования

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

сравнению с лучшими последовательными версиями программ для решения судоку, но этот пример показывает отличную масштабируемость, которая наглядно продемонстрирована на графике ниже по тексту. Начальная таблица input4 была использована для запуска примера. Остальные параметры были использованы по-умолчанию. Командная строка для получения результатов для запуска используя потоки от 1 до 64:

 

$ for i in {1..64};do ./sudoku input4 $i 2; done

 

Рис.1

После выпуска TBB 3.0 он был установлен на сервера в MTL, и зарегистрированные пользователи лаборатории могут его использовать в том числе для получения похожего результата, как на картинке выше.*

параллельный программный язык intel

 

Вывод

 

Компания Intel стремительно развивается в области параллельного программирования.

Делая обзор реферата, я наткнулся на множество интересных статей отдельных специалистов, которые не могли уместиться в рамках данного проекта. Приложения разрабатываются как на начинающего пользователя в этой области, так и на специалиста. Хочу отметить так же конкурсы, которые помогают начинающим специалистам проверить свои силы в *боевых условиях*. Если говорить про Intel Manycore Testing Lab, то компания предоставляют к нему бесплатный доступ различным институтам для решения возникших задач. Пример задачи описан в приложении. В данном реферате предоставлена актуальная информация на ноябрь 2011 г.

 

 

Список литературы:

 

1.Youtube.ru - Презентация сервера Intel Manycore Testing Lab.

2.Intel.com - информация о конкурсах и продукции Intel.

3.Wikipedia.org - Краткое описание продукции intel.

.1024cores.net - англоязычный сайт с актуальными проблемами и их решениями в ходе выполнения параллельных задач.

.software.intel.com/file/38483 - описание технологии Intel Cilk Plus

 

 

Приложение

 

Масштабируемость приложения для решения систем линейных алгебраических уравнений методом Монте-Карло с использованием технологии OpenMP

 

Мы исследовали масштабируемость нашего приложения на 32-ядерной системе. В приложении был реализован алгоритм поиска скалярного произведения заданного вектора h и вектора решения x системы линейных алгебраических уравнений: x=Ax+f методом Монте-Карло.

Метод Монте-Карло заключается в моделировании цепи Маркова, что можно представить как случайное блуждание по матрице коэффициентов. Матрица вероятностей перехода P строится по матрице коэффициентов следующим образом:

 

 

Оценка величины скалярного произведения для цепи длины N имеет вид:

 

 

где Wm - набор весов.

Для того, чтобы получить численную оценку одной компоненты решения, вектор h выбирается таким образом, чтобы он имел только одну ненулевую компоненту hj = 1. Начальные значения pj = 1, k0 = j, W0=hj / pj = 1.

Данный алгоритм допускает эффективное распараллеливание с помощью ОреnМР. Каждый поток при этом может использоваться для получения численной оценки одной компоненты решения.

 

Рис. 1. Схема вызова директив OpenMP

 

Анализ программы решения системы линейных алгебраических уравнений с помощью Intel Parallel Inspector позволил выявить и устранить ошибки выделения памяти, a Hot-Spot анализ с помощью Intel Parallel Amplifier - найти ресурсоемкие операции. Это позволило оптимизировать приложение.

 

Рис. 2: Результат работы Amplifier .

 

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

 

Рис. 3: 32-ядерная платформа: 4 узла по 8 ядер

 

При замене генератора случайных чисел из стандартной библиотеки С rand () многопоточной реализацией генератора MCG-31, включенной в состав Intel Math Kernel Library, были получены хорошие результаты для матриц размером 400 х 400 и 2541 х 2541. Проведены расчеты с разными длинами марковской цепи и с использованием до 96 программных потоков:

 

Рис. 4: Зависимость ускорения от числа потоков, 1000 итераций.

 

Как видно из рисунка 4, ускорение наблюдается для 32 ядер, на которых могут быть эффективно задействованы до 64 потоков.