|
|
[ English version of this page ]
========================================================
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ MC#.CLUSTER
========================================================
В этом пакете содержится компилятор языка MC# и Runtime-система
для платформ типа *nix (библиотека mcsharp.dll, менеджер распределения
ресурсов и "Work Node"-сервис), а также некоторые утилиты для управления кластерами.
Также этот архив содержит несколько примеров программ на языке MC#.
ТРЕБОВАНИЯ К СИСТЕМЕ:
________________________________________________________
>= Mono 1.1.9.1
rsh (или ssh, сконфигурированный так, чтобы при запуске заданий
на узлах не запрашивался пароль)
ОПЕРАЦИОННЫЕ СИСТЕМЫ:
________________________________________________________
Red Hat >= 8.0, Mandrake 9.1/x86, SuSE >= 8.2
УСТАНОВКА
________________________________________________________
1. Распаковать архив в папку ~/mcsharp
2. Добавить следующие переменные окружения:
$MCSHARPPATH - расположение главной директории MC#
$MONO_PATH - Mono будет искать библиотеки в этих директориях
$PATH - нужно добавить директорию ~/mcsharp/bin
Это можно сделать добавив в файлах ~/.bashrc и ~/.bash_profile
следующие строчки:
export MCSHARPPATH=/home/yourhomedir/mcsharp
export MONO_PATH=$MCSHARPPATH/bin:$MONO_PATH
export PATH=$MCSHARPPATH/bin:$PATH
Внимание: Замените /home/yourhomedir на Вашу домашнюю директорию!
Переменные должны быть добавлены в оба файла .bashrc и .bashrc_profile!
Перед началом установки проверьте, что у вас правильно установлена переменная HOME
(она должна указывать на директорию /home/yourhomedir)
3. Компиляция (Предполагается, что на системе уже установлены mono(рантайм),
mcs (C# компилятор) и gcc(C++ компилятор).
cd ~/mcsharp
make
Примечание:
При инсталляции создастся файл "~/.mcsharp/.rmport" в котором
будет указан произвольный номер любого свободного порта в Вашей системе.
Этот порт будет в дальнейшем использовать менеджер распределения ресурсов.
При желании этот порт может быть назначен вручную - для этого достаточно
изменить значение порта в указанном файле.
При инсталляции также создастся файл "~/.mcsharp/.wnport" в котором
будет указан произвольный номер любого свободного порта в Вашей системе.
Этот порт будет в дальнейшем использоваться на узлах кластера Work Node сервисами.
При желании этот порт может быть назначен вручную - для этого достаточно
изменить значение порта в указанном файле.
Если Вы хотите использовать ssh (вместо rsh, который используется по-умолчанию) или
какую-либо другую утилиту, предназначенную для старта приложений на других узлах,
создайте файл ~/.mcsharp/.accesstype и введите название команды.
________________________________________________________
Программы, скомпилированные с библиотекой mcsharp.dll могут работать
как автономно (локальный режим), так и в распределённом варианте
(распределённый режим) - на кластере. Во втором случае необходимо при запуске
указать ключ '/np' и количество процессоров (или '-np').
По умолчанию пользовательские программы исполняются в локальном режиме, т.е.
как простые exe-приложения. При этом нет необходимости запускать менеджер
распределения ресурсов и эмуляторы рабочих узлов, что оказывается очень
удобным при написании и первоначальной отладке программ.
ИНИЦИАЛИЗАЦИЯ RUNTIME
________________________________________________________
Данная версия использует rsh для инициализации Runtime на узлах кластера.
rsh на всех узлах должен быть настроен так, чтобы при переходе с одного узла
на другой не запрашивался пароль.
Для инициализации рантайма в распределённом режиме служит утилита mcsboot,
параметром которой является имя файла, содержащего имена узлов кластера
(каждый узел на новой строке).
По-умолчанию загружается файл $MCSHARPPATH/bin/nodes.
Пример использования:
mcsboot $MCSHARPPATH/bin/nodes
ЗАВЕРШЕНИЕ РАБОТЫ RUNTIME
________________________________________________________
Когда Вы закончили работу с кластером, необходимо завершить работу Runtime.
Для этого существует команда mcshalt.
ДОПОЛНИТЕЛЬНЫЕ УТИЛИТЫ
________________________________________________________
Чтобы узнать какие узлы загружены рантайм-системой MC# используйте команду
'mcsnodes'.
Чтобы выполнить какую-либо команду на всех узлах используйте команду 'do-all'.
Например:
do-all killall -9 mono
Этой командой приостанавливаются все приложения запущенные с помощью mono.
Примечание: Утилита do-all исполняет заданную команду на всех узлах, указанных
в файле $MCSHARPPATH/bin/nodes.
КОМПИЛЯЦИЯ ПОЛЬЗОВАТЕЛЬСКИХ ПРОГРАММ
________________________________________________________
Для компиляции программ на MC# служит команда mcsc.
Компиляция происходит в две стадии: сначала MC#-код транслируется в C# код,
после чего вызывается компилятор mcs (компилятор C# из платформы Mono).
Замечение:
все параметры, переданные компилятору mcsc будут применены
при компиляции оттранслированного C#-кода компилятором mcs.
Примеры использования:
mcsc fib.mcs
mcsc fib.mcs /o:myfib.exe
mcsc /t:library fib.mcs
Программы на языке MC# можно скомпилировать в DLL следующим образом
mcsc a.mcs /t:library /out:a.dll
Подключить DLL-файлы можно следующим образом
mcsc /r:a.dll b.mcs
Можно компилитовать как .mcs, так и .cs-файлы
mcsc a.mcs b.cs
Также можно компилировать несколько .mcs файлов
mcsc a.mcs b.mcs
ПРИМЕРЫ ЗАПУСКА ПОЛЬЗОВАТЕЛЬСКИХ ПРОГРАММ
________________________________________________________
Локальный вариант:
mono fib.exe 35
Распределённый вариант:
mono fib.exe 35 -np 5
Замечания и предложения можно оставить на сайте
http://u.pereslavl.ru/~vadim/MCSharp/
Или непосредственно обратитесь к разработчикам:
Юрий П. Сердюк Вадим Б. Гузев
Yury@serdyuk.botik.ru vadim@u.pereslavl.ru
ICQ: #330402764 ICQ: #62951762
Компиляторы Runtime-системы
Спасибо за внимание!
Разработчики языка MC#
|