Мегаобучалка Главная | О нас | Обратная связь


Сведения об операционной системе UNIX



2015-11-27 601 Обсуждений (0)
Сведения об операционной системе UNIX 0.00 из 5.00 0 оценок




ББК

 

 

Нефедев К.В.

  Основы высокопроизводительных вычислений. Методическое пособие. – Владивосток: Издательство Дальневосточного федерального университета, 2011. – 70 с.  
  Данное пособие предназначено для начального освоения практического курса высокопроизводительных вычислений. Предполагается, что приводимой информации дос­таточно для начала работы на высокопроизводительных компьютерах (кластерах). При этом основной упор делается на освоение практических навыков работы на вычислительном HP-кластере ДВФУ. Курс включает в себя вводные сведения об операционной системе UNIX, архитек­туре суперкомпьютеров и вычислительных кластеров, обнаружении и исполь­зовании параллелизма программ, технологиях параллельного программирова­ния, использовании редактора vi. Методическое пособие может быть полезно для студентов естественнонаучных специальностей, интересующихся разработкой параллельных алгоритмов и созданием параллельных программ.  
   

 

ББК

 

 

© К.В. Нефедев, 2011

© ИФИТ ДВФУ, 2011



Оглавление

Операционная система UNIX.. 5

Источники информации. 5

План занятий, практические задания, политика доступа. 5

Сведения об операционной системе UNIX.. 5

Вход на кластер. 7

Компиляция. 7

Запуск программ.. 7

Полноэкранный редактор vi 7

Режимы работы редактора. 8

Ввод текста. 8

Команды.. 8

Перемещение курсора. 8

Командная строка. 9

Блоки, буферы, окна редактирования. 9

Параллелизм и его использование.. 10

Параллелизм.. 10

Использование параллелизма. 12

Эффективность распараллеливания. 15

Задание 1. 16

Технология MPI. 16

Обзор MPI. 17

Формат функций MPI. 19

Пример MPI-программы.. 19

Коммуникаторы.. 23

Прием/передача сообщений между отдельными процессами. 25

Взаимодействующие вычислительные процессы в технологии MPI. 33

Коллективные взаимодействия процессов. 33

Синхронизация процессов. 35

Работа с группами процессов. 35

Технологии параллельного программирования.. 36

Спецкомментарии. 36

Расширения существующих языков программирования. 36

Технологии построения суперкомпьютеров. Кластерные технологии.. 38

Производительность параллельных компьютеров. 38

Задание 2. 39

Классификация параллельных компьютеров. 39

Вычислительные кластеры.. 39

Список ТОР500. 40

Сравнение коммуникационных технологий построения кластеров. 40

Системы хранения данных. 41

Высокопроизводительные вычисления в России. 42

Модель программирования. 43

MIMD и SPMD.. 43

Коммуникации типа «точка-точка». 44

Неблокирующие операции передачи сообщений. 47

Задание 3. 48

Коллективные коммуникации. 48

Задание 4. 55

Группы, контексты, коммуникаторы и топологии. 55

Задание 5. 60

Интеркоммуникаторы.. 60

Задание 6. 61

Сложные типы данных в MPI. 61

Задание 7. 64

MPI 2.0: Односторонние коммуникации. 64

Задание 8. 67

MPI 2.0: Динамическое управление процессами. 67

Задание 9. 68

Задание 10. 68

Задание 11. 68

ОСНОВНАЯ РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА.. 69

 


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

 

Источники информации

В качестве основного источника информации по данному курсу рекомендуется глобальная сеть Интернет

http://parallel.ru/

http://www.viva64.com/ru/articles/parallel-programming/

http://www.computerra.ru/hitech/242551/

http://software.intel.com/ru-ru/parallel/

 

План занятий, практические задания, политика доступа

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

 

 

Сведения об операционной системе UNIX

UNIX - это многозадачная, многопользовательская система, обладающая ши­рокими возможностями. Ее реализации существуют практически на всех рас­пространенных компьютерных платформах. Более того, подавляющее боль­шинство параллельных компьютеров работает под управлением той или иной разновидности UNIX, например, суперкомпьютеры Cray - под управлением UNICOS, Hewlett-Packard - под управлением HP-UX, IBM - под управлением AIX и т.д. В частности, вычислительный кластер ДВГУ работает под управлением LINUX, одного из наиболее известных свободно распространяе­мых диалектов UNIX.

 

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

 

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

 

