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