Вы здесь

Руководство пользователя системы

Пользователям без опыта работы в области параллельных вычислений будет полезно ознакомиться с   данным руководством, в котором более подробно описана система работы на одном из первых в России кластерах. (Примечание администратора сайта)

ИПМ им. М.В. Келдыша РАН.
Отдел ИВСиЛС, сектор эксплуатации МВС.

А.В. Баранов
А.О. Лацис
C.В. Сажин
М.Ю. Храмцов

1. Общие понятия

Построение системы МВС-1000/16 с точки зрения пользователя выглядит следующим образом. Система состоит из следующих важных компонент: многопроцессорного  вычислителя, управляющей ЭВМ (сервера доступа) и файлового сервера. Вычислитель состоит из вычислительных модулей – узлов, каждый из которых уникально именован в системе. Для примеров далее будет считаться, что сетевое имя сервера доступа – alpha,  сетевое имя сервера – mary, имена узлов – от alpha1 до  alphaN.

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

На файловом сервере каждый пользователь имеет свой домашний каталог /home/имя_пользователя. Сервер служит для подготовки и хранения исходных текстов программ пользователей, данных для пользовательских задач, результатов расчетов, для компиляции и подготовки самих задач.

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

Старт (завершение, получение информации) задачи инициируется запуском на сервере доступа пользователем команд системы запуска (см. ниже).

 

2. Порядок работы пользователя

Для работы на МВС-1000/16 зарегистрированный в системе пользователь должен:

1. Установить на своем компьютере систему, поддерживающую протокол ssh (как это делать - см. отдельный пункт настоящего руководства).

2. Зайти с использованием этого протокола на сервер доступа  alpha.

Пользователю доступна оболочка Midnight Commander (напоминающая Norton), которую можно вызвать, выполнив команду:

mc –c –a

 

3. Установка и настройка программного обеспечения, требуемого для установления удаленного соединения со сервером доступа и пересылки на него файлов

Данный раздел предназначен для помощи вновь подключаемым к системе МВС-1000/16 пользователям Internet. Раздел содержит сведения по установке программного обеспечения, требуемого для организации связи со шлюзом.

1.   Установка программы SecureCRT.

Программа SecureCRT является Windows-клиентом, реализующим протокол SSH. Данный протокол позволяет пользователям общаться с удаленной системой в режиме эмуляции терминала, при котором все передаваемые и принимаемые пользователем данные передаются в зашифрованном виде. Такое использование программы SecureCRT позволяет безопасно передавать данные на удаленную систему по незащищенным каналам передачи данных.

В стандартную поставку этой операционной системы Unix входит программа ssh, и пользователи Unix могут пропустить следующее описание  установки программы SecureCRT для Windows. Процесс установки следующий:

1. Скопируйте на свою машину каталог ftp://ftp.kiam.ru/pub/distrib/ssh/SecureCRT30

2.   Запустите программу установки scrt302.exe. Используйте все настройки, предлагаемые по умолчанию.

2. Настройка параметров программы SecureCRT.

Установленная программа является демонстрационной, и может использоваться в течение 30 дней после установки. Для того, чтобы снять данное ограничение:

1. Запустите из скопированного Вами каталога SecureCRT30/crack программу damn_scrt302.exe.

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

3.   Запустите SecureCRT. Выберите Help, затем Enter License Data.

4.   Скопируйте в появившуюся форму те данные, которые Вам выдала damn_scrt302.exe.

После этого все ограничения на использование программы SecureCRT будут сняты. Помните, что Институт не несет ответственности за использование нелицензионного программного обеспечения.

Теперь, когда программа SecureCRT успешно установлена на Вашу машину, ее необходимо правильно сконфигурировать. Для этого:

1.   Запустите программу SecureCRT.

2.   После запуска программы выберите File, затем Connect.

3.   Нажмите Alt+N – этим Вы создадите новую сессию.

4. В появившемся окне опций (Session Options), в поле Name наберите имя Вашей сессии (любое, можно на русском). В поле Protocol выберите ssh1. В поле Hostname введите Интернет-имя сервера доступа, в поле Username имя, под которым вы зарегистрированы на сервере доступа. Нажмите клавишу OK.  

5.     После этого созданная Вами сессия появится в списке для соединений. Выберите ее, а затем нажмите Connect.

