ИПМ им. М.В. Келдыша РАН.
Отдел ИВСиЛС, сектор эксплуатации МВС.
А.В. Баранов
А.О. Лацис
C.В. Сажин
М.Ю. Храмцов
Руководство пользователя системы МВС-1000/М
Содержание
1. Общие понятия 1
2. Система запуска задач 2
3. Основные принципы построения очередей 3
4. Запуск программ, использующих MPI 5
5. Формат файла-паспорта задачи и запуск задачи через него 7
6. Получение информации о запущенных задачах 8
7. Завершение запущенной задачи 8
8. Просмотр стандартного вывода задачи 9
9. Получение информации о свободных процессорах 10
10. Команды работы с очередями 10
10.1 Постановка в очередь 10
10.2 Удаление задачи из очереди 10
10.3 Просмотр очереди 10
10.4 Проверка нахождения задачи в очереди 13
11. Пользовательский конфигурационный файл системы запуска 13
12. Ключи выбора управляющей ЭВМ и логической подсистемы 14
13. Коды возврата команд системы запуска 15
14. Команда получения вычислительных модулей 16
1.Общие понятия
Построение системы МВС-1000/М с точки зрения пользователя выглядит следующим образом. Система состоит из следующих важных компонент: многопроцессорного вычислителя, управляющей ЭВМ, сервера доступа и файлового сервера. Вычислитель состоит из двухпроцессорных модулей – узлов, каждый из которых уникально именован в системе. Для примеров далее будет считаться, что сетевое имя сервера доступа – beta.jscc.ru, сетевое имя управляющей ЭВМ – cws, имена узлов – от m1e до mNe.
Задача пользователя выполняется на одном или нескольких процессорах вычислителя. Задачи могут запускаться и завершаться независимо друг от друга. Вычислитель делится между задачами динамически с точностью до узла. В то же время, отдельный узел не делится между задачами: если одна задача получила некоторый узел, другая задача воспользоваться им не сможет до завершения первой. При запуске задачи на счет она получает набор узлов с произвольными именами из числа свободных. При этом другие узлы задаче не доступны.
На файловом сервере каждый пользователь имеет свой домашний каталог /home/имя_пользователя. Сервер служит для подготовки и хранения исходных текстов программ пользователей, данных для пользовательских задач, результатов расчетов, для компиляции и подготовки самих задач.
Управляющая ЭВМ служит для доступа пользователей, а также для запуска (завершения, управления) на многопроцессорном вычислителе пользовательских задач. На управляющей ЭВМ ведется очередь задач к вычислителю. Заметим, что возможно объединение функций файлового сервера и управляющей ЭВМ на одной рабочей станции.
Старт (завершение, получение информации) задачи инициируется запуском на сервере доступа пользователем команд системы запуска (см. ниже).
2.Система запуска задач
Следует отметить, что "разъяснение" системе того, сколько процессоров требуется данной задаче, какие программы должны быть загружены на каждом, в каких файлах окажется стандартный ввод и стандартный вывод и т. п. само по себе является нетривиальной задачей. Кроме этого, необходимо ведение очередей пользовательских задач, контроль за их исполнением и освобождение после окончания счета задачи тех вычислительных ресурсов, которые она занимала. В МВС-1000/М для решения этой проблемы служит специальная программная компонента - СИСТЕМА ЗАПУСКА ЗАДАЧ. Она прозрачна для программы, обслуживает исключительно взаимодействие системы с пользователем в процессе запуска программы на счет и последующего контроля.
Задачей называется параллельная прикладная программа, предназначенная для выполнения на нескольких процессорах системы МВС-1000/М.
Весь производимый задачей в процессе выполнения стандартный вывод (печать на экран), а также стандартный вывод сообщений об ошибках будут перенаправлены в специальные выходные файлы. По желанию пользователь может задать системе эти файла, равно как и файл стандартный ввода. Выходные файлы, файл стандартного ввода, а также некоторые другие служебные файлы создаются в рабочем каталоге задачи на управляющей ЭВМ (далее - каталоге стандартного ввода/вывода).
Задача пользователя выполняется на МВС-1000/М определенное время (по умолчанию – 5 часов). Пользователь имеет возможность самостоятельно специфицировать время выполнения. По истечении специфицированного времени задача будет снята со счета.
Каждая запущенная задача получает уникальное имя, состоящее из символьного имени задачи и ее номера, что позволяет запускать одну и ту же задачу одновременно в нескольких экземплярах. Для каждого экземпляра система создаст собственный каталог стандартного ввода/вывода.
Каждая запущенная задача контролируется специальным процессом управляющей ЭВМ – менеджером задачи. Стандартный вывод этого процесса также сохраняется в каталоге стандартного ввода/вывода.
Для автоматизации процесса запуска задачи и служит система запуска задач. Отметим, что система запуска имеет свой конфигурационный файл, структура которого описана в п. 11.
3.Основные принципы построения очередей
ВНИМАНИЕ! Данный раздел содержит информацию об организации системы очередей для МВС-1000/М. Просьба к пользователям внимательно ознакомиться с его содержанием и соблюдать правила постановки в очередь задач. Нарушение указанных правил может привести к тому, что Ваша задача будет вечно стоять в очереди и НИКОГДА не запустится.
Все задачи пользователей делятся на три категории – отладочные, пакетные и фоновые.
Отладочные задачи – это короткие по времени задачи, которые запускаются исключительно в целях отладки.
Пакетные задачи – это средние по времени задачи, которые производят реальные расчеты и выполняются, не прерываясь.
Фоновые задачи – задачи с большим временем счета, которые могут прерываться системой. Для фоновой задачи пользователь должен явно указать квант – минимальное время счета фоновой задачи, в течение которого задачу прерывать нельзя.
Планирование очередей в каждый момент времени производится в соответствии с параметрами текущего режима планирования. Режим планирования определяется следующими параметрами:
дата и время включения режима;
максимальное время, отведенное для отладочных задач;
максимальное время, отведенное для пакетных задач;
число процессоров, которые «резервируются» для отладочных задач;
шкала приоритетов пользователей.
Рассмотрим каждый параметр подробнее.
Дата и время включения определяют время, начиная с которого параметры режима вступают в силу. Параметры режима действуют вплоть до включения следующего режима.
Максимальное время, отведенное для отладочных задач, определяет время счета отладочной задачи. Если пользователь хочет сообщить системе, что его задача отладочная, то он должен указать для задачи время счета, не превышающее значение максимального времени для отладочных задач. При превышении данного значения задача автоматически будет считаться пакетной.
Максимальное время, отведенное для пакетных задач определяет время счета для пакетной задачи. ВНИМАНИЕ! Пакетные задачи, время которых превышает максимальное отведенное для пакетных задач, не будут включены в счет в текущем режиме. ЕСЛИ ВЫ ХОТИТЕ СЧИТАТЬ ДОЛГО, ДЕЛАЙТЕ ЗАДАЧУ ФОНОВОЙ!
Число процессоров, которые «резервируются» для отладочных задач. Все пакетные задачи в сумме не могут занимать процессоров больше, чем разность между общим числом процессоров и значением данного параметра. При этом процессоры числом, указанным в данном параметре, в текущем режиме будут использоваться только для счета отладочных задач («резервируются»). Подчеркнем, что «резервируются» не конкретные процессоры или вычислительные модули. Система гарантирует, что определенное в данном параметре число процессоров не будет использовано для счета пакетных задач, а какие конкретно процессоры попадут в это число, зависит от текущей ситуации. Данный параметр введен для дневных режимов, чтобы обеспечить постоянное наличие свободных процессоров для отладочных задач.
Шкала приоритетов пользователей. Задачи планируются системой согласно приоритетам пользователей, т.е. задача пользователя с высоким приоритетом может посчитаться раньше, чем задача пользователя с низким приоритетом. Приоритет пользователя определяется по указанной шкале и напрямую зависит от суммарного времени счета пользователя за учетный период. Например, если шкала имеет следующий вид:
(120,300,600,1200,0)
то это означает, что наивысшим приоритетом будут обладать задачи пользователей, которые за учетный период считали менее 120 минут, чуть меньшим приоритетом – тех, кто считал менее 300 минут, еще меньшим – тех, кто считал менее 600 минут и т.д. Низшим приоритетом будут обладать задачи пользователей, считавших более 1200 минут. При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета. Последний ноль означает «конец списка». ВНИМАНИЕ! При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета. Размер учетного периода определяется администратором системы.
Планирование фоновых задач осуществляется следующим образом. Пользователь должен указать квант для фоновой задачи. Система гарантирует, что если фоновая задача была выбрана на счет, то ей будет дано для счета время, не меньшее указанного кванта. По истечении кванта задача может быть снята системой со счета и заново поставлена в очередь. ВНИМАНИЕ! Организацию контрольных точек и повторного старта должен обеспечить сам пользователь. Это означает, что при повторном старте фоновой задачи система не восстанавливает состояние вычислений данной задачи.
Если указанный пользователем квант не превышает максимального времени для отладочных задач, то его фоновая задача может быть включена в решение наравне с прочими отладочными задачами. Однако, при появлении в системе первой отладочной задачи, фоновая задача, по истечении кванта, будет снята с выполнения и заново поставлена в очередь.
Если указанный пользователем квант не превышает максимального времени для пакетных задач, то фоновая задача планируется, как пакетная. Она уже не сможет занимать процессоры, «зарезервированные» для отладочных задач. При превышении квантом максимального времени для пакетных задач фоновая задача не сможет войти в счет в текущем режиме.
4.Запуск программ, использующих MPI
Запуск на исполнение MPI-программы производится с помощью команды:
mpirun [параметры_mpirun...] <�имя_программы> [параметры_программы...] [-host ]
Параметры команды mpirun слелующие:
-h
интерактивная подсказка по параметрам команды mpirun.
-maxtime <�максимальное_время>
Максимальное время счета. От этого времени зависит положение задачи в очереди. После истечения этого времени задача принудительно заканчивается.
-np <�число_процессоров>
Число процессоров, требуемое программе.
-quantum <�значение_кванта_времени>
Этот параметр указывает, что задача является фоновой, и задает размер кванта для фоновой задачи.
-restart
Указание этого ключа приведет к тому, что после своего завершения задача будет вновь поставлена в очередь. Для удаления из очереди такой задачи пользуйтесь стандартной командой mqdel, а для ее завершения – командами mkill или mterm.
-stdiodir <�имя_директории>
Этот параметр задает имя каталога стандартного ввода/вывода, в который будут записываться протокол запуска задачи, файл стандартного вывода и имена модулей, на которых запускалась задача.
-stdin <�имя_файла>
Этот параметр задает имя файла, на который будет перенаправлен стандартный ввод задачи.
-stdout <�имя_файла>
Этот параметр задает имя файла, на который будет перенаправлен стандартный вывод задачи.
-stderr <�имя_файла>
Этот параметр задает имя файла, на который будет перенаправлен стандартный вывод сообщений об ошибках задачи.
-transform <�имя_командного_файла>
При запуске задачи происходит преобразование списка выделенных задаче вычислительных модулей в формат среды программирования MPICH. По умолчанию системой используется командный файл /common/runmvs/bin/p4togm.sh. Параметр имя_командного_файла задает командный файл, который выполнит указанное преобразование вместо стандартного файла p4togm.sh. Необходимо учесть, что при вызове данный командный файл получит два параметра: файл со списком узлов выделенных задаче и полное имя файла запускаемой программы. Подробнее форматы этих файлов и описание ключа transform можно найти в разделе «Интерфейс между средой для разработки параллельных программ и системой управления прохождением задач» Руководства администратора.
-width
Использовать альтернативный способ нумерации процессоров. По умолчанию процессы задачи распределяются по процессорам выделенных модулей в следующем порядке: 1-й процесс - на 1-й процессор 1-го модуля, 2 й процесс - на 1-й процессор 2-го модуля, 3-й процесс - на 1-й процессор 3 го модуля и т.д. После занятия всех 1-х процессоров всех выделенных модулей занимаются 2-е процессоры в том же порядке.
При указании ключа width используется другой способ нумерации: 1-й процесс - на 1-й процессор 1-го модуля, 2 й процесс - на 2-й процессор 1-го модуля, 3-й процесс - на 1-й процессор 2 го модуля и т.д.
Ключ –host описан в п.11.
Удачно запущенная задача получает определенный номер, который добавляется к имени задачи. Это позволяет пользователю запускать одновременно несколько экземпляров задачи с одним и тем же именем – система присвоит каждому экземпляру задачи уникальный номер. Для каждого экземпляра будет создан отдельный каталог стандартного ввода/вывода. По завершении задачи ее номер «освобождается» и будет использован повторно.
При удачном старте система выдаст пользователю следующую информацию:
имена свободных узлов в системе на момент запуска задачи;
имена выделенных под задачу узлов;
сведения о принятых системой установках по умолчанию.
Завершает выдачу сообщение об удачном старте задачи, причем в сообщении указывается присвоенный задаче номер, например:
Task “test.1” started successfully
Может случиться так, что задача не будет запущена сразу, а поставлена в очередь. В этом случае реакция системы будет следующей:
Task “test.1” was queued
В процессе работы команды mpirun образуется файл паспорта задачи <имя_программы>.img, формат которого описан ниже. Данный файл может быть использован в команде mrunf.
5.Формат файла-паспорта задачи и запуск задачи через него
Пользователь может оформить паспорт задачи в виде отдельного файла и потом запустить задачу с этим паспортом специальной командой. Формат файла-паспорта задачи следующий:
# Это комментарий
# Следующая строка - название секции
[General]
# Далее идет содержимое секции
# Следующая срока определяет имя задачи
task_name = testmod
# Следующая срока определяет имя каталога
# стандартного ввода/вывода
host_directory = /usr/people/lacis/testmod/work
# Следующая срока определяет необходимое число
# процессоров для выполнения задачи
# Если указывается значение any, то число процессоров
# должно быть определено при старте задачи
cpu_count = any
# Следующая строка - название секции
# Секция не обязательная
[TimeRequest]
# Время (по максимуму), необходимое для выполнения задачи,
# указывается в минутах
limit = 240
# квант для фоновых задач
quant = 20
# Следующая строка - название секции
[Redirections]
# Имя файла стандартного вывода задачи
stdout = /home/user/test.out
# Имя файла стандартного ввода задачи
stdin = /home/user/test.in
# Имя файла стандартного вывода ошибок задачи
stderr = /home/user/test.err
# Следующая строка - название секции
# Секция обязательная
[Batch]
# Далее идет содержимое секции
# Здесь помещается текст командного файла,
# который будет выполнен на нулевом по счету узле,
# среди выделенных для задачи
Сформировав таким образом паспорт задачи и сохранив его в файле, Вы можете запустить задачу с указанным в паспорте именем с помощью команды:
mrunf <�имя_файла-паспорта>
При запуске система проверяет корректность данных паспорта. При обнаружении ошибок выдается сообщение пользователю, а запуск останавливается.
Если пользователь задал в паспорте значение any для числа процессоров или номера консольного вывода, то система попросит пользователя явно указать значения этих параметров перед запуском задачи.
6.Получение информации о запущенных задачах
Информация о запущенных пользователем задачах можно получить с помощью команды:
mps [имя_задачи.номер_задачи]
При отсутствии параметра на экран будет выдан список всех запущенных пользователем и работающих или находящихся в очереди на момент выдачи команды задач. Если задача находится в очереди, это будет отмечено словом queued рядом с именем задачи.
Параметром для команды служит имя задачи и – через точку – ее номер. При задании параметра система выдаст информацию о задаче – время старта (и завершения, если задача уже завершилась), имена узлов, на которых выполняется задача, номер процесса-менеджера задачи.
7.Завершение запущенной задачи
Завершить запущенную задачу можно командой:
mkill [имя_задачи.номер_задачи]
Параметром для команды служит имя задачи и – через точку – ее номер. Данная команда допускает задание в качестве параметра маски Unix-формата с использованием символов-джокеров. По этой команде будут завершены все задачи, имена которых удовлетворят заданной маске. Завершить все свои задачи можно командой:
mkill ‘*’
При отсутствии параметра пользователю будет выдан список всех запущенных задач и предложено ввести номер (по списку) той задачи, которую нужно завершить. Перед завершением задачи в этом случае будет задан вопрос о полном завершении задачи. Полное завершение фоновой задачи означает ее завершение без возможности повторов. В противном случае завершится только текущая итерация, и, если заказанное время не исчерпалось, задача будет запущена вновь. Это же замечание относится к команде mkill с заданным параметром – команда производит завершение лишь текущей итерации.
Безусловное полное завершение задачи происходит по команде
mterm [имя_задачи.номер_задачи]
Значение параметра данной команды аналогично mkill, только mterm вызывает полное завершение всех задач, имена которых удовлетворят заданной маске. Вызов mterm без параметров аналогичен вызову mkill без параметров.
8.Просмотр стандартного вывода задачи
Стандартный вывод (печать на экран) любого из процессов задачи можно просмотреть с помощью команды:
mout [имя_задачи.номер_задачи [что_выдавать]]
При отсутствии параметров будет предложен выбор из списка запущенных задач. При отсутствии параметра что_выдавать будет предложен вопрос. В качестве ответа можно задать либо out, что означает выдачу стандартного вывода, либо err, что означает просмотр стандартного вывода сообщений об ошибках, либо log. В случае задания log на экран будет выведен стандартный вывод специального системного процесса-менеджера задачи.
Если Вы задали параметры команде mout, то она выдаст вам запрошенную информацию, даже если задача уже завершилась на момент вызова команды.
Прервать выдачу команды mout можно нажатием клавиш Ctrl-C. Снятие вывода НЕ означает снятие задачи – задача продолжит счет.
При запуске задачи система создаст в указанном в паспорте каталоге стандартного ввода/вывода подкаталог, имя которого будет совпадать с именем запущенной задачи (включая номер через точку). В этом подкаталоге и будут непосредственно размещены файлы стандартного ввода/вывода задачи. Файл стандартного вывода имеет имя output, стандартного вывода сообщений об ошибках – errors, стандартного ввода – input. Файл стандартного вывода процесса-менеджера имеет имя manager.log. Система сама не уничтожает эти файлы и подкаталог, зато перезаписывает их, если задача будет запущена повторно с этим же номером. После завершения задачи данные файлы полностью доступны пользователю.
9.Получение информации о свободных процессорах
Сколько на данный момент времени в системе имеется свободных процессоров можно узнать с помощью команды:
mfree
10.Команды работы с очередями
10.1Постановка в очередь
задачи осуществляется командами запуска задачи (mrunf или mpirun). По команде mps можно посмотреть все запущенные задачи, при этом стоящие в очереди задачи будут помечены атрибутом queued.
10.2Удаление задачи из очереди
По команде mqdel задача удаляется из очереди:
mqdel <�имя_задачи.номер_задачи>
10.3Просмотр очереди
осуществляется по команде mqinfo. Данная команда не имеет параметров, примерная информация, выдаваемая ею, выглядит следующим образом:
Current time: Mon Mar 22 13:10:07 2000
Queue state at Mon Mar 22 13:06:09 2000
Current schedule: 2
Accumulation period: 168 hours
--- 22.03.00 07:30: R=1 total – 32 debug – 16/15, packet – 300, priority scale - (120 300)
tnet.2 : ant 0* 10 1200/15 10 >:Mon Mar 22 13:16:09 2000
-- queue --
ft.A.8.1 : gns 1* 8 300/300 ~297 <:Mon Mar 22 13:31:09 2000
tnet.7 : ant 1* 10 15/15 ~10 <:Mon Mar 22 13:31:09 2000
--- 22.03.00 19:00: R=5 total – 32 debug - 0/15, packet - 600, priority scale - (10000)
tnet.3 : ant 1* 24 500/500 ~312 <:Mon Mar 22 20:31:09 2000
--- 23.03.00 07:30: R=1 total – 32 debug - 16/15, packet - 300, priority scale - (120 300)
tnet.1 : ant 1* 1 15/15 ~~~ <:Mon Mar 20 20:31:09 2000
Free: 6 proc Available: 17 Locked: 15
ant: Inf:3 R=1 run=0 wait=0/5 all=0/7 *1.00 Sr/Sf=10/26
gns: Inf:3 R=1 run=1 wait=0/5 all=1/7 *1.00 Sr/Sf=300/0
В заголовке выдачи сообщается, когда было в последний раз перезаписано состояние очереди, а также (Current schedule) – номер текущего расписания. Если администратор отключил часть процессоров от системы управления очередью, то в той же строке будет показано их количество. Кроме того, выдается учетный период (Accumulation period), за который производится суммирование времени счета завершившихся задач одного пользователя.
Если очередь блокирована (заморожена), то это отображается словом Hold при выдаче:
Queue state at Wed Mar 22 12:40:07 2000
Current schedule: 2 Hold
Accumulation period: 168 hours
--- 22.03.00 07:30: R=3 total – 32 debug – 16/15, packet – 300, priority scale - (120 300)
--- 22.03.00 19:00: R=2 total – 32 debug - 0/15, packet - 600, priority scale - (10000)
--- 23.03.00 07:30: R=2 total – 32 debug - 16/15, packet - 300, priority scale - (120 300)
tnet.7 : ant 1* 10 15/15 ~~~ <:Mon Mar 22 13:31:09 2000
tnet.3 : ant 1* 24 500/500 ~~~ <:Mon Mar 22 20:31:09 2000
tnet.1 : ant 1* 1 15/15 ~~~ <:Mon Mar 20 20:31:09 2000
..............................
Информация о режимах начинается с ‘---‘ и содержит:
дата и время включения режима;
после R= - шкалу классов режимов, которым принадлежит данный (“1” означает нулевой класс, “fc” — классы со 2-го по 7-й включительно);
после total – общее число планируемых процессоров;
после debug – количество процессоров, отведенное под отладочные задачи/максимальное время (в минутах) для отладочных задач;
после packet – максимальное время (в минутах) для пакетных задач;
после priority scale – шкала приоритетов.
Следующий пример демонстрирует режим, который включается 22 марта 2000 г. в 7 часов 30 минут и имеет следующие параметры: всего планируется 32 процессора, максимальное время для отладочных задач – 15 минут, для пакетных – 300 минут, при этом под отладочные задачи отведено 16 процессоров, эти 16 процессоров не могут занимать пакетные задачи, шкала приоритетов определяет два приоритета – высокий для пользователей, считавших менее 180 минут, и низкий - для всех остальных. Данный режим относится лишь к нулевому классу (R=1), т.е. только те пользователи, которым разрешено считать в режимах нулевого класса, могут запускать здесь свои задачи. У администратора есть возможность создать режим, в котором всем пользователям режимов других классов дано разрешение запускать отладочные задачи. В настоящее время этот флаг при выдаче информации о режимах не отражается.
---22.03.00 07:30: R=1 total–32 debug-16/15, packet–300, priority scale-(180)
Информация о считающихся задачах содержит:
имя задачи;
имя пользователя;
количество оставшихся повторов счета;
количество процессоров, занимаемых задачей;
остаток времени счета в минутах;
квант счета в минутах;
количество минут до предполагаемого завершения задачи;
предполагаемое время завершения (после >:).
Следующий пример демонстрирует считающуюся задачу 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.3 : guest 0* 15 150/15 starting
Следующая выдача говорит о том, что задача находится в процессе завершения:
img1.3 : guest 0* 15 150/15 finishing
Задача может быть заморожена оператором или системой. В этом случае вместо времени, оставшегося до старта будет проставлено ~~~, например:
img1.2 : ant 1* 16 300/300 ~~~ <:Mon Aug 2 18:00:50 1999
Имеется информация о свободных процессорах в виде:
Free: 6 proc Available: 17 Locked: 15
В этой же строчке выдается информация о количестве доступных для счета (Available) и заблокированных (Locked) процессоров.
Затем выдается суммарная информация по пользователю:
login-имя;
информация о запрете (Block:) счета (Q) или запуска (R) задач (если он установлен администратором);
степень подробности выдачи информации (Inf:);
шкала классов режимов (R=), в которых разрешено запускать задачи, в виде 16-го числа;
после run - количество считающихся задач;
после wait - количество ждущих задач/ограничение на количество ждущих задач;
после all - суммарное количество задач в очереди/ограничение на суммарное количество задач в очереди;
коэффициент умножения при вычислении цены задачи;
после Sr/Sf - суммарная стоимость считающихся задач/суммарная стоимость закончившихся задач;
Например,
guest: Inf:2 run=1 wait=0/1 all=1/1 *1.00 Sr/Sf=15/14
u1125: Inf:2 R=1 run=0 wait=0/5 all=0/7 *1.00 Sr/Sf=0/365
u1310: Block:RQ Inf:2 R=1 run=0 wait=1/5 all=1/7 *1.00 Sr/Sf=0/0
u0319: Inf:2 R=3 run=0 wait=0/5 all=0/7 *1.00 Sr/Sf=0/88
u1305: Block:R Inf:2 R=1 run=1 wait=2/5 all=3/7 *1.00 Sr/Sf=0/0
Здесь показано, что пользователю u1310 запрещено ставить задачи в очередь, задачи его и пользователя u1305, стоящие в очереди, заморожены; всем пользователям информация выдается со степенью подробности 2 (т.е. вся за исключением имен задач других пользователей и информации о пользователях, которые в учетный период не считали и не имеют задач в очереди); всем пользователям разрешено запускать задачи в режимах класса 0, а пользователю u0319 еще и в режимах класса 1.
Специальное имя пользователя “::THE_OTHERS::” зарезервировано для выдачи информации о настройках обычных пользователей. Вообще говоря, настройки выдаются вместе с текущей информацией, но для тех пользователей, которые еще не считали, текущая информация не выдается.
После информации о настройках “::THE_OTHERS::” будут выданы настройки для специально выделенных пользователей, но только для тех, кто не имеет на текущий момент ни задач в очереди, ни накопленных сумм счета. Информация о настройках специальных пользователей имеющих задачи в очереди или накопленные суммы счета выдается (как и для обычных пользователей) вместе с информацией о текущих значениях до строки с “::THE_OTHERS::”.
10.4Проверка нахождения задачи в очереди
осуществляется командой
mqtest <�имя_задачи>
Данная команда определяет, находится ли в очереди задача с данным именем, о чем печатает сообщение пользователю.
11.Пользовательский конфигурационный файл системы запуска
Чтобы система запуска задач работала правильно, необходимо следить за правильными ее настройками. Эти настройки для каждого пользователя сохраняются в файле .crunmvs, который должен находиться в домашнем каталоге пользователя. Формат файла следующий:
# Это комментарий
# Следующая строка - название секции
[General]
# Далее идет содержимое секции
# Следующая срока определяет имя каталога
# для временных файлов
# (где системе можно мусорить)
# Если имя не задано или задано неправильно
# система будет использовать каталог /tmp
tmp_directory = ~/runmvs
# Следующая срока определяет имя управляющей ЭВМ
host = beta
# Следующая строка - название секции
#Данная секция определяет значения
# ключей команды mpirun, используемых по умолчанию
[Mpirun]
# Следующая строка определяет значение кванта времени для
# фоновой задачи
quantum=0 Задан ноль – это означает,
# что задача не является фоновой
#
# Следующая строка определяет
# максимальное время счета задачи
maxtime=300 Задача может выполняться не более 300 минут
# Следующая строка определяет каталог
# стандартного ввода/вывода
stdiodir=`pwd` Если указано `pwd` - то создавать каталог
# стандартного ввода/вывода в текущем каталоге.
# Перед использованием этот параметр обрабатывается
# командным интерпретатором
#
# Следующая строка определяет командный файл, задающий
# распределение задач по процессорам.
# Подробнее см. п.4 (ключи width, transform).
transform=/common/runmvs/bin/p4togm.sh Пытаться распределять
# соседние процессы задачи преимущественно на одном
# процессоре
#transform=/common/runmvs/bin/p4togmr.sh Альтернативный
# командный файл, позволяющий размещать
# соседние процессы задачи на различных процессорах
# Это значение используется при задании параметра
# width в команде mpirun
#
# Следующая строка определяет необходимость рестарта
#задачи по ее окончанию
restart=0
12.Ключи выбора управляющей ЭВМ и логической подсистемы
Система запуска способна обслуживать одновременно несколько управляющих ЭВМ с несколькими вычислителями, подключенными к каждой из них. Кроме этого, система может быть поделена на несколько логических подсистем, каждая из которых также будет уникально именована. Причем с точки зрения системы запуска каждый отдельный вычислитель также будет представлять логическую подсистему.
Выбор управляющей ЭВМ задается либо в пользовательском конфигурационном файле, либо с помощью ключа –host в любой из команд системы запуска, например:
mrun tnet –host beta
запустить задачу tnet на вычислителе, подключенном к управляющей ЭВМ с именем beta
mfree –host cascade
выдать, сколько свободных процессоров на вычислителе, подключенном к управляющей ЭВМ с именем cascade.
Если к одной управляющей ЭВМ подключено несколько многопроцессорных вычислителей, то каждый такой вычислитель трактуется как отдельная система, имя которой указывается в качестве параметра с ключом –s:
-s <�имя_системы>
Данная опция применима ко всем командам, ВНИМАНИЕ! При формировании имени запущенной задачи имя системы будет добавлено в начало! Например, следующий запуск
mrun tnet –s sys
приведет к тому, что будет запущена задача с именем sys.tnet.1. Будьте внимательны!
По умолчанию будет использована система, имя которой прописано в качестве значения параметра default_system секции [General] пользовательского конфигурационного файла ~/.crunmvs. Например:
# Это комментарий
[General]
# Далее – имя управляющей ЭВМ
host = beta
# Далее – имя системы на этой управляющей ЭВМ
default_system = sys
О существующих системах и их именах справляйтесь у системного администратора. В ближайшее время планируется разработать команду, которая будет показывать существующую многопроцессорную конфигурацию, включая имена всех управляющих ЭВМ и систем, им принадлежащих.
13.Коды возврата команд системы запуска
Все команды системы запуска по умолчанию имеют код возврата 0 (если завершение нормальное) или 1 (если авария). Указание ключа -rcode в команде заставит эту команду возвращать специальный код возврата. Специальный код возврата имеет место в следующих командах:
mpirun (mrunf) – возвращает номер запущенной (поставленной в очередь) задачи, либо значение меньше 0, если авария.
mqtest – возвращает 1, если задача стоит в очереди, 0 – если задача запущена или завершена, меньше 0 – если такой задачи нет или авария.
14.Команда получения вычислительных модулей
Данная команда необходима в тех случаях, когда пользователю требуется вычислительный ресурс (один или несколько вычислительных модулей) на определенное время, но при этом нет необходимости запускать конкретную задачу. Команда получения вычислительных модулей имеет следующий формат:
getnodes –np <�число_модулей> -maxtime <�время> <�имя_запроса>
где число_модулей – число требуемых вычислительных модулей (не процессоров!);
время – время, на которые требуется получить указанное число модулей;
имя_запроса – имя, которое будет присвоено запросу на требуемый вычислительный ресурс.
При выполнении этой команды запрос на требуемый ресурс будет поставлен в очередь, как обычная задача. При этом к имени запроса будет через точку добавлен уникальный номер. Как и для обычной задачи будет сформирован каталог стандартного ввода/вывода. После того, как запрос отстоит в очереди, пользователю будет выделено указанное число модулей на указанное время. При этом в файл стандартного вывода будет помещена информация о выделенных модулях. С момента выделения модулей любой из них становится доступен пользователю с помощью команд rlogin или rsh. Завершить работу с модулями можно командой
mkill <�имя_запроса.номер>
|