BC/NW 2010; №2 (17):12.3
О ТЕРМИНАЛЬНОМ СЕРВЕРЕ MATLAB
Чернецов А. М.
(Московский
энергетический институт (технический университет), Россия)
В данном докладе рассматриваются проблемы, связанные с установкой, настройкой и минимизацией затрат при работе с пакетом MATLAB [1].
Данный математический пакет часто применяется для решения очень широкого круга задач: при научных расчетах, при обучении инженеров, анализе финансовых рисков и т.д.
В докладе мы рассмотрим некоторые проблемы, возникающие при часто возникающей задаче установки пакета на большое число клиентских мест.
Не секрет, что стоимость даже одной лицензии на пакет очень большая даже для научных и образовательных организаций, которым большинство вендоров делают значительные скидки. При этом число желающих одновременно работать за пакетом велико. В таком случае решением может служить установка пакета на сервер терминалов (что допускается лицензией) и работа клиентов на сервере терминалов Microsoft. Это позволяет, закупив всего одну лицензию, использовать программу сразу множеству пользователей.
Остановимся на необходимых компонентах аппаратного и программного обеспечения. Во-первых, необходимо приобрести лицензию на пакет MATLAB и необходимые тулбоксы. Отметим, что лицензии на MATLAB бывают:
-индивидуальными
-групповыми
-сетевыми (concurrent).
Для работы с терминальным сервером требуется использовать именно сетевые лицензии. Во-вторых, необходимо иметь соответствующую аппаратуру - сервер, на котором собственно и будет работать пакет MATLAB. Учитывая многопользовательскую работу и системные требования пакета [2], конфигурация сервера должна быть достаточно мощной – минимум 4-ядерный серверный процессор (например, Intel Xeon серии 5500), объем оперативной памяти не менее 8 Гб.
Учитывая вышеизложенное, исходя из объема ОП требуется использовать 64-разрядную версию ОС, обеспечивающую адресацию больших объемов данных. Оптимальным выбором в данном случае будет Windows Server Standard Edition x64.
Для работы системы терминалов от Microsoft требуется:
-серверная операционная система Windows Server 2003/2008/2008 R2,
-лицензии на терминальный доступ к серверу терминалов (Terminal Server CAL),
-наличие на каком-либо сервере (в том числе возможно и на сервере MATLAB) службы лицензирования серверов терминалов Microsoft,
-наличие на каком-либо сервере (в том числе возможно и на сервере MATLAB) службы лицензирования FLEXLM[3], отвечающей за лицензирование пакета MATLAB.
Казалось бы естественным использовать и 64-разрядную версию MATLAB. Однако здесь есть свой “подводный камень”. Для генерации кода некоторыми тулбоксами MATLAB (например, Simulink, Stateflow), а также для создания mex-файлов[1] [4], требуется наличие компиляторов С/С++. Для платформы Win32 MATLAB содержит встроенный компилятор lcc [5,6]. Но для архитектуры win64 встроенных компиляторов не имеется. Производитель предлагает использовать продукцию Microsoft – Microsoft Visual Studio 2005/2008. А данная среда разработки лицензируется по модели “на пользователя”, что приводит к необходимости закупки лицензий Visual Studio для всех пользователей, которые будут ее использовать в терминальном режиме. Отметим также, что вышеизложенная ситуация не уникальна. Так, математический пакет Maple [7] также не содержит встроенного компилятора C/C++ для платформы win64 и требует среды Microsoft Visual Studio.
При использовании сетевых лицензий, следует использовать функционал резервирования (redundant license). Его применение позволяет в некоторой степени застраховаться от случаев внезапных обрывов связи и/или сбоев сервера лицензий.
Автор доклада настоятельно рекомендует использовать в качестве терминального сервера ОС не ниже Windows 2008. Это обусловлено многочисленными улучшениями в области терминального доступа, произошедшими при выходе этой версии по сравнению с предшественницей. Отметим лишь самые важные: решение проблемы удаленной печати (используются универсальные драйвера Easy Print) и использование запуска удаленных приложений RemoteApp [8].
Литература
1. http://www.mathworks.com
2. http://www.mathworks.com/support/sysreq/current_release/
3. http://www.flexerasoftware.com/products/flexnet-manager.htm
4. http://www.mathworks.com/support/tech-notes/1600/1605.html?BB=1
5. http://www.mathworks.com/support/compilers/R2010a/index.html
6. http://www.cs.virginia.edu/~lcc-win32/
7. http://www.maplesoft.com
8. http://technet.microsoft.com/ru-ru/library/cc731340(WS.10).aspx
[1] Данный файл - динамически подключаемая библиотека, получаемая в результате компиляции кода на языках C/C++.