6.   При установлении соединения программа попросит Вас ввести пароль.

7.   Если имя и пароль введены правильно, программа установит соединение и на экране будет виден терминал удаленного сервера, с которым Вы установили соединение.

Замечание. При первом  соединении, с каждым новым сервером, программ программа будет сообщать Вам о получении нового неизвестного для нее ключа. Для того чтобы запомнить этот ключ нажмите Accept&Save.

3. Использование программы ssh для пользователей UNIX

При использовании, в качестве рабочей операционной системы, UNIX Вы можете использовать, при установлении соединения с удаленным сервером института, программу ssh. Для этого введите в командной строке:

ssh –l имя пользователя alpha.kiam.ru.

где,

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

 

4. Копирование файлов

Для копирования файлов пользователь может воспользоваться ftp-клиентом, который доступен на сервере доступа. Копирование файлов возможно через промежуточный ftp-сервер. При этом сервер доступа может выступать только в роли ftp-клиента (не может быть сервером).

Отметим, что в составе оболочки Midnight Commander имеется встроенный удобный ftp-клиент. Порядок пользования следующий.

1. Выберите либо правую, либо левую панель меню, далее – вкладку FTP Link.

2. Наберите обращение к Вашему ftp-серверу в виде:

user@ftp.server.ru

где user – имя, под которым Вы зарегистрированы на Вашем ftp-сервере, ftp.server.ru - имя Вашего ftp-сервера.

3. Введите пароль на Вашем ftp-сервере.

Копирование файлов возможно непосредственно с Вашей ЭВМ на сервер доступа по протоколу Z-modem с помощью программы SecureCRT. Для передачи файлов с Вашей ЭВМ на сервер доступа необходимо:

1.      Соединиться с сервером с помощью SecureCRT.

2.      На сервере перейти в каталог, куда будут передаваться файлы.

3.      На сервере выполнить команду

          rz –y –O

По этой команде SecureCRT выдаст диалоговое окно, в котором Вам предложат выбрать файлы для передачи на сервер доступа. Выберите нужные файлы и передайте их.

Для передачи файлов с сервера доступа на Вашу ЭВМ необходимо:

1.      Соединиться с сервером с помощью SecureCRT.

2.      В программе SecureCRT выберите Options, далее Session Options, далее File Transfer. В поле Download выберите каталог, куда будете принимать файлы, затем нажмите OK.

3.      Выберите каталог, из которого будете передавать файлы.

4.      На сервере наберите команду

         sz –y –O <file_list>

где file_list – список имен файлов на передачу, разделенных пробелам. Допускается использование масок в Unix-формате (например, * - для всех файлов из выбранного каталога). Файлы должны начать передаваться.

 

5. Система запуска задач

Следует отметить, что "разъяснение" системе того, сколько процессоров требуется данной задаче, какие программы должны быть загружены на каждом, в каких файлах окажется стандартный ввод и стандартный вывод и т. п. само по себе является нетривиальной задачей. Кроме этого, необходимо ведение очередей пользовательских задач, контроль за их исполнением и освобождение после окончания счета задачи тех вычислительных ресурсов, которые она занимала. В МВС-1000/16 для решения этой проблемы служит специальная программная компонента - СИСТЕМА ЗАПУСКА ЗАДАЧ. Она прозрачна для программы, обслуживает исключительно взаимодействие системы с пользователем в процессе запуска программы на счет и последующего контроля.

Задачей называется параллельная прикладная программа, предназначенная для выполнения на нескольких процессорах системы МВС-1000/16.

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

Задача пользователя выполняется на МВС-1000/16 определенное время (по умолчанию – 5 часов) и определенное количество раз (по умолчанию – 1). Пользователь имеет возможность самостоятельно специфицировать эти параметры. По истечении специфицированного времени задача будет снята со счета.

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

Каждая запущенная задача контролируется специальным процессом управляющей ЭВМ – менеджером задачи. Стандартный вывод этого процесса также сохраняется в каталоге стандартного вывода.

Для автоматизации процесса запуска задачи и служит система запуска задач.

 

6. Пользовательский конфигурационный файл системы запуска

Чтобы система запуска задач работала правильно, необходимо следить за правильными ее настройками. Эти настройки для каждого пользователя сохраняются в файле .crunmvs, который должен находиться в домашнем каталоге пользователя. Формат файла следующий:

