Компиляция и запуск Microsoft High Performance Computing Server 2008
3.4. Упражнение 2 - Запуск последовательной задачи
Последовательной называется задача, которая используется для своей работы ресурсы только одного процессора. Порядок компиляции последовательной программы (а также параллельной программы с использованием технологии OpenMP) для использования на кластере под управлением Microsoft HPC 2008 не отличается от обычного и не требует использования дополнительных библиотек. В данном задании рассматривается порядок запуска последовательной задачи на кластере.
3.4.1. Создание шаблона задания
Перед тем, как пользователи смогут запускать задания в Microsoft HPC 2008, администратор кластера должен задать правила, определяющие кто, на каких узлах и какие задания может запускать. Правила задаются с помощью, так называемых, шаблонов заданий ( job templates ). Изменить их может только администратор кластера.
- Для редактирования шаблонов заданий запустите HPC Cluster Manager (Start->All Programs->Microsoft HPC Pack->HPC Cluster Manager).
- Нажмите кнопку Configuration в левой нижней части экрана HPC Cluster Manager, после чего выберите пункт Job Templates в древовидном списке слева. В центральной части экрана откроется список шаблонов заданий. Сначала список содержит только шаблон по умолчанию ( Default ).
- Для редактирования шаблона по умолчанию нажмите кнопку Edit.Откроетсяокно с настройками шаблона.
- Окно содержит следующие параметры:
- Minimum Cores/ Maximum Cores - минимальное и максимальное число ядер, которые может выбрать пользователь для своих заданий.
- Minimum Nodes/ Maximum Nodes - минимальное и максимальное число узлов, которые может выбрать пользователь для своих заданий.
- Minimum Sockets/ Maximum Sockets - минимальное и максимальное число сокетов, которые может выбрать пользователь для своих заданий.
- Requested Resources - тип ресурсов, доступный для выбора (ядро, сокет, узел).
- Exclusive - опция определяет, может ли пользователь выбирать, будет ли его задача эксклюзивно использовать ресурсы (эксклюзивность означает невозможность запуска других задач на вычислительных ресурсах одновременно с первой задачей). Опция позволяет администратору также задать значение параметра по умолчанию.
- Run Until Cancelled - возможность задания параметра " Run Until Cancelled " позволяет пользователю запускать задания, которые не будут сняты до истечения заданного временного ресурса или принудительного снятия пользователем или администратором. Это позволяет сохранить закрепление вычислительных ресурсов за пользователем для последующего запуска новых задач по результатам выполнения предыдущих.
- Priority - опция определяет список допустимых приоритетов заданий.
- Auto Calculate Min/ Auto Calculate Max - задание опции " Auto Calculate " позволяет планировщику самостоятельно определять соответственно минимальные и максимальные требования задания к ресурсам на основании требований входящих в задание задач. С помощью шаблонов заданий администратор может запретить пользователям самостоятельно выбирать эту опцию.
- FailOnTaskFailure - опция определяет, должна ли система управления завершить выполнение задания, если выполнение входящей в него задачи завершилось с ошибкой.
- Preemptable - настройка " preemptable " позволяет системе управления прерывать выполнение низкоприоритетных задач при появлении более приоритетных.
- Для добавления нового шаблона задания следует нажать кнопку New в окне " Job Template Editor ".
3.4.2. Запуск программы через графический пользовательский интерфейс
- Откройте проект последовательного алгоритма вычисления числа Пи ( serialpi ), поставляющийся вместе с лабораторной работой "Параллельный метод вычисления числа Пи", и скомпилируйте программу в конфигурации Release.
- Откройте HPC Job Manager ( Start->All Programs->Microsoft HPC Pack->HPC Job Manager ) для запуска программы на кластере. Если Вы установили клиентскую часть HPC Pack на Вашу рабочую станцию, то постановку задач в очередь можно выполнять непосредственно с Вашего компьютера, иначе необходимо зайти по Remote Desktop Connection на головной узел кластера или любой другой узел с установленной клиентской частью.
- В открывшемся окне менеджера заданий выберите пункт меню Actions->Job Submission->New Job для постановки нового задания в очередь.
- В окне постановки задания в очередь введите имя задания (поле " Job Name "), выберите шаблон, в соответствии с которым будет создано задание, при необходимости измените приоритет задания (пользовательские задания с большим приоритетом будут выполнены раньше заданий с меньшим приоритетом). Если это позволяет Ваш шаблон, Вы можете настроить опции выполнения задания:
- Do not run this job for more than - ограничить максимальное время выполнение задачи.
- Run job until cancelled or run time expires - оставлять вычислительные ресурсы зарезервированными за заданием до того, как задание будет снято пользователем или истечет время, указанное в пункте " Do not run this job for more than ".
- Fail the job if any task in the job fails - прерывать выполнение задание при ошибке в любой из составляющих задание задач.
- Use assigned resources exclusively for this job - запретить ставить другие задания на вычислительные устройства, выделенные создаваемой задаче.
- После этого следует указать максимальные и минимальные требования задания к вычислительным ресурсам. Для этого следует указать тип ресурса (ядро, сокет или узел) и выбрать желаемые минимальное и максимальное значение. Выполнение задания не начнется, пока свободно меньше минимального числа соответствующих ресурсов. В тех случаях, когда все задания, входящие в добавляемое задание, известны заранее (флаг " Run job until cancelled or run time expires " снят), рекомендуется дать планировщику автоматически определить минимальное и максимальное значения требуемых ресурсов на основании входящих в задание задач (флаг " Auto calculate "). После окончания редактирования страницы перейдите на вкладку " Task List ".
- На вкладке " Task List " необходимо добавить задачи в задание. Список задач представлен в верхней части экрана (сначала он пуст). При выделении задачи в нижней части экрана появляются свойства задачи, доступные для редактирования:
- Exclusive - опция определяет, может ли данная задача разделять вычислительные ресурсы с другими задачами.
- Rerunnable - опция определяет, должен ли планировщик попытаться перезапустить задачу в случае ее падения.
- Run Time - жесткий лимит времени исполнения задачи.
- EnvironmentVariables - опция позволяет задать переменные окружения, которые будут доступны запускаемой задаче (помимо стандартных переменных окружения).
- Required Nodes - данная опция позволяет отметить узлы, на которых должна быть запущена задача. Все из этих узлов должны быть выделены задаче для начала ее выполнения.
- Number of Cores (Sockets, Nodes) - минимальное и максимальное число вычислительных ресурсов (ядро, сокет или узел), необходимых для задачи.
- Task Name - имя задачи.
- Command Line - команда, которая будет выполнена при старте задачи.
- Working Directory - рабочая директория задачи.
- Standard Input - путь до файла, который будет использоваться как стандартный порт ввода для задачи.
- Standard Output - путь до файла, который будет использоваться как стандартный порт вывода для задачи.
- Standard Error - путь до файла, который будет использоваться как стандартный порт вывода для ошибок.
- Для добавления новой задачи к заданию следует нажать кнопку Add и введите соответствующие настройки в открывшемся диалоге и нажмите кнопку Save.
- Перейдите на вкладку " Resource Selection " для выбора узлов, на которых будет запущено задание. В большинстве случаев оптимальным вариантом будет оставить без изменения настройки на данной вкладке. Однако, если Вы хотите ограничить список узлов, на которых может быть запущено задание, следует поставить флаг " Run this job only on nodes in the following list " и выбрать узлы из списка. Количество узлов должно быть достаточным для удовлетворения требований каждой из задач, входящих в задание. Кроме того, Вы можете выбрать группы узлов, на которых может быть запущено задание. Для этого следует выбрать флаг " Run this job only on nodes in the following node groups " и переместить группы в правый список с помощью кнопки Add. Параметры группы " Hardware preferences " позволяют указать минимальные требования, которым должны удовлетворять узлы задания:
- Minimum memory (MB) - минимальный объем памяти на узлах, которые могут быть использованы для запуска задания.
- Minimum cores - минимальное число ядер на узлах.
-
Prefer nodes with - выбор критерия, в соответствии с которым планировщик будет выбирать узлы для задания (при наличии нескольких вариантов для выбора):
- More memory/ Less memory - предпочтительны узлы с большим/меньшим объемом оперативной памяти.
- More cores/ Less cores - предпочтительны узлы с большим/меньшим числом ядер.
- Нажмите кнопку " Submit " для добавления задания в очередь.
- Введите имя и пароль пользователя, имеющего право запуска задач на кластере, и нажмите " OK ".
- Задание появится в очереди. По окончании выполнения его состояние изменится на " Finished ".
- В файле, указанном в настройках задачи для перенаправления стандартного потока вывода, содержится результат работы программы.