Суперкомпьютерный вычислительный центр (СКЦ) Института математики и механики УрО РАН (г. Екатеринбург) оснащен суперкомпьютером «УРАН» – самым мощным в Свердловской области [1–3].
На базе СКЦ ведется работа по созданию облачного сервиса «Параллельный MATLAB». Кроме того, институт участвует в совместном проекте Сибирского и Уральского отделений РАН по построению облачной платформы на основе продуктов Microsoft [4].
Одним из ключевых инструментов облачной платформы на основе продуктов Microsoft является портал на основе MS SharePoint 2010 [5]. В рамках работ, направленных на формирование облачной платформы УрО РАН, SharePoint рассматривается как средство консолидации интерфейсов информационно-вычислительных ресурсов УрО РАН. Благодаря наличию расширений (решений) от «I Love SharePoint» [6, 7], таких как Power веб-часть и Advanced Workflow Actions for SharePoint Designer 2010, средства SharePoint 2010 могут быть расширены скриптами PowerShell, реализующими интерфейсы к различным приложениям.
Решения, основанные на облачных сервисах, не требуют от пользователей самостоятельной установки и настройки ПО. Для работы с ними на компьютере пользователя должен быть установлен только веб-браузер.
Суперкомпьютер «УРАН» работает под управлением ОС семейства Linux Scientific Linux 6.4 и RedHat 6.4. В то же время на большинстве ра- бочих мест пользователей установлены ОС семейства MS Windows. Таким образом, построение проблемно-ориентированных веб-интерфейсов приложений суперкомпьютера «УРАН» является актуальной задачей при реализации облачной платформы УрО РАН.
В качестве основных средств доступа к суперкомпьютеру из среды MS Windows предлагаются следующие программные продукты [8]:
– программа putty для работы с командной строкой по протоколу SSH;
– Nomachine NX-клиент для работы с сервером через графический интерфейс;
– программа MobaXterm для удаленного запуска программ с использованием протокола X-Window;
– WinSCP для обмена файлами между компьютером пользователя и кластером.
Для автоматизации взаимодействия ПО суперкомпьютера и ОС MS Windows предлагается использовать средства Windows PowerShell [9] с добавлением свободно распространяемого набора командлетов SSH from PowerShell using the SSH.NET library [10, 11]. Посредством этих командлетов в скрипте может быть установлено SSH-соединение с головной машиной кластера и выполнена любая допустимая (разрешенная данному пользователю) последовательность команд операционной среды кластера. Результаты выполнения команд и сообщения об ошибках возвращаются в виде свойств объекта PowerShell. При использовании данного подхода требуется установка дополнительного ПО на стороне пользователя.
Рассмотрим построение такого проблемно-ориентированного интерфейса на примере моделирования оболочки пакета MATLAB. Решение на основе моделирования пользовательской среды MATLAB
Для построения веб-интерфейса к средствам MATLAB суперкомпьютера, похожего на графический интерфейс пользовательской среды MATLAB, в структуре портала SharePoint создается страница веб-частей. На ней размещается Power веб-часть из набора «I Love SharePoint», которая служит контейнером для PowerShell-скрипта, выполняющего основные операции по обслуживанию интерфейса.
Используя объектную модель SharePoint, PowerShell-скрипт формирует на странице элементы формы, имитирующие основное окно ввода команд графической оболочки MATLAB. Форма, как и окно, состоит из поля ввода и кнопки «Ввод», полей для вывода служебных сообщений и для вывода результатов выполнения команд MATLAB, поля для накопления команд, заключаемых в операторные скобки (если накопление команд не требуется, это поле не отображается на странице веб-частей).
Основные действия в скрипте выполняются PowerShell-функцией – обработчиком события – нажатием на кнопку «Ввод». В этой функции можно выделить две стадии. Первая – простейший препроцессор, разбирающий командную строку, введенную пользователем. На этой стадии строка очищается от стоящих в начале и завершающих ее пробелов и нормализуется (то есть несколько следующих друг за другом пробелов заменяются одним). Проверяются символы завершения строки и разделители команд MATLAB. Если строка заканчивается многоточием (тремя точками), то в соответствии с синтаксисом команд MATLAB это означает, что ввод команды не закончен и ожидается продолжение команды. Введенная часть команды помещается в накопитель, и устанавливается флаг, указывающий на то, что формирование команды еще не завершено и передавать ее на суперкомпьютер для выполнения в среде MATLAB не нужно. Следующая введенная строка добавляется к сохраненной в накопителе части, и т.д. до тех пор, пока очередная введенная строка не будет содержать указатель на продолжение ввода команды. Когда получена последняя часть команды, флаг продолжения ввода команды снимается и полностью сформированная команда (или последовательность команд) отправляется на дальнейшую обработку и для передачи на выполнение на суперкомпьютер.
В составе MATLAB также имеются команды, представляющие собой операторные скобки (операторы сравнения и команды для организации циклов). Операторные скобки и команды, заключенные между ними, также не передаются на выполнение сразу, а собираются в единую последовательность в накопителе аналогично предыдущему случаю. Такие конструкции могут быть вложенными, поэтому в скрипте организуется счетчик, значение которого увеличивается при обнаружении открывающей операторной скобки и уменьшается при обнаружении закрывающей скобки. Таким образом, признаком завершения накопления строк конструкции с операторными скобками будет нулевое значение счетчика. Если введенная строка не указывает на необходимость накопления или накопление строк команд завершено, проверяется, заканчивается ли сформированная строка стандартным разделителем команд MATLAB (запятой или точкой с запятой), и, если нет, она дополняется в конце запятой.
Для моделирования сеанса работы с MATLAB также требуется к командам пользователя добавить команды MATLAB, восстанавливающие состояние сеанса, сохраняющие состояние сеанса и заканчивающие его работу. Когда строка из команд, предназначенная для выполнения на суперкомпьютере, окончательно сформирована, скрипт переходит ко второй стадии. На этой стадии осуществляется передача сформированной строки на суперкомпьютер для выполнения. Скриптом устанавливается SSH-соединение с головной машиной кластера, и выполняется команда запуска MATLAB в консольном режиме с переданной ей строкой команд пользователя в качестве параметра. Результат выполнения команд и сообщения об ошибках возвращаются в виде свойств объекта PowerShell (рис. 1). После этого соединение может быть разорвано, а результаты подвергнуты дополнительной обработке и помещены в соответствующие поля формы.
Следует отметить, что предлагаемый подход в части веб-интерфейса обладает рядом недостатков. Реактивность веб-интерфейса может быть недостаточно высокой. Это обусловлено тем, что при выполнении каждой законченной последовательности операций MATLAB PowerShell-скрипт выполняется заново. Каждый раз заново устанавливается SSH-соединение, восстанавливается среда MATLAB, выполняется ряд других операций, время на которые зависит от сложности запросов пользователя и их истории. В настоящее время остаются нереализованными две важные возможности, имеющиеся в стандартной графической среде MATLAB: прекращение выполнения текущей операции и интерактивные средства работы с графикой.
Интерфейс к MATLAB, построенный на основе данного подхода, может быть использован только для небольших вычислений, быстрого прототипирования или для изучения средств MATLAB. Для «тяжелых» вычислений следует использовать пакетную обработку m-файлов.
Решение на основе скриптов запуска пакетных заданий (m-файлов) MATLAB
Для запуска m-файлов интерфейс на основе SharePoint-портала может быть организован при помощи библиотеки документов и рабочих процессов SharePoint, связанных с этой библиотекой.
В области портала, предназначенной для обслуживания MATLAB, создается библиотека документов, предназначенная для загрузки m-файлов. В панели управления фермой SharePoint через оснастку управления типами файлов устанавливается разрешение на загрузку в библиотеку m-файлов.
Для запуска пользователями из командной строки m-файлов в пакетном режиме на суперкомпьютере «УРАН» подготовлены скрипты [12]:
– mlprun – для частично параллельных программ (с parfor или spmd);
– mlrun – для параллельных программ;
– mlgrun – для программ с использованием GPU.
К атрибутам библиотеки документов SharePoint, предназначенной для размещения m-файлов, добавляется атрибут «Тип запуска», значение которого указывает, какой именно из скриптов нужно использовать для запуска данного m-файла. Также в эту библиотеку добавляются атрибуты для размещения значений параметров, которые будут передаваться скрипту при запуске, и атрибуты для отслеживания состояния задания в соответствии с результатами, выдаваемыми командой SLURM [13] sacct.
Для запуска выполнения m-файлов для библиотеки документов создается рабочий процесс, запускаемый вручную. Данный процесс, используя свободно распространяемое решение Advanced Workflow Actions for SharePoint Designer, вызы- вает PowerShell-скрипт, аналогичный используемому в Power веб-части. Этот скрипт на основе значений атрибутов библиотеки документов формирует командную строку запуска m-файла. Командная строка через установленное SSH-соединение передается на головную машину кластера и там выполняется. Скрипт периодически запра- шивает состояние (статус) задания (в очереди, выполняется, выполнено), и результаты запроса записываются в соответствующие атрибуты библиотеки для данного m-файла, что позволяет пользователю отслеживать это состояние. Также можно создать дополнительные атрибуты и заносить в них требуемую информацию. Когда выполнение m-файла завершено, скрипт, а также рабочий процесс завершают работу (рис. 2).
Файлы с обрабатываемыми данными и m-файлы должны быть доступными как со стороны SharePoint, так и со стороны головной машины кластера. Для размещения файлов данных пользователей может быть создана отдельная библиотека документов.
В СКЦ Института математики и механики УрО РАН используется система хранения EMC2 Celerra NS-480, доступная серверу SharePoint и головной машине кластера «УРАН». Библиотека документов SharePoint может быть смонтирована на компьютере под управлением MS Windows как обычный сетевой каталог. Для синхронизации содержимого библиотек SharePoint с системой хранения можно использовать средства MS Windows Sync Framework и утилиту SyncToy [14, 15]. Синхронизация может запускаться PowerShell-скриптами, вызываемыми из рабочих процессов, и скриптами, находящимися в Power веб-частях. Дополнительно синхронизацию можно запускать по времени, например, в ночные часы и нерабочие дни для уменьшения количества передаваемых данных при синхронизациях. Такая синхронизация нужна также в случае изменения состояния файлов в файловом хранилище заданиями, запускаемыми другими способами.
Кроме того, файлы могут быть доступными для обработки (по чтению) по их URL-адресам. Например, в MATLAB может быть использована конструкция вида f=urlread('http://SPsite/Library…'), утилита wget и т.п.
Безопасность
Основные задачи разграничения доступа в данном подходе решаются стандартными средствами Active Directory и SharePoint.
PowerShell-скрипт, находящийся в Power веб-части, подписан и может редактироваться только пользователем с правами администратора серверной фермы SharePoint.
PowerShell-скрипт, запускаемый рабочим процессом, подписан и размещается в каталоге, доступ к которому ограничен учетными записями, под которыми выполняется ПО SharePoint.
В скрипте при установке соединения по протоколу SSH сначала происходит обращение к головной машине кластера от имени специальной учетной записи keyfetcher. Пароль этой учетной записи хранится в зашифрованном виде. Далее на стороне головной машины кластера выполняется специально подготовленный скрипт get_priv_key.sh , где username – пользовательский идентификатор, получаемый из атрибутов сессии SharePoint. Скрипт возвращает сгенерированный для пользователя, создавшего сессию, ключ SSH, после чего SSH-сеанс пользователя keyfetcher завершается. Далее создается сеанс от имени текущего пользователя SharePoint, в котором выполняются команды MATLAB.
В заключение отметим, что в работе предложена архитектура проблемно-ориентированного интерфейса приложений на основе MS SharePoint. Описанный подход применим для построения множества различных предметно-ориентированных веб-интерфейсов на основе порталов и сайтов MS SharePoint.
На его основе организован интерфейс для запуска MPI задач [16].
Разработанный интерфейс опробован на суперкомпьютере «УРАН» в рамках облачного сервиса «Параллельный MATLAB».
Следует отметить, что, несмотря на наличие в SDK для кластеров под управлением ОС MS Windows Server с HPC Pack веб-части SharePoint для управления задачами и благодаря наличию набора PowerShell командлетов для взаимодействия с такими кластерами, использование предложенного подхода для ОС Windows будет весьма эффективным.
Литература
1. TOP500 Supercomputer Sites. June 2013. URL: http:// www.top500.org/lists/2013/06/ (дата обращения: 09.08.2013).
2. The Graph 500 List. June 2013. URL: http://www. graph500.org/results_jun_2013 (дата обращения: 09.08.2013).
3. TOP 50 Суперкомпьютеры. URL: http://top50.supercomputers.ru/?page=rating (дата обращения: 09.08.2013).
4. Проект «Корпоративное облако СО РАН». URL: http://cloud.sbras.ru (дата обращения: 09.08.2013).
5. Ноэл М., Спенс К. Microsoft SharePoint 2010. Полное руководство; [пер. с aнгл.]. М.: Вильямс, 2011. 880 с.
6. Glessner C. iLove SharePoint. URL: http://www.ilovesharepoint.com/ (дата обращения: 09.08.2013).
7. iLove SharePoint. URL: http://ilovesharepoint.codeplex. com/ (дата обращения: 09.08.2013).
8. Параллельные вычисления в УрО РАН. Программы удаленного доступа. URL: http://parallel.uran.ru/node/57 (дата обращения: 09.08.2013).
9. Попов А.В. Введение в Windows PowerShell. СПб: БХВ-Петербург, 2009. 464 с. (Системный администратор).
10. SSH from PowerShell using the SSH.NET library. URL: http://www.powershelladmin.com/wiki/SSH_from_PowerShell_using_the_SSH.NET_library (дата обращения: 09.08.2013).
11. Installation of SSH Net Library. URL: http://sshnet. codeplex.com/discussions/435043 (дата обращения: 09.08.2013).
12. Параллельные вычисления в УрО РАН. Использование системы Matlab для параллельных вычислений. URL: http://parallel.uran.ru/node/176 (дата обращения: 09.08.2013).
13. Yoo A., Jette M., Grondona M. SLURM: Simple Linux Utility for Resource Management. Lecture Notes in Computer Science. Job Scheduling Strategies for Parallel Processing. Springer-Verlag, 2003, vol. 2862, pp. 44–60.
14. Microsoft Download Center. SyncToy 2.1. URL: http://www.microsoft.com/en-us/download/details.aspx?id=15155 (дата обращения: 09.08.2013).
15. Мунро Дж. Обзор служебных программ. SyncToy. Microsoft TechNet Magazine. 2007; URL: http://technet.microsoft.com/ru-ru/magazine/2007.03.utilityspotlight.aspx (дата обращения: 09.08.2013).
16. Ермаков Д.Г., Берсенев А.Ю. Пользовательский интерфейс к суперкомпьютеру «УРАН» на основе MS SharePoint // Научный сервис в сети Интернет: все грани параллелизма: тр. Междунар. суперкомп-ной конф. (23–28 сент. 2013, Новороссийск). М.: Изд-во МГУ, 2013. С. 301–305.
References
1. TOP500 Supercomputer Sites. 2013, available at: http://www.top500.org/lists/2013/06/ (accessed August 9, 2013).
2. The Graph 500 List. June, 2013, available at: http://www. graph500.org/results_jun_2013 (accessed August 9, 2013).
3. TOP 50 Superkompyutery [TOP 50 Supercomputers]. Available at: http://top50.supercomputers.ru/?page=rating (accessed August 9, 2013).
4. Proekt “Korporativnoe oblako SO RAN” [The project “Corporate cloud of SB RAS”]. Available at: http://cloud.sbras.ru (accessed August 9, 2013).
5. Noel M., Spence C. Microsoft SharePoint 2010 Unleashed 2005, 816 p. (Russ. ed.: Microsoft SharePoint 2010. Polnoe rukovodstvo. Moscow, Vilyams Publ., 2011, 880 p.).
6. Glessner C. iLove SharePoint. Available at: http://www. ilovesharepoint.com/ (accessed August 9, 2013).
7. iLove SharePoint. Available at: http://ilovesharepoint.codeplex.com/ (accessed August 9, 2013).
8. Parallelnye vychisleniya v UrO RAN. Programmy udalennogo dostupa [Parallel computation in the Ural branch of Russian academy of sciences. Remote access programs]. Available at: http://parallel.uran.ru/node/57 (accessed August 9, 2013).
9. Popov A.V. Vvedenie v Windows PowerShell [Introduction to Windows PowerShell]. St. Petersburg, BHV-Peterburg Publ., 2009, 464 p.
10. SSH from PowerShell using the SSH.NET library. Available at: http://www.powershelladmin.com/wiki/SSH_from_PowerShell_using_the_SSH.NET_library (accessed August 9, 2013).
11. Installation of SSH Net Library. Available at: http:// sshnet.codeplex.com/discussions/435043 (accessed August 9, 2013).
12. Parallelnye vychisleniya v UrO RAN. Ispolzovanie sistemy Matlab dlya parallelnykh vychisleniy [Parallel computation in the Ural branch of Russian academy of sciences. Using Matlab for parallel computation]. Available at: http://parallel.uran.ru/node/176 (accessed August 9, 2013).
13. Yoo A., Jette M., Grondona M. SLURM: Simple Linux Utility for Resource Management. Lecture Notes in Computer Science. Job Scheduling Strategies for Parallel Processing. Springer-Verlag Publ., 2003, vol. 2862, pp. 44–60.
14. Microsoft Download Center. SyncToy 2.1. Available at: http://www.microsoft.com/en-us/download/details.aspx?id=15155 (accessed August 9, 2013).
15. Munro J. A review of utility programs. SyncToy. Microsoft TechNet Magazine. 2007, March, available at: http://technet.microsoft.com/ru-ru/magazine/2007.03.utilityspotlight.aspx (accessed August 9, 2013).
16. Ermakov D.G., Bersenev A.Yu. User interface for URAN supercomputer based on MS SharePoint. Nauchny servis v seti Internet: vse grani parallelizma: tr. Mezhdunar. superkompyuternoy konf. [Proc. of int. supercomputer conf. “Scientific service in the Internet: all the sides of parallelism”]. Moscow, Moscow State Univ. Publ., 2013, pp. 301–305.