# Это комментарий

# Следующая строка - название секции

[General]

# Далее идет содержимое секции

# Следующая срока определяет имя каталога

# для временных файлов

# (где системе можно мусорить)

# Если имя не задано или задано неправильно

# система будет использовать каталог /tmp

tmp_directory = ~/runmvs

# Следующая срока определяет имя управляющей ЭВМ

host = alpha

# Следующая срока определяет имя редактора

# В некоторых случаях, оговоренных ниже,

# система вызывает редактор для правки файлов

user_editor = /usr/local/bin/mcedit

 

7. Основные принципы построения очередей

ВНИМАНИЕ! Данный раздел содержит информацию об организации системы очередей для МВС-1000/16. Просьба к пользователям внимательно ознакомиться с его содержанием и соблюдать правила постановки в очередь задач. Нарушение указанных правил может привести к тому, что Ваша задача будет вечно стоять в очереди и НИКОГДА не запустится.

Все задачи пользователей делятся на три категории – отладочные, пакетные и фоновые.

Отладочные задачи – это короткие по времени задачи, которые запускаются исключительно в целях отладки.

Пакетные задачи – это средние по времени задачи, которые производят реальные расчеты и выполняются, не прерываясь.

Фоновые задачи – задачи с большим временем счета, которые могут прерываться системой. Для фоновой задачи пользователь должен явно указать квант – минимальное время счета фоновой задачи, в течение которого задачу прерывать нельзя.

Планирование очередей в каждый момент времени производится в соответствии с параметрами текущего режима планирования. Режим планирования определяется следующими параметрами:

-         дата и время включения режима;

-         максимальное время, отведенное для отладочных задач;

-         максимальное время, отведенное для пакетных задач;

-         максимальное число процессоров, которые в сумме могут занимать все пакетные задачи;

-         шкала приоритетов пользователей.

Рассмотрим каждый параметр подробнее.

Дата и время включения определяют время, начиная с которого параметры режима вступают в силу. Параметры режима действуют вплоть до включения следующего режима.

Максимальное время, отведенное для отладочных задач, определяет время счета отладочной задачи. Если пользователь хочет сообщить системе, что его задача отладочная, то он должен указать для задачи время счета, не превышающее значение максимального времени для отладочных задач. При превышении данного значения задача автоматически будет считаться пакетной.

Максимальное время, отведенное для пакетных задач, определяет время счета для пакетной задачи. ВНИМАНИЕ! Пакетные задачи, время которых превышает максимальное отведенное для пакетных задач, не будут включены в счет в текущем режиме. ЕСЛИ ВЫ ХОТИТЕ СЧИТАТЬ ДОЛГО, ДЕЛАЙТЕ ЗАДАЧУ ФОНОВОЙ!

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

Шкала приоритетов пользователей. Задачи планируются системой согласно приоритетам пользователей, т.е. задача пользователя с высоким приоритетом может посчитаться раньше, чем задача пользователя с низким приоритетом. Приоритет пользователя определяется по указанной шкале и напрямую зависит от суммарного времени счета пользователя за текущие сутки. Например, если шкала имеет следующий вид:

(120,300,600,1200,0)

то это означает, что наивысшим приоритетом будут обладать задачи пользователей, которые за текущие сутки считали менее 120 минут, чуть меньшим приоритетом – тех, кто считал менее 300 минут, еще меньшим – тех, кто считал менее 600 минут и т.д. Низшим приоритетом будут обладать задачи пользователей, считавших более 1200 минут. ВНИМАНИЕ! При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета.

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

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

Если указанный пользователем квант не превышает максимального времени для пакетных задач, то фоновая задача планируется, как пакетная. Она уже не сможет занимать процессоры, «зарезервированные» для отладочных задач. При превышении квантом максимального времени для пакетных задач фоновая задача не сможет войти в счет в текущем режиме.

 

8. Подготовка и запуск программ.

Список коммуникационных сред (библиотек, трансляторов и т. п.), доступных пользователям МВС-1000/16, является открытым. Как минимум, предоставляется возможность использовать следующие средства: MPI (реализация MPICH), MPI (реализация LAM), библиотека TCP Router.

  Для трансляции программ на языке С, использующих MPI, служит команда:

