2. Преобразование сертификата в формат p12
4. Структура меню QCG-icon и основные приказы
4.1 Configuration - Регистрация в QCG-icon
4.2 Configuration - Выбор домена
4.3 Submit task... - Запуск задания на выполнение
5. Информационный сервис задания
5.1 Просмотр выделенных ресурсов задания и прогноз времени старта
5.2 Структура меню информационного сервиса
5.2.1 Copy task ID
5.2.2 Check task state
5.2.3 Browse directory with results
5.2.4 Output
5.2.5 Copy remote working dir path
5.2.6 Resubmit from checkpoint
5.2.7 Refetch results
5.2.8 Resubmit
5.2.9 Resubmit...
5.2.10 Remove from list
5.2.11 Cancel task
6. Заключение
QCG-icon — представляет собой небольшое java-приложение для Windows, Mac OSX и Linux платформ для доступа к грид-ресурсам EGI по технологии QCG-Computing, разработанной в проекте польского грид (PL-Grid) http://www.qoscosgrid.org/trac/qcg-computing/ .
Ниже приводится краткая инструкция для работы c утилитой QCG-icon в среде Linux, включая ее установку. Инструкция не претендует на полноту, но тем не менее ее достаточно, чтобы пользователь смог работать с последней версией пакета Gaussian-09 польского грида PL-Grid. С полной инструкцией для версии Windows (на польском языке) можно ознакомиться по ссылке
http://www.qoscosgrid.org/trac/qcg-icon/wiki/UserManualPL .
2. Преобразование сертификата в формат p12
QCG-icon для авторизации пользователя использует сертификат в формате pkcs12 (сокращенно p12), который широко используется при импорте сертификата в броузер при работе c WWW по защищенному протоколу https.
Предполагаем, что пара ключей сертификата расположена по умолчанию в стандартном месте, директории .globus:
[belous@clusterui ~]$ ls -l .globus -rw-rw-r--. 1 belous belous 5146 Mar 5 2014 usercert.pem -r--------. 1 belous belous 1751 Mar 5 2014 userkey.pem |
Процедура преобразования пары ключей в один файл формата p12 проста, и выполняется нижеследующей командой openssl, где на первый запрос требуется ввести пароль приватного ключа пользователя, а потом нужно придумать для создаваемого ключа (назовем его cert.p12) пароль, и ввести этот придуманный пароль дважды:
[belous@clusterui .globus]$ openssl pkcs12 -export -in usercert.pem -inkey userkey.pem -certfile usercert.pem -name "description" -out cert.p12 Enter pass phrase for userkey.pem: Enter Export Password: Verifying - Enter Export Password: [belous@clusterui .globus]$ |
В результате, сконвертированный ключ появится в директории ~/.globus/cert.p12
belous@dyn08:[~]: ssh -X clusterui.bitp.kiev.ua belous@clusterui.bitp.kiev.ua's password: Last login: Fri Nov 7 17:10:54 2014 from dyn08.ilt.kharkov.ua ******************************************************* Welcome to BITP cluster frontend. ******************************************************* …........... [belous@clusterui ~]$ |
[belous@clusterui ~]$ wget http://www.qoscosgrid.org/trac/qcg-icon/downloads/96 --2014-11-07 19:39:05-- http://www.qoscosgrid.org/trac/qcg-icon/downloads/96 Resolving www.qoscosgrid.org... 150.254.161.75 Connecting to www.qoscosgrid.org|150.254.161.75|:80... connected. HTTP request sent, awaiting response... 200 Ok Length: 7649187 (7.3M) [application/x-sh] Saving to: “96” 100% [===============================================>] 7,649,187 5.71M/s in 1.3s 2014-11-07 19:39:06 (5.71 MB/s) - “96” saved [7649187/7649187] [belous@clusterui ~]$ |
[belous@clusterui ~]$ sh QCG-Icon-1.5.3-LinuxInstaller.sh Welcome to QCG-Icon 'installer' please specify target dir (or press return for default [qcg-icon]): Installing QCG-Icon into qcg-icon Installation finished. Run qcg-icon? [Y/n]: [belous@clusterui ~]$ |
Как видим, процедура проста и занимает мало времени, однако предполагается, что пользователь имеет минимальные навыки работы в режиме командной строке системы Linux. На самом деле это умение требуется только в вышеописанном процессе установки QCG-icon, что можно выполнить с помощью более опытных коллег. Дальнейшая инструкция не требует этого умения и выполняется на уровне графического интерфейса.
По умолчанию скрипт вызова записывается в ~/qcg-icon/qcg-icon, и для удобства дальнейшего вызова утилиты приказом qcg рекомендуется добавить в профиль .bashrc строчку alias qcg='~/qcg-icon/qcg-icon'. Результатом согласия на запуск сразу после установки является выполнение этого скрипта вызова. В результате появляется основное меню QCG-icon.
Довольно длинная (по умолчанию) вторая строка является заголовком таблицы будущих задач. Какие именно поля желательны (и их количество), можно задать пользуясь пунктом View, оставив птички напротив нужных полей. Границы полей можно двигать мышью, а выбор того или иного поля приводит к сортировке содержимого таблицы по этому полю. На практике достаточно следующих основных полей:
Name — имя задания, Application — имя прикладного пакета, Status — состояние обрабатываемого задания, Submission time — время постановки задания в очередь, Start time — время старта задания, End time — время завершения задания, ID — идентификатор задания (присваивается автоматически). |
Тогда меню примет такой вид.
Пункт Help дает краткую стартовую инструкцию на английском языке о QCG-icon (подпункт Handbook) и информацию о версии утилиты (подпункт About).
Пункт File несет основную смысловую нагрузку и имеет следующие подпункты:
Submit task...
Regenerate proxy
Destroy proxy
Refresh available applications
Task status polling
Check all tasks state
Export tasks list
Import tasks list
Configuration
Exit
Наиболее употребительны только три следующих пункта меню, и их вполне достаточно для первоначального освоения QCG-icon.
Submit task... - постановка задания в очередь,
Configuration — начальное конфигурирование,
Exit — завершение работы графического интерфейса.
Рассмотрим сначала пункт Configuration.
4.1 Configuration - Регистрация в системе QCG-icon
Вначале нужно пройти процедуру регистрации сертификата, выбрав пункты меню «File → Configuration». В результате появляется меню конфигурации:
Выбираем пункт Load new certificate. В появившемся запросе на ввод пароля
воспользуемся пунктом Browse для указания места расположения сертификата в формате P12. Как указывалось вначале, в разделе «Преобразование сертификата в формат p12», это место есть ~.globus/cert.p12.
После ввода пароля (см. там же замечание относительно пароля) должно появится сообщение об успешности авторизации.
4.2 Configuration - Выбор домена
После успешной регистрации требуется выбрать так называемый домен, в котором предполагается работать. В меню конфигурации выбираем Change domen, и из появляющегося списка доменов:
PLGrid
Metalurgia
UVT
AirPROM
Testing
Gaussian
VT-gpgpu
Energetika
Vizualiacja
выбираем Gaussian.
Список доменов будет пополнен доменом украинского сегмента грид (после завершения отладки сервиса QCG-Computing в украинском сегменте грид и перевода его в статус production) под именем UAGrid. Для работы в этом домене потребуется регистрация в виртуальной организации BITP Института теоретической физики им. Боголюбова НАН Украины.
Собственно говоря, домен определяет доступные ресурсы и их принадлежность, специфику предметной области и соответственно состав прикладного математического обеспечения. Название домена не обязательно соответствует одному прикладному пакету. Так, например, в состав выбранного нами домена Gaussian входят следующие компоненты:
CRISTAL09,
NAMD,
BASH,
LAMMPS,
Dalton,
TURBOMOLE,
NWChem,
Gaussian-09,
Molpro,
GAMESS
При этом под Gaussian-09 выступает последняя версия одноименного коммерческого (весьма не дешевого) пакета http://www.gaussian.com/.
Описанные выше процедуры загрузки сертификата и выбора домена обычно делаются только один раз.
В дальнейшем, при каждом очередном сеансе связи с утилитой, вызываемой приказом qcg, после появления основного меню с некоторым асинхронным запаздыванием запрашивается пароль.
После ввода пароля открывается актуальный список ваших задач и их состояние. Вначале этот список (как мы уже видели), пустой.
При неудачной авторизации, несмотря на появление главного меню, список заданий не будет актуальным, а дальнейшие действия будут блокироваться.
4.3 Submit task - Запуск задания на выполнение
Рассмотрим тестовый пример (традиционный для пакета gaussian тест woda) c заданием размещеным в файле ~/examples/woda.com:
%chk=water.chk # b3lyp/cc-pVDZ opt(tight) scf(tight) freq(HPModes,NoRaman) water 0,1 O 0. 0. 0. H 0. 1. 1. H 0. -1. 1.
--link1-- %chk=water.chk # b3lyp/cc-pVDZ scf(tight) gues=read geom=check TD(Nstates=10) water TDDFT 0,1 |
Через основное меню выбираем File → Submit task...
В появившемся меню навигации выбираем наш файл woda.com
и отвечаем Otworz ( Open по польски :-) небольшая недоработка разработчиков по локализации). В появившемся меню
соглашаемся с большинством умалчиваемых настроек, и задаем из выпадающих меню минимум необходимой информации
«Application = Gaussian09»,
«Wall time — 5 min»,
«Application type = Parallel»,
«Nodes = 1»,
«Cores per node = 8»
Остальные параметры берутся по умолчанию, но их тоже можно тоже изменить в случае необходимости.
По Submit задание ставится в очередь, и в таблице основного меню появляется строка с информацией о поставленном на обработку задании с указанием времени постановки в очередь «Submission time».
Задания, запрашивающие меньшие ресурсы, стартуют быстрее, и время старта появляется в колонке «Start time». Например, ориентировочное время старта для короткой задачи 10 мин и одного ядра, составляет порядка 3 мин.
5.Информационный сервис задания
После появления в таблице основного меню информационных строк заданий начинает работать специальный информационный сервис, предоставляющий следующие возможности.
5.1 Просмотр выделенных ресурсов задания и прогноз времени старта
Подводим курсор мыши в любое место информационной строки интересующей задачи. В результате высвечивается сжатая информация о ресурсах и параметрах задачи.
Если задача еще не стартовала, то в самом низу этой информации красным цветом высвечивается прогнозируемое время старта. Однако эта информация появляется не сразу, а минут через 5 после постановки задачи в очередь.
5.2 Структура меню информационного сервиса
Подводим курсор мыши в любое место информационной строки интересующей задачи и нажимаем правую кнопку. Появляется выпадающее меню, но количество пунктов и их содержание зависит от состояния задачи. Полный список содержит следующие пункты.
Copy task ID
Check task state
Browse directory with results
Output
Copy remote working dir path
Resubmit from checkpoint
Refetch results
Resubmit
Resubmit...
Remove from list
Cancel task
Среди этих пунктов пожалуй наиболее используемым является Output для просмотра выходного файла. Можно сказать, что все эти пункты меню предназначены для удобства выполнения следующих приказов при работе в режиме диалога.
Копирование ID в буфер clipboard для последующей вставки в каие-либо документы, например, при выяснении нештатных ситуаций с вашим заданием этот код однозначно его идентифицирует при общении с администрацией кластера. Этот код для рассматриваемого теста woda.com = f02a6a54-4f60-4033-62d4-22d53c7260d5 помещен в этот текст указанным сервисом, и очевидно, его неудобно было бы переписывать вручную.
Проверка и обновление статуса задания (поле Status в информационной строке задания характеризует состояние его выполнение и может принимать типичные зачения Queued, Executed, Finished ).
5.2.3Browse directory with results
При выполнении заданий производится автоматическая репликация (копирование) рабочих файлов на ваш компьютер в специальную автоматически создаваемую директорию, и этот приказ выдает вам эту директорию в графическом виде. В нашем примере
Директория woda_com_2014_11_17___19_05_52 создана по месту расположения исходного файла ~/examples/woda.com.
Просмотр выходного файла output.log, возможен только после старта задания. Каждый просмотр по Output при идущей задаче автоматически обновляет этот файл и на вашей машине. По завершении задания идет завершающая пересылка результата и рабочих файлов на вашу машину. В данном примере в директории
~/examples/woda_com_2014_11_17___19_05_52/
копируются с кластера следующие файлы:
output.log, qcg.debug, water.chk, woda.com, woda.log (идентичен output.log).
Приводим фрагменты начального и конечного кадров просмотра output.log по завершении нашего тестового задания.
В QCG-icon имеется интересная и полезная возможность выделять интересующие контексты при просмотре больших файлов (что типично, например, для системы Gaussian) с помощью фильтра в режиме on-line. Для этой цели достаточно в нижней части формы просмотра файла набрать в поле «Enter filter» интересующий образец, и тотчас же на месте просматриваемого файла появится сжатая информация, содержащая только строки с заданным образцом. В примере ниже (фрагмент реальной задачи) после набора в указанном поле образца «Leave Link» появляется следующее:
Для пользователя пакета Gaussian эта информация полезна именно компактным представлением, давая быстрый ответ на состояние счета (число основных шагов и время их выполнения).
Или, скажем, подобным образом можно извлекать из огромного файла только изменения энергии при итерационном процессе. Для этого достаточно в поле «Enter filter» ввести соответствующее наименование энергии.
5.2.5 Copy remote working dir path
Подобно приказу Copy task ID, чисто вспомогательный - копирует служебную информацию - имя удаленной рабочей директории задания на кластере для возможных разбирательств ( в нашем примере это qcg-woda_com-1416243920496).
5.2.6 Resubmit from checkpoint
Приказ применяется для продолжения счета задач, не укладывающихся в отведенное время. Как известно, в пакете Gaussian это поддерживается на уровне языка с помощью сохранения результатов расчетов в файле контрольной точки (файл с расширением chk). Наш тестовый пример короткий, тем не менее имеет такой файл — water.chk.
Вызывает обновление рабочих файлов задания на вашей машине (репликацию) синхронно с состянием таковых на кластере.
Повторить расчет не меняя параметров задания.
Повторить расчет с предварительным изменением каких-либо параметров предыдущего расчета. Чаще всего меняется Wall time при отладочном запуске задания, скажем с времени 1 мин, и после его снятия по времени (считается что все нормально), увеличивается время до нужного. Этот прием обеспечивает быстрый старт при отладке.
Удалить задание из списка (таблицы заданий). При этом будет запрошено подтверждение этого действия. Удалить выполняющееся задание нельзя (его нужно предварительно остановить приказом Cancel task). Это действие уничтожает рабочую директорию на кластере, но оставляет на вашей машине.
Прекратить выполнение задания. Задание перестает выполняться, но при этом сохраняется содержимое рабочих директорий на кластере и вашей машине.
Каждый пользователь, конечно, должен быть профессионально подготовлен к работе в своей предметной области, и в совершенстве знать язык своего прикладного пакета. В данной инструкции речь шла о пакете Gaussian. Роль QCG-icon в этом смысле вспомогательная, но исключительно важная с точки зрения обеспечения эффективного доступа к распределенным HPC ресурсам, и избавляющая пользователя от изучения несвойственных его предметной области технических деталей аппаратного и программного окружения.