Как мы уже говорили, что параллельное программирование – это новый подход к программированию, этот подход в корне отличается от старого: от нитей или развитвлений в программе. Смысл заключается в том, чтобы одна задача решалась на множестве компьютеров.
Так как есть некоторые вычисления, которые один компьютер просто не в состоянии решить, а если и в состоянии, то он будет решать эту задачу сутками, тогда как современные суперкомпьютеры могут решить ее за 1 секунду. Пример таких задач – это перемножение матриц размером 100 000 на 100 000, проектирование танкеров, прогноз погоды и т. д. Такие задачи решаются на mainframe или супер компьюерах.
В таких супер комьпьютерах ОЗУ измеряется Тера байтами (10^12), а количество flops измеряется в Пета flops (10^15). Этим и занято сегодня параллельлное программирование.
Согласно статистике международной организации ISC из TOP 500 за ноябрь 2010 года в TOP 100 попали США 46 Супер ЭВМ, Великобритания и Китай по 5 Супер ЭВМ, а в России – 3.
По результатам выполнения теста первое место заняла СЭВМ Tianhe 1A: производительность в операциях с плавающей запятой – 2,57 Пета Flops, пиковые моменти произовидельности достиг 4,7 Пета Flops. В Этот СЭВМ вклювились 7168 параллельно работающие графические процессоры NVIDIA Tesla M2050 и 14366 процессоров Intel Ceon.
Самые популярные языки параллельного программирования – это язык C++ и Fortran. Мы будем рассматривать языки Си. Для того чтобы писать распараллеленые задачи, необходимо установить MPICH и в коде программы подключать файл mpi.h. Программированием мы займемся в последующих уроках.