mpicc –с <параметры>

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

  Для трансляции программ на языке Фортран, использующих MPI, служит команда:

mpif77 –с <параметры>

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

Если главная программа исполняемого модуля написана на С, подготовка исполняемого модуля из объектных производится с помощью команды

mpicc –o <имя исполняемого модуля > <параметры>

В качестве параметров этой команды могут использоваться ключи редак­тора связей и имена объектных  файлов и библиотек.

Если главная программа исполняемого модуля написана на Фортране, подготовка исполняемого модуля из объектных производится с помощью команды

mpif77 –o <имя исполняемого модуля > <параметры>

В качестве параметров этой команды могут использоваться ключи редак­тора связей и имена объектных  файлов и библиотек. При этом имя исполняемого модуля должно совпадать именем программы, указанным в операторе PROGRAM.

Двум поддерживаемым вариантам MPI (MPICH и LAM) соответствуют различные варианты описанных команд. По умолчанию берутся варианты, готовящие программу с использованием MPICH. Если надо подготовить программу для LAM, следует явно указывать путь к соответствующим командам:

/usr/bin/mpicc …, /usr/bin/mpif77 …

            Для подготовки программы с использованием коммуникационной библиотеки TCP Router специальных команд не предусмотрено – требуется только при изготовлении исполняемого файла указать библиотеки router и pthread, например:

            cc –o myprog myprog.c –lrouter –lpthread

Запуск на исполнение программы с использованием MPICH производится с помощью команды:

mpirun [параметры_mpirun...] <имя_программы> [параметры_программы...] [-s <system_name>] [-host <host>]

Параметры команды mpirun слелующие:

-h

интерактивная подсказка по параметрам команды mpirun.

-np <число_процессоров>

Число процессоров, требуемое программе.

-maxtime <максимальное_время>

Максимальное время счета. От этого времени зависит положение задачи в очереди. После истечения этого времени задача принудительно заканчивается.

-repeat <число_повторов>

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

-quantum <значение_кванта_времени>

Этот параметр указывает, что задача является фоновой, и задает размер кванта для фоновой задачи.

-stdiodir <имя_директории>

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

Ключи –s и –host описаны в п.0.

В процессе работы команды mpirun образуется файл паспорта задачи <имя_модуля>.img, формат которого описан ниже. Данный файл может быть использован в команде mrunf.

Для запуска программы с использованием LAM служит команда lamrun с теми же параметрами, что и mpirun.

Запускать программу следует СТРОГО для того варианта MPI, для которого она была подготовлена!!!

Для  запуска программы с использованием TCP Router служит команда routerrun с теми же параметрами, что у mpirun и lamrun. Некоторые особенности запуска программ для Router изложены подробнее в конце настоящего документа.

 

9. Формат файла-паспорта задачи и запуск задачи через него

Пользователь может оформить паспорт задачи в виде отдельного файла и потом запустить задачу с этим паспортом специальной командой. Формат файла-паспорта задачи следующий:

# Это комментарий

# Следующая строка - название секции

[General]

# Далее идет содержимое секции

# Следующая срока определяет имя задачи

task_name = testmod

# Следующая срока определяет имя каталога

# стандартного ввода/вывода

host_directory = /usr/people/lacis/testmod/work

# Следующая срока определяет необходимое число

# процессоров для выполнения задачи

# Если указывается значение any, то число процессоров

# должно быть определено при старте задачи

cpu_count = any

# Следующая строка - название секции

# Секция не обязательная

[TimeRequest]

# Время (по максимуму), необходимое для выполнения задачи,

# указывается в минутах

limit = 240

# количество повторов задачи

repeat_times = 2

# квант для фоновых задач

quant = 20

# Следующая строка - название секции

# Секция обязательная

[Batch]

# Далее идет содержимое секции

# Здесь помещается текст командного файла,

# который будет выполнен на нулевом по счету узле,

# среди выделенных для задачи

Сформировав таким образом паспорт задачи и сохранив его в файле, Вы можете запустить задачу с указанным в паспорте именем с помощью команды:

mrunf <имя_файла-паспорта>

При запуске система проверяет корректность данных паспорта. При обнаружении ошибок выдается сообщение пользователю, а запуск останавливается.

Если пользователь задал в паспорте значение any для числа процессоров или номера консольного вывода, то система попросит пользователя явно указать значения этих параметров перед запуском задачи.