Важнейшим пользовательским процессом является основной командный ин­терпретатор (login shell). При входе пользователя в систему он спрашивает учетное имя пользователя (login) и пароль (password) пользователя. Первое, что нужно сделать после входа в систему с использованием стандартного или на­значенного администратором пароля, - это поменять пароль при помощи ко­манды passwd. Общим пожеланием при выборе нового пароля является сле­дующее: пароль должен хорошо запоминаться и быть трудным для подбора. Для завершения сеанса работы нужно набрать команду exit.

 

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

 

Каждый пользователь системы имеет уникальное имя, с которым ассоцииру­ется идентификатор пользователя (UID). Именно это имя используется при входе в систему (login). Пользователь является членом одной или нескольких групп, с которыми связаны идентификаторы групп (GID). Принадлежность к группе определяет дополнительные права, которыми обладают все пользова­тели группы. Информация о пользователях и группах обычно хранится в сис­темных файлах /etc/passwd, /etc/shadow и /etc/group.

 

В UNIX все множество файлов организовано в виде древовидной структуры, называемой файловой системой. Каждый файл имеет имя, определяющее его расположение в файловой системе. Связь между именами файлов и собственно файлами обеспечивается при помощи каталогов. Корнем файловой системы является корневой каталог, имеющий имя "/". Имена всех остальных файлов содержат путь - список каталогов, которые нужно пройти, чтобы достичь файла. При этом имена каталогов разделяются знаком "/". Например, "/home/asa/myfile.txt". При перемещении по файловой системе текущий каталог называется а каталог на единицу более высокого уровня. Кроме
того, с каждым пользователем ассоциируется его домашний каталог, в котором по умолчанию хранятся его файлы.

 

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

1 2 3 4 5 6 7 8

-rwxr-xr-- 1 asa group 3422 Feb 28 13:30 test

 

В первом столбце выдачи приводится список прав доступа к файлу. Первый символ обозначает тип файла (в данном случае "-" означает обычный файл; другие возможные значения: "d" - каталог, "l" - ссылка и др.), далее идут три группы по три символа, задающие собственно права доступа: первая группа из трех символов - права для владельца-пользователя, следующая группа - для владельца-группы и последняя группа - права для всех остальных пользовате­лей. При этом "-" означает отсутствие права доступа, "r" - право на чтение файла, "w" - право на запись в файл или его удаление, "x" - право на выполне­ние файла. В нашем примере владелец файла (asa) имеет права на чтение, за­пись и выполнение (rwx), члены группы-владельца (group) имеют права на чте­ние и выполнение файла, но не имеют права на запись в файл (r-x), а все ос­тальные пользователи имеют только право на чтение файла (r-- ). Существует также несколько дополнительных атрибутов, а для других типов файлов (на­пример, для каталогов) приведенные атрибуты могут иметь несколько иное значение.

 

Сменить права доступа к файлу можно при помощи команды

chmod [u g o a][+ - =][r w x] filel...

При этом "u" означает смену права доступа для пользователя, "g" - для группы, "o" - для других пользователей, "a" - сразу для всех трех категорий. "+" озна­чает добавление соответствующего права, "- " - удаление, а "=" - присвоение. Например, для добавления членам группы group права записи в файл test нужно выполнить команду chmod g+w test.

 

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

 

Рассмотрим основные операции, которые можно производить с файлами и ка­талогами:

• cd [dir] - переход в каталог dir. Если каталог не указан, то пере­ход осуществляется в домашний каталог пользователя;

• cp file1 file2 - копирование файла;

• scp file1 file2 - копирование файла с использованием парольной защиты;

• mv filel file2 - перемещение (изменение имени) файла;

• rm filel... - удаление файлов;

• rmdir dirl... - удаление каталогов;

• mkdir dirl... - создание каталога;

• pwd - вывести имя текущего каталога;

• cat file, more file, less file - утилиты просмотра содержи­мого файла;

• find dir - поиск в файловой системе, начиная с каталога dir.

• grep <рег_выражение> filel... - поиск в файлах вхождений регу­лярного выражения рег_выражение.

^ ...

 

