Спецификация MPI (Message Passing Interface - интерфейс передачи сообщений) предлагает модель программирования, в которой программа порождает несколько процессов, взаимодействующих между собой с помощью обращения к подпрограммам передачи и приема сообщений. Ее реализации представляют собой библиотеки подпрограмм, которые могут использоваться в программах на языках программирования C/C++ и Fortran.
Написание подобной программы заставляет программиста полностью перестроить привычный способ мышления. По сравнению с "обычной" последовательной программой появляется новое измерение - появляется необходимость уметь видеть, какие части программы не зависят друг от друга в плане исполнения кода, но требуют взаимодействия на уровне данных и синхронизации во времени.
Звучит ужаснее, чем есть на самом деле. Тем более, что преимущества, получаемые в результате такой перестройки, с лихвой окупают неизбежные трудности.
Далее мы на конкретных примерах рассмотрим технологию написания параллельных программ.