Удачно запущенная задача получает определенный номер, который добавляется к имени задачи. Это позволяет пользователю запускать одновременно запускать несколько экземпляров задачи с одним и тем же именем – система присвоит каждому экземпляру задачи уникальный номер. По завершении задачи ее номер «освобождается» и будет использован повторно.

При удачном старте система выдаст пользователю следующую информацию:

-                            имена свободных узлов в системе на момент запуска задачи;

-                            имена выделенных под задачу узлов;

-                            сведения о принятых системой установках по умолчанию.

Завершает выдачу сообщение об удачном старте задачи, причем в сообщении указывается присвоенный задаче номер, например:

Task “test.1” started successfully

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

Task “test.1” was queued


10. Получение информации о запущенных задачах

Информация о запущенных пользователем задачах можно получить с помощью команды:

mps [имя_задачи.номер_задачи]

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

Параметром для команды служит имя задачи и – через точку – ее номер. При задании параметра система выдаст информацию о задаче – время старта (и завершения, если задача уже завершилась), имена узлов, на которых выполняется задача, номер процесса-менеджера задачи.

 

11. Завершение запущенной задачи

Завершить запущенную задачу можно командой:

mkill [имя_задачи.номер_задачи]

Параметром для команды служит имя задачи и – через точку – ее номер. Данная команда допускает задание в качестве параметра маски Unix-формата с использованием символов-джокеров. По этой команде будут завершены все задачи, имена которых удовлетворят заданной маске. Завершить все свои задачи можно командой:

mkill ‘*’

При отсутствии параметра пользователю будет выдан список всех запущенных задач и предложено ввести номер (по списку) той задачи, которую нужно завершить. Перед завершением задачи в этом случае будет задан вопрос о полном завершении задачи. Полное завершение задачи означает ее завершение без возможности повторов. В противном случае завершится только текущая итерация, и, если счетчик повторов не обнулился, задача будет запущена вновь. Это же замечание относится к команде mkill с заданным параметром – команда производит завершение лишь текущей итерации.

Безусловное полное завершение задачи происходит по команде

mterm [имя_задачи.номер_задачи]

Значение параметра данной команды аналогично mkill, только mterm вызывает полное завершение всех задач, имена которых удовлетворят заданной маске. Вызов mterm без параметров аналогичен вызову mkill без параметров.

 

12. Просмотр стандартного вывода задачи

Стандартный вывод (печать на экран) любого из процессов задачи можно просмотреть с помощью команды:

mout [имя_задачи.номер_задачи [что_выдавать]]

При отсутствии параметров будет предложен выбор из списка запущенных задач. При отсутствии параметра что_выдавать будет предложен вопрос. В качестве ответа можно задать либо out, что означает выдачу стандартного вывода, либо log. В случае задания log на экран будет выведен стандартный вывод специального системного процесса-менеджера задачи.

 Если Вы задали параметры команде mout, то она выдаст вам запрошенную информацию, даже если задача уже завершилась на момент вызова команды.

Прервать выдачу команды mout можно нажатием клавиш Ctrl-C. Снятие вывода НЕ означает снятие задачи – задача продолжит счет.

При запуске задачи система создаст в указанном в паспорте каталоге стандартного вывода подкаталог, имя которого будет совпадать с именем запущенной задачи (включая номер через точку). В этом подкаталоге и будут непосредственно размещен файл стандартного вывода задачи. Файл стандартного вывода имеет имя output. Файл стандартного вывода процесса-менеджера имеет имя manager.log. Система сама не уничтожает эти файлы и подкаталог, зато перезаписывает их, если задача будет запущена повторно с этим же номером. После завершения задачи данные файлы полностью доступны пользователю.

При работе программ с использованием Router в файл output попадает стандартный вывод только от нулевого процесса – соответственно, только его можно просмотреть командой mout. Для стандартных выводов первого, второго и последующих процессов в том же каталоге образуются файлы output1, output2, …, соответственно. Они доступны только для ручного просмотра.

 

13. Получение информации о свободных процессорах

Сколько на данный момент времени в системе имеется свободных процессоров можно узнать с помощью команды:

Mfree

14. Команды работы с очередями