Второй тип объектов в UNIX - это процессы. Под процессом упрощенно можно понимать программу в стадии ее выполнения. Одновременно в системе выпол­няется достаточно большое число процессов, часть из которых является сис­темными, а часть - пользовательскими. Для того чтобы просмотреть список выполняющихся процессов, нужно воспользоваться командой ps. Каждый про­цесс имеет некоторый набор атрибутов, в частности, уникальный идентифика­тор процесса (PID), который используется для управления его работой, напри­мер, посредством посылки сигналов. Для того чтобы завершить выполнение процесса, нужно послать ему соответствующий сигнал командой kill -9 pid. Список процессов, занимающих наибольшее количество процессорного вре­мени или системных ресурсов, можно посмотреть, используя команду top.

 

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

или ">>" (с добавлением), для потока ошибок - "2>". Например:

program > file.log

Здесь запускается программа program, а ее стандартный вывод перенаправля­ется в файл file.log.

 

Можно запустить сразу несколько программ так, что стандартный вывод одной передается непосредственно на стандартный ввод другой. Для этого использу­ется конструкция " |", называемая конвейером команд: programl | program2 | program3...

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

 

Можно запустить программу в фоновом режиме. В этом случае не будет ожи­даться завершение ее выполнения, а сразу появится системное приглашение, и можно будет продолжить работу в командном интерпретаторе. Для этого стро­ку команды необходимо завершить символом "&": program &

 

Список пользователей, работающих в данный момент в системе, можно по­смотреть при помощи команды who. Некоторые сведения о системе выдаются по команде uname.

 

Для редактирования файлов в разных системах могут быть предусмотрены раз­личные наборы средств. Чаще всего имеются редакторы vi, joe и другие, можно также пользоваться встроенным редактором файлового менеджера Midnight Commander (mc). Другим возможным вариантом является удаленное редактирование файлов с последующей их пересылкой на целевой компьютер.

 

Компилятор с языка Си обычно вызывается командой cc (cc для Си++), компи­лятор с языка Фортран - f77 (f90 для Фортрана 90).

 

Для удаленного доступа на другой компьютер можно пользоваться командой telnet (или ssh для защищенного доступа), а для копирования файлов - коман­дой ftp (для защищенного sftp или scp).

 

Вход на кластер

Удаленный доступ к вычислительному кластеру осуществляется через голов­ную машину. В настоящий момент удаленный терминальный доступ на кластер осуществляется по протоколу SSH версии 2 (SSH1 пока так­же поддерживается). В Unix этот протокол поддерживается стандартной ко­мандой ssh. В среде Windows можно пользоваться терминальной программой TeraTerm с дополнительным модулем для поддержки SSH или другими про­граммами (Telneat, SSHSecureShellClient, sshNT.exe, PuTTY и др.).

 

В связи с проблемами безопасности протокола FTP, передача файлов на кластер осуществляется по другим протоколам, таким как scp, Zmodem, SFTP и др.

 

 

все зарегистрированы с паролем badpass.

просьба пароль сменить.

вход в сети матфака - ssh abacus1

снаружи - ssh [email protected] - пароль magistrat2010

 

 

Компиляция

Для компиляции MPI-приложений рекомендуется пользоваться командами mpicc (для программ на С), mpiCC (для программ на С++), и mpif77/mpif90 (для программ на Фортране 77/90). Опция компилятора "-o name" позволяет задать имя name для получаемого выполнимого файла, по умолчанию выполнимый файл называется a.out. Для оптимизации рекомендуется использовать ключ компилятора "-fast", например:

mpif77 -fast -o program program.f

Если необходимо только скомпилировать один объектный модуль и не выпол­нять линковку, используется опция "-с", например: mpiCC -c program2.C

Для сборки многомодульных приложений целесообразно пользоваться утили­той make. Простейшие примеры MPI-программ на языках Си и Фортран 77/90 доступны на кластере в каталоге /usr/local/examples.

 

Запуск программ

Задача ставится в очередь обычной командой запуска MPI-приложений (в квад­ратных скобках указаны необязательные параметры):

mpirun -np N <программа с аргументами!>

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

 

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

 



2015-11-27 601 Обсуждений (0)
Сведения об операционной системе UNIX 0.00 из 5.00 0 оценок









Обсуждение в статье: Сведения об операционной системе UNIX

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (601)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)