Интерфейс передачи сообщений (MPI) (http://www -unix.mcs.anl.gov / mpi / ) - это масштабируемая и надежная библиотека для параллельного программирования, ориентированная на оригинал для C, но теперь доступная в несколько разновидностей http://en.wikipedia.org/wiki/Message_Passing_Interface#Implementations. Хотя библиотека не вводит новый синтаксис, она предоставляет протокол связи для организации обмена данными между подпрограммами, которые распараллеливаются.
Традиционно он используется в больших кластерных вычислениях, а не в одной системе для параллелизма, хотя многоядерные системы, безусловно, могут воспользоваться этой библиотекой.
Другим интересным решением проблемы параллельного программирования является OpenMP, который представляет собой попытку предоставить переносимое расширение на различных платформах, чтобы дать подсказки компилятору о том, какие разделы кода легко распараллеливаются.
Например (http://en.wikipedia.org/wiki/OpenMP#Work-sharing_constructs):
#define N 100000
int main(int argc, char *argv[])
{
int i, a[N];
#pragma omp parallel for
for (i=0;i<N;i++)
a[i]= 2*i;
return 0;
}
Конечно, у обоих есть свои преимущества и недостатки, но первый оказался чрезвычайно успешным в научных кругах и других тяжелых научных вычислительных приложениях. YMMV.