Постановка в очередь задачи осуществляется командами запуска задачи (mrunf или mpirun). По команде mps можно посмотреть все запущенные задачи, при этом стоящие в очереди задачи будут помечены атрибутом queued. По команде mqdel задача удаляется из очереди:

mqdel <имя_задачи>

Просмотр очереди осуществляется по команде mqinfo. Данная команда не имеет параметров, примерная информация, выдаваемая ею, выглядит следующим образом (для пользователя с именем ant):

Queue state at Wed Mar 22 12:40:07 2000

--- 22.03.00 07:30: total – 32 debug – 16/15, packet – 300, priority scale - (120 300 0 0 0)     

          tnet.2 : ant          0*   10  1200/15  ~10   Mon Mar 22 13:16:09 2000

          tnet.7 : ant          1*   10  15/15      ~10   <:Mon Mar 22 13:31:09 2000

--- 22.03.00 19:00: total – 32 debug - 0/15, packet - 600, priority scale - (10000 0 0 0 0)      

          tnet.3 : ant          1*   24  500/500  ~312   <:Mon Mar 22 20:31:09 2000

--- 23.03.00 07:30: total – 32 debug - 16/15, packet - 300, priority scale - (120 300 0 0 0)

          tnet.1 : ant          1*   1  15/15      ~~~   <:Mon Mar 20 20:31:09 2000

      Free: 2 proc.

ant: run=0 wait=5/5 all=5/7   *1.00 Sr/Sf=0/0

ВНИМАНИЕ! Команда mqinfo выдает информацию о режимах и о задачах только того пользователя, который вызвал mqinfo. Информация о задачах других пользователей недоступна.

Информация о режимах начинается с ‘---‘ и содержит:

-         дата и время включения режима;

-         после total – общее число планируемых процессоров;

-         после debug – количество процессоров, отведенное под отладочные задачи/максимальное время (в минутах) для отладочных задач;

-         после packet – максимальное время (в минутах) для пакетных задач;

-         после priority scale – шкала приоритетов.

Следующий пример демонстрирует режим, который включается 22 марта 2000 г. в 7 часов 30 минут и имеет следующие параметры: всего планируется 32 процессора, максимальное время для отладочных задач – 15 минут, для пакетных – 300 минут, при этом под отладочные задачи отведено 16 процессоров, эти 16 процессоров не могут занимать пакетные задачи, шкала приоритетов определяет два приоритета – высокий для пользователей, считавших менее 180 минут, и низкий  - для всех остальных.

---22.03.00 07:30: total–32 debug-16/15, packet–300, priority scale-(180 0 0 0 0)

Информация о считающихся задачах содержит:

-         имя задачи;

-         имя пользователя;

-         количество оставшихся повторов счета;

-         количество процессоров, занимаемых задачей;

-         остаток заказа общего времени счета в минутах;

-         заказ кванта счета в минутах;

-         количество минут до предполагаемого завершения задачи;

-         предполагаемое время завершения.

Следующий пример демонстрирует считающуюся задачу img1.3 пользователя guest. Задача занимает 15 процессоров, считается последний раз (более повторов не будет), оставшееся время счета – 150 минут, задача фоновая с квантом 15 минут, будет перезапущена системой через 15 минут 2 августа 1999 года в 18 часов 3 минуты.

   img1.3 : guest        0*  15  150/15      15    Mon Aug  2 18:03:16 1999

Информация о стоящих в очереди задачах отличается от информации о считающихся

задачах тем, что вместо количества минут до завершения выдается количество минут до предполагаемого старта, а вместо времени завершения — время постановки в очередь.

Например:

  img1.2 : ant          1*  16 300/300     ~14   <:Mon Aug  2 18:00:50 1999

Задача может быть заморожена оператором или системой. В этом случае вместо времени, оставшегося до старта будет проставлено ~~~, например:

  img1.2 : ant          1*  16 300/300     ~~~   <:Mon Aug  2 18:00:50 1999

Имеется информация о свободных процессорах в виде:     

Free: 32 proc

Затем выдается суммарная информация по пользователю:

-         login-имя;

-         после run - количество считающихся задач;

-         после wait - количество ждущих задач/ограничение на количество ждущих задач;

-         после total - суммарное количество задач в очереди/ограничение на суммарное количество задач в очереди;

-         коэффициент умножения при вычислении цены задачи;

-         после Sr/Sf - суммарная стоимость считающихся задач/суммарная стоимость закончившихся задач;

Например,

guest: run=1 wait=0/1 ttl=1/1   *1.00 Sr/Sf=15/14

Проверка нахождения задачи в очереди осуществляется командой

mqtest <имя_задачи>

Данная команда определяет, находится ли в очереди задача с данным именем, о чем печатает сообщение пользователю.

 

15. Ключи выбора управляющей ЭВМ и логической подсистемы

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

Выбор управляющей ЭВМ задается либо в пользовательском конфигурационном файле, либо с помощью ключа –host в любой из команд системы запуска, например:

mrun tnet –host beta

запустить задачу tnet на вычислителе, подключенном к управляющей ЭВМ с именем  beta

mfree –host cascade

выдать, сколько свободных процессоров на вычислителе, подключенном к управляющей ЭВМ с именем cascade.

Если к одной управляющей ЭВМ подключено несколько многопроцессорных вычислителей, то каждый такой вычислитель трактуется как отдельная система, имя которой указывается в качестве параметра с ключом –s:

-s <имя_системы>

Данная опция применима ко всем командам, ВНИМАНИЕ! При формировании имени запущенной задачи имя системы будет добавлено в начало! Например, следующий запуск

mrun tnet –s tms

приведет к  тому, что будет запущена задача с именем tms.tnet.1. Будьте внимательны!

По умолчанию будет использована система, имя которой прописано в качестве значения параметра default_system секции [General] пользовательского конфигурационного файла ~/.crunmvs. Например:

# Это комментарий

[General]

# Далее – имя управляющей ЭВМ

host = alpha

# Далее – имя системы на этой управляющей ЭВМ

default_system = sharc

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

 

16. Коды возврата команд системы запуска

Все команды системы запуска по умолчанию имеют код возврата 0 (если завершение нормальное) или 1 (если авария). Указание ключа -rcode в команде заставит эту команду возвращать специальный код возврата. Специальный код возврата имеет место в следующих командах:

mpirun (mrunf) – возвращает номер запущенной (поставленной в очередь) задачи, либо значение меньше 0, если авария.

mqtest – возвращает 1, если задача стоит в очереди, 0 – если задача запущена или завершена, меньше 0 – если такой задачи нет или авария.

 

17. Некоторые особенности запуска для TCP Router.

При использовании Router не полностью автоматизировано управление ресурсами, необходимыми для запуска.

В некоторых, довольно редких случаях это может приводить к отказам при попытке запуска программы командой routerrun, причем в файле output появится диагностика, содержащая слова “router.conf”. Если с Вами такое случилось, прочитайте все изложенное ниже, в противном случае – не читайте.

 При запуске командой routerrun параллельной программы в ее текущей директории создается служебный файл с фиксированным именем “router.conf”,  содержимое которого специфично для данного конкретного запуска. Пока на всех процессорах не отработает обращение к функции rf_create(), данный файл не должен ни модифицироваться, ни удаляться. Следовательно, некоторое время после запуска программы командой routerrun запуск той же командой программ из той же текущей директории невозможен. С другой стороны, время, в течение которого запуск невозможен, точному определению не поддается: теоретически ничто не мешает прикладному программисту написать программу, в которой все или некоторые процессы вызывают rf_create(), скажем, через полчаса или час после начала работы, хотя обычно речь идет все-таки о секундах.

            В результате возможно появление двух проблем:

1). Вы запускаете программу из той же текущей директории сразу после запуска предыдущей, когда предыдущий файл router.conf еще существует. В этом случае запуск не произойдет, причем в файле output появится соответствующая диагностика. Требуется подождать, пока router.conf исчезнет (его автоматически удалит последний сработавший rf_create() предыдущей программы), и повторить запуск.

2). При выполнении предыдущей программы произошла авария до того, как во всех процессах проработало обращение к rf_create(). В этом случае предыдущий router.conf удалить будет некому, и Вам придется сделать это вручную, чтобы запуск из этой директории снова стал возможен.

            Рекомендации по преодолению указанных трудностей:

1). Всегда начинайте Вашу программу с вызова rf_create() или ее Фортранного эквивалента. До этого вызова не выполняйте никаких рискованных или непредсказуемых по продолжительности действий, как то: обработка параметров командной строки, операции деления и умножения, файловый ввод/вывод.

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