Microsoft Windows Azure

Развертывание HPC-кластера в Windows Azure с использованием AppConfigure

Разбить на страницы
Показывать лекцию целиком

Загрузите проект AppConfigure по ссылке http://code.msdn.microsoft.com/windowsazure/Windows-Azure-HPC-7d75eb26

Откройте Visual Studio в режиме администратора (это важно, так как разворачивать приложения в Windows Azure можно только в этом режиме)

Откройте проект AzureSampleService.

Нажмите правой кнопкой мыши на проекте развертывания (Deployment Application) и настройте AppConfigure как startup-проект, нажав на Set as Startup Project.

На панели Standard отметьте следующие настройки:

  • Solution Configurations – Debug
  • Solution Platforms – Mixed Platforms
  • Убедитесь, что проекты SOAHelloWorldAzure и SOAHelloWorldAzureClient включены как ссылки в проект HeadNode, если же их там нет, сделайте следующие действия:

  • Нажмите правой кнопкой мыши на папке References проекта HeadNode.
  • Нажмите Add Reference.
  • Добавьте недостающие проекты.
  • Нажмите F5 для запуска проекта. Должно открыться окно конфигурации проекта Configure and Publish a Sample Windows Azure Application.

    Введите необходимые данные.

    Поле Описание
    Subscription IDИдентификатор подписки Windows Azure. Можно найти на портале управления Windows Azure.
    Management certificateСертификат управления, установленный на локальном компьютере с приватным ключом и загруженный в подписку Windows Azure. Можно выбрать уже созданный сертификат либо, нажав Create, создать новый.
    Service nameУникальное DNS-имя облачного сервиса, который будет использоваться для развертывания сервиса. Он не должен совпадать с уже существующими DNS-именами.
    LocationГеографическое расположение сервера SQL Azure, который будет содержать базу данных для Windows Azure HPC Scheduler.
    Administrator account informationЛогин и пароль для аккаунта, который будет использоваться для удаленного подключения к экземплярам ролей, для создания и управления задачами и входа на сервере SQL Azure, на котором будет располагаться база данных развертывания.
    Number of nodesКоличество экземпляров головного узла, вычислительных узлов и администраторской панели веб-фронтенда.

    Если сертификат не был загружен, загрузите его на портал управления Windows Azure в разделе Settings.

    Нажмите Configure. Дождитесь окончания процесса и нажмите Publish, когда эта кнопка станет активной. Это инициирует процесс развертывания сервиса в Windows Azure.

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

    Информация о прогрессе развертывания и возможных ошибках пишется в файл AzureSampleService.log.

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

    Перейдите на сайт, который был развернут как веб-панель. Для этого введите в строку адреса в браузере ссылку с настроенным вами ранее DNS-именем:

    https://<serviceName>.cloudapp.net

    Обратите внимание на используемый протокол HTTPS. Это важно, так как по HTTP получить доступ нельзя.

    На веб-панели вам доступны следующие действия:

  • Установка подключения по Remote Desktop
  • Доступ к Windows Azure HPC Scheduler Web Portal
  • Доступ к документации Windows Azure HPC Scheduler
  • Нажмите на ссылку для подключения по Remote Desktop. Запустите загруженный файл для подключения к головному узлу и введите настроенные ранее логин и пароль для учетной записи администратора.

    Когда подключитесь к виртуальной машине, проверьте, успешно ли развернулись и установились исполняемые файлы Windows Azure HPC Scheduler, проверив наличие соответствующих директорий E:\plugins\<PluginName>\HPCPack\bin.

    Запустите командную строку в режиме администратора и введите следующую команду:

    clusrun /all hostname

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

    Для получения доступа к графическом интерфейсу HPC Job Manager введите в командной строке

    hpcjobmanager

    Для получения доступа к веб-портале Windows Azure HPC Scheduler с возможностью управлять состоянием кластера без прямого доступа на виртуальную машину, зайдите на веб-панель и перейдите по соответствующей ссылке

    https://<serviceName>.cloudapp.net/Portal

    Обратите внимание, что первичное подключение к веб-порталу может занять до нескольких минут.

    Для запуска задачи с помощью веб-портала выполните следующие действия:

  • Перейдите на Submission pages.
  • Нажмите New
  • Введите имя, например, TestPage, и нажмите Next
  • На странице Specify job property visibility and defaults for node preparation and node release tasks нажмите Next
  • На странице Specify application profile нажмите Next
  • На странице Review and create нажмите Finish
  • На портале нажмите New job и введите настроенное ранее имя, например, TestPage
  • В поле Command line введите hostname
  • Нажмите Submit
  • Задача отправлена на выполнение. Прогресс ее выполнения можно увидеть в My Jobs.

    Как только статус задачи примет значение Finished, нажмите на идентификатор задачи и нажмите View Tasks для просмотра результата в поле Output.

    Примечание:

    Если происходят ошибки, которые связаны с работой Windows Azure HPC Scheduler, они записываются на головном узле в журнал событий в Applications and Services Logs\Microsoft\HPC\Scheduler\Operational.

    Теперь запустите тестовую программу, написанную с использованием реализации MS-MPI и называющуюся Bakery.exe. Приложение вычисляет число pi до определенной точности, которая разбивается с использованием Риманна и вычисляется в нескольких процессах. Увеличение количества интервалов увеличивает точность вычислений.

    Для того, чтобы запустить Bakery.exe, выполните следующие действия:

  • Подключитесь по Remote Desktop к вычислительным узлам. Это можно сделать, зайдя на панель управления облачного сервиса, выбрав экземпляр узла и нажав Connect.
  • Убедитесь, что в папке e:\approot в наличии следующие файлы:

    bakery.exe

    bakery.ilk

    bakery.pdb

  • На головном выполните в командной строке следующую команду:
    clusrun /nodegroup:computenode hpcfwutil register bakery.exe e:\approot\bakery.exe
  • Данная команда выполнит настройку брандмауэра и должен выдать отчет следующего вида:
    -------------------------- COMPUTENODE2 returns 0 --------------------------
    Successfully registered application bakery.exe
    -------------------------- COMPUTENODE1 returns 0 --------------------------
    Successfully registered application bakery.exe
    -------------------------- COMPUTENODE3 returns 0 --------------------------
    Successfully registered application bakery.exe
    
    -------------------------- Summary --------------------------
    3 Nodes succeeded
    0 Nodes failed
  • На головном узле в командной строке выполните следующую команду:
    job submit /numnodes:3 mpiexec e:\approot\bakery.exe 100000 1000
  • Выполнение этой команды приведет к запуску Bakery.exe на трех вычислительных узлах с использованием 100.000 интервалов для вычисления числа pi и 1000 итераций.
  • Для получениея прогресса задачи в командной строке выполните следующую команду:
    Job view <jobID>
  • Как только статус задачи перейдет в состояние Finished, вы сможете просмотреть результат выполнения задачи. Для этого в командной строке выполните следующую команду:
    Task view <obID>
  • Команда должна выдать результат следующего вида:
    Congratulations!! You calculated pi 1000 times in 11.051997 seconds.
    Processors Used For This Job
    ----------------------------
    Process 0 on COMPUTENODE1
    Process 1 on COMPUTENODE2
    Process 2 on COMPUTENODE3
    
    PI is approximately 3.1415926535899086, Error is 0.0000000000001155
    
    Start Time                      : 10/14/2011 6:36:15 PM
    End Time                        : 10/14/2011 6:36:30 PM
    Total Kernel Time               : 202
    Total User Time                 : 20889
  • Запустите SOA-приложение из тестового комплекта на кластере в Windows Azure. Приложение HelloWorldAzure – простой SOA-сервис, который принимает на вход строку и возвращает новую строку "hello". HelloWorldAzureClient.exe – SOA-клиент для этого сервиса. Отличительной особенностью SOA-приложения для кластера является использование API Microsoft.Hpc.Scheduler и Microsoft.Hpc.Scheduler.Session для отправки и получения сообщений из сервиса, который расположен на одном или нескольких узлах. Для этого выполните следующие действия:

  • Сначала необходимо развернуть приложение на вычислительные узлы.
  • Подключитесь к головному узлу.
  • Перейдите в директорию e:\approot.
  • Создайте новую директорию HelloWorld.
  • Перенесите следующие файлы из e:\approot в e:\approot\HelloWorld:
  • HelloWorld.config
  • HelloWorldAzure.dll
  • HelloWorldAzure.pdb
  • Выполните в командной строке следующую команду, которая приведет к упаковке SOA-сервиса:
    hpcpack create e:\approot\helloworld.zip e:\approot\helloworld
  • Выполните в командной строке следующую команду, которая приведет к загрузке упакованного приложения в хранилище Windows Azure. Данные для yourStorage и yourKey можно взять с портала управления Windows Azure с аккаунта хранилища, который был сконфигурирован для приложения: h
    pcpack upload e:\approot\helloworld.zip /account:<yourStorage> /key:<yourKey>
  • Выполните в командной строке следующую команду:
    clusrun hpcsync
  • На головном узле выполните в командной строке следующую команду:
    e:\approot\helloworldAzureClient.exe yourName
  • При запросе учетных данных введите ваши логин и пароль.
  • Результат выполнения команды должен выглядеть таким образом:
    Sending requests...
    Committing requests...
    Waiting for responses...
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Complete. Press ENTER to exit...
  • Страницы:

    Загрузите проект AppConfigure по ссылке http://code.msdn.microsoft.com/windowsazure/Windows-Azure-HPC-7d75eb26

    Откройте Visual Studio в режиме администратора (это важно, так как разворачивать приложения в Windows Azure можно только в этом режиме)

    Откройте проект AzureSampleService.

    Нажмите правой кнопкой мыши на проекте развертывания (Deployment Application) и настройте AppConfigure как startup-проект, нажав на Set as Startup Project.

    На панели Standard отметьте следующие настройки:

  • Solution Configurations – Debug
  • Solution Platforms – Mixed Platforms
  • Убедитесь, что проекты SOAHelloWorldAzure и SOAHelloWorldAzureClient включены как ссылки в проект HeadNode, если же их там нет, сделайте следующие действия:

  • Нажмите правой кнопкой мыши на папке References проекта HeadNode.
  • Нажмите Add Reference.
  • Добавьте недостающие проекты.
  • Нажмите F5 для запуска проекта. Должно открыться окно конфигурации проекта Configure and Publish a Sample Windows Azure Application.

    Введите необходимые данные.

    Поле Описание
    Subscription IDИдентификатор подписки Windows Azure. Можно найти на портале управления Windows Azure.
    Management certificateСертификат управления, установленный на локальном компьютере с приватным ключом и загруженный в подписку Windows Azure. Можно выбрать уже созданный сертификат либо, нажав Create, создать новый.
    Service nameУникальное DNS-имя облачного сервиса, который будет использоваться для развертывания сервиса. Он не должен совпадать с уже существующими DNS-именами.
    LocationГеографическое расположение сервера SQL Azure, который будет содержать базу данных для Windows Azure HPC Scheduler.
    Administrator account informationЛогин и пароль для аккаунта, который будет использоваться для удаленного подключения к экземплярам ролей, для создания и управления задачами и входа на сервере SQL Azure, на котором будет располагаться база данных развертывания.
    Number of nodesКоличество экземпляров головного узла, вычислительных узлов и администраторской панели веб-фронтенда.

    Если сертификат не был загружен, загрузите его на портал управления Windows Azure в разделе Settings.

    Нажмите Configure. Дождитесь окончания процесса и нажмите Publish, когда эта кнопка станет активной. Это инициирует процесс развертывания сервиса в Windows Azure.

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

    Информация о прогрессе развертывания и возможных ошибках пишется в файл AzureSampleService.log.

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

    Перейдите на сайт, который был развернут как веб-панель. Для этого введите в строку адреса в браузере ссылку с настроенным вами ранее DNS-именем:

    https://<serviceName>.cloudapp.net

    Обратите внимание на используемый протокол HTTPS. Это важно, так как по HTTP получить доступ нельзя.

    На веб-панели вам доступны следующие действия:

  • Установка подключения по Remote Desktop
  • Доступ к Windows Azure HPC Scheduler Web Portal
  • Доступ к документации Windows Azure HPC Scheduler
  • Нажмите на ссылку для подключения по Remote Desktop. Запустите загруженный файл для подключения к головному узлу и введите настроенные ранее логин и пароль для учетной записи администратора.

    Когда подключитесь к виртуальной машине, проверьте, успешно ли развернулись и установились исполняемые файлы Windows Azure HPC Scheduler, проверив наличие соответствующих директорий E:\plugins\<PluginName>\HPCPack\bin.

    Запустите командную строку в режиме администратора и введите следующую команду:

    clusrun /all hostname

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

    Для получения доступа к графическом интерфейсу HPC Job Manager введите в командной строке

    hpcjobmanager

    Для получения доступа к веб-портале Windows Azure HPC Scheduler с возможностью управлять состоянием кластера без прямого доступа на виртуальную машину, зайдите на веб-панель и перейдите по соответствующей ссылке

    https://<serviceName>.cloudapp.net/Portal

    Обратите внимание, что первичное подключение к веб-порталу может занять до нескольких минут.

    Для запуска задачи с помощью веб-портала выполните следующие действия:

  • Перейдите на Submission pages.
  • Нажмите New
  • Введите имя, например, TestPage, и нажмите Next
  • На странице Specify job property visibility and defaults for node preparation and node release tasks нажмите Next
  • На странице Specify application profile нажмите Next
  • На странице Review and create нажмите Finish
  • На портале нажмите New job и введите настроенное ранее имя, например, TestPage
  • В поле Command line введите hostname
  • Нажмите Submit
  • Задача отправлена на выполнение. Прогресс ее выполнения можно увидеть в My Jobs.

    Как только статус задачи примет значение Finished, нажмите на идентификатор задачи и нажмите View Tasks для просмотра результата в поле Output.

    Примечание:

    Если происходят ошибки, которые связаны с работой Windows Azure HPC Scheduler, они записываются на головном узле в журнал событий в Applications and Services Logs\Microsoft\HPC\Scheduler\Operational.

    Теперь запустите тестовую программу, написанную с использованием реализации MS-MPI и называющуюся Bakery.exe. Приложение вычисляет число pi до определенной точности, которая разбивается с использованием Риманна и вычисляется в нескольких процессах. Увеличение количества интервалов увеличивает точность вычислений.

    Для того, чтобы запустить Bakery.exe, выполните следующие действия:

  • Подключитесь по Remote Desktop к вычислительным узлам. Это можно сделать, зайдя на панель управления облачного сервиса, выбрав экземпляр узла и нажав Connect.
  • Убедитесь, что в папке e:\approot в наличии следующие файлы:

    bakery.exe

    bakery.ilk

    bakery.pdb

  • На головном выполните в командной строке следующую команду:
    clusrun /nodegroup:computenode hpcfwutil register bakery.exe e:\approot\bakery.exe
  • Данная команда выполнит настройку брандмауэра и должен выдать отчет следующего вида:
    -------------------------- COMPUTENODE2 returns 0 --------------------------
    Successfully registered application bakery.exe
    -------------------------- COMPUTENODE1 returns 0 --------------------------
    Successfully registered application bakery.exe
    -------------------------- COMPUTENODE3 returns 0 --------------------------
    Successfully registered application bakery.exe
    
    -------------------------- Summary --------------------------
    3 Nodes succeeded
    0 Nodes failed
  • На головном узле в командной строке выполните следующую команду:
    job submit /numnodes:3 mpiexec e:\approot\bakery.exe 100000 1000
  • Выполнение этой команды приведет к запуску Bakery.exe на трех вычислительных узлах с использованием 100.000 интервалов для вычисления числа pi и 1000 итераций.
  • Для получениея прогресса задачи в командной строке выполните следующую команду:
    Job view <jobID>
  • Как только статус задачи перейдет в состояние Finished, вы сможете просмотреть результат выполнения задачи. Для этого в командной строке выполните следующую команду:
    Task view <obID>
  • Команда должна выдать результат следующего вида:
    Congratulations!! You calculated pi 1000 times in 11.051997 seconds.
    Processors Used For This Job
    ----------------------------
    Process 0 on COMPUTENODE1
    Process 1 on COMPUTENODE2
    Process 2 on COMPUTENODE3
    
    PI is approximately 3.1415926535899086, Error is 0.0000000000001155
    
    Start Time                      : 10/14/2011 6:36:15 PM
    End Time                        : 10/14/2011 6:36:30 PM
    Total Kernel Time               : 202
    Total User Time                 : 20889
  • Запустите SOA-приложение из тестового комплекта на кластере в Windows Azure. Приложение HelloWorldAzure – простой SOA-сервис, который принимает на вход строку и возвращает новую строку "hello". HelloWorldAzureClient.exe – SOA-клиент для этого сервиса. Отличительной особенностью SOA-приложения для кластера является использование API Microsoft.Hpc.Scheduler и Microsoft.Hpc.Scheduler.Session для отправки и получения сообщений из сервиса, который расположен на одном или нескольких узлах. Для этого выполните следующие действия:

  • Сначала необходимо развернуть приложение на вычислительные узлы.
  • Подключитесь к головному узлу.
  • Перейдите в директорию e:\approot.
  • Создайте новую директорию HelloWorld.
  • Перенесите следующие файлы из e:\approot в e:\approot\HelloWorld:
  • HelloWorld.config
  • HelloWorldAzure.dll
  • HelloWorldAzure.pdb
  • Выполните в командной строке следующую команду, которая приведет к упаковке SOA-сервиса:
    hpcpack create e:\approot\helloworld.zip e:\approot\helloworld
  • Выполните в командной строке следующую команду, которая приведет к загрузке упакованного приложения в хранилище Windows Azure. Данные для yourStorage и yourKey можно взять с портала управления Windows Azure с аккаунта хранилища, который был сконфигурирован для приложения: h
    pcpack upload e:\approot\helloworld.zip /account:<yourStorage> /key:<yourKey>
  • Выполните в командной строке следующую команду:
    clusrun hpcsync
  • На головном узле выполните в командной строке следующую команду:
    e:\approot\helloworldAzureClient.exe yourName
  • При запросе учетных данных введите ваши логин и пароль.
  • Результат выполнения команды должен выглядеть таким образом:
    Sending requests...
    Committing requests...
    Waiting for responses...
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Hello yourName
    Complete. Press ENTER to exit...
  • Вернуться к учебному плану