Фатальная ошибка: MATLAB_PREFDIR должен быть абсолютным путем. Невозможно установить относительный путь для каталога настроек... возникает при использовании spmd

Я запускаю программу на Matlab и использую spmd для распараллеливания своего кода.

Один и тот же код работает на 2 разных ПК. Один из них работает отлично, а другой нет, и возникает фатальная ошибка. Если я попытаюсь запустить непараллельную программу, ошибок не будет. Я не знаю, есть ли проблема с этой конкретной командой или я сам сделал что-то не так.

Может ли это быть связано с каталогами, в которых я сохранил свои файлы кода? Если да, то почему запускается непараллельная программа?


person user3748392    schedule 07.02.2015    source источник


Ответы (2)


Я не уверен, что у вас все еще есть эта проблема, но в любом случае... Проблема заключается в пути к папке настроек. Итак, вам нужно изменить его. В основном такая ошибка возникает, если у вас нет прав на запись в эту папку или она находится в скрытой папке. Чтобы открыть текущий путь prefdir, введите winopen(prefdir) в командном окне Matlab. Затем скопируйте все файлы из этой папки в новую (например, C:\MATLABPreferences). Теперь вам нужно изменить путь к prefdif, используя файл .bat со следующим текстом:

fullfile (matlabroot, 'bin', 'matlab')
 set MATLAB_PREFDIR=<New preference folder location>
 "<MATLAB executable location>"

Пример:

 fullfile (matlabroot, 'bin', 'matlab')
 set MATLAB_PREFDIR=C:\MATLABPreferences
 "C:\Program Files\MATLAB\R2013b\bin\matlab.exe"

Запустите его и наслаждайтесь параллельными вычислениями с помощью Matlab.

Более подробное объяснение вы можете найти здесь.

person evo    schedule 27.04.2015

У меня были проблемы с этим, и до сих пор Интернет не был действительно полезен. После нескольких часов гугления это оказалось полезным. Вам просто нужно добавить новую переменную к вашим переменным среды (если вы используете Windows) с именем MATLAB_PREFDIR с расположением предпочтительного каталога.
Для меня это C:\Users\Balázs\AppData\Roaming\MathWorks\MATLAB\R2014a, но вы можете получить, если наберете prefdir в командной строке Matlab.

person blesius    schedule 14.07.2015