WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 |
1 Методические указания к практическим занятиям по курсу “Кластерные вычисления” Сердюк Ю. П. ( Yury@serdyuk.botik.ru ) Институт программных систем РАН, г. Переславль-Залесский Переславль-Залесский 2007 2 Содержание.

Занятие 1. Windows Compute Cluster Server – платформа для высокопроизводительных вычислений на базе технологий фирмы Microsoft.

Занятие 2. Подготовка заданий для выполнения на кластере под управлением Windows Compute Cluster Server Занятие 3. Введение в MPI.

Занятие 4. Методы передачи данных типа “точка-точка” в MPI.

Занятие 5. Коллективные (радиовещательные) обмены данными между MPIпроцессами.

Занятие 6. Коллективные операции и их исполнение.

Занятие 7. Управление процессами в MPI.

Занятие 8. Организация логических топологий процессов.

Занятие 9. Разработка сложных параллельных программ с использованием MPI.

Занятие 10. Отладка MPI-программ с использованием Visual Studio 2005.

Занятие 11. Введение в высокоуровневый язык параллельного, распределенного программирования MC#.

Занятие 12. Многопоточное программирование на языке MC#.

Занятие 13. Использование каналов и обработчиков языка MC# для организации взаимодействия параллельных потоков (процессов) Занятие 14. Средства синхронизации параллельных процессов в языке MC#.

Занятие 15. Разработка сложных параллельных программ на языке MC#.

Занятие 16. Распределенное программирование на языке MC#.

3 Занятие 1. Windows Compute Cluster Server – платформа для высокопроизводительных вычислений на базе технологий фирмы Microsoft Цель – научиться устанавливать Compute Cluster Pack на машины двух типов:

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

Содержание.

Перед развертыванием Windows Compute Cluster Server (CCS) 2003 для организации вычислительного кластера из машин под управлением ОС Windows, в первую очередь выбирается машина, которая будет служить головным узлом кластера, и проверяется ее соответствие техническим требованиям:

1) CPU – процессор с 64-битной архитектурой: Intel Pentium, или семейство процессоров Intel Xeon с технологией Intel Extended Memory Technology (EMT64), или семейство процессоров AMD Opteron, AMD Athlon или совместимые с ними 2) минимальный объем оперативной памяти – 512 Мб 3) необходимый размер дискового пространства – 4 Gb 4) сетевые карты – если предусматривается организация, кроме общей (public) сети еще и частной (private), то необходимы две сетевые карты;

организация специальной MPI-сети может потребовать еще одной дополнительной сетевой карты.

Развертывание Windows CCS 2003 состоит из трех основных шагов:

1) установка базовой операционной системы Windows Server 2003 (Standard x64 Edition/Enterprise x64 Edition/Compute Cluster Edition);

2) установка Compute Cluster Pack;

3) конфигурирование сети кластера и службы RIS (Remote Installation Services), а также добавление узлов и пользователей кластера.

В данном занятии рассматривается практическое выполнение шагов 2 и 3.

Предварительно, относительно шага 1 следует отметить, что 1) если предполагается использование RIS для развертывания вычислительных узлов кластера, то для этой службы должен быть создан отдельный том (например, D:\) на диске;

2) компьютер с установленной базовой ОС должен быть включен в существующий Active Directory-домен, или же должен быть создан новый домен для кластера с использованием программы DCpromo.exe, и между вновь созданным доменом и уже существующими доменами должны быть установлены доверительные (trust) отношения соответствующими средствами.

Шаг 2 (установка Compute Cluster Pack) включает в себя следующую последовательность действий:

1. Вставить CD-ROM с Compute Cluster Pack в дисковод – процедура установки Setup.exe запустится автоматически.

2. В мастере установки Microsoft CCS, выбрать одну из трех возможностей, как показано на Рис. 1, и нажать Next.

Рис. 1. Выбор режима установки для Compute Cluster Pack.

3. На странице Welcome, для продолжения работы, нажмите Next.

4. На странице лицензионного соглашения End-User License Agreement, выбрать альтернативу “Accept”, как показано на Рис. 2, и нажать далее Next.

Рис. 2. Страница лицензионного соглашения.

