Дипломная работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


Основы параллельного программирования на кластере и разработка элективного курса «Администрирование в информационных системах и администрирование виртуальных машин»


8

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования Красноярский государственный педагогический университет им. В.П. Астафьева

Институт математики, физики и информатики

Факультет информатики

Кафедра информатики и вычислительной техники

Выпускная квалификационная работа

Основы параллельного программирования на кластере и разработка элективного курса "Администрирование в информационных системах и администрирование виртуальных машин"

Работу выполнил:

Гончаров Иван Викторович

(роспись)

Научный руководитель:

Шикунов Сергей Анатольевич

к.ф.-м.н., доцент _____________(роспись)

Рецензент:

Прохоров Алексей Анатольевич

ст.преподаватель _____________(роспись)

Допущена к защите:

Пак Н.И.

д.п.н., профессор, зав. каф.ИВТ

Оценка:

Дата защиты (число, месяц, год)

Красноярск 2008

Содержание

Введение

Глава 1. Кластерные системы

1.1 Структура Beowulf и параметры

1.2 Виртуальный скоростной канал, интерфейс

1.3 Устройство кластера

1.4 Операционная система

1.5 Организация кластерной системы

1.6 Параллельная виртуальная машина(PVM)

1.6.1 Взаимодействие задач в PVM

1.6.2 Управление задачами

1.6.3 Передача сообщений

1.6.4 Упаковка данных

1.6.5 Распаковка полученных данных

1.6.6 Отладка в PVM

1.6.7 Установка PVM

Глава 2 Обучение будущих учителей сетевому администрированию

2.1 Анализ целесообразности обучения будущих учителей сетевому

администрированию

2.2. Виртуальная машина для обучения

2.2.1. Анализ и выбор виртуальной машины для обучения

2.2.2. Инструкции по работе с рекомендуемым программным

обеспечением

2.3. Разработка и содержание курса

2.4. Тематическое планирование и рабочая программа курса

2.5. Дидактические материалы

2.5.1. Учебно-методические материалы

2.5.2. Учебные задачи, задания, лабораторные работы

2.5.3. Контрольно-измерительные материалы

Заключение

Список литературы

Введение

Сейчас в наших научных организациях и университетах, как правило, имеются энтузиасты бесплатного распространяемого ПО и специалисты по ОС Linux. В то же время парк более-менее современных персональных компьютеров в этих организациях имеется. Закономерно появилась идея создавния параллельных вычислительных систем из общедоступных компьютеров на базе процессоров Intel и недорогих Ethernet-сетей, установив на эти компьютеры Linux и, объединив с помощью одной из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI) эти компьютеры в кластер. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с той, что можно получить, используя дорогие суперкомпьютеры.

При отсутствии высококвалифицированных параллельных программистов кластеры Beowulf создаются и используются людьми с минимальным опытом параллельного программирования.

В самом деле, кластеры Beowulf обеспечивают университеты с ограниченными ресурсами хорошей платформой для изучения параллельного программирования и недорогой производительной вычислительной системой для ученых. Затраты на установку в университетах минмиальны: многие студенты заинтересованы в таких проектах и используют Linux на собственных компьютерах, установка кластера и написание параллельных программ является частью процесса обучения.

Школьный учитель информатики проводит занятия в учебном компьютерном классе, в котором компьютеры объединены в локальную сеть, в подавляющем большинстве случаев, находящуюся под управлением операционной системы Windows. Такая ситуация требует, чтобы школьный учитель хотя бы на базовом уровне разбирался в администрировании таких сетей. Тем более, что и любознательность современных школьников, сталкивающихся с сетями разного уровня повсеместно, должна быть удовлетворена.

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

Существующие курсы подготовки студентов различных специальностей в этой области достаточно сложны и для получения первоначального представления нет необходимости их копировать. К тому же, курс для будущих школьных учителей информатики должен иметь более практическую направленность - чтобы будущие учителя могли попробовать управлять сетью и почувствовать, что это не является чрезмерно сложно, таинственно и непостижимо. Поэтому в таком курсе необходимо большое внимание уделить обеспечению возможности каждому учащемуся в достаточной степени попробовать себя в создании, настройке и администрировании компьютерной сетью.

Единственной реальной возможностью в достаточной степени получить практические навыки такого сорта является организация для каждого учащегося на отдельном компьютере виртуальной сети из нескольких виртуальных компьютеров. Современное программное обеспечение позволяет применить виртуальные машины, что дает различным категориям пользователей - от начинающих до IT-специалистов - множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение. На сегодняшний день существуют три наиболее популярных инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно "свежий" продукт - Parallels Workstation, созданный в компании Parallels.

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

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

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

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

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

- изучить кластерные системы, организацию кластерной системы, устройство кластера, сетевое обеспечение кластера;

- изучить параллельную виртуальную машину(PVM), взаимодействие её задач, администрирование PVM.

- Ознакомиться с возможностями виртуальных машин для построения

виртуальных локальных сетей.

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

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

- Собрать материалы по теме "системное администрирование" и "построение сетей виртуальных машин", имеющие ценность для построения учебного курса и обучения.

- Разработать инструкции по установке и использованию сетей виртуальных машин.

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

- Разработать лабораторные работы, упражнения и контрольные вопросы по темам курса.

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

1. Кластерные системы

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

1.1 Структура Beowulf и параметры

Сразу скажу, что кластер Beowulf - гетерогенная структура. В него могут входить самые разнообазные по параметрам компьютеры, построенные на различных аппаратных платформах, например Intel Pentium различных версий, Alpha, RISC-процессоры, Transmeta, 32-х и 64-х битовые процессоры. Более того, на компьютерах в кластере могут быть установлены самые различные системы: Linux, Windows, OS/2 WARP. Нашей целью будет построение кластера с минимальными усилиями. Поэтому, если вы хотите заниматься делом (сиречь научной работой), а не повышать свой профессионализм в области информационных технологий, о возможной гетерогенности кластера я предлагаю забыть. Будем считать, что аппаратная платформа комьютеров нашего будущего кластера однообразна.

Что касается различия в параметрах (быстродействие, память, ...) у компьютеров, входящих в кластер, то это допустимо. Но в этом случае, вам придется учитывать эти различия при написании параллельных программ, распределяя объем счета в зависимости от возможности каждого отдельного компьютера. В противном случае кластер будет работать как система, состоящая из машин с минимальными рабочими параметрами.

Как я уже говорил, построение кластера - не самоцель, а средство. Поэтому для минимизации усилий будем считать, что все компьютеры кластера одинаковы по своим рабочим характеристикам и управляются одной и той же операционной системой. За одним исключением, главный компьютер кластера, консоль кластера, может (но не должен) быть более мощной машиной.

Начнем с самого простого, с выбора размера кластера. Поскольку кластер Beowulf - масштабируемая система, то вопрос количества узлов не является жизненно важным. По мере роста ваших аппетитов вы можете произвольно добавлять количество узлов в любое время. Если же вы для узлов будете использовать удаленную загрузку операционной системы по сети (о чем мы еще поговорим позже), то работы по добавлению узла кластера не выйдут за рамки технического подключения новой машины в сеть. Естественно вам придется еще немного изменить ваши программы, разбив их на большее количество параллельных подзадач, с тем чтобы иметь возможность использовать в процессе счета большее количество процессоров.

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

Как видно эффективность нашего кластера зависит от числа узлов нелинейно. Собственно вид этой функции зависит от вида задачи, которая решается с помощью кластера. Приведенный рисунок более-менее корректно отображает положение дел с задачами типа решения уравнений газодинамики на больших сетках (но не только). В этом случае эффективность кластера растет до того момента, когда время передачи между узлами информации, необходимой для проведения одной итерации становится сравнимым со временем счета одной итерации.

В других случаях, например для решения системы уравнений методом Монте-Карло или методом перебора, функция эффективности принимает линейный вид. То есть, чем больше машин в кластере, тем быстрее работает программа. Если же говорить о методе прогонки, то функция эффективности имеет максимум при количестве узлов равном единице и спадает до нуля обратно пропорционально росту количества узлов.

Таким образом, можно порекомендовать при начальном построении кластера ограничится четырьмя узлами (одна консоль и три slave-ноды). С одной стороны, вы всегда при необходимости можете нарастить кластер, с другой стороны, меньшее количество узлов может дать не столь ощутимый результат, как ожидалось. Тем не менее, при пробемах с финансированием можно ограничится и двумя узлами. А если вы просто хотите попробовать, что такое есть кластер, можете обойтись вообще одним компьютером, с установленным на нем VMWare.

1.2 Виртуальный скоростной канал, интерфейс

Рассмотрим более подробно каким образом из нескольких сетевых интерфейсов можно создать один виртуальный скоростной канал.

Для увеличения эффективной пропускной способности сети кластера рекомендуется использовать так называемое "связывание каналов" или channel bonding. Это такой способ объединения узлов кластера в сеть, когда каждый узел подсоединяется к коммутатору более чем одним каналом. Чтобы достичь этого, узлы надо оснастить либо несколькими сетевыми платами, либо многопортовыми платами Fast Ethernet. Связать можно и гигабитные каналы. Связывание каналов аналогично режиму транкинга при соединении коммутаторов, который используется для увеличения скорости передачи данных между двумя или несколькими коммутаторами. Применение связывания каналов в узлах под управлением ОС Linux позволяет организовать равномерное распределение нагрузки приема/передачи между соответствующими каналами.

