Несколько способов изменить алгоритм поведения при параллельном программировании:
- Распараллеливание по данным. books.ifmo.ru Программист находит в программе массив данных, элементы которого программа последовательно обрабатывает в некоторой функции. books.ifmo.ru Затем он разбивает этот массив на блоки, которые могут быть обработаны независимо друг от друга. books.ifmo.ru После этого программист запускает несколько потоков, каждый из которых выполняет нужную функцию, но обрабатывает отличные от других потоков блоки данных. books.ifmo.ru
- Распараллеливание по инструкциям. books.ifmo.ru Программист находит в программе последовательно вызываемые функции, процесс работы которых не влияет друг на друга. books.ifmo.ru Такие функции не изменяют общие глобальные переменные, а результаты одной не используются в работе другой. books.ifmo.ru Затем эти функции программист запускает в параллельных потоках. books.ifmo.ru
- Распараллеливание по информационным потокам. books.ifmo.ru Программа представляет собой набор выполняемых функций, причём несколько из них могут ожидать результата выполнения предыдущих. books.ifmo.ru В таком случае каждое ядро выполняет ту функцию, данные для которой уже готовы. books.ifmo.ru
Также для изменения алгоритма поведения при параллельном программировании можно использовать специальные комментарии в традиционных языках программирования, которые добавляют «параллельную» специфику в изначально последовательные программы. lib.madi.ru Ещё один подход — расширение существующих языков программирования, что позволяет пользователю непосредственно реализовывать параллельные вычисления в программе и управлять её исполнением. lib.madi.ru