За несколько десятилетий мощность компьютеров возросла в тысячи раз, технология приближается к атомам, и стратегическим ресурсом наращивания производительности остается параллельная обработка информации. Вычислительные задачи, предъявляемые все более неожиданными областями человеческой деятельности часто не по зубам персональному ПК, а суперкомпьютеры, обладающие сегодня огромным вычислительным потенциалом, доступны далеко не каждому. Простой пользователь в такой ситуации получает шанс в использовании суперкомпьютерных кластеров.
Вычислительный кластер - мультикомпьютер, состоящий из множества отдельных компьютеров (узлов), связанных между собой сетью. Технология привлекательна тем, что подобную систему возможно собрать из множества готовых персональных компьютеров. Сети, объединяющие машины с различной архитектурой - гетерогенные или неоднородные вычислительные кластеры.
Выделяются две модели организации вычислений на кластерных системах:
SPMD(Single Program Multiple Data один поток команд много потоков данных)- все процессоры находятся под управлением главного процессора, называемого контроллером, или управляющим процессором; в каждый данный момент времени все процессоры выполняют одну и ту же команду (или все простаивают.) Таким образом, один поток команд воздействует на многие потоки данных, проходящих через отдельные процессоры.
MPMD(MultiProgram Multiple Data много потоков команд много потоков данных)- здесь индивидуальные процессоры работают под управлением своих собственных программ, чем достигается большая гибкость заданий, выполняемых процессорами в каждый данный момент. В то же время возникает проблема синхронизации. В системе типа SPMD синхронизация отдельных процессоров осуществляется контроллером, но в MPMD - системах приходится использовать другие механизмы, чтобы обеспечить выполнение процессорами своих заданий в правильном порядке и с правильными данными.
Данный сайт содержит обзор технологий программирования подобных систем.