Реферат по предмету "Информатика, программирование"


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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессиональногообразования Красноярский государственный педагогический университет им. В.П.Астафьева
Институт математики, физики и информатики
Факультет информатики
Кафедра информатикии вычислительной техники
Выпускнаяквалификационная работа
Основыпараллельного программирования на кластере и  разработка элективного курса  «Администрированиев информационных системах и администрирование виртуальных машин»
Работувыполнил:
ГончаровИван Викторович
________________________ (роспись)
Научныйруководитель:
ШикуновСергей Анатольевич
к.ф.-м.н.,доцент _____________(роспись)
Рецензент:
ПрохоровАлексей Анатольевич
ст.преподаватель_____________(роспись)
Допущенак защите:
Пак Н.И.
д.п.н.,профессор, зав. каф.ИВТ
Оценка:
Датазащиты (число, месяц, год)
Красноярск 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 и относительно «свежий» продукт — ParallelsWorkstation, созданный в компании 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/networkstart
Если дистрибутив вашейсистемы не позволяет применять master/slave нотификацию при конфигурации сетевыхинтерфейсов, то вам придется поднимать интерфейс связанного канала вручную,используя следующую последовательность команд:
/sbin/ifconfigbond0 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     Linkencap:Ethernet  HWaddr 00:C0:F0:1F:37:B4
inetaddr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
UP BROADCASTRUNNING MASTER MULTICAST  MTU:1500  Metric:1
RXpackets:7224794 errors:0 dropped:0 overruns:0 frame:0
TXpackets:3286647 errors:1 dropped:0 overruns:1 carrier:0
collisions:0txqueuelen:0
eth0      Linkencap:Ethernet  HWaddr 00:C0:F0:1F:37:B4
inetaddr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
UP BROADCASTRUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RXpackets:3573025 errors:0 dropped:0 overruns:0 frame:0
TXpackets:1643167 errors:1 dropped:0 overruns:1 carrier:0
collisions:0txqueuelen:100
Interrupt:10Base address:0x1080
eth1      Linkencap:Ethernet  HWaddr 00:C0:F0:1F:37:B4
inetaddr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
UP BROADCASTRUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RXpackets:3651769 errors:0 dropped:0 overruns:0 frame:0
TXpackets:1643480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0txqueuelen:100
Interrupt:9Base address:0x1400
lo        Linkencap:Local Loopback
inetaddr:127.0.0.1  Mask:255.0.0.0
UP LOOPBACKRUNNING  MTU:16436  Metric:1
RXpackets:1110 errors:0 dropped:0 overruns:0 frame:0
TXpackets:1110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Если вы увидели нечтоподобное на экране монитора, можете себя поздравить, вы успешносконфигурировали связанный канал. Как видите, ip- и MAC-адреса всех сетевыхинтерфейсов у нас получились одинаковыми. Чтобы switch мог нормально работать стаким каналом вам необходимо настроить Link Aggrigation. Как это делать выможете прочитать в документации вашего коммутатора. Для разных моделейкоммутатров и разных версий их программного обеспечения это может делатьсяпо-разному. Поэтому в данной книге мы опустим вопросы настройки LinkAggrigation на коммутаторах.
В интернете встречаютсясообщения, что в некоторых случаях, после поднятия виртуального сетевогоинтерфейса дополнительные каналы не могут сразу принимать входящие покеты. Этоможет произойти по причине того, что новый 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на витой паре). Однако дешевизна такой сети, вследствие коллизий оборачиваетсябольшими накладными расходами на межпроцессорные обмены, а хорошуюпроизводительность такого кластера можно ожидать только на задачах с оченьпростой параллельной структурой и при очень редких взаимодействиях междупроцессами (например, перебор вариантов).
Для получения хорошейпроизводительности межпроцессорных обменов используют полнодуплексный FastEthernet на 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  160Mbyte/sec     5 sec
4. SCI         400Mbyte/sec (реально 100)          2.3 sec
5. cLAN     150 Mbyte/sec     30sec
Фактически пропускнаяспособность и латентность не только характеризуют кластер, но и ограничиваюткласс задач, которые могут эффективно решаться на нем. Так, если задача требуетчастой передачи данных, кластер, использующий сетевое оборудование с большойлатентностью (например GigabitEthernet), будет большую часть времени тратитьдаже не на передачу данных между процессами, а на установление связи, в товремя как узлы будут простаивать, и мы не получим значительного увеличенияпроизводительности. Впрочем, если пересылаются большие объемы данных, влияниепериода латентности на эффективность кластера может снижаться за счет того, чтосама передача потребует достаточно большого времени, может быть даже в разыбольше периода латентности.
Для малобюджетныхкластеров использование супербыстрых Myrinet, SCI, cLAN скорее всего можетоказаться нереальным с финансовой точки зрения. Поэтому рассмотрим болеедешевые решения. Использование для кластера 10Mbit-сети хотя и возможно, номалоприятно. В результате вы рискуете получить от использования кластера большеразочарований, чем реального увеличения эффективности вашей работы. Далее мыбудем рассматривать оборудование для сетей от 100Mbit и выше.
Сетевые карты. В качествесетевых адаптеров можно использовать любые имеющиеся в продаже карты,поддерживающие работу в стандартах 100BaseTx и GigabitEthernet. Что касаетсясписка предпочтений, то можно порекомендовать в первую очередь 3Com. Средидругих вариантов можно назвать Compex, Intel, Macronix, другие карты,поддерживаемые драйвером tulip, например карты на чипсетах DC21xxx. Особеннопопулярными при построении кластеров явяляются платы на базе микросхем Intel21142/21143. Популярность этих карт вызвана бытующим мнением об их высокойпроизводительности, в то время как их цена по сравнению с конкурирующимипредложениями обычно довольно невелика. Что касается сетевых карт фирмы 3Com,то они имеют некоторые преимущества, заметно влияющие на производительностьсетевых коммуникаций. Приведем лишь несколько примеров возможностей аппаратногообеспечения карт 3Com.
Разгрузка процессора привычислении контрольных сумм TCP/UDP/IP. Освобождает центральный процессор отинтенсивных вычислений контрольных сумм, выполняя их в самой сетевой плате. Темсамым повышается производительность системы и время жизни процессора.
Освобождение ЦП при восстановлениисегментированных пакетов TCP. Снижает нагрузку на центральный процессор,повышая производительность системы.
Объединение прерываний.Позволяет группировать несколько полученных пакетов. Оптимизируетвычислительную эффективность хост-компьютера, сокращая число прерываний имаксимально освобождая процессорные ресурсы для работы приложений.
Режим Bus mastering DMA. Обеспечивает более эффективный обмен данными дляснижения загрузки центрального процессора.
В любом случае, если выне предполагаете использовать технологию связывания каналов (channel bonding),которая позволяет объединять несколько сетевых адаптеров в один скоростнойвиртуальный канал, то вы можете себя чувствовать достаточно свободно выбираядля покупки ту или иную карту. Практически все современные сетевые карты,имеющиеся сейчас в продаже, без проблем распознаются Linux'ом и нормальноработают.
Для организациисвязанного канала (channel bonding) лучше всего выбрать сетевые карты IntelEtherExpress PRO/100, 3Com FastEthernet (например 3c905B, 3c905C) иликакие-либо карты GigabitEthernet от 3Com или Intel. Так же интересным вариантомявляются специализированные серверные сетевые карты, в которых имеется болееодного Ethernet-порта. Примерами таких адаптеров могут быть Intel EtherExpressPRO/1000 MF Dual Port или 3Com Fast EtherLink Server Dual Port 3c982C-TXM,которые я без труда нашел на 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.
Конечно, принимая решениео выборе коммутатора, необходимо учесть и другие их характеристики, в том числецену. Хорошая продукция и стоит дороже. Так, отличные коммутаторы CiscoCatalyst (например, известная модель 5000, имеющая большее число портов иподдерживающая возможность связывания каналов) имеют более высокую цену, чемоборудование не столь «именитых» фирм.
Не все коммутаторы могутобеспечить возможность применения связанных каналов. Если вы предполагаетеиспользовать channel bonding для увеличения пропускной способности вашей сети,то необходимо с особой тщательностью подходить к выбору коммутатроа. Обычныехабы в этом случае отпадают сразу. Проблема в связывании каналов заключается втом, что пр наличии channel bonding у вас появляется две или несколько сетевыхкарт с одинаоквым MAC-адресом. В обычном режиме работы коммутатор либо просто «сойдетс ума», либо будет интенсивно перестраивать свои внутренние таблицыпортов, переназначая ваш MAC-адрес с одного порта на другой. Это может привестилибо к полной неработоспособности канала, либо к значительным потерям пакетов исущественному снижению производительности сети. Для обеспечения нормальнойработы таких связанных каналов в коммутаторе должны быть предусмотрены функцииLink Aggrigation или, по другому, работа в стандарте IEEE 802.3ad. При покупке коммутаторавнимательно читайте прилагаемые спецификаци и ищите эти магическиесловосочетания. Не все коммутаторы, имеющие функцию Link Aggrigation, позволяютприменять ее для всех портов. Например, существуют модели, которые имеют 12/24100Мбит и два гигабитных порта. В таких моделях Link Aggrigation можнонастроить только для гигабитных портов, используя их для связи между двумякоммутаторами. Ясно, что такие модели не применимы для наших целей. Поэтомуконсультации со специалистами при покупке коммутатора обязательны.
В качестве примеровкоммутатором, позволяющих настроить Link Aggrigation, можно упомянуть CiscoCatalist 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
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 и др.
Приведем примериспользования всех этих функций:
CALLPVMFINITSEND(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 )
callpvmfmcast( ntask, tids, msgtag, info )
Функция pvm_send()помечает сообщение тагом msgtag и выполняет немедленную пересылку данныхпроцессу с соответствющим идентификатором tid.
Функция pvm_mcast()помечает сообщение тагом msgtag и выполняет немедленную пересылку данных всепроцессам, имеющим идентификаторы, совпадающими со значениями, хранящимися вмассиве tids. Длина массива tids равна ntask.
Следующие функциипредназначены для совмещения работы по упаковке данных и их пересылке:
callpvmfpsend( 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
callpvmfnrecv( tid, msgtag, bufid )
Параметры и возвращаемоезначение этой функции аналогичны используемым в блокирующей функции. Отличиезаключается в том, что вызов pvm_nrecv не инициирует процесс ожиданиясообщения. В случае, если ожидаемое сообщение еще не поступило, в bufidвозвращается 0. Функция pvm_nrecv может быть вызвана в процессе счетанеоднократно.
В случае, когда ожиданиесообщения не должно прерывать выполнение программы, для проверки фактаполучения сообщения можно использовать слудующую функцию:
callpvmfprobe( tid, msgtag, bufid )
Если ожидаемое сообщениееще не пришло, эта функция возвращает bufid=0. По пришествии сообщения в bufidвозвращается значение отличное от нуля. Функцию можно вызывать неоднократно,заполняя время между вызовами какой-либо другой продуктивной работой. Функцияpvm_probe не получает сообщение, для его получение необходимо воспользоватьсяодной из соответствующих функций.
Вместо последовательноговызова процедур блокирующего приема сообщения и распаковки буфера с извлечениемданных в локальные переменные можно использовать функцию
callpvmfprecv( 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 Распаковкаполученных данных
Функции распаковкиданных, записанных в приемном буфере, применяются в той же последовательности,в какой применялись функции упаковки данных в посылаемое сообщение.
callpvmfunpack( what, xp, nitem, stride, info )
Параметр xp — массив,куда будут помещены распакованные данные.
Параметры nitem и strideимеют тот же смысл, что и в соответствующих функциях упаковки (см. выше).
Параметр what был так жеописан выше.
 
1.6.6 Отладка в PVM
По умолчанию толькотекст, выводимый родительской задачей (то есть той, которую вы сами запустили стерминала) окажется на экране. Стандартный вывод задач, запускаемых функциейpvm_spawn(), по умолчанию перенаправляется в LOG-файл исполняющей системы PVM($PVM_TMP/pvml.*). Функция
call pvmfcatchout( onoff, info )
позволяет перенаправитьего в любой другой открытый для записи файл, например, фрагмент
callpvmfcatchout (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  –одно из самых мощных, доступных и простых в использовании решений длявиртуализации, применяемое на рабочих станциях. Запустить на одном компьютеремножество изолированных, стабильных и производительных виртуальных машин сможетс его помощью любой пользователь, независимо от квалификации.
Первая в индустриитехнология “тонкого” гипервизора для рабочих станций, позволяет ParallelsWorkstation работать с каждой виртуальной машиной точно так же, как с реальнымкомпьютером. Каждая виртуальная машина располагает своим процессором, своейоперативной памятью, дисководами CD или DVD, портами USB, устройствамиввода/вывода, то есть полным набором атрибутов реального компьютера. Крометого, “тонкий” гипервизор Parallels Workstation позволяет пользователям ужесейчас воспользоваться всеми преимуществами аппаратных архитектур новогопоколения, таких, как Intel Virtualization Technology® («VT») и AMD «Pacifica».
Выбрав ParallelsWorkstation для развертывания виртуальной вычислительной инфраструктуры,предприятия и частные пользователи получают значительную экономию времени иденег.
Поскольку ParallelsWorkstation дает пользователям возможность работать со множеством операционныхсистем, развернутых на единственном реальном компьютере, отпадает необходимостьв покупке дополнительных компьютеров для запуска специфических приложений подопределенными операционными системами. Таким образом, число необходимых дляполноценной работы компьютеров снижается, тем самым снижая расходы на приобретениеи обслуживание вычислительной техники. Одновременно сокращается и потребность вдорогих офисных площадях.
Разработчики могут спомощью 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® у виртуальных машин.
 - Функциональность «Suspendand Resume» — возможность приостановить работу виртуальной машины незакрывая гостевую ОС, а позднее возобновить, не загружая.
 - Поддержка PAE режимапервичных ОС для размера памяти до 4GB of RAM.
 - Использование пакетаутилит Parallels Tools для персональной настройки гостевой среды.
 - Поддержка SUSE Linux10 в качестве, как первичной, так и гостевой ОС, а Sun Solaris – как гостевой. 2.2.2. Инструкции поработе с рекомендуемым программным обеспечением
Виртуальная машина ParallelsWorkstation работает на Windows, Linux и Mac OS. Размер дистрибутива дляWindows 16,3 мегабайт.
Установка ParallelsWorkstation
Установка виртуальноймашины выполняется мастером, который в ходе своей работы задаёт несколькостандартных вопросов: необходимо принять условия лицензионного соглашения;ввести своё имя и почтовый адрес для отправки на него ключа с ограниченнымсроком действия для ознакомления с работой Parallels Workstation, либо, еслипрограмма уже была приобретена, ввести активационный ключ; выбрать папку дляустановки программы; выбрать имя новой группы ярлыков для запуска виртуальноймашины в меню Пуск; включить создание ярлыков на рабочем столе или в панелибыстрого запуска. После этого мастер скопирует файлы программы и установитнеобходимые драйверы. Для начала работы с виртуальной машиной перезагружатькомпьютер не требуется, если машина установлена на Windows XP и старше.
При первом запуске наэкран будет выведено диалоговое окно мастера, который предложит либо создатьновую виртуальную машину, либо открыть существующую.
/>
Для того чтобыпросмотреть настройки виртуальной машины, которые могут быть заданы при еёсоздании мастером, я выбрал второй пункт. Выбор первого пункта позволит быстросоздать виртуальную машину в типичной конфигурации, а выбор третьего — создатьпустую виртуальную машину.
/>
На следующем шаге работымастера нужно выбрать тип гостевой операционной системы, которая в последствиибудет установлена на создаваемую виртуальную машину. Доступны следующиеварианты: Windows (все версии от 3.11 до 2003), Linux (Red Hat, Debian, FedoraCore, 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 с перечислением всехнастроек созданной виртуальной машины.
/>
Главное окно ParallelsWorkstation.
Нажатие кнопки Editоткроет окно конфигуратора, при помощи которого можно изменить все настройкивиртуальной машины, добавить или удалить оборудование.
/>
Редактирование настроеквиртуальной машины.
На рисунке выше показанвесь перечень оборудования, которое можно установить в виртуальной машине.
Нет смысла описыватькаждую настройку, приведу несколько скриншотов с наиболее значимых.
На этой вкладке можнопереподключить к виртуальной машине другой жёсткий диск или пересоздатьвиртуальный жёсткий диск с потерей всех данных (кнопка Recreate). На вкладкеAdvanced можно изменить канал, к которому подключен виртуальный жёсткий диск исжать файл виртуального жёсткого диска.
/>
Настройки привода.
На этой вкладке можноуказать виртуальной машине на необходимость использовать привод или указатьпуть к файлу с образом диска в формате ISO. Аналогичная настройка присутствуети у дисковода.
/>
В настройках виртуальнойсетевой карты есть возможность сменить MAC-адрес.
После того, как всенастройки проверены и в виртуальную машину добавлено всё необходимоеоборудование, можно приступать к установке операционной системы. Для этого впривод нужно установить компакт-диск, запустить виртуальную машину при помощикнопки Power On (справа в главном окне) и дальше установить ОС так же, как и наобычный компьютер.
/>
Основная и гостеваяоперационные системы.
В правом нижнем углуглавного окна виртуальной машины выведены значки всего оборудования,установленного в виртуальной машине. Значки информируют о том, подключено лиустройство в данный момент и используется ли оно. При помощи контекстного меню,вызываемого щелчком правой кнопки мыши по значку, можно изменить настройкиустройства (например, выбрать образ для эмуляции CD), включить или отключитьего.
Панель инструментов,размещённая по умолчанию справа в главном окне, перетаскивается при помощи мышии может быть вынесена за пределы окна программы. Кнопки на панели стандартны:выключить, пауза (основной операционной системе возвращаются все ресурсы,занятые ранее виртуальной машиной, а её работа приостанавливается), включить, перезагрузка(reset). Нижние три кнопки предоставляют возможность переключить гостевую ОС вполноэкранный режим, просмотреть конфигурацию гостевой машины и вернуться вконсоль. Чтобы передать мышь и клавиатуру в гостевую систему, достаточнощёлкнуть мышью в окно с гостевой системой. Возврат происходит при нажатиикомбинации клавиш Ctrl+Alt. Для максимального комфорта при работе с виртуальноймашиной рекомендуется установить специальный пакет инструментов, содержащийдрайверы видео, мыши, сетевой карты. Помимо драйверов в комплект входятинструменты для синхронизации времени на гостевой системе со временем основнойсистемы и для автоматической синхронизации буфера обмена. Помимо этого, послеустановки пакета инструментов, больше не возникает необходимости для передачимыши и клавиатуры гостевой системе щёлкать мышью в окно гостевой системы, а дляих возврата — нажимать Ctrl+Alt. Теперь мышь автоматически передаётся гостевойсистеме при нахождении курсора мыши над главным окном программы, а клавиатура — при наличии фокуса на главном окне Parallels Workstation. Помимо перечисленноговыше, устанавливается утилита, которая позволяет сжать файл виртуальногожёсткого диска. Сжатие возможно только при условии, что под виртуальный диск небыло сразу отведено место, равное объёму виртуального жёсткого диска. Если этоусловие выполняется, то утилита очистит неиспользуемое пространство навиртуальном жёстком диске и размер файла виртуального жёсткого дискасократиться.
Настройки всехинструментов собраны в Центре управления, ярлык для вызова которого размещён втрее.
 
2.3 Разработкасодержания курса
Предлагаемый элективныйкурс содержит основы курса обучения администрированию Windows с углубленным обучением работы с виртуальнымимашинами.
За основу разработкиможно взять один из курсов обучения администрированию Windows, и доработать его до полноценного курса, добавивтемы, направленные на изучение виртуальных машин.
Цели и задачи курса:
В современных условияххозяйствования актуальным становится требование подготовки специалистов,обладающих необходимыми навыками использования современных информационныхсистем и технологий в сетевой среде. Необходимой составляющей такой подготовкиявляются как теоретические знания, так и практические навыки в областиадминистрирования и управления информационными системами.
Цель курса – дать студентам необходимые знания, умения и навыки в областисредств и методов администрирования в ИС, применяемых в настоящее время. Приэтом основными задачами предлагаемого курса являются:
— овладениетеоретическими знаниями в области управления информационными ресурсами систем исетей;
— приобретение прикладныхзнаний об объектах и методах администрирования в информационных системах;
— овладение навыкамисамостоятельного использования инструментальных программных систем, сетевыхслужб и оборудования для администрирования в ИС;
— овладение навыкамисамостоятельного использования виртуальных машин.
После изучения курса «Администрированиев информационных системах и администрирование виртуальных машин»  студентдолжен знать:
— процедурыадминистрирования в ИС;
— объекты и методыадминистрирования.
— технологию инсталляцииинформационных систем;
— принципы управления,мониторинга и аудита информационных систем;
— основы работы с виртуальнымимашинами.
уметь:
— выполнять инсталляцию инастройку приложений и служб информационной системы;
— организовыватьиспользование общих ресурсов в информационных сетях и системах;
— оценивать необходимостьприменения различных средств администрирования;
— организовывать защитуинформации в информационной системе;
— организовыватьбезопасную работу в Интернет;
-  организовывать работус виртуальными машинами.
Предлагаемый курс долженизучается в соответствии с графиком учебного процесса.
Изучение предлагаемогокурса должно производится в течение одного семестра.
Предлагаемое содержаниекурса обучения будущих учителей информатики приведено ниже.
Тема 1. Функции ипроцедуры администрирования.
Управление конфигурациейИС, выявление и контроль сбойных и ошибочных ситуаций, управление системойбезопасности, управление общим доступом. Необходимость процедурадминистрирования в ИС.
Тема 2. Объекты и методыадминистрирования.
Администрирование базданных. Администрирование операционных систем. Администрирование ЛВС.Администрирование почтовых и Internet серверов.
Тема 3. Службыадминистрирования.
Службы управленияконфигурацией. Службы контроля характеристик, ошибочных ситуаций.
Службы управлениябезопасностью. Службы управления общего пользования. Информационные службы.Интеллектуальные службы. Службы регистрации, сбора и обработки информации.Службы планирования и развития.
Тема 4 Эксплуатация исопровождение информационных систем.
Ведение статистики использования ресурсов ИС. Выявление и устранение узких местинформационной системы. Управление пользователями ИС.
Тема 5 Инсталляцияинформационных систем.
Планированиеинсталляционных работ. Выбор аппаратно-программных средств. Инсталляцияинформационной системы на примере Windows 2000. Настройка информационнойсистемы.
Тема 6. Оперативноеуправление и регламентные работы.
Методы выявлениянеполадок в работе информационной системы. Оперативное управление и устранениенеполадок в системе.
Тема 7. Управление иобслуживание технических средств.
Технические средства винформационных системах.
Методы тестирования технических средств. Обслуживание технических средств.
Тема 8. Информационныесистемы администрирования.
Принципы построенияинформационных систем администрирования. Консоль управления. Применение консолиуправления и терминальных служб для удаленного администрирования. Организациябаз данных администрирования.
Тема 9.Аппаратно-программные платформы администрирования операционных систем.
Средстваадминистрирования ОС на примере Windows 2000. Администрирование учетныхзаписей. Администрирование дисковых массивов.
Тема 10.Аппаратно-программные платформы администрирования баз данных.
Средстваадминистрирования баз данных на примере SQL Server 2000.
Тема 11.Аппаратно-программные платформы администрирования локальных сетей.
Средстваадминистрирования ЛВС на примере домена Windows 2000.
Тема 12.Аппаратно-программные платформы администрирования службы каталога. Средстваадминистрирования службы каталога на примере домена Windows 2000.
Тема 13.Администрирование систем, средств и участников безопасности информационныхсистем. Разработка структуры подразделений и групповых политик безопасности.Применение политик безопасности на примере Windows 2000.
Тема 14.Аппаратно-программные платформы администрирования служб информационных систем вглобальных сетях.
Средства администрирования служб WWW, FTP, SMTP, NNTP в глобальных сетях напримере Microsoft IIS. Средства администрирования служб маршрутизации иудаленного доступа на примере Microsoft RRAS Windows 2000.
Тема 15.Администрирование и управление доступом в Internet. Развертывание наборасредств для Интернет с использованием Microsoft IEAK.
Тема 16. Средстваавтоматизации администрирования.
Программирование всистемах администрирования. Сценарии регистрации и скрипты администрирования.Примеры систем администрирования с использованием Windows Script Host. СценарииADSI для системного администрирования Windows 2000.
Тема 17. Сущностьвиртуальных машин и их использование.
Изучение сущностивиртуальных машин, изучение основных современных виртуальных машин и ихиспользование.
Тема 18. Эксплуатация исопровождение виртуальных машин.
Ведение статистики использования ресурсов виртуальных машин. Выявление иустранение узких мест виртуальной машины.
Тема 19.  Инсталляциявиртуальных машин.
Планированиеинсталляционных работ. Выбор аппаратно-программных средств. Инсталляциявиртуальной машины на примере Parallels Workstation. Настройка виртуальноймашины и настройка утилиты Parallels Image Tool.
Тема 20. Оперативноеуправление и регламентные работы.
Методы выявлениянеполадок в работе виртуальной машины. Оперативное управление и устранениенеполадок в работе виртуальной машины.

2.4.   Тематическое планирование и рабочая программа курса
Изучение курса предусматриваетпроведение следующих видов занятий:
— лекции по основнымизучаемым темам;
Содержание лекционных занятий должно отвечать всем современнымнаучно-методическим требованиям фундаментальности теоретических знаний вобласти информатики и вычислительной техники в академических учебныхзаведениях.
— практические занятия поосновным изучаемым темам;
Содержание практических занятий должно способствовать освоению теоретическогоматериала и приобретению практических навыков.
— выполнение лабораторныхработ под руководством преподавателя на ПЭВМ;
Содержание лабораторных занятий должно формировать практические навыки работыпользователя в различной сетевой среде и обеспечивать студентов знаниями вобласти сетевых технологий.
— самостоятельная работастудентов с литературой и в компьютерных классах.
Программа курса «Администрированиев информационных системах и администрирование виртуальных машин»определяет подготовку студентов специальности «Информационные системы итехнологии» в использовании сетевых технологий, средств проектирования,эксплуатации и управления информационными сетями и работы с виртуальнымимашинами.
Ниже приведенотематическое планирование предлагаемого курса.


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

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

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.