запуск кода C++ под Matlab с использованием кластера sge?

У меня есть код Matlab, который запускает функции С++, он хорошо работает на моем компьютере или любом другом рабочем столе, на котором я пытался его запустить. (чтобы запустить его на другом рабочем столе, я скопировал функции Matlab/С++ и файлы MEX)

в последнее время я пытался запустить код на кластере sge, но я получаю сообщение об ошибке

"Неопределенная функция img для входных аргументов типа double"

«img» — это функция С++, вызываемая Matlab.

кто-нибудь сталкивался с такой же проблемой? кто-нибудь знает, как это решить?

10x Элад


person Dudas    schedule 13.12.2012    source источник
comment
Вы уверены, что файл MEX «виден» для вычислительных узлов в вашем кластере? В нескольких кластерах, где я работал над установкой библиотеки на хост отправки (машина, на которой вы запускаете qsub и т. д.), она не была доступна для процессов на вычислительных узлах. Проконсультируйтесь с системными администраторами.   -  person High Performance Mark    schedule 14.12.2012
comment
10x за ваш ответ, я проверю его после того, как переделаю функции, чтобы они соответствовали платформе sge.   -  person Dudas    schedule 14.12.2012


Ответы (1)


Похоже, у вас разные ОС на ноутбуке/настольном компьютере и SGE. Для разных архитектур вам нужно повторно mex код C++.

Настройте mex на вашем SGE

>> mex -setup

Я настоятельно рекомендую использовать gcc. Теперь вы можете mex свой код C++. Обратите внимание, что расширения для файлов MEX различны в Windows/SGE, а также в 32-битных и 64-битных системах.

Если у вас нет правильного расширения для mex-файла (можно проверить с помощью команды mexext), Matlab не сможет найти функцию для запуска, и вы получите сообщение об ошибке, похожее на то, что вы получили.

Счастливой Хануки.

person Shai    schedule 13.12.2012
comment
Привет, я не знал, что для каждой системы существуют разные файлы MEX, но это, конечно, имеет смысл. Могу ли я преобразовать файлы в mexa64 с платформы Windows64 или у меня для этого есть система Linux? 10x и Hag_Samech тоже для вас - person Dudas; 14.12.2012
comment
@Dudas - вам нужно mex свои файлы для каждой платформы. Поскольку компилятор c++ не представляет большой проблемы, вам не должно быть сложно это сделать. - person Shai; 15.12.2012