Введение в ConvexOS
Крутиков М. П., Суперкомпьютерный Центр
Итак, вы стали (или собираетесь стать) пользователем ЭВМ CONVEX. Получить терминальный доступ к машине вы можете двумя способами:
- локально - работая с терминалов машины
- удаленно - через сеть
Подробнее рассмотрим эти способы входа.
В аудитории No 203 четвертого корпуса Технического университета развернут класс алфавитно-цифровых терминалов компьютеров CONVEX. Класс является ресурсом общего доступа. Режим работы терминального класса:
10:0018:00 ежедневно, кроме субботы, воскресенья и общевыходных дней.
При включении терминала вы увидите приглашение терминального сервера ByPlex. Сервер позволяет подключить терминал к любой из машин в кластере и понимает три команды:
- help - выдача краткой помощи по командам ByPlex
- quit - выход из ByPlex
- connect host - команда соединения с указанной машиной.
Последняя команда является единственно полезной. При регистрации администратор сообщает вам три атрибута:
- сетевое имя машины, на которой вы будете работать,
- ваше имя в системе ( login), и
- ваш пароль входа (храните пароль в тайне).
Сетевое имя машины вы и должны указать аргументом команде connect, чтобы соединиться с нужной машиной и начать процедуру входа в систему.
Соединившись с машиной вы получите приглашение типа
ConvexOS 10.1 (c1)
login:
в ответ на которое вы вводите свое имя (
login). Далее система попросит ввести пароль, и (если вы его не забыли и правильно ввели) вы проходите в машину и можете начинать работу.
Кроме терминалов в классе имеются персональные компьютеры, предназначенные для переноса файлов.
Кластер компьютеров CONVEX включен в сегмент локальной сети компьютерного центра и имеет выход в глобальную сеть Internet. Это позволяет пользователям подключаться к машинам CONVEX с любого компьютера, имеющего доступ в Internet. Практически это самый удобный способ доступа, поскольку позволяет вам использовать ресурсы CONVEX прямо со своего рабочего места (конечно, при условии, что ваше рабочее место имеет сетевое соединение).
Для удаленного доступа используются стандартные программные средства коммуникации в сетях TCP/IP ( telnet, ftp, и т.д.). Если у вас возникают затруднения или вы еще не имеете опыта работы с коммуникационными программами, проконсультируйтесь с администратором вашей локальной сети.
Также как и в случае локального доступа, вам надо знать те же три атрибута для осуществления доступа: имя машины, ваше имя в системе, пароль.
Чтобы завершить сеанс работы с компьютером, наберите команду
% logout
или
% exit.
Пожалуйста, не забывайте выходить из системы. Для этого есть по крайней мере две серьезных причины: первая - если вы ушли оставив ваш терминал подключенным к системе, любой человек может сесть за ваше место и ``поработать'' под вашим именем. Например стереть все ваши файлы, или посмотреть вашу почту и т.д.
Вторая причина заключается в том, что терминальное время (а не только процессорное время) подлежит учету и оплате. Не сделав logout вы рискуете получить неожиданно большой счет за услуги компьютерного центра.
Справочная информация по командам системы вызывается с помощью команды
% man subject
где вместо subject вы указываете имя интересующей вас команды. Например,
% man tar
выдаст справочную информацию о назначении и способах вызова архиватора tar.
Команда info вызывает меню-ориентированную систему помощи по операционной системе CONVEX.
Наконец, если вы не помните точно имени интересующей вас команды, попробуйте спросить
% apropos substr
где в качестве substr указывается ключевое слово поиска. Ответом будет список команд, краткое описание которых содержит указанное ключевое слово.
Гипертекстовый сервер компьютерного центра содержит много полезной информации о системе, в том числе ряд учебных пособий по работе в ConvexOS. Добро пожаловать на WWW-сервер центра:
URL http://www.csa.runnet.ru/CSA
Если у вас возникли проблемы с доступом на компьютер или с использованием прикладного или системного математического обеспечения, обращайтесь в соответствующую группу поддержки:
- adm-sos@csa.runnet.ru - группа администрирования пользователей. Обращайтесь сюда если возникли проблемы с доступом (типа ``забыл пароль'')
- soft-sos@csa.runnet.ru - поддержка прокладного математического обеспечения (FORTRAN, C, AVS, и т.д.)
- sys-sos@csa.runnet.ru - системная группа.
Войдя в систему, вы попадаете в среду командного интерпретатора
csh и получаете примерно такое приглашение
magic%
Подробно командный интерпретатор описан в отдельном пособии. Ниже мы приведем лишь самую краткую сводку команд.
Просмотр содержимого текущего каталога осуществляется командой
lf. В листинге команды исполняемые файлы будут помечены звездочкой, подкаталоги будут помечены знаком
/. Файлы, начинающиеся с символа точки вообще не будут показаны. Чтобы заставить команду показать все файлы, используйте ключ
-a. Пример
magic% lf -a
. README
.. Foo.dat
.cshrc a.out*
.login core
.logout katya/
Команда ll показывает содержимое каталога в ``длинном формате'', включая атрибуты доступа к файлу, его владельца, число имен файла, дату создания и размер.
Команда pwd выдает полное имя текущего каталога.
Копирование файлов осуществляется командой cp file newfile.
Сменить имя существующего файла позволяет команда mv oldname newname.
Удаление файлов осуществляется командой rm file. Будьте осторожны: команда rm не спрашивает подтверждения, поэтому `` rm *'' удалит все файлы без лишних бюрократических проволочек.
Создать подкаталог можно командой `` mkdir dirname.''
Удалить каталог (пустой) поможет команда `` rmdir dirname.''
Изменить атрибуты доступа к файлу можно с помощью `` chmod mode file,'' например ``% chmod go-rw secret.txt'' закрывает доступ к файлу secret.txt для всех, кроме его владельца.
Запуск задачи на выполнение может осуществляться в двух режимах:
- синхронный режим - командный интерпретатор будет ждать завершения задачи. В синхронном режиме запускаются все интерактивные задачи (скажем, редактор текстов, man, и т.д.). Задачи не требующие диалога с пользователем можно запустить в фоновом режиме.
- фоновый (асинхронный) режим - командный интерпретатор немедленно после запуска задачи выдает приглашение. Вы можете продолжать работать, а запущенная задача будет выполняться ``параллельно''. Как только фоновый процесс завершится, командный интерпретатор сообщит вам об этом.
По умолчанию все задачи запускаются в синхронном режиме. Для того, чтобы запустить задачу в фоновом режиме, поставьте амперсанд (& ) в конце командной строки.
Пример: следующая команда запускает задачу setka в синхронном режиме:
% setka data.txt
Ту же задачу можно послать на выполнение в фоновом режиме так:
% setka data.txt &
Не следует запускать расчетные задачи в фоновом режиме, так как большое количество таких задач может привести к перегрузке системы. Значительно лучше использовать систему пакетной обработки заданий CXbatch, которая имеет гибкие средства защиты от перегрузки.
По умолчанию, интерактивные задачи ожидают ввода информации с клавиатуры и выдают результат на экран. Имеется удобный механизм, позволяющий перенаправить ввод и/или вывод в файл. Делается это с помощью операторов ``
< '' и ``
> '' в командной строке.
Примеры:
% setka data.txt > output.txt
перенаправляет выходной поток задачи setka в файл output.txt. То, что setka выдала бы на экран окажется записанным в файл. Предыдущее содержимое файла будет потерено (если такого файла не было - он будет создан).
% setka data.txt > > output.txt
то же самое, но поток будет дописан к файлу с сохранением предыдущего содержимого.
% integral < input.txt
После такой команды входная информация для задачи integral будет браться не с клавиатуры, а из файла input.txt.
Компилятор CONVEX C является ANSI-совместимым оптимизирующим компилятором с языка C. Компилятор поддерживает директивы векторной и параллельной оптимизации, а также может осуществлять автоматическую векторную/параллельную оптимизацию. Пример вызова:
% cc -o setka -O1 setka.c method.c mathmod.o mlib.a
В данном примере компилятор вызван на построение исполняемого модуля
setka из следующих входных файлов
- setka.c и method.c - тексты программ на C
- mathmod.o - объектный модуль с подпрограммами
- mlib.a - библиотека объектных модулей
Ключ -O1 указывает компилятору провести оптимизацию уровня 1 (машинно-зависимая оптимизация и оптимизация на уровне базовых блоков).
Компилятор CONVEX FORTRAN является оптимизирующим компилятором с языка FORTRAN. Компилятор может работать в режимах совместимости с
- FORTRAN 90
- CRAY FORTRAN
- FORTRAN 77
Компилятор поддерживает директивы векторной и параллельной оптимизации, а также может осуществлять автоматическую векторную/параллельную оптимизацию. Пример вызова:
% fc -o setka -O2 setka.f method.f mathmod.o mlib.a
В данном примере компилятор вызван на построение исполняемого модуля
setka из следующих входных файлов
- setka.f и method.f - тексты программ на языке FORTRAN
- mathmod.o - объектный модуль с подпрограммами
- mlib.a - библиотека объектных модулей
Ключ -O2 указывает компилятору провести оптимизацию уровня 2 (машинно-зависимая оптимизация, оптимизация на уровне базовых блоков и автоматическая векторная оптимизация).
Стандартным средством редактирования текстов является редактор
vi. Обладая несколько непривычным пользовательским интерфейсом, этот редактор является достаточно мощным и, кроме того, имеет то преимущество, что поддерживает широкий набор терминалов. Он имеется практически на всех UNIX-подобных системах. Подробнее о работе с
vi смотри соответствующее учебное пособие.
Альтернативным редактором является emacs. Он имеет несколько более развитый (оконный) пользовательский интерфейс.
Пакет CONVEX Consultant содержит набор традиционных для UNIX средств отладки и профилирования программ.
- csd - Мощный отладчик, позволяет отлаживать программы на FORTRANE и C в терминах исходных текстов
- prof - простой профилировщик: позволяет оценить время, затраченное на выполнение отдельных блоков программы и, таким образом, найти наиболее ресурсоемкое место программы.
- gprof - более изощренный профилировщик. Позволяет проанализировать взаимосвязанность блоков программы.
- dump - утилита анализа причин аварийного разрушения задачи. Информирует о причине аварийного снятия задачи с выполнения и о приблизительном месте программы, где возникли проблемы.
Интегрированное средство отладки программ. Имеет развитой пользовательский интерфейс: для алфавитно-цифровых терминалов это оконная система ``Maryland windows'', для X-терминалов - графическая оболочка. Система команд напоминает
csd. Данный отладчик является специфическим для машин CONVEX средством.
Интегрированное средство профилирования программ. Имеет развитой интерфейс пользователя: для алфавитно-цифровых терминалов это оконная система ``Maryland windows'', для X-терминалов - графическая оболочка. Специфичен для машин CONVEX.
Средство поддержки программных проектов. По кругу решаемых задач средство близко к
make, но является более развитым с точки зрения различных способов оптимизации отдельных частей проекта.
Application Visualization System - графическая среда визуализации пользовательских массивов данных. Имеет встроенные средства обработки и просмотра побитовых картинок, графиков и геометрических объектов. Библиотека системы содержит около сотни модулей обработки и графического представления данных, что позволяет решить практически все проблемы визуализации (от графиков до многомерных векторных полей). Система имеет средства анимации.
AVS позволяет легко импортировать данные произвольной структуры. Система является ``открытой'', т.е. пользователь имеет возможность написать свой модуль обработки/генерации данных и подключить его к библиотеке AVS.
Система работает в графической среде X Window.
CXbatch является системой пакетной обработки заданий. Создана на базе пакетной системы NQS фирмы Sun Microsystems. Идея пакетной обработки заключается в том, что система выстраивает из поступающих запросов очередь. Поскольку задания в очереди имеют пониженный приоритет, они не мешают интерактивной работе пользователей. Более того, система следит за текущей степенью загрузки машины и таким образом получает возможность сглаживать пиковые нагрузки. В ряде случаев пакетное задание пользователя может быть автоматически перемещено на другую машину (если она загружена меньше).
С точки зрения пользователя все это приводит к более быстрому завершению его пакетной задачи.
В настоящее время в CXbatch сконфигурированы три очереди. Очереди различаются приоритетом выполнения и лимитом на системные ресурсы.
- short - самая быстрая очередь. Задания имеют самый высокий приоритет. Эта очередь имеет самое сильное ограничение на CPU-ресурс: не более 30 минут на задачу.
- long - длинная очередь. CPU-время ограничено 120 минутами.
- verylong - очень длинная очередь. Задания имеют самый низкий приоритет, нет ограничения на время счета. Именно в эту очередь ставьте тяжелые задачи (для счета ``на ночь'').
Краткий обзор команд:
qsub - послать задание в очередь,
qdel - снять с выполнения пакетное задание,
qps - получить справку о текущих задачах в пакетной системе.
В отличие от вашего персонального компьютера, машины CONVEX являются многопользовательскими и, в силу этого, имеют определенные ограничения на использование ресурсов пользователями.
Кроме жестких ограничений на ресурсы, существуют также ``правила хорошего поведения''. Все это вкратце изложено ниже.
При регистрации пользователя ему выделяется место на жестком диске. При этом ограничивается максимальный объем информации, который он может хранить. Это максимальное значение и называется дисковой квотой.
Подробнее, дисковая квота определяется двумя величинами: ``мягкий предел'' и ``жесткий предел''. При этом жесткая квота несколько больше мягкой.
Система никогда не позволит вам превысить жесткий предел. При превышении же мягкого предела вы будете постоянно информироваться системой о том, что ``вы превысили квоту на XXX килобайт''. Рекомендуем вам побыстрее очистить дисковое пространство. Если же в течении нескольких дней вы не снимете проблему, система автоматически снизит величину жесткой квоты до значения мягкой. После этого работать в системе практически невозможно.
Если возникли проблемы с местом, вот вам несколько советов:
- найдите в ваших каталогах все файлы с именем core и смело их стирайте. Эти файлы автоматически создаются системой при аварийном разрушении вашей задачи и содержат дамп памяти, помогающий определить причину. Эти файлы имеют достаточно большой размер.
- удалите ненужные объектные файлы
- отладчик CXdb создает директорию с именем .CXdb куда складывает рабочую информацию. Если вы закончили отладку, сотрите директорию вместе со всем содержимым: rm -r .CXdb.
- временно не нужные файлы соберите в архив с помощью команды tar и сожмите компрессором compress.
Посмотреть свою квоту вы можете командой quota.
По каждому пользователю ведется учет использования CPU времени и терминального времени. Что же это такое?
Терминальное время - это время вашей интерактивной работы (от момента входа в систему до момента выхода) с локального или удаленного терминала. Некоторые пользователи любят работать с системой одновременно с нескольких терминалов. Час одновременной работы одного пользователя с N терминалов будет учтен системой как N часов терминального времени. Поэтому, теоретически, можно набрать более 24 часов терминального времени в сутки.
Обсудим что такое CPU-время. Система CONVEX является системой разделения времени между задачами. Поэтому реальное время выполнения задачи зависит от количества заданий в очереди планировщика времени (т.е. от текущей загруженности системы). Объективным показателем использования процессорного ресурса является CPU время - время затраченное процессором именно на вашу задачу.
В однопроцессорных системах CPU-время всегда меньше реального времени выполнения задачи. В многопроцессорных системах это соотношение может быть любым (так как в сутках всего 24 часа реального времени, и N*24 часов процессорного времени, где N - количество процессоров).
В системе не ограничивается количество процессов, которые может запустить пользователь. Поэтому неразумное использование компьютера может привести к его значительным перегрузкам.
Самый простой способ избежать перегрузок - это использование пакетной очереди: сколько бы задач вы не отправляли в очередь, это не может привести к проблемам.
Многие считают, что, обойдя CXbatch, они смогут выиграть в реальном времени счета. Увы, это заблуждение. Следующие рассуждения помогут вам лучше понять систему разделения ресурсов.
Во-первых, не имеет смысла запускать одновременно процессов больше, чем количество CPU в системе. Дело в том, что если в системной очереди на процессор стоит только одна задача, то она целиком (и единолично) загружает этот процессор. Это самый выгодный режим работы задачи в смысле пользователя - реальное время счета минимально. При добавлении лишней задачи, она будет добавлена в очередь и загрузка процессора возрастет, а квант времени, выделяемый на каждую задачу сократится. Это приведет к возрастанию реального времени счета.
Во-вторых, кроме динамичного распределения загрузки процессоров и машин, CXbatch осуществляет последовательное (а не одновременное) выполнение заданий. При этом каждая из задач в очереди выполняется в максимально благоприятном режиме (по возможности одна задача на процессор). Небольшой пример: пусть 10 пользователей хотят просчитать по задаче, каждая из которых требует 1 час CPU-времени. Считаем для простоты машину однопроцессорной. Проанализируем интерактивный и пакетный варианты:
- Интерактивный запуск: все пользователи запустили задачи интерактивно. Степень загрузки системы поднялась до 10. Квант времени на каждую задачу составляет 1/10 времени квантования. Все задачи завершаться одновременно через 10 часов. Итак, система загружена до значения 10 в течение 10 часов, каждый из пользователей будет ждать результатов 10 часов.
- Пакетный режим: все пользователи поставили свои задания в пакетную очередь. Система пакетной обработки выстроила задания в порядке поступления и запустила на выполнение первую из них. Степень загрузки системы 1, задача выполняется в наиболее благоприятном режиме. Через час первый пользователь получит результат расчета, и будет запущена на выполнение следующая задача. И так далее. В итоге, загруженность системы остается на оптимальном уровне ``1''. Пользователям не придется всем ждать 10 часов (в среднем субъективное время расчета уменьшается до 5 часов).
Итак, пакетная система выгодна в первую очередь самим пользователям. Надо понимать, что пониженный приоритет заданий в очереди является лишь системным средством выравнивания нагрузок и, в конечном счете, помогает более эффективному использованию компьютера (и, как это ни парадоксально, приводит к уменьшению реального времени счета задачи).
Вывод: не запускайте расчетные программы интерактивно (кроме как с целью отладки) и имейте в виду, что в случае перегрузок администратор будет снимать с выполнения запущенные интерактивно пользовательские задачи.
В целях безопасности и защиты от несанкционированного доступа, пользователи должны:
- использовать достаточно сложные пароли
- ни в коем случае не сообщать свой пароль другому лицу (и, конечно, не записывать его на обложке тетради или на столе у терминала)
- время от времени менять пароль
Сложный пароль - это пароль
- не совпадающий с login именем
- содержащий не менее 8 символов
- содержащий символы различных регистров или цифры, наряду с символами нижнего регистра.
Начинающие пользователи иногда затрудняются придумать пароль, который, с одной стороны, легко запоминается, и, с другой стороны, является достаточно сложным, чтобы гарантировать невозможность его угадывания. Вот несколько простых способов преодолеть эту трудность
А. Пароль составляется из нескольких простых слов, разделенных одним из специальных знаков типа !"#;:,.*()_+=|\/?< > или пробелом, например:
nice$day
see_you& later
be@quite
dwa rublya
sasha+masha=love
Б. Пароль составляется из первых букв простой фразы (с соблюдением пунктуации и заглавных букв). Например, бессмертный пионерский девиз ``К борьбе за дело Коммунистической Партии Советского Союза - будьте готовы!'' породит нам отличный пароль:
KbzdKPSS-bg!
Для этого способа очень хорошо подходят также отрывки из стихотворений и песен.
Периодическая смена пароля также является неотъемлемой частью защиты системы. Пароли должны меняться не реже чем раз в полгода (система автоматически напомнит о необходимости смены пароля) и не могут меняться чаще чем раз в неделю.
Если возникли подозрения, что кто-то получил несанкционированный доступ к вашим ресурсам (появляются ``чужие'' файлы, исчезают или изменяются ваши) немедленно обращайтесь к администратору машины.
Сжатие файлов помогает увеличить свободное дисковое пространство. Стандартным средством сжатия является утилита
compress. Формат вызова:
% compress filename
В результате ее работы файл будет сжат и к его имени добавится суффикс .Z (файл-оригинал будет стерт). Программа компрессии достаточно эффективна.
Обратное действие выполняет команда
% decompress filename
Обращаем внимание, что указанные утилиты сжимают индивидуальные файлы. Иногда требуется создать архив из многих файлов, включая содержимое поддиректориев. Для этих целей в ОС UNIX имеется отдельная программа-архиватор tar.
Архивацию файлов не следует путать с компрессией: при архивации содержимое нескольких файлов сливается в один файл специальной структуры, но сжатия данных не происходит. Стандарной утилитой архивации является
tar. Ключи команды:
- c создать архив
- t просмотреть
- x извлечь из архива
- v выдавать на экран дополнительную информацию о файлах
- f filename использовать файл filename в качестве архива
Приведем несколько наиболее показательных примеров использования команды tar:
% tar cvf mydata.tar *
Создает архив mydata.tar и записывает в него все содержимое текущего каталога (с рекурсивным спуском в подкаталоги. При работе выводит имя каждого из архивируемых файлов (ключ v).
% tar tvf mydata.tar
Просматривает архивный файл mydata.tar и выводит имя всех файлов в архиве на терминал.
%tar xvf mydata.tar
Раскрывает в текущий каталог содержимое архива mydata.tar (создавая при необходимости подкаталоги).
%tar xvf mydata.tar foo.txt
Ищет в архиве mydata.tar файл с именем foo.txt и (если он есть) достает его из архива.
Часто комбинируют компрессию с архивацией, например так:
% tar cvf mydata.tar *
% compress mydata.tar
В результате имеем сжатый архив mydtata.tar.Z. Все остальные файлы в текущем каталоге можем удалить.
К сожалению, в России широко используются сразу несколько различных способов кодировки кириллических текстов. Перечислим наиболее популярные кодировки:
- KOI8 - используется на терминалах больших машин и в UNIX-системах. Принята за стандарт при пересылке электронной почты в сети Relcom.
- ISO - кодировка принятая в некоторых UNIX-системах.
- Alt - альтернативная кодировка, используется на DOS-компьютерах.
- Win - кодировка MS Windows, используется при русификации ОС Microsoft Windows. В качестве стандарта для машин CONVEX используется кодировка KOI8. Как нетрудно догадаться, тексты, сгенерированные в одной кодировке, не могут быть прочитаны на компьютерах, использующих другую. Отсюда возникает множество неудобств.
Несколько смягчить остроту проблемы помогают программы перекодировки. Перечислим имеющиеся перекодировщики:
- koi2alt, alt2koi - перекодирование из KOI8 в Alt и обратно
- koi2win, win2koi - перекодирование из KOI8 в Win и обратно
- koi2iso, iso2koi - перекодирование из KOI8 в Win и обратно
- koi2strp - преобразование кириллического текста в KOI8 кодировке в фонетически соответствующий английский текст.
Кроме различия в способе кодирования кириллицы, тексты сгенерированные под DOS отличаются от текстов UNIX (и ConvexOS) способом обозначения конца строки: В DOS конец строки помечается парой символов с кодами 10 и 13. В UNIX конец строки помечается лишь символом с кодом 10.
Программы переноса файлов (типа ftp) имеют соответственно два режима работы: бинарный - файлы передаются дословно, и режим `` ascii'' - файлы считаются текстовыми и автоматически преобразуется признак конца строки. Поэтому, при переносе файлов внимательно следите за режимом передачи. Учтите, что передача нетекстовых файлов данных (например архивов) в режиме ascii приводит к тому, что полученный файл не будет пригоден для использования.
Желаем успешной работы.