Могу ли я запустить Matlab в Windows с пользовательским интерфейсом, просто код работает на удаленном сервере? - PullRequest
7 голосов
/ 23 июня 2010

Я использую свой ноутбук для запуска MATLAB, и это очень удобно, но МЕДЛЕННО. У нас есть мощные серверы, на которых работает MATLAB, но мне удобнее запускать приложение с пользовательским интерфейсом на моем ноутбуке (в отличие от запуска Matlab через командную строку).

Можно ли запускать matlab в Windows локально с помощью пользовательского интерфейса, только если код выполняется на удаленном сервере (и, следовательно, быстрее)?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 23 июня 2010

На ум приходит несколько вариантов, не все из которых отвечают на поставленный вами точный вопрос.Учитывая, что ваш ноутбук - Windows, вы можете сделать одно из следующих действий:

  1. Использовать удаленный рабочий стол для подключения к серверу и запустить там MATLAB
  2. Если сервер UNIX, вы можетеЗапустите X-сервер на своем ноутбуке (есть бесплатный с Cygwin)
  3. Вы можете использовать Parallel Computing Toolbox и MATLAB Distributed Computing Server , чтобы открыть matlabpool на сервере.

Параметры (1) и (2) в основном означают, что вы передаете интерфейс MATLAB по проводной связи на ноутбук.Вариант (3) в некотором роде похож на тот, который вы изначально запрашивали, но matlabpool запускает только тело блоков PARFOR и SPMD на сервере.

1 голос
/ 22 сентября 2011

Запуск MATLAB на сервере без графического интерфейса подробно описан в http://blogs.mathworks.com/desktop/2010/02/22/launching-matlab-without-the-desktop/ Вы также должны прочитать комментарии пользователей / обсуждение там

например. Вы можете использовать

Запустить matlab -nosplash -nodesktop -nojvm -minimize -r "Testcommand, бросить курить"

если Java не используется, это слишком ограничивает ваши потребности:

Относительно «-nodesktop» и «-nojvm» существует третий (недокументированный / неподдерживаемый) параметр: no -noawt ’. -noawt загружает Java (таким образом включение Java I / O, структуры данных и т. д.) и только предотвращение Java GUI

В обсуждении также говорится об использовании недокументированного com.mathworks.mde.desk.MLDesktop.getInstance.getMainFrame.hide , чтобы скрыть окно командной строки, но эта команда, похоже, не работает

Кстати, вместо запуска MATLAB с помощью команды оболочки Windows вы можете запустить как сервер автоматизации COM:

http://www.mathworks.com/help/techdoc/matlab_external/brd0v3w.html

или через существующий C API для запуска MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/f29148.html

Если вы используете это часто (например, из веб-службы), лучше всего, чтобы экземпляр MATLAB оставался в памяти все время (поскольку приложения Windows, например, совместно используют код и имеют отдельные данные, это может сэкономить много времени, избегая перезагрузка кода MATLAB в память при каждом запуске скрипта). Этот экземпляр также может быть безголовым (без пользовательского интерфейса), используя эту команду при загрузке сервера (например, добавив запись в HKLM / Software / Microsoft / Windows / CurrentVersion / Run в реестре Windows с помощью "regedit.exe"):

start matlab -nosplash -nodesktop -nojvm -minimize

...