четверг, 20 сентября 2012 г.

Как правильно установить MATLAB (включая MATLAB Distributed Computing Server)

Установка MATLAB имеет несколько хитростей, знать которые необходимо во избежание досадных ошибок, а также правильной настройки параллельного программирования.

Сам дистрибутив условно можно разделить на две части:
  • "не параллельная" часть: MATLAB, Simulink и их компоненты (Toolbox'ы...);
  • "параллельная" часть: MATLAB Distributed Computing Server + Parallel Computing Toolbox.

Получаются три варианта установки:
  1. Для настольных вычислений (только "не параллельная часть").
  2. Для параллельных вычислений в сети (только "параллельная часть").
  3. Для настольных и параллельных вычислений вместе (обе части).

Рассмотрим их более подробно.

По сути выбор между вариантами осуществляется установкой или не установкой компонента "MATLAB Distributed Computing Server". Поэтому при выборе типа установки "Typical" или "Custom" всегда выбираем "Custom":


Вариант 1. Для настольных вычислений

Этот вариант подходит для большинства пользователей. Единственная тонкость - это снять галочку "MATLAB Distributed Computing Server":


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

Дополнения к варианту 1

Система MATLAB использует понятие текущего каталога при работе с М- и МАТ-файлами во время сеанса работы. Начальный текущий каталог определен в файле запуска, который ассоциирован с ярлыком запуска системы MATLAB, расположенном на рабочем столе. Щелчок правой кнопки мыши, установленной на этом ярлыке, и выбор контекстного элемента "Свойства/Properties" позволяет изменить начальный каталог, используемый по умолчанию:


Теперь при запуске MATLAB видим заданный текущий каталог:


В ранних версиях MATLAB были проблемы с поддержкой русского языка. Также были проблемы с загрузкой моделей Simulink, где названия и/или имена файлов были на русском. Как правило, такие проблемы решаются с помощью следующих команд:
set_param(0,'SavedCharacterEncoding','windows-1252');
set_param(0,'CharacterEncoding','windows-1252');
slCharacterEncoding('windows-1252');
feature('MultibyteCharSetChecking',0);

Если эти команды записать в файл с именем "startup.m" и сохранить данный файл в начальный рабочий каталог (см. выше) или в один из каталогов PATH (Меню "File" > "Set PAth..."), то записанные команды будут выполняться автоматически при каждом запуске MATLAB.

Вариант 2. Для параллельных вычислений в сети

При установке нужно установить галочку "MATLAB Distributed Computing Server", а также выбрать компоненты (Simulink, Toolbox'ы), которые необходимы в процессе параллельных вычислений.


Внимание! Режим параллельных вычислений подразумевает, что интерактивной работы с MATLAB нет и не будет.
Следствие 1. Нет иконок приложения MATLAB. Нет ассоциаций с файлами (для открытий файлов по двойному щелчку).
Следствие 2. MATLAB интерактивно запустить всё же можно. Достаточно открыть папку с установленной программой и в каталоге bin запустить matlab.exe. Но при параллельных вычислениях может возникнуть ошибка:
MATLAB_PREFDIR must be an absolute path.
Cannot set preferences directory to the relative path Mathworks\MATLAB\2012b. 
В случае такой ошибки, рекомендую также посмотреть тему http://matlab.exponenta.ru/forum/viewtopic.php?t=16365.

Если всё-таки требуется выполнять интерактивные вычисления и параллельные, то переходим к варианту 3.

Дополнения к варианту 2

Следует настроить и установить службу MDCE. В принципе, хватает стандартных настроек. НО если вы работаете в русскоязычном домене Windows Server 20XX, то придётся исправить имена групп. Об этом подробно написано здесь.

Вариант 3. Для настольных и параллельных вычислений вместе

Слово вместе говорит о том, что вычисления интерактивно и параллельно могут вестись одновременно, но это не обязательно.

Основная проблема в этом варианте установке, как же установить MATLAB с MATLAB Distributed Computing Server и иметь ярлыки, ассоциации и прочие прелести настольной установки.

Я предлагаю установку проводить в два этапа:
  • Первая установка без MATLAB Distributed Computing Server.
    Сперва мы не ставим галочку "MATLAB Distributed Computing Server":


  • Вторая установка в тот же каталог ("поверх") + MATLAB Distributed Computing Server (поскольку первая не создаёт ярлыки).
    В принципе, можно ставить не в тот же каталог, но в целях экономии места на жёстком диске, необходимо делать именно так.

    В этот раз необходимо установить галочку "MATLAB Distributed Computing Server":


    Далее установщик спросит, перезаписать установленные компоненты MATLAB. Отвечает "No to All":


    Таким образом, будет установлен только один компонент, а именно недостающий в установке "MATLAB Distributed Computing Server":


    После копирования файлов отображаются инструкции по настройке:


    И установка успешно завершена!


Дополнения к варианту 3

Эти дополнения состоят из дополнений к вариантам 1 и 2.

3 комментария:

  1. Делаем батник по ссылке из официального сайта: http://www.mathworks.com/support/solutions/en/data/1-37KDWN/ и все начинает работать, а это решение мне не подошло (у меня 2013 a).

    ОтветитьУдалить
    Ответы
    1. У меня R2012a, выскакивала ошибка при выполнении matlabpool "Matlab_Prefdir must be an absolute path. Cannot set preferences directory to the relative path MathWorks\Matlab\R2012a" .Сделал батник, все заработало.

      Удалить