5. На странице Installation Folder (см. Рис. 3), либо нажать Change для изменения директории, где будет установлен Compute Cluster Pack, либо нажать Next.

Рис.3. Страница выбора директории для установки Compute Cluster Pack.

6. Нажать Install для выполнения непосредственно процедуры установки.

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

Также, при установке головного узла, будет проверено наличие и доустановлены (если необходимо) следующие программные компоненты:

- MMC (Microsoft Management Console) 3.0, -.NET Framework 2.0, - обновления для RIS и ICS (Internet Connection Sharing).

Сразу после окончания установки, на экране появляется страница To Do List, которая используется для конфигурирования кластера на следующем шаге.

Также, конфигурирование кластера можно произвести и с помощью панели Compute Cluster Administrator, которая появляется в списке программ после окончания установки Compute Cluster Pack.

Конфигурирование кластера После установки Compute Cluster Pack на головной узел, необходимо соответствующим образом сконфигурировать кластер с помощью страницы ToDo List или с помощью меню Compute Cluster Administrator.



Для этого необходимо выполнить следующие шаги:

1. На панели Networking (см. Рис. 4), выбрать Define cluster network topology и задать топологию сети кластера, задав интерфейсы общей частной и MPIсетей головного узла.

Рис. 4. Панель управления кластером 2. Сконфигурировать RIS. Для этого, на панели Remote Installation Services (RIS) выбрать мастера Configure RIS и установить RIS. Если будет использоваться автоматический метод добавления узлов и повторной установки на них образов операционной системы, то должны быть установлены RIS и обновления для этой службы.

3. Если будет использоваться RIS, то необходимо создать установочный образ.

Для этого, на панели Remote Installation Services (RIS) необходимо выбрать мастера Manage Images. Система Windows Compute Cluster Server 2003 позволяет хранить несколько образов на головном узле.

4. Модифицировать установочный образ с помощью соответствующего установочного ключа.

5. Добавить вычислительные узлы. Для этого, на панели Node Management выбрать мастера Add Nodes, и затем выбрать режим Automated. При добавлении узлов в кластер, от администратора кластера будет требоваться подтверждение этого добавления.

6. Сконфигурировать (завести) новых пользователей и администраторов кластера. Для этого, на панели Cluster Security выбрать мастера Configure Users.

На шаге 5, администратор кластера должен ввести имя пользователя и пароль для входа в домен, куда будут добавляться узлы. Эти имя и пароль будут использованы для создания учетных записей в Active Directory для каждого из узлов. Также, администратор на этом шаге должен ввести так называемый Node Series Name – префикс имен компьютеров, которые будут добавляться в качестве узлов кластера.

Занятие 2. Подготовка заданий для выполнения на кластере под управлением Compute Cluster Server Цель – научиться подготавливать и запускать задания с использованием графического интерфейса менеджера заданий; изучить структуру XML-файлов заданий и их параметры.

Для проведения данного практического занятия понадобится самораспаковывающийся архив ClusterComputing.exe, который либо можно скачать с http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d5554a0608523/ClusterComputing.exe, либо он уже может быть доступен на машинах учебного класса, где проводятся занятия. Данный архив необходимо распаковать и открыть соответствующее решение в рамках Visual Studio 2005. В данном решении реализуется несколько алгоритмов перемножения больших матриц.

Для создания матриц, которые будут перемножаться, необходимо выполнить через командную строку команды MatrixUtil matrix1.mtx 1 MatrixUtil matrix2.mtx 1 после исполнения которых будут созданы матрицы matrix1.mtx и matrix2.mtx размерности 5000 х 5000.

В рамках Windows Compute Cluster Server имеется скрипт job, который можно использовать из командной строки для запуска заданий на кластере.

Для запуска последовательного алгоритма перемножения матриц, необходимо выполнить команду job submit /f:MatrixMultiplierSerial.xml где XML-файл MatrixMultiplierSerial.xml, описывающий данное задание для вычислительного кластера, имеет вид:

Если команда отсылки задания на кластер закончилась успешно, то этому заданию будет присвоен уникальный ID Job created, ID: Этот ID в дальнейшем может быть использован для получения информации о состоянии задания, изменения его параметров и снятия его с выполнения.

Например, для получения информации о состоянии задания необходимо выполнить команду job view По этой команде, будет выдано информационное сообщение примерно такого вида:

JOB_ID: SubmittedBy: TestComputeCluster\Administrator NAME: MatrixMultiplierSerial STATUS: Running CPUS: 1,ALLOCATED_NODES: TestNodeSUBMIT_TIME : 11/22/2005 9:49:00 AM NUM_TASKS: Queued: Running: Finished: Failed: Cancelled: Задание MatrixMultiplierMultiSerial является параллельной реализацией алгоритма перемножения матриц, но без использования MPI.

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





Запуск данного задания осуществляется командой:

job submit /f:MatrixMultiplierMultiSerial.xml Описание задания для исполнения MPI-варианта алгоритма перемножения матриц представлено файлом MatrixMultiplierMPI.xml:

Специфика этого задания состоит в использовании только одной задачи, в рамках которой MPI-процессы запускаются командой mpiexec –hosts %CCP_NODES% MatrixMultiplierMPI.exe Переменная окружения CCP_NODES задает узлы и процессоры на каждом узле, которые выделены заданию планировщиком. Запуск этого задания на исполнение производится командой job submit /f:MatrixMultiplierMPI.xml Задание на исполнение с применением mpiexec можно также послать без использования XML-файла, задавая необходимые параметры в командной строке:

job submit /numprocessors:8 /runtime:5:0 myApplication.exe Кроме того, Windows Compute Cluster Server предоставляет API (Application Programming Interface) для использования в программах на языке C# с помощью которого можно программно подсоединиться к кластеру, создавать задачи и задания, посылать задания на кластер, управлять заданиями, ресурсами, задачами, узлами и выполнять другие работы. Базовым интерфейсом в этом API является интерфейс ICluster, который предоставляет следующие основные методы:

- Connect, - CreatJob, - CreateTask, - AddTask, - SubmitJob.

Занятие 3. Введение в MPI.

Цель – изучить базовую структуру MPI-программ и способ их запуска на кластере.

Базовая структура MPI-программ предполагает обязательное применение функций - MPI_Init, - MPI_Comm_size, - MPI_Comm_rank и - MPI_Finalize.

Их использование представлено в примере ниже.

#include "mpi.h" #include int main(argc,argv) int argc;

char *argv[]; { int numtasks, rank, rc;

rc = MPI_Init(&argc,&argv);

if (rc != MPI_SUCCESS) { printf ("Error starting MPI program. Terminating.\n");

MPI_Abort(MPI_COMM_WORLD, rc);

} MPI_Comm_size(MPI_COMM_WORLD,&numtasks);

MPI_Comm_rank(MPI_COMM_WORLD,&rank);

printf ("Number of tasks= %d My rank= %d\n", numtasks,rank);

MPI_Finalize();

} Компиляция MPI-программ осуществляется утилитами - mpicc ( для программ, написанных на языке С), или - mpiCC ( для программ, написанных на языке С++).

Эти утилиты являются надстройками над соответствующими компиляторами, установленными в рамках ОС.

Пример запуска MPI-программы на компиляцию:

mpiCC myprog.cpp –o myprog Запуск оттранслированной программы на счет производится с помощью команды вида:

mpirun [параметры mpirun] <имя программы> [ входные параметры программы ] Основными параметрами mpirun являются:

-h | -help - показывает возможные аргументы и параметры команды mpirun - maxtime - задает максимальное время счета программы (в минутах) - np <число процессоров> - задает число процессоров, на которых запускается программа Пример запуска mpirun –np 4 –maxtime 5 myprog Задача 1. Откомпилировать и выполнить программу, приведенную выше, задающую базовую структуру MPI-программ. Запустить программу на количестве процессоров от 1 до 4.

Задача 2. Написать и отладить MPI-программу, в которой корневой процесс (процесс с рангом 0) выдает на консоль количество запущенных процессов, а также сообщение “Root process: Hello, world”, а все остальные процессы выдают сообщение “Slave process: my rank is xxxx”, где xxx есть ранг соответствующего процесса.

Pages:     || 2 | 3 | 4 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.