Channel bonding пораждает некоторые проблемы связанные с выбором коммутаторов и их настройки. Коммутатор должен уметь работать со связанными каналами иначе могут происходить всевозможные ошибки при построении комутатором таблиц маршрутизации пакетов или таблиц MAC-адресов. То есть, как уже было упомянуто ранее, в качестве сетового оборудования надо выбирать такой ethernet switсh, который поддерживает для своих портов функции Link Aggregation или IEEE 802.3ad. Другим решением проблемы я вляется выбор коммутатора с возможностью поддержки режима виртуальных локальных сетей (VLAN). Применение VLAN призвано помочь избежать "дублирования" во внутренних таблицах коммутаторов MAC-адресов многопортовых сетевых плат. Впрочем, есть сообщения, что и поддержка VLAN не всегда помогает, вы можете попробовать этот вариант, но на свой страх и риск.

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

Организация в системе сетевого итерфеса по методу channel bonding достаточно проста. Нужно только следовать одному правилу. Все присоединенные машины должны иметь одинаковый набор bonded networks, т.е. нельзя в одной машине использовать 2х100BaseTx, а в другой 10Base и 100BaseTx. Режим работы сетевых карт тоже должен быть однообразный. Другими словами, недопустим вариант, когда одна карта работает в full duplex, а другая в полудуплексном режиме. В каждой же отдельной машине можно устанавливать карты различных производителей, но работающие обязательно в одном стандарте. Channel bonding требует наличия как минимум двух физических подсетей. Но, при желании связанный канал можно построить на основе трех или более сетевых карт.

Для связывания сетевых карт в один канал (одну виртуальную карту) необходимо либо скомпилировать ядро системы с поддержкой cannel bonding, либо загрузить в систему модуль ядра bonding.o.

В Linux начиная с ядер 2.4.x channel bonding является стандартной включаемой опцией. Например в дистрибутиве Alt Linux Master 2.2 channel bonding поставляется в виде загружаемого модуля ядра.

Для конфигурации связанного канала вам потребуется стандартная команда ifconfig и, возможно, дополнительная команда ifenslave. Программа ifenslave копирует установки первого интерфейса на все остальные дополнительные интерфейсы. Этой же командой можно при желании какие-либо интерфейсы сконфигурировать в режиме Rx-only.

Покажем процесс настройки channel bonding на примере использования двух сетевых карт. Сетевой интерфейс для первой карты должен быть заранее сконфигурен и полностью работоспособен. Для добавления в систему второй карты и объединения ее с первой в связанный канал требуется выполнить некоторые достаточно простые действия. Предварительно желательно остановть сетевые интерфейсы вашей системы выполнив команду

/etc/rc.d/init.d/network stop

После этого переходим собственно к конфигурации связанного канала. Для начала вам нужно изменить файл /etc/modules.conf, добавив в него следующую строчку.

alias bond0 bonding

Сделанное нами добавление говорит системе о том, что при загрузке необходимо загрузить модуль bonding.o, который узнается так же по алиасу bond0. Чтобы не перезагружать систему, вручную загрузим модуль:

modprobe bonding

Теперь идем в каталог /etc/sysconfig/network-scripts и переименовываем файл описания нашего первого интерфейса ifcfg-eth0 в ifcfg-bond0:

cp ifcfg-eth0 ifcfg-bond0

Полученный нами файл ifcfg-bond0 мы должны отредактировать так, чтобы он принял примерно следующий вид:

DEVICE=bond0

IPADDR=192.168.1.1

NETMASK=255.255.255.0

NETWORK=192.168.1.0

BROADCAST=192.168.1.255

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

Естественно вы должны указать свои собственные ip-адрес, маску, адрес сети и broadcast вместо 192.168.1 и пр. Надо заметить, что мы не удаляли никакие строчки из этого файла, просто сделали изменения в нужных местах и может быть добавили что-то. Таким образом мы создали файл описания нашего виртуального сетевого интерфейса. Следующим шагом будет создание файлов описания для двух наших реальных физических интерфейсов eth0 и eth1, в которых мы укажем, что они входят в состав связанного канала. Файлы ifcfg-eth0 и ifcfg-eth1 у нас должны иметь следующее содержимое:

файл ifcfg-eth0 файл ifcfg-eth1

------------------------ ---------------------------------

DEVICE=eth0 DEVICE=eth1

USERCTL=no USERCTL=no

ONBOOT=yes ONBOOT=yes

MASTER=bond0 MASTER=bond0

SLAVE=yes SLAVE=yes

BOOTPROTO=none BOOTPROTO=none

Теперь нам осталось только поднять сетевой интерфейс выполнив команду

/etc/rc.d/init.d/network start

Если дистрибутив вашей системы не позволяет применять master/slave нотификацию при конфигурации сетевых интерфейсов, то вам придется поднимать интерфейс связанного канала вручную, используя следующую последовательность команд:

/sbin/ifconfig bond0 192.168.1.1 up netmask 255.255.255.0 /sbin/ifenslave bond0 eth0 /sbin/ifenslave bond0 eth1

Соответственно вместо 192.168.1.1 вы должны использовать тот ip-адрес, который вам нужен, и указать правильную маску подсети; приведенные выше строчки только пример. Чтобы не выполнять эти команды вручную каждый раз, запишите их в какой-нибудь startup-скрипт, например в /etc/rc.d/rc.local, или замените ими ту часть скрипта /etc/rc.d/init.d/network, которая отвественна за поднятие сетевого интерфейса.

Как вы заметили, для ручного поднятия интерфейса мы использовали команду ifenslave. Это не стандартная системная команда. Программа ifenslave была разработана в рамках проекта Beowulf и вам придется скомпилировать ее из исходных кодов, которые вы можете взять непосредственно на сайте проекта http://beowulf.org/software/ifenslave.c или с сайта проекта Debian: ifenslave_0.07.orig.tar.gz, ifenslave_0.07-1.diff.gz. Естественно, все это вы можете найти в разделе Download этого сайта. Компиляция программы происходит следующей командой:

gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave

Не забудьте только положить полученный исполняемый файл в /usr/sbin.

Если по каким то причинам вам нужно, чтобы все сетевые драйверы были загружены до загрузки bonding-драйвера, добавьте ниже приведенную строчку в файл /etc/modules.conf. Эта инструкция укажет системе, что в случае поднятия интерфейса bond0 утилита modprobe должна сначала загрузить драйверы для всех ваших сетевых интерфейсов.

probeall bond0 eth0 eth1 bonding

Собственно на этом настройка channel bonding закончена. Если сетевой интерфейс поднялся без ошибок, то проверить этот знаменательный факт можно используя обычную команду ifconfig. Запустив ее без параметров вы должны увидеть нечто подобное:

[root]# /sbin/ifconfig

bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0

TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:0

eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:100

Interrupt:10 Base address:0x1080

eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4

inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

Interrupt:9 Base address:0x1400

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:1110 errors:0 dropped:0 overruns:0 frame:0

TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

Если вы увидели нечто подобное на экране монитора, можете себя поздравить, вы успешно сконфигурировали связанный канал. Как видите, ip- и MAC-адреса всех сетевых интерфейсов у нас получились одинаковыми. Чтобы switch мог нормально работать с таким каналом вам необходимо настроить Link Aggrigation. Как это делать вы можете прочитать в документации вашего коммутатора. Для разных моделей коммутатров и разных версий их программного обеспечения это может делаться по-разному. Поэтому в данной книге мы опустим вопросы настройки Link Aggrigation на коммутаторах.

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

1.3 Устройство кластера

Кластер Beowulf состоит из отдельных машин (узлов) и объединяющей их сети (коммутатора). Кроме ОС, необходимо установить и настроить сетевые драйверы, компиляторы, ПО поддержки параллельного программирования и распределения вычислительной нагрузки.

Узлы кластера. Подходящим выбором в данный момент являются системы на базе процессоров Intel Pentium 4. Стоит установить на каждый узел не менее 64-128MB оперативной памяти. Одну из машин следует выделить в качестве центральной (консоль кластера) куда можно (но не обязательно) установить достаточно большой жесткий диск, возможно более мощный процессор и больше памяти, чем на остальные (рабочие) узлы. Делать консоль кластера более мощной машиной имеет смысл, если вы захотите иметь на этом компьютере кроме интерфеса командной строки более удобное операционной окружение, например оконый менеджер (KDE, Gnome), оффисные программы, программы визуализации данных и т.п..

Имеет смысл обеспечить (защищенную) связь этой машины с внешним миром. Другими словами, сеть кластера (сеть состоящая их консоли кластера и рабочих узлов) топологически не должна находится внутри корпоративной сети. Если необходимо обеспечить доступ к консоли кластера из корпоративной сети и/или Интернет, то в этом случае, связь должна идти через отдельную сетевую карту, установленную в главном компьютере, и отдельный коммутатор.

При комплектации рабочих узлов вполне возможно отказаться от жестких дисков - эти узлы будут загружать ОС через сеть с центральной машины, что, кроме экономии средств, позволяет сконфигурировать ОС и все необходимое ПО только один раз (на центральной машине). Если эти узлы не будут одновременно использоваться в качестве пользовательских рабочих мест, нет необходимости устанавливать на них видеокарты и мониторы. Возможна установка узлов в стойки (rackmounting), что позволит уменьшить место, занимаемое узлами, но будет стоить несколько дороже.

Возможна организация кластеров на базе уже существующих сетей рабочих станций, то есть рабочие станции пользователей могут использоваться в качестве узлов кластера ночью и в нерабочие дни. Системы такого типа называют COW (Cluster of Workstations). В этом случае реальным представляется вариант, когда кластер строится на основе существующего компьютерного класса. Подобные классы уже имеются в большинстве учебных или научных учреждениях и обычно скомплектованы однотипными машинами, что и необходимо для кластера. Однако обычно такие компьютерные классы работают под операционной системой Windows и, вероятно, для замены ее на Unix придется решить вопросы административного плана и вопросы связанные с построением учебного процесса. Принципиальных препятствий для решения этих вопросов по-видимому нет, поскольку Unix (конкретно Linux) имеет все необходимое программное обеспечение для проведения учебного процесса или научной деятельности (компиляторы, средства разработки, офисные программы, программы работы с изображениями и визуализации данных, средства публикации (TeX)). Эта книга, например, большую часть времени писалась на консоли кластера в OpenOffice под управлением операционной системы Linux. Нельзя сказать, чтобы я испытывал при этом какую-либо ностальгию по старому доброму MS Word.

По большому счету отказываться от Windows не обязательно. Коммуникационные библиотеки PVM, MPI имеются не только для UNIX, но и для Windows. Если установка в компьютерном классе UNIX-сети вызывает непреодолимую аллергическую реакцию у админов или преподавателей, можно оставить ту операционную систему, к которой вы привыкли.

В принципе, для кластерных систем типа COW нет насущной необходимости останавливать кластер (и задачи на нем считаемые) на дневное (рабочее) время, когда за узловыми машинами работают пользователи. Работа параллельных программ конечно будет замедляться, но это не летально. Другое дело, если работа кластера будет заметно тормозить и затруднять работу пользователей.

Сеть. В простейшем случае для связи между узлами кластера используется один сегмент Ethernet (10Mbit/sec на витой паре). Однако дешевизна такой сети, вследствие коллизий оборачивается большими накладными расходами на межпроцессорные обмены, а хорошую производительность такого кластера можно ожидать только на задачах с очень простой параллельной структурой и при очень редких взаимодействиях между процессами (например, перебор вариантов).

Для получения хорошей производительности межпроцессорных обменов используют полнодуплексный Fast Ethernet на 100Mbit/sec или Gigabit Ethernet. При этом для уменьшения числа коллизий или устанавливают несколько "параллельных" сегментов Ethernet, или соединяют узлы кластера через коммутатор (switch). Под "параллельными" сегментами подразумевается такая структура сети, когда каждый узел кластера имеет более одной сетевой карты, которые с помощью специальных драйверов объединяются в один виртуальный сетевой интерфейс, имеющий суммарную пропускную способность. Для того, чтобы избежать проблем с конфигурированием такого виртуального интерфеса, следует использовать одинаковые сетевые карты на всех машинах кластера. Кроме того, каждая параллельная линия такого интерфеса должна представлять из себя Ethernet-сеть построенную на отдельном (от других параллельных ей линий) комутаторе.

1.4 ОПЕРАЦИОНАЯ СИСТЕМА

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

Под Linux доступно огромное количество серверного ПО, компиляторов, библиотек, средств отладки и пр. Большое количество программного обеспечения имеется в свободном доступе, для многих программ есть исходные коды и обширная документация.

Плюсом Linux является "прозрачность" для пользователя и системного администратора, что позволяет быстрее и проще разрешать все возникающие проблемы.

Однако зацикливаться на выборе операционной системы не надо. Поскольку вы являетесь не системным администратором, а научным работником, операционная система для вас значит не больше, чем офис для бизнесмена. Основными вашими инструментами являются карандаш, бумага и транслятор с вашего любимого языка программирования. Кластерный суперкомпьютер есть не цель, но всего лишь средство для усовершенствования и оптимизации вашей основной работы.

Основой кластера является не операционная система, а коммуникационная среда (PVM, MPI), обеспечивающая возможность частям параллельной программы, выполняющимся на разных компьютерах, эффективно взаимодействовать между собой.

Рассмотренные ранее средства для построения кластера (PVM, MPI) имеют реализации как для операционных систем семейства UNIX (Linux, FreeBSD и т.п.), так и для систем фирмы Майкрософт. Поэтому, если вы испытываете непреодолимые трудности в отказе от Windows, то расстраиваться по этому поводу не надо. Кластер можно поднять и под Windows, причем трудозатраты на установку коммуникационной среды будут такими же как и в варианте с UNIX, то есть небольшими. Основная ваша трудность будет заключаться в том, чтобы научиться писать параллельные программы.

Однако, следует заметить, что подавляющее большинство более-меннее серьезных кластеров в мире работает все же в среде UNIX. Разбор преимуществ и недостатков того или иного семейства операционных систем выходит за рамки рассматриваемой нами темы. Поэтому я предлагаю просто поверить мне на слово, что лучшим выбором для вас будет Unix (Linux в частности).

Хочется отметить одни немаловажный аспект, проявляющийся при попытке перенести свою работу из Windows в Linux. Имеются в виду психологический и административный факторы. Человек, приходящий в мир Linux, испытывает чувство растерянности и неуверенности в том, что он сможет найти в новой системе привычные для него инструменты. Это, как если бы, человек с детства говорящий только на русском языке, выехал за границу. Кроме того, если вы примите решение о строительстве кластера на базе имеющегося у вас компьютерного класса, который используется в обучении студентов, вам неизбежно придется в той или иной степени менять учебный процесс.

Что касается психологии, то давно прошли те времена, когда работа в UNIX была уделом компьютерных гуру, разговаривающих на непонятном языке и пишущих программы в машинных кодах. Современный уровень развития Linux позволяет чувствовать себя пользователю не менее комфортно, чем в Windows. Более подробно об этом можно прочитать в этой статье. Статья посвящена несколько другой теме, но представление о том, что вас ждет в мире Linux, вы получить сможете.

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

малую защищенность системы от неквалифицированных действий пользователей (студентов);

подверженность системы различного рода "взломам" при сетевом использовании и подверженность вирусам;

неустойчивость работы системы, проявляющаяся в зависаниях и потере информации;

большая стоимость лицензий на использование систем;

закрытость операционной системы, затрудняющая написание учебных программ в ее среде и обучение;

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

частая смена версий ОС (примерно каждые два года).

По поводу ломки учебных планов можно сказать следующее. Решение построить кластер на базе вычислительных мощностей имеющегося в наличии компьютерного класса может быть принято скорее всего на физических или математических факультетах ВУЗов. Целью обучения студентов на этих факультетах не ставится подготовка квалифицированных секретарей-референтов со знанием компьютера. Все же остальные цели компьютерной практики вполне могут быть достигнуты и при использовании операционной системы Linux. Жесткая ориентация на продукты фирмы Майкрософт в действительности не обоснована нуждами учебного процесса. Кроме того, ОС Linux вполне может сосуществовать с Windows на одном и том же компьютере и загружаться только по мере необходимости. Другое дело, что проблемой может встать наличие лаборантов, имеющих достаточный уровень квалификации в Linux.

Использование Linux в качестве базовой операционной системы в учебных классах кроме возможности построения кластера из имеющихся в классе компьютерах позволит:

более эффективно использовать имеющиеся вычислительные средства

снизить затраты на обслуживание всей системы (благодаря возможностям к гибкой настройки и четкого отслеживания прав доступа различных пользователей) решить проблемы с необходимостью приобретения лицензий на используемое ПО сделать работу компьютеров в сети и работу всего класса более надежной и устойчивой

1.5 ОРГАНИЗАЦИЯ КЛАСТЕРНОЙ СЕТИ

Сеть - это модульная и адаптируемая коммутационная система, которую можно настроить в соответствии с самыми различными требованиями. Ее модульность облегчает добавление новых компонентов или перемещение существующих, а адаптивность упрощает внесение изменений и усовершенствований. Сеть кластера Beowulf ничем принципиально не отличается от сети рабочих станций, поэтому в самом простом случае для построения кластера необходимы обычные сетевые карты и хабы/коммутаторы, какие использовались бы при обустройстве какого-нибудь компьютерного класса. Однако, в случае кластера имеется одна особенность. Сеть кластера в первую очередь предназначена не для связи машин, а для связи вычислительных процессов. Поэтому чем выше будет пропускная способность вашей сети, тем быстрее будут считаться параллельные задачи, запущенные на кластере, следовательно рабочие характеристики сети приобретают первостепенное значение.

Для построения вычислительных кластеров используют самое разнообразное сетевое оборудование. При этом, так как характеристики стандартных сетевых устройств заметно уступают характеристикам специализированных коммуникаций в "нормальных" MPP компьютерах, пропускная способность сети, связывающей узлы кластера, во многих случаях оказывается решающей для производительности кластера. Используемое сетевое оборудование характеризуют обычно двумя параметрами:

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

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

Приведем для сравнения параметры некоторых наиболее популярных сетевых устройств.

Сетевое оборудование Пиковая пропускная способность Латентность

1. FastEthernet 12.5 Mbyte/sec 150 sec

2. GigabitEthernet 125 Mbyte/sec 150 sec

3. Myrinet 160 Mbyte/sec 5 sec

4. SCI 400 Mbyte/sec (реально 100) 2.3 sec

5. cLAN 150 Mbyte/sec 30 sec

Фактически пропускная способность и латентность не только характеризуют кластер, но и ограничивают класс задач, которые могут эффективно решаться на нем. Так, если задача требует частой передачи данных, кластер, использующий сетевое оборудование с большой латентностью (например GigabitEthernet), будет большую часть времени тратить даже не на передачу данных между процессами, а на установление связи, в то время как узлы будут простаивать, и мы не получим значительного увеличения производительности. Впрочем, если пересылаются большие объемы данных, влияние периода латентности на эффективность кластера может снижаться за счет того, что сама передача потребует достаточно большого времени, может быть даже в разы больше периода латентности.

Для малобюджетных кластеров использование супербыстрых Myrinet, SCI, cLAN скорее всего может оказаться нереальным с финансовой точки зрения. Поэтому рассмотрим более дешевые решения. Использование для кластера 10Mbit-сети хотя и возможно, но малоприятно. В результате вы рискуете получить от использования кластера больше разочарований, чем реального увеличения эффективности вашей работы. Далее мы будем рассматривать оборудование для сетей от 100Mbit и выше.

Сетевые карты. В качестве сетевых адаптеров можно использовать любые имеющиеся в продаже карты, поддерживающие работу в стандартах 100BaseTx и GigabitEthernet. Что касается списка предпочтений, то можно порекомендовать в первую очередь 3Com. Среди других вариантов можно назвать Compex, Intel, Macronix, другие карты, поддерживаемые драйвером tulip, например карты на чипсетах DC21xxx. Особенно популярными при построении кластеров явяляются платы на базе микросхем Intel 21142/21143. Популярность этих карт вызвана бытующим мнением об их высокой производительности, в то время как их цена по сравнению с конкурирующими предложениями обычно довольно невелика. Что касается сетевых карт фирмы 3Com, то они имеют некоторые преимущества, заметно влияющие на производительность сетевых коммуникаций. Приведем лишь несколько примеров возможностей аппаратного обеспечения карт 3Com.

Разгрузка процессора при вычислении контрольных сумм TCP/UDP/IP. Освобождает центральный процессор от интенсивных вычислений контрольных сумм, выполняя их в самой сетевой плате. Тем самым повышается производительность системы и время жизни процессора.

Освобождение ЦП при восстановлении сегментированных пакетов TCP. Снижает нагрузку на центральный процессор, повышая производительность системы.

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

Режим Bus mastering DMA. Обеспечивает более эффективный обмен данными для снижения загрузки центрального процессора.

В любом случае, если вы не предполагаете использовать технологию связывания каналов (channel bonding), которая позволяет объединять несколько сетевых адаптеров в один скоростной виртуальный канал, то вы можете себя чувствовать достаточно свободно выбирая для покупки ту или иную карту. Практически все современные сетевые карты, имеющиеся сейчас в продаже, без проблем распознаются Linuxом и нормально работают.

Для организации связанного канала (channel bonding) лучше всего выбрать сетевые карты Intel EtherExpress PRO/100, 3Com FastEthernet (например 3c905B, 3c905C) или какие-либо карты GigabitEthernet от 3Com или Intel. Так же интересным вариантом являются специализированные серверные сетевые карты, в которых имеется более одного Ethernet-порта. Примерами таких адаптеров могут быть Intel EtherExpress PRO/1000 MF Dual Port или 3Com Fast EtherLink Server Dual Port 3c982C-TXM , которые я без труда нашел на http://www.price.ru. Использование таких карт позволит занимать в компьютере вдвое меньше PCI-слотов и, соответственно, устанавливать вдвое больше сетевых карт для объединения их в связанный канал.

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

Коммутаторы и другие элементы сетевой структуры используются для обеспечения коммуникаций между процессорами, для поддержки параллельного программирования и различных функций управления. Для параллельного программирования (организации межпроцессного взаимодействия (Inter Process Communication, IPC) широко используется коммутатор Myrinet-2000 компании Myricom (http://www.myri.com) - очень быстрое, хорошо масштабируемое широкополосное устройство. Считается, что при увеличении числа подключенных узлов общая ширина полосы пропускания - как у всех коммутаторов с настоящей масштабируемостью - растет пропорционально, а латентность остается постоянной. Иными словами, полоса на каждом из путей одинакова, а число путей (направлений) зависит от количества узлов, при этом каждый узел имеет связь со всеми остальными узлами независимо от размера кластера. Например, полоса в расчете на направление может составлять 200 Мбайт/с в каждом направлении с латентностью в 6-8 мкс. Коммуникации между пользовательскими пространствами могут реализовываться на основе протоколов IP или GM при помощи ПО пользовательского уровня Myricom.

Если среда параллельных вычислений не требует повышенной интенсивности коммуникаций между процессорами, то могут использоваться менее дорогостоящие средства, скажем, Ethernet. В индивидуальном заказном проекте могут также применяться технологии GigaNet, SCI или ServerNet, а в будущем и InfiniBand.

Выбор коммутатора осуществляется прежде всего на основе его характеристик. В самом простом случае для построения сети каластера можно использовать простые хабы. Это решение, наиболее выгодное по цене, явялется самым неудачным в технологическом смысле. При использовании хабов не происходит маршрутизации пакетов передаваемых данных. Любой пакет, переданный в сеть, направляется абсолютно всем участникам сети. Каждая машина "слышит" все передающиеся в сети пакеты данных, вне зависимости от того, предназначен ли конкретный пакет для нее или нет. При активном межпроцессорном обмене это может приводить к перегрузке сети, увеличении числа коллизий и, как следствие, к снижению эффективного быстродействия параллельной машины. Например, если две пары узлов кластера одновременно обмениваются данными посредством 100Мбит хаба, то скорость их обмена падает вдвое. Для решения этой проблемы следует использовать более "продвинутое" сетевое оборудование - коммутаторы, которые позволяют устанавливать своего рода каналы связи между парами машин.

Если говорить, к примеру, о 100Мбит сети, то задачей комутатора является обеспечение пропускной способности 100 Мбит/с одновременно для всех n/2 соединений между парами портов n-портового коммутатора. Теоретически коммутатор должен это гарантировать, но на практике производители оборудования весьма часто идут на упрощение электронной начинки своей продукции, как с целью удешевления, так и с целью максимального увеличения числа портов. В последнем случае при распараллеливании могут возникать конфликты на уровне Fast Ethernet, что снижает скорость обмена сообщениями и соответственно эффективность распараллеливания.

По моему личному опыту таблица приоритетов при выборе сетевого коммуникатора для построения сети кластера может выглядеть так: Cisco Catalist, 3Com SuperStack 3, Compex Switch. Ну и на последнем месте стоят самые дешевые хабы различных производителей, таких как Compex или 3Com.

Конечно, принимая решение о выборе коммутатора, необходимо учесть и другие их характеристики, в том числе цену. Хорошая продукция и стоит дороже. Так, отличные коммутаторы Cisco Catalyst (например, известная модель 5000, имеющая большее число портов и поддерживающая возможность связывания каналов) имеют более высокую цену, чем оборудование не столь "именитых" фирм.

Не все коммутаторы могут обеспечить возможность применения связанных каналов. Если вы предполагаете использовать channel bonding для увеличения пропускной способности вашей сети, то необходимо с особой тщательностью подходить к выбору коммутатроа. Обычные хабы в этом случае отпадают сразу. Проблема в связывании каналов заключается в том, что пр наличии channel bonding у вас появляется две или несколько сетевых карт с одинаоквым MAC-адресом. В обычном режиме работы коммутатор либо просто "сойдет с ума", либо будет интенсивно перестраивать свои внутренние таблицы портов, переназначая ваш MAC-адрес с одного порта на другой. Это может привести либо к полной неработоспособности канала, либо к значительным потерям пакетов и существенному снижению производительности сети. Для обеспечения нормальной работы таких связанных каналов в коммутаторе должны быть предусмотре ны функции Link Aggrigation или, по другому, работа в стандарте IEEE 802.3ad. При покупке коммутатора внимательно читайте прилагаемые спецификаци и ищите эти магические словосочетания. Не все коммутаторы, имеющие функцию Link Aggrigation, позволяют применять ее для всех портов. Например, существуют модели, которые имеют 12/24 100Мбит и два гигабитных порта. В таких моделях Link Aggrigation можно настроить только для гигабитных портов, используя их для связи между двумя коммутаторами. Ясно, что такие модели не применимы для наших целей. Поэтому консультации со специалистами при покупке коммутатора обязательны.

В качестве примеров коммутатором, позволяющих настроить Link Aggrigation, можно упомянуть Cisco Catalist 2900 series, Cisco Catalist 3500 series, Cisco Catalist 5000 series, 3Com SuperStack 3 4950, 4400 и др. Следует отметить, что наличие или отсутствие функций Link Aggrigation зависит не только от модели коммутатора, но и от версии его программного обеспечения.

1.6 Параллельная виртуальная машина(PVM)

Основой вычислительной среды кластера Beowulf является параллельная вирутальная машина PVM. PVM (Параллельная Виртуальная Машина) - это пакет программ, который позволяет использовать связанный в локальную сеть набор разнородных компьютеров, работающих под операционной системой Unix, как один большой параллельный компьютер. Таким образом, проблема больших вычислений может быть весьма эффективно решена за счет использования совокупной мощности и памяти большого числа компьютеров. Пакет программ PVM легко переносится на любую платформу. Исходные тексты, свободно распространяемые netlib, был скомпилирован на компьютерах начиная от laptop и до CRAY.

Параллельную виртуальную машину можно определить как часть средств реального вычислительного комплекса (процессоры, память, периферийные устройства и т.д.), предназначенную для выполнения множества задач, участвующих в получении общего результата вычислений. В общем случае число задач может превосходить число процессоров, включенных в PVM. Кроме того, в состав PVM можно включать довольно разнородные вычислительные машины, несовместимые по системам команд и форматам данных. Иначе говоря, Параллельной Виртуальной Машиной может стать как отдельно взятый ПК, так и локальная сеть, включающая в себя суперкомпьютеры с параллельной архитектурой, универсальные ЭВМ, графические рабочие станции и все те же маломощные ПК. Важно лишь, чтобы о включаемых в PVM вычислительных средствах имелась информация в используемом программном обеспечении PVM. Благодаря этому программному обеспечению пользователь может считать, что он общается с одной вычислительной машиной, в которой возможно параллельное выполнение множества задач.

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

Главная цель использования PVM - это повышение скорости вычислений за счет их параллельного выполнения. Функционирование PVM основано на механизмах обмена информацией между задачами, выполняемыми в ее среде. В этом отношении наиболее удобно реализовывать PVM в рамках многопроцессорного вычислительного комплекса, выделив виртуальной машине несколько процессоров и общее или индивидуальные (в зависимости от условий) ОЗУ. Использование PVM доспустимо как на многопроцессорных компьютерах (SMP) так и на вычислительных комплексах, построенных по кластерной технологии. При использовании PVM, как правило, значительно упрощаются проблемы быстрого информационного обмена между задачами, а также проблемы согласования форматов представления данных между задачами, выполняемыми на разных процессорах

Эффективное программирование для PVM начинается с того, что алгоритм вычислений следует адаптировать к составу PVM и к ее характеристикам. Это очень творческая задача, которая во многих случаях должна решаться программистом. Кроме задачи распараллеливания вычислений с необходимостью возникает и задача управления вычислительным процессом, координации действий задач - участников этого процесса. Иногда для управления приходится создавать специальную задачу, которая сама не участвуя в вычислениях, обеспечивает согласованную работу остальных задач - вычислителей.

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

Наиболее простой и популярный способ организации параллельного счета выглядит следующим образом. Сначала запускается одна задача (master), которая в коллективе задач будет играть функции координатора работ. Эта задача производит некоторые подготовительные действия, например инициализация начальных условий, после чего запускает остальные задачи (slaves), которым может соответствовать либо тот же исполняемый файл, либо разные исполняемые файлы. Такой вариант организации параллельных вычислений предпочтительнее при усложнении логики управления вычислительным процессом, а также когда алгоритмы, реализованные в разных задачах, существенно различаются или имеется большой объем операций (например, ввода - вывода), которые обслуживают вычислительный процесс в целом.


1.6.1 Взаимодействие задач в PVM

В системе PVM каждая задача, запущенная на некотором процессоре, идентифицируется целым числом, которое называется идентификатором задачи (TID) и по смыслу похоже на идентификатор процесса в операционной системе Unix. Система PVM автоматически поддерживает уникальность таких идентификаторов: копии одного исполняемого файла, запущенные параллельно на N процессорах PVM, создают N задач с разными TID.

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

Для повышения эффективности межзадачного обмена информацией предусмотрено использование нескольких алгоритмов. В частности, можно использовать алгоритм блокированной передачи, при котором функция "Послать сообщение" возвращает значение (т.е. завершает работу) только после того как получена положительная или отрицательная квитанция от получателя сообщения. Такой алгоритм передачи с ожиданием уведомления о доставке предпочтителен в тех случаях, когда длинное сообщение передается несколькими порциями, а также при обмене командами, последовательность выполнения которых во времени дорлжна быть строго фиксированной.

При использовании неблокированных алгоритмов передачи и приема сообщений уменьшаются простои процессоров, вызванные ожиданием реакции "собеседника". Особенно большой эффект это дает на приемной стороне при неизвестном времени прихода сообщения. Можно организовать работу приемного процессора так, чтобы он в ожидании сообщения выполнял текущую работу, лишь время от времени опрашивая приемный буфер.

Существенным является то обстоятельство, что при передаче последовательности сообщение от одной задачи к другой порядок приема сообщение всегда совпадает с порядком их передачи. Более того, если до обращения к функции "принять сообщение" в приемный буфер принимающей задачи записано несколько сообщений, то функция "принять сообщение" возвратит ссылку на первое принятое сообщение.

Память для буферных массивов на передающей и приемной стороне выделяется динамически, следовательно, максимальный объем сообщений ограничивается только объемом доступной памяти. Если одна из задач, запущенных в PVM, не может получить требуемую память для общения с другими задачами, то она выдает пользователю соответствующее сообщение об ошибке ("cannot get memory"), но другие задачи об этом событии не извещаются и могут, например, продолжать посылать ей сообщения.

1.6.2 Управление задачами

Управление задачами в PVM осуществляется на основе некоторого набора функций, о которых мы поговорим в этом разделе. Существует два варианта (два стиля) написания параллельных задач для PVM. В первом варианте весь исполняемый на всех процессорах код пишется как одна большая задача. Соответственно на каждом процессоре запускается на исполнение один и тот же файл. Обычно в самом начале своей работы программы вызывает функцию

call pvmfmytid( tid )

возвращающую значение идентификатора задачи tid >= 0, которым может определяться выбор для выполнения той или иной части программы. Эта функция может вызываться более одного раза.

После того , как задача определила, что она главная, выполняется запуск остальных частей задачи на других процессорах кластера. Запуск выполняется с помощью функции:

call pvmfspawn( task, flag, where, ntask, tids, numt )

task - имя исполняемого файла

INTEGER flag - опции запуска

where - указывает место запуска

INTEGER ntask - число запускаемых копий программы

INTEGER tids - массив значений tid для запущенных задач

Эта функция запускает в PVM ntask копий исполняемого файла с именем "task" с одинаковыми аргументами командной строки в массиве argv и возвращает число запущенных задач numt а также последовательность идентификаторов для запущенных задач. Причем, если numt Второй вариант написания параллельной задачи заключается в том, что для каждого процессора пишутся свои собственные задачи, выполняющие различные действия, и создается маленькая программа, которая, используя функцию pvm_spawn запускает все остальные задачи.

Исполняемый файл для функции pvm_spawn() должен находиться в строго определенном каталоге. Под Unix задача ищется в каталогах $PVM_ROOT/bin/$PVM_ARCH/ и $HOME/pvm3/bin/$PVM_ARCH. Задавать имя каталога в параметре "task" недопустимо.

Но это не единственный способ. В другом варианте исполняемый файл ищется (и запускается) не только на том компьютере, на котором работает вызвавшая pvm_spawn() задача, но в зависимости от параметров flag и where, на любом входящем в состав PVM. Например, если flag==0, то PVM сам выбирает, на какой из машин запускать новые задачи (главное, чтобы приложение было скомпилировано на этих машинах); а если flag & PvmMppFront > 0, то местом запуска будет выбран самый быстрый компьютер.

Значением параметра flag задается набор опций для запускаемых задач. Каждой опции сответствует целое неотрицательное число, и значение flag равно сумме выбранных опций. Ниже перечисляются опции запуска задач.

В FORTRANe flag может быть суммой следующих величин:

PVMDEFAULT=0 - PVM может выбрать любую машину для старта задачи

PVMHOST=1 - параметр where определяет машину для запуска

PVMARCH=2 - параметр where определяет тип архитектуры

PVMDEBUG=4 - процесс старует под отладчиком

PVMTRACE=8 - процесс генерирует PVM trace data.

Параметр where описывает на каких компьютерах кластера может быть запущена задача. Параметр является простой строковой переменной, в которую записано имя списка компьютеров. Списки компьютеров находятся в конфигурационных файлах системы PVM и формируются на этаме ее установки. Например в случае, когда в вашем кластере кроме консольной машины присутствует еще два компьютера: один класса P166 и другой класса P4, вы можете определить их в системе под именами "oldcomp" и "supercomp". И в зависимости от тех или иных условий, запускать свои задачи на какой-либо их этих машин кластера.

И, наконец, еще две функции, относящиеся к управлению задачами.

call pvmfkill( tid, info )

call pvmfexit( info )

Первая из них завершает выполнение задачи с идентификатором tid, возвращая при ошибке код ошибки info < 0. Отметим, что задача не может таким образом завершить свое выполнение. Вторая функция завершает работу PVM, запущенной пользователем, но при этом сама задача продолжает выполняться уже как обычная локальная задача и завершает работу обычным образом.

1.6.3 Передача сообщений

Посылка сообщений в PVM предназначена для передачи данных между различными процессам и состоит из трех шагов. Во-первых, буфер данных перед посылкой должен быть проинициализирован с использованием функций pvm_initsend() или pvm_mkbuf(). Во-вторых, пересылаемые данные должны быть "упакованы" в этот буфер. Для упаковки используется некоторе количество комбинаций вызовов функции pvm_pk*(). В FORTRANе упаковка данных производится подпрограмой pvmfpack(). Третий шаг заключается в пересылке данных адресатам. Для этой цели в зависимости от списка адресатов используется вызов функции pvm_send(), в параметрах которой указывается конкретный процесс-приемник, или функции pvm_mcast(), используемой для всенаправленной передачи (то есть всем процессам сразу).

Сообщение принимается процессом-адресатом с помощью соответствующей функции, после чего происходит распаковка принятого блока, извлечение хранящихся в нем даных и заполнение ими соотвествующих локальных переменных или массивов. Процедура приема сообщений может быть сконфигурирована в нескольких вариантах:

для приема любых сообщений

для приема любых сообщений от определенного источника

для приема любых сообщений с определенным message tag

для приема любых сообщений с определенным message tag от определенного источника

Кроме того, существует функция для проверки факта доставки сообщения адресату. Буфер сообщения

call pvmfinitsend( encoding, bufid )

Если пользователь использует только один буфер сообщения (обычно так и делается), то единственная необходимая для работы с буфером функция - это pvm_initsend(). Эта функция вызывается непосредственно перед упаковкой новой порции пересылаемых данных в буфер сообщения. Функция pvm_initsend освобождает буфер и создает новый для упаковки в него данных. Схема кодировки упаковываемых в буфер данных указывается заданием переменной encoding. Возвращаемое в переменную bufid значение является идентификатором буфера. Переменная encoding может принимать следующие значения:

PvmDataDefault - XDR кодировка, используемая в PVM по умолчанию. Эта кодировка используется обычно в гетерогенных кластерах, когда PVM не может знать понимает ли принимающая сторона передаваемый формат данных. Например, когда данные передаются с Linux-машины на Windows-машину. В случае, когда в кластере используется только один тип операционной машины или когда пользователь уверен, что принимающая сторона поймет все правильно, следует использовать тип кодировки PvmDataRaw. PvmDataRaw - без кодировки. Даные передаются без каких либо изменений. Если принимающая сторона не сможет правильно прочитать этот формат, это вызовет возврат кода ошибки в процессе распаковки. PvmDataInPlace - данные остаются на месте, не перемещаясь в буфер посылки. Этот тип кодировки можно использовать для снижения накладных расходов, связанных с перемещением данных в буфер. В этом случае буфер содержит только длины и указатели на передаваемые данные. Когда вызвана pvm_send(), данные копируются непосредственно с того места, где они расположены. Использование этой кодировки накладывает одно ограничение. Передаваемые данные не должны быть изменены между моментом, когда началась их упаковка и моментом окончания передачи буфера сообщения адресату. Однако, при использовании данного типа упаковки, имеется одно заметное преимущество. Функция упаковки pvm_initsend может быть вызвана только один раз в начале прогарммы. Например в начале работы программы мы можем упаковать данные из области перекрытия (см. главу "Декомпозиция данных") и передавать их множество раз по мере необходимости.

1.6.4 Упаковка данных

Для FORTRANа существует только одна функция, которая управялет упаковкой данных всех типов.

call pvmfpack( what, xp, nitem, stride, info )

В пареметре what указывается тип упаковываемых данных. Параметр xp является первым элементом массива данных. Пареметры nitem и stride описаны выше. Параметр info - возвращаемое значение. Значения параметра what представлены в следующей таблице:

STRING 0 REAL4 4

BYTE1 1 COMPLEX8 5

INTEGER2 2 REAL8 6

INTEGER4 3 COMPLEX16 7

Константы, соответствующие значениям параметра what определены в файле pvm3/include/fpvm3.h. Некоторые производители могут расширять этот список дополнительными данными, например INTEGER8, REAL16 и др.

Приведем пример использования всех этих функций:

CALL PVMFINITSEND(PVMRAW, INFO)

CALL PVMFPACK( INTEGER4, NSIZE, 1, 1, INFO )

CALL PVMFPACK( STRING, `row 5 of NXN matrix, 19, 1, INFO )

CALL PVMFPACK( REAL8, A(5,1), NSIZE, NSIZE , INFO )

CALL PVMFSEND( TID, MSGTAG, INFO )

Прием и посылка данных

call pvmfsend( tid, msgtag, info )

call pvmfmcast( ntask, tids, msgtag, info )

Функция pvm_send() помечает сообщение тагом msgtag и выполняет немедленную пересылку данных процессу с соответствющим идентификатором tid.

Функция pvm_mcast() помечает сообщение тагом msgtag и выполняет немедленную пересылку данных все процессам, имеющим идентификаторы, совпадающими со значениями, хранящимися в массиве tids. Длина массива tids равна ntask.

Следующие функции предназначены для совмещения работы по упаковке данных и их пересылке:

call pvmfpsend( tid, msgtag, xp, cnt, type, info )

Эти функции упаковывают массив определенного параметром type типа в буфер и передают его процессу, идентифицированному параметром tid. В FORTRANе типы данных определены так же, как и для процедуры pvmfpack().

Система PVM содержит несколько методов для организации приема сообщений. Причем отсутствует соотыктствие функций. То есть нет такого ограничения, когда сообщение, посланное процедурой pvm_psend должно быть обязательно принято процедурой с именем тип pvm_precv. Вне зависимости от того, как было послано сообщение, принято оно может быть либым из возможных вариантов. То же замечание касается адресной и мультикастной (multicast) передачи.

Следующие процедуры осуществляют блокирующий прием сообщений:

call pvmfrecv( tid, msgtag, bufid )

Эти процедуры инициируют процесс ожидания поступления сообщения, помеченного тагом msgtag от процеса с идентификатором tid (если сообщение еще не пришло). В случае, когда значения параметров tid и/или msgtag равны -1, осуществляется ожидание сообщения от любого процесса и/или сообщения с любым тагом.

После того, как сообщение получено, эти процедуры возвращают управление вызвавшей их программе, передав в bufid идентификатор буфера, в который помещено полученное сообщение. Значение bufid<0 сигнализирует о возникшей ошибке. Аналогом блокирующей функции являются функция

call pvmfnrecv( tid, msgtag, bufid )

Параметры и возвращаемое значение этой функции аналогичны используемым в блокирующей функции. Отличие заключается в том, что вызов pvm_nrecv не инициирует процесс ожидания сообщения. В случае, если ожидаемое сообщение еще не поступило, в bufid возвращается 0. Функция pvm_nrecv может быть вызвана в процессе счета неоднократно.

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

call pvmfprobe( tid, msgtag, bufid )

Если ожидаемое сообщение еще не пришло, эта функция возвращает bufid=0. По пришествии сообщения в bufid возвращается значение отличное от нуля. Функцию можно вызывать неоднократно, заполняя время между вызовами какой-либо другой продуктивной работой. Функция pvm_probe не получает сообщение, для его получение необходимо воспользоваться одной из соответствующих функций.

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

call pvmfprecv( tid, msgtag, xp, cnt, type, rtid, rtag, rcnt, info )

Эту функцию можно использовать для приема сообщений, в которых содержатся однотипные данные. Вызов этой функции инициирует процесс ожидания сообщения, помеченного тагом msgtag от процесса с идентификатором tid. По поступлении сообщения pvm_precv распаковывает данные общим объемом len * (size of data type) в буфер buf.

Типы данных в FORTRAN-программах такие же, как это дано в описании функции pvmfpack.

Описание параметров функций:

tid ID процесса откуда мы ждем сообщение. "-1" означает "любой процесс".

msgtag Ожидаемый таг сообщения. "-1" означает "любое сообщение".

vp Указатель на массив (переменную) куда будут помещены полученные данные.

xp Массив (переменная) куда будут помещены полученные данные. (FORTRAN)

cnt Количество ожидаемых элементов указанного типа.

type Тип получаемых данных (см. выше).

rtid Возвращаемый параметр. ID процесса, откуда пришло сообщение.

rtag Возвращаемый параметр. Таг (метка) полученного сообщения.

rcnt Возвращаемый параметр. Длина полученного сообщения (кол-во элементов).

info Содержит на выходе PvmOk если все нормально и отрицательное значение в случае ошибки.

1.6.5 Распаковка полученных данных

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

call pvmfunpack( what, xp, nitem, stride, info )

Параметр xp - массив, куда будут помещены распакованные данные.

Параметры nitem и stride имеют тот же смысл, что и в соответствующих функциях упаковки (см. выше).

Параметр what был так же описан выше.

1.6.6 Отладка в PVM

По умолчанию только текст, выводимый родительской задачей (то есть той, которую вы сами запустили с терминала) окажется на экране. Стандартный вывод задач, запускаемых функцией pvm_spawn(), по умолчанию перенаправляется в LOG-файл исполняющей системы PVM ($PVM_TMP/pvml.*). Функция

call pvmfcatchout( onoff, info )

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

call pvmfcatchout (1, info);

call pvmfspawn (...

в родительской задаче весь вывод от всех запускаемых под-задач перенаправит на экран. При этом PVM гарантирует, что строки от разных задач не будут "налезать" одна на другую, и каждая строка будет предваряться идентификатором той задачи, которая ее вывела. Использование pvm_catchout() имеет два недостатка: а) между посылкой строки в файл или на экран из под-задачи и ее фактическим там появлением может быть задержка неизвестной заранее длительности, и, б) если объем выводимой диагностики от разных задач очень велик, очень трудно разобраться в поведении какой-то одной конкретной задачи.

1.6.7 Установка PVM

Установка системы PVM на компьютере, работающем под управлением операционной системы Linux достаточно проста и не требует каких либо длительных настроек. Cистема PVM распространяется бесплатно и в исходных кодах. Исходники PVM вы можете найти на этом сайте или непосредственно на сайте разработчиков по адресу http://www.netlib.org/pvm3/index.html.

Для установки PVM в вашей системе необходимо создать каталог, где будет располагаться система PVM. Будем считать, что мы устанавливаем PVM в каталог /pvm3. В этот каталог вы должны распаковать архив с исходниками системы.

tar zxvf pvm3.3.4.tgz

Перед сборкой и запуском PVM вы должны установить переменную окружения $PVM_ROOT, указав в ней полный путь к каталогу, в котором хранится система. Если вы используете в качестве командной оболочки csh, вам необходимо добавить следующую строку в файл .cshrc:

setenv PVM_ROOT=/pvm3

Если же вы используете оболочки, которые используют .profile, наприемр sh или ksh, или bash, которая использует .bashrc, тогда добавьте в соответствующий файл такую команду:

export PVM_ROOT=/pvm3

Так же вы должны определить другие переменные окружения, необходимые для функционирования PVM, добавив после команды определения PVM_ROOT содержимое соответствующих командной оболочке файлов: pvm3/lib/cshrc.stub, pvm3/lib/kshrc.stub или pvm3/lib/bashrc.stub.

По умолчанию PVM использует протокол rsh для общения с другими компьютерами кластера. Если вы хотите rsh заменить на ssh, вы должны изменить файл /pvm3/conf/LINUX.def, прописав в переменной ARCHCFLAGS параметр RSHCOMMAND, определив для него полный путь к команде ssh (например /usr/bin/ssh). Например на моем кластере файл /pvm3/conf/LINUX.def выглядит так:

#

ARCHCFLAGS = -DSYSVSIGNAL -DNOWAIT3 -DRSHCOMMAND="/usr/bin/ssh"

-DNEEDENDIAN -DFDSETNOTSTRUCT -DHASERRORVARS

-DCTIMEISTIMET -DSYSERRISCONST -DNOTMPNAM

ARCHDLIB =

ARCHDOBJ =

ARCHLIB =

HASRANLIB =t

AR =ar

PVM_ARCH =LINUX

MAKE =make

В дальнейшем будем считать, что виртуальная машина была собрана именно с такими изменениями, то есть с заменой rsh на ssh.

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

Для сборки и установки PVM, находясь в каталге /pvm3, выполните команду make. По окончании ее работы система PVM готова к запуску. Следует отметить, что для уменьшения проблем, связаных с настройкой PVM на узлах кластера, на всех машинах кластера PVM следует устанавливать в один и тот же каталог.

Глава 2. Обучение будущих учителей сетевому администрированию

2.1. Анализ целесообразности обучения будущих учителей сетевому администрированию

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

Школьный учитель информатики проводит занятия в учебном компьютерном классе, в котором компьютеры объединены в локальную сеть, в подавляющем большинстве случаев, находящуюся под управлением операционной системы Windows. Такая ситуация требует, чтобы школьный учитель хотя бы на базовом уровне разбирался в администрировании таких сетей. Тем более, что и любознательность современных школьников, сталкивающихся с сетями разного уровня повсеместно, должна быть удовлетворена.

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

Существующие курсы подготовки студентов различных специальностей в этой области достаточно сложны и для получения первоначального представления нет необходимости их копировать. К тому же, курс для будущих школьных учителей информатики должен иметь более практическую направленность - чтобы будущие учителя могли попробовать управлять сетью и почувствовать, что это не является чрезмерно сложно, таинственно и непостижимо. Поэтому в таком курсе необходимо большое внимание уделить обеспечению возможности каждому учащемуся в достаточной степени попробовать себя в создании, настройке и администрировании компьютерной сетью.

Единственной реальной возможностью в достаточной степени получить практические навыки такого сорта является организация для каждого учащегося на отдельном компьютере виртуальной сети из нескольких виртуальных компьютеров. Современное программное обеспечение позволяет применить виртуальные машины, что дает различным категориям пользователей - от начинающих до IT-специалистов - множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение. На сегодняшний день существуют три наиболее популярных инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно "свежий" продукт - Parallels Workstation, созданный в компании Parallels.

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

2.2. Виртуальная машина для обучения

2.2.1. Анализ и выбор виртуальной машины для обучения

Можно сравнить наиболее популярные виртуальные машины с целью выбора наиболее перспективной для целей обучения.

Название

Создатель

Процессор хост-машины

ОС хост-машины

Официально поддерживаемые гостевые ОС

Поддержка SMP в гостевых ОС

Поддержка драйверов в гостевой ОС

Принцип действия

Лицензия

Скорость работы гостевой ОС в сравнении с ОС хоста

Parallels Workstation

Parallels, Inc.

Intel x86, Intel VT-x

Windows, Linux, Mac OS X (Intel version)

Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris

Нет

Есть

Виртуализация, легковесный гипервизор

Проприетарная

Близка к производительности хост-системы

Virtual PC 2007

Microsoft

Intel x86, x64

Windows Vista (Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition

DOS, Windows, OS/2

Нет

Есть

Virtualization (перехват гостевых вызовов)

Проприетарная (бесплатная с июля 2006 года)

Практически без потерь, если используются расширения Virtual Machine additions

VirtualBox 2004

Innotek

Intel x86

32-bit Windows, Linux, MacOS X

DOS, Windows, Linux, OpenBSD

Нет

Есть

Динамическая рекомпиляция (основана на QEMU)

Свободная и проприетарная версии (GPL, PUEL)

Практически без потерь, если используются расширения

Продолжение таблицы

VMware Workstation 5.5

VMware

Intel x86, AMD64

Windows, Linux

DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances[10]

Есть

Есть

Виртуализация x86

Проприетарная

При использовании VMware Tools практически без потерь

Parallels Workstation - одно из самых мощных, доступных и простых в использовании решений для виртуализации, применяемое на рабочих станциях. Запустить на одном компьютере множество изолированных, стабильных и производительных виртуальных машин сможет с его помощью любой пользователь, независимо от квалификации.

Первая в индустрии технология “тонкого” гипервизора для рабочих станций, позволяет Parallels Workstation работать с каждой виртуальной машиной точно так же, как с реальным компьютером. Каждая виртуальная машина располагает своим процессором, своей оперативной памятью, дисководами CD или DVD, портами USB, устройствами ввода/вывода, то есть полным набором атрибутов реального компьютера. Кроме того, “тонкий” гипервизор Parallels Workstation позволяет пользователям уже сейчас воспользоваться всеми преимуществами аппаратных архитектур нового поколения, таких, как Intel Virtualization Technology® ("VT") и AMD "Pacifica".

Выбрав Parallels Workstation для развертывания виртуальной вычислительной инфраструктуры, предприятия и частные пользователи получают значительную экономию времени и денег.

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

Разработчики могут с помощью Parallels Workstation создавать виртуальные среды для разработки и тестирования нового программного обеспечения на единственном компьютере, получая возможность проверить работоспособность различных вариантов установки и использования ПО. Это упрощает и ускоряет процесс тестирования - тестеры выполняют больше работы за тот же срок, растет производительность и качество тестирования, что помогает выпускать более совершенные программные продукты.

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

Продемонстрировать и продать многоуровневое приложение с помощью одного ноутбука.

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

Старые, но необходимые приложения работают рядом с современными.

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

Персональная рабочая среда для обучения

Преподаватели с помощью Parallels Workstation могут создавать для каждого учащегося его собственную рабочую среду, даже если учащихся гораздо больше, чем компьютеров. Садясь за компьютер, студент знает, что сейчас он увидит перед собой привычную созданную им среду, в работу которой никто не вмешивался.

Основные возможности:

- Технология ”тонкого” гипервизора, позволяющая создавать стабильно работающие, высокопроизводительные виртуальные машины. * Полная совместимость с технологией Intel VT, оптимизация для технологии AMD "Pacifica".

- Устанавливается на любой компьютер, работающий под управлением Windows или Linux * Виртуальные машины работают практически со всеми гостевыми ОС, совместимыми с набором команд x86, включая Windows 3.1-XP/2003, Linux, FreeBSD, Solaris, OS/2, eComStation и DOS.

- Небольшой размер дистрибутива, установка одним нажатием на кнопку мыши.

- Система Мастеров (Wizards), позволяющая установить виртуальные машины любой сложности за несколько секунд.

- Простой и понятный интерфейс для управления и настройки виртуальных машин.

- Доступная цена.

Новые возможности, реализованные в Parallels Workstation 2.2:

- Улучшенная мощность, стабильность и изолированность виртуальных машин.

- Полностью переработанный пользовательский интерфейс.

- Возможность использования устройств подключаемых по шине USB - КПК, фотокамер и пр. непосредственно в виртуальных машинах, работа с WiFi, возможность подключения второго монитора при соотвествующем режиме работы.

- Улучшенный виртуальных процессор и расширенная поддержка технологии Intel VT® у виртуальных машин.

- Функциональность "Suspend and Resume" - возможность приостановить работу виртуальной машины не закрывая гостевую ОС, а позднее возобновить, не загружая.

- Поддержка PAE режима первичных ОС для размера памяти до 4GB of RAM.

- Использование пакета утилит Parallels Tools для персональной настройки гостевой среды.

- Поддержка SUSE Linux 10 в качестве, как первичной, так и гостевой ОС, а Sun Solaris - как гостевой.

2.2.2. Инструкции по работе с рекомендуемым программным обеспечением

Виртуальная машина Parallels Workstation работает на Windows, Linux и Mac OS. Размер дистрибутива для Windows 16,3 мегабайт.

Установка Parallels Workstation

Установка виртуальной машины выполняется мастером, который в ходе своей работы задаёт несколько стандартных вопросов: необходимо принять условия лицензионного соглашения; ввести своё имя и почтовый адрес для отправки на него ключа с ограниченным сроком действия для ознакомления с работой Parallels Workstation, либо, если программа уже была приобретена, ввести активационный ключ; выбрать папку для установки программы; выбрать имя новой группы ярлыков для запуска виртуальной машины в меню Пуск; включить создание ярлыков на рабочем столе или в панели быстрого запуска. После этого мастер скопирует файлы программы и установит необходимые драйверы. Для начала работы с виртуальной машиной перезагружать компьютер не требуется, если машина установлена на Windows XP и старше.

При первом запуске на экран будет выведено диалоговое окно мастера, который предложит либо создать новую виртуальную машину, либо открыть существующую.

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

На следующем шаге работы мастера нужно выбрать тип гостевой операционной системы, которая в последствии будет установлена на создаваемую виртуальную машину. Доступны следующие варианты: Windows (все версии от 3.11 до 2003), Linux (Red Hat, Debian, Fedora Core, SUSE, Mandriva, другие версии, в том числе ядра 2.4 и 2.6), FreeBSD (4, 5, другие), OS/2 (Warp 3, 4, 4.5, eComStation 1.1, 1.2, другие OS/2), Solaris (9, 10, другие), MS-DOS (6.22, другие). Последним идёт пункт Other.

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

Следующий шаг - создание виртуального жёсткого диска.

Здесь возможны два варианта: создать диск, под который сразу же будет отведён затребованный объём (Plain), или создать виртуальный жёсткий диск, который будет занимать в файловой системе основной операционной системы минимум места и будет увеличиваться по мере заполнения диска в виртуальной машине.

Выбор папки для хранения файла виртуального жёсткого диска.

Если в компьютере установлено несколько жёстких дисков, то имеет смысл хранить файлы виртуальных жёстких дисков не на системном диске. Далее нужно выбрать тип подключения виртуальной машины к сети.

Тип подключения к сети.

Доступны 3 варианта:

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

- Сеть только между гостевой и главной операционной системой.

- Без поддержки сети.

Если на компьютере установлено несколько сетевых адаптеров, то на следующем этапе настройки можно выбрать один из них.

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

Имя виртуальной машины.

Последний шаг настройки - выбор папки для хранения конфигурационного файла виртуальной машины и указание её имени.

После нажатия кнопки Готово будет открыто главное окно Parallels Workstation с перечислением всех настроек созданной виртуальной машины.

Главное окно Parallels Workstation.

Нажатие кнопки Edit откроет окно конфигуратора, при помощи которого можно изменить все настройки виртуальной машины, добавить или удалить оборудование.

Редактирование настроек виртуальной машины.

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

Нет смысла описывать каждую настройку, приведу несколько скриншотов с наиболее значимых.

На этой вкладке можно переподключить к виртуальной машине другой жёсткий диск или пересоздать виртуальный жёсткий диск с потерей всех данных (кнопка Recreate). На вкладке Advanced можно изменить канал, к которому подключен виртуальный жёсткий диск и сжать файл виртуального жёсткого диска.

Настройки привода.

На этой вкладке можно указать виртуальной машине на необходимость использовать привод или указать путь к файлу с образом диска в формате ISO. Аналогичная настройка присутствует и у дисковода.

В настройках виртуальной сетевой карты есть возможность сменить MAC-адрес.

После того, как все настройки проверены и в виртуальную машину добавлено всё необходимое оборудование, можно приступать к установке операционной системы. Для этого в привод нужно установить компакт-диск, запустить виртуальную машину при помощи кнопки Power On (справа в главном окне) и дальше установить ОС так же, как и на обычный компьютер.

Основная и гостевая операционные системы.

В правом нижнем углу главного окна виртуальной машины выведены значки всего оборудования, установленного в виртуальной машине. Значки информируют о том, подключено ли устройство в данный момент и используется ли оно. При помощи контекстного меню, вызываемого щелчком правой кнопки мыши по значку, можно изменить настройки устройства (например, выбрать образ для эмуляции CD), включить или отключить его.

Панель инструментов, размещённая по умолчанию справа в главном окне, перетаскивается при помощи мыши и может быть вынесена за пределы окна программы. Кнопки на панели стандартны: выключить, пауза (основной операционной системе возвращаются все ресурсы, занятые ранее виртуальной машиной, а её работа приостанавливается), включить, перезагрузка (reset). Нижние три кнопки предоставляют возможность переключить гостевую ОС в полноэкранный режим, просмотреть конфигурацию гостевой машины и вернуться в консоль. Чтобы передать мышь и клавиатуру в гостевую систему, достаточно щёлкнуть мышью в окно с гостевой системой. Возврат происходит при нажатии комбинации клавиш Ctrl+Alt. Для максимального комфорта при работе с виртуальной машиной рекомендуется установить специальный пакет инструментов, содержащий драйверы видео, мыши, сетевой карты. Помимо драйверов в комплект входят инструменты для синхронизации времени на гостевой системе со временем основной системы и для автоматической синхронизации буфера обмена. Помимо этого, после установки пакета инструментов, больше не возникает необходимости для передачи мыши и клавиатуры гостевой системе щёлкать мышью в окно гостевой системы, а для их возврата - нажимать Ctrl+Alt. Теперь мышь автоматически передаётся гостевой системе при нахождении курсора мыши над главным окном программы, а клавиатура - при наличии фокуса на главном окне Parallels Workstation. Помимо перечисленного выше, устанавливается утилита, которая позволяет сжать файл виртуального жёсткого диска. Сжатие возможно только при условии, что под виртуальный диск не было сразу отведено место, равное объёму виртуального жёсткого диска. Если это условие выполняется, то утилита очистит неиспользуемое пространство на виртуальном жёстком диске и размер файла виртуального жёсткого диска сократиться.

Настройки всех инструментов собраны в Центре управления, ярлык для вызова которого размещён в трее.





Не сдавайте скачаную работу преподавателю!
Данную дипломную работу Вы можете использовать как базу для самостоятельного написания выпускного проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем дипломную работу самостоятельно:
! Как писать дипломную работу Инструкция и советы по написанию качественной дипломной работы.
! Структура дипломной работы Сколько глав должно быть в работе, что должен содержать каждый из разделов.
! Оформление дипломных работ Требования к оформлению дипломных работ по ГОСТ. Основные методические указания.
! Источники для написания Что можно использовать в качестве источника для дипломной работы, а от чего лучше отказаться.
! Скачивание бесплатных работ Подводные камни и проблемы возникающие при сдаче бесплатно скачанной и не переработанной работы.
! Особенности дипломных проектов Чем отличается дипломный проект от дипломной работы. Описание особенностей.

Особенности дипломных работ:
по экономике Для студентов экономических специальностей.
по праву Для студентов юридических специальностей.
по педагогике Для студентов педагогических специальностей.
по психологии Для студентов специальностей связанных с психологией.
технических дипломов Для студентов технических специальностей.

Виды дипломных работ:
выпускная работа бакалавра Требование к выпускной работе бакалавра. Как правило сдается на 4 курсе института.
магистерская диссертация Требования к магистерским диссертациям. Как правило сдается на 5,6 курсе обучения.

Другие популярные дипломные работы:

Дипломная работа Формирование устных вычислительных навыков пятиклассников при изучении темы "Десятичные дроби"
Дипломная работа Технологии работы социального педагога с многодетной семьей
Дипломная работа Человеко-машинный интерфейс, разработка эргономичного интерфейса
Дипломная работа Организация туристско-экскурсионной деятельности на т/к "Русский стиль" Солонешенского района Алтайского края
Дипломная работа Разработка мероприятий по повышению эффективности коммерческой деятельности предприятия
Дипломная работа Совершенствование системы аттестации персонала предприятия на примере офиса продаж ОАО "МТС"
Дипломная работа Разработка системы менеджмента качества на предприятии
Дипломная работа Организация учета и контроля на предприятиях жилищно-коммунального хозяйства
Дипломная работа ЭКСПРЕСС-АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ ООО «АКТ «ФАРТОВ»
Дипломная работа Психическая коммуникация

Сейчас смотрят :

Дипломная работа Сущность и специфика работы социального педагога в специальной (коррекционной) школе-интернате VIII вида
Дипломная работа Порядок осуществления государственного кадастрового учета земель на уровне муниципального образования
Дипломная работа Теория и практика управления государственным предприятием
Дипломная работа Маркетинговый анализ ассортимента лекарственных средств в педиатрии
Дипломная работа Учет основных средств
Дипломная работа Проект реконструкции АТС-62/69 г. Алматы с заменой АТСДШ на цифровую АТС
Дипломная работа Проблемы совершенствования управления деятельностью дошкольного образовательного учреждения
Дипломная работа Организация учета расчетов с бюджетом и внебюджетными фондами
Дипломная работа Совершенствование развития кредитной политики коммерческого банка
Дипломная работа Снижение себестоимости строительных работ
Дипломная работа Ипотечное кредитование и перспективы его развития в России
Дипломная работа Сущность финансового результата деятельности фирмы
Дипломная работа Разработка базы данных
Дипломная работа Разработка эффективных систем защиты информации в автоматизированных системах
Дипломная работа Аудит бухгалтерской финансовой отчетности предприятия