Векторное программирование

Содержание

Слайд 2

Структура занятия

векторные вычисления;
цели векторизации;
проблемы векторизации;
векторное программирование;
языки векторного программирования.

Структура занятия векторные вычисления; цели векторизации; проблемы векторизации; векторное программирование; языки векторного программирования.

Слайд 3

Векторные вычисления

Векторные вычисления – это вид параллельных вычислений с параллелизмом на уровне

Векторные вычисления Векторные вычисления – это вид параллельных вычислений с параллелизмом на
данных (SIMD – Single Instruction Multiple Data)

Слайд 4

Цели векторизации

Ускорить работу программы
одна векторная команда распознаётся, декодируется и выполняется быстрее нескольких

Цели векторизации Ускорить работу программы одна векторная команда распознаётся, декодируется и выполняется
скалярных, выполняющих то же действие
Уменьшить объем кода
одна векторная команда занимает меньше места в программе и в различных очередях/таблицах/буферах в процессоре

Слайд 5

Задача сложения векторных объектов

a = [5, 6, 9, 8, 5, 1, 0] b

Задача сложения векторных объектов a = [5, 6, 9, 8, 5, 1,
= [9, 2, 1, 7, 2, 9, 7] sum = [] for i in range(len(a)): sum.append(a[i]+b[i]) print(sum)

a <- c(5, 6, 9, 8, 5, 1, 0) b <- c(9, 2, 1, 7, 2, 9, 7) sum <- a+ b sum

Рисунок 1 – Реализация в Python 3

Рисунок 2 – Реализация в R

Слайд 6

Некоторые понятия

Скалярная программа – программа, оперирующая отдельными числами;
Векторная программа – программа, оперирующая

Некоторые понятия Скалярная программа – программа, оперирующая отдельными числами; Векторная программа –
векторами;
Векторизация (вид распараллеливания) – преобразование скалярной программы в векторную

Слайд 7

Проблемы векторизации

Поиск в программе однотипных операций над различными данными (приведение к однотипным

Проблемы векторизации Поиск в программе однотипных операций над различными данными (приведение к
операциям);
Доказательство независимости операций;
Выровненный доступ к данным;
Оценка затрат на сборку-разборку векторов;
Переносимость.

Слайд 8

Векторное программирования

Векторное программирование – парадигма программирования основанная на работе с объектами, как

Векторное программирования Векторное программирование – парадигма программирования основанная на работе с объектами,
со структурами отличающимися по размерности от скаляра в большую сторону.

Основные виды объектов:
векторы; (R)
матрицы; (Matlab)
многомерные структуры.

Слайд 9

Язык R

R – язык программирования для научных вычислений и анализа данных с

Язык R R – язык программирования для научных вычислений и анализа данных
упором на визуализацию и воспроизводимость;
R – свободное кросс-платформенное программное обеспечение с открытым исходным кодом;
R – интерпретируемый язык с интерфейсом командной строки;
R – мультипарадигмальный язык, сочетающий в себе:
функциональное программирование;
процедурное программирование;
объектно-ориентированное программирование;
рефлексивное программирование.

Слайд 10

Преимущества языка R

R бесплатен, его код открыт;
огромное количество встроенных статистических тестов, математических

Преимущества языка R R бесплатен, его код открыт; огромное количество встроенных статистических
алгоритмов, функций анализа данных в исследованиях;
расширяемость: модульная система пакетов (packages);
обширное сообщество разработчиков;
полностью программируемая высокоуровневая графика;
кросс-платформенность, воспроизводимость результатов;
R становится популярным: статьи, книги, конференции, юзер группы.