Супер-ЭВМ МВС-1000.
Наиболее общие понятия.
Аннотированный список документов.

А.О. Лацис

Аннотация

Настоящий документ есть полный список документации по МВС-1000 с разъяснением, что каждый из документов означает и кому нужен. Такое разъяснение предполагает знакомство с наиболее общими принципами построения системы, которые излагаются ниже.


Содержание


1. Наиболее общие принципы построения системы

Как многопроцессорный вычислитель, МВС-1000 довольно сильно отличается от традиционных машин. Без понимания этих отличий, чтение конкретных инструкций пользователя может быть неоправданно затруднено.

Ниже эти основные отличия излагаются в той мере, в какой это необходимо для понимания остальной документации.

1.1. Структура системы.

МВС-1000 состоит из двух основных частей - управляющего комплекса и вычислителя. Это две разные машины, каждая - со своей операционной системой.

Управляющий комплекс используется для разработки программ. Именно на него пользователь "заходит" через сеть, набирает команды, редактирует файлы и т. п. Вычислитель служит исключительно для выполнения программ. "Зайти" на него нельзя. Чтобы запустить программу, пользователь готовит ее на управляющем комплексе, после чего, "находясь" на нем же, должен выполнить специальную команду - "запустить программу на вычислителе".

Вычислитель и управляющий комплекс соединены с общим файловым сервером. Любой файл, находящийся в директории пользователя на сервере, в равной мере и под одним и тем же именем доступен как вычислителю, так и управляющему комплексу. Непосредственно "зайти" на файловый сервер также нельзя - для обмена файлами с внешним миром следует использовать управляющий комплекс, имея в виду, что доступная на нем директория пользователя на самом деле находится на сервере, и потому видна вычислителю.

В действительности, комплекс МВС-1000 состоит из более мелких функциональных частей, сложно распределенных по нескольким реальным компьютерам. Эта более мелкая "раскладка" упоминается в Инструкции пользователя. Однако, знать о существовании и конкретном местоположении этих более мелких составных частей пользователю необходимо только для того, чтобы один раз правильно сформировать находящийся в его домашней директории конфигурационный файл ".crunmvs", в частности, для выбора конкретного вычислителя из нескольких имеющихся. В процессе же повседневной работы, набирая команды для подготовки и запуска программ, достаточно руководствоваться тем "крупноблочным" представлением о структуре комплекса, которое было обрисовано выше.

1.2. Структура вычислителя.

Несколько слов о структуре вычислителя. Вычислитель представляет собой набор из нескольких десятков процессоров, имеющих равноправный доступ к файловому серверу. Каждый процессор снабжен собственной оперативной памятью, то есть является полноценной ЭВМ, со своей собственной операционной системой, и в принципе способен работать независимо от остальных. Кроме доступа к общему файловому серверу, процессоры вычислителя объединены коммуникационной сетью - средой передачи данных, гораздо более быстрой, чем общий диск, предназначенной для организации совместной работы нескольких процессоров над одной задачей пользователя. Совместная работа организуется путем обмена сообщениями между процессорами, причем посылка и прием сообщений явно предусматриваются в программе пользователя. В промежутках между запросами на обмен сообщениями каждый процессор работает, как совершенно отдельная, независимая ЭВМ.

1.3. Паспорт задачи.

Высокая производительность вычислителя МВС-1000 по сравнению с "обычными" машинами достигается только путем одновременной, совместной работы нескольких процессоров над частями одной задачи пользователя. По этой причине, почти все запуски программ на МВС-1000 являются запусками параллельных программ, то есть таких, которые используют более одного процессора. Запуская параллельную программу, пользователь вынужден помнить о том, что в действительности он запускает целый набор из отдельных программ, называемых ветвями параллельной программы, каждая из которых получит для своего исполнения отдельный процессор. На каждом из этих процессоров, каждая ветвь параллельной программы может читать или записывать файлы, что-то читать со стандартного ввода ("как бы с клавиатуры") и писать на стандартный вывод ("как бы на экран"). В действительности роль "клавиатуры" и "экрана" для каждого процессора будут исполнять некоторые автоматически создаваемые системой файлы, но пользователю желательно знать, где они будут размещены и как называются. Все это должно быть предусмотрено в качестве параметров команды "запуск программы на вычислителе". На традиционной, однопроцессорной машине команда "запуск программы" имела, по смыслу, всего один параметр - имя исполняемого файла, который надо запустить. В нашем случае команда "запуск программы" вынужденно сопровождается целой сложной системой параметров. Приходится указывать, например:
- требуемое число процессоров,
- список исполняемых файлов для этих процессоров,
- место размещения файлов стандартного ввода и вывода,
- и т. п.

Конечно, здесь приведен наиболее общий случай - в реальных ситуациях все обычно проще. Однако, пользователю приходится знать, что для оформления в системе самой возможности запуска, в качестве единого целого, целых наборов согласованно выполняющихся программ, пришлось ввести новое (по сравнению с традиционными машинами) понятие паспорта задачи.

Паспорт задачи - это и есть исчерпывающее описание (для системы) набора программ, которые запускаются совместно, образуя единую параллельную программу. При запуске программы на вычислителе пользователь указывает в качестве параметра команды имя паспорта задачи, а уже из него система извлекает необходимые конкретные параметры.

В зависимости от того, каким конкретным вариантом команды запуска на счет Вы пользуетесь, паспорт задачи формируется по-разному. В некоторых случаях он создается автоматически по упрощенному описанию, только на время конкретного запуска. В других случаях он формируется пользователем явно, при помощи специальных команд, снабжается именем, под которым хранится и доступен для повторного использования. В любом случае, для понимания конкретных инструкций полезно знать о такой "сущности", непривычной для пользователей традиционных машин.

1.4. Система очередей.

МВС-1000 - это машина коллективного пользования. Как вычислитель, так и управляющий комплекс используется одновременно многими пользователями. Однако, поскольку многопроцессорный вычислитель специально предназначен для как можно более быстрого выполнения программ, нет смысла делить его процессоры между разными программами. В каждый момент времени каждый процессор вычислителя может быть занят только одной ветвью одной параллельной программы какого-либо пользователя. Если при запуске на счет очередной программы пользователя на вычислителе не окажется достаточного количества свободных процессоров, задача будет поставлена в очередь. Очередь приоритетная - пользователь может влиять на положение задачи в очереди, в частности, указывая небольшое максимальное время счета. Каждая попавшая на вычислитель задача имеет максимальное время счета, по истечении которого задача автоматически уничтожается. Конечно, пользователь может сам уничтожить задачу до истечения указанного максимального времени счета.

2. Обзор документации.

Комплект документации традиционно делится на документацию пользователя, программиста и администратора.

Документация пользователя содержит, грубо говоря, "инструкцию по нажиманию на кнопки", то есть описание команд, применяемых для разработки и запуска программ, правил конфигурирования настроек рабочей среды и т. п. Кроме того, важная часть документации пользователя - это информация о текущей конфигурации системы: какие именно вычислители подключены в настоящее время к управляющему комплексу, каковы их рабочие характеристики, как что конкретно называется. Обо всем этом можно узнать в разделе "Вычислительные ресурсы".

Основные сведения, необходимые пользователю для работы, сведены в документы под названием "Руководство пользователя системы МВС-1000".

К сожалению, мы вынуждены предпослать ему небольшое пояснение.

Руководство пользователя не удается сделать совсем независимым от документации по программированию, поскольку, в зависимости от того, каким инструментом Вы пользуетесь при программировании, команды запуска программ на счет тоже могут быть разными. Ниже приводится совсем краткий список предоставляемых пользователю коммуникационных сред и, соответственно, способов запуска программы на счет.

Базовой средой разработки программ является среда Router+. Если Вы пользуетесь этой библиотекой обмена сообщениями непосредственно, Вам доступны все, без исключения, возможности команды запуска программы на счет, но паспорт задачи придется формировать вручную, а возможности, которые Вам доступны, придется изучить и освоить.

Над Router+ надстроена среда MPI - в отличие от Router+, стандартная. При использовании этой среды запуск программы гораздо тривиальнее - паспорта, например, формируются автоматически, но часть "хитрых" возможностей утрачивается. Поскольку MPI - это международный стандарт, само его описание не входит в документацию МВС-1000. Смотрите "Руководство по технологиям параллельного программирования" на сервере лаборатории параллельных информационных технологий.

Если Вы пользуетесь какой-либо из сред автоматизации параллельного программирования, например, системами DVM или Норма , то описание порядка запуска на счет ищите в документации по соответствующей системе. Вполне вероятно, что порядок будет таким же, как при использовании MPI.

К Вашему вниманию представлен также документ под названием "Выбор варианта системы параллельного программирования".Большинство параллельных программ пишется пользователями непосредственно на общепринятых языках программирования (С, С++, Фортран) с непосредственным же использованием в этих программах обращений к коммуникационной библиотеке MPI. В этом случае перед пользователем встает задача выбора конкретного транслятора и конкретной реализации MPI. По техническим причинам обычно бывает необходимо, чтобы сама библиотека MPI была скомпилирована тем же компилятором, что и программа пользователя. Кроме того, каждый вариант библиотеки MPI подразумевает свой порядок запуска параллельных программ: программы, изготовленные с использованием одного варианта библиотеки, просто не запустятся на счет командой запуска, разработанной для другого варианта. По этим и некоторым другим причинам необходимо рассматривать сочетание конкретного набора трансляторов и конкретной реализации MPI как единый комплекс, не возлагая на пользователя обязанности постоянно следить за совместимостью его отдельных частей.

На каждой из машин вычислительного комплекса поддерживается строго определенный набор вариантов системы параллельного программирования (то есть сочетаний определенных версий трансляторов, библиотеки и системы запуска). Варианты совместимы между собой только на уровне исходных текстов. Объектные и исполняемые файлы одного варианта нельзя переносить в другой. Значит, пользователю необходимо, по возможности, настроиться на какой - то вариант и в нем работать. О том, какие варианты предоставляются и как выбрать один из них, можно прочесть в этом документе.

Документ "Библиотека интерфейсных вызовов для организации контрольных точек" необходимо читать тем, пользователям, в чьих программах фигурируют большие объемы промежуточных данных, сохраняемых от одного расчета до другого в виде файлов на диске. Под "большим объемом" в данном случае понимается ситуация, когда время чтения начальных данных и/или запись результатов при завершении очередного запуска задачи сравнима по времени со всем временем счета. Для преодоления таких ситуаций был разработан комплекс средств, основанный преимущественно на двух приемах: сжатие записываемых данных и использование локальных дисков вычислительных узлов для их хранения.

Наконец, к пользовательской документации следует отнести два важных раздела сайта - Вопросы и ответы (список проблем и ошибок) и Удалённый доступ (краткое руководство по удалённому доступу к вычислительным ресурсам).

Документация программиста, естественным образом, распадается на ряд документов, каждый из которых описывает свою библиотеку и/или систему автоматизации параллельного программирования.

 
 
 
 
 
 
 
 
  Тел. +7(499)220-79-72; E-mail: inform@kiam.ru