mex及びmexcudaをMDCSで実行した際のエラー(No supported compiler was found)については、MDCS上での環境変数のPATHにgccのパスが無いためと思われます。
まず、CentOS 7の MATLABデスクトップ 上で以下のコマンドを実行して、gccのパスを確認してみてください。
ここでリターンされるgccのパス(例えば/usr/bin/gcc)がMDCS上にあるか確認してください。MATLABでMDCSのクラスタープロファイルがデフォルトになっている状態で、pmode openでParallel Command Windowを立ち上げ、
または
でMDCSから見れている環境変数PATHが確認できます。gccがあるパス(例えば/usr/bin)がこの中にあるか確認してください。LinuxにログインしてからMATLABデスクトップを立ち上げると、ユーザー個別に設定したパスが~/.bashrcや~/.loginが読み取られますが、MDCS上からではそれが見えていない可能性がありますので、その場合はParallel Command Window上からsetenvでパスを追加できます。例えば、/workを追加する場合は
setenv('PATH', [getenv('PATH') ':/work']);
のように行います。setenvでgccのパスを追加してから、再度mexとmexcudaを試してみてください。
また、 MDCSからunixまたはsystemコマンドは実行できます 。MDCSワーカーのカレントディレクトリがワーカー毎に作られるディレクトリになります。Parallel Command Windowで以下のコマンドを実行すると、
/var/lib/mdce/ホスト名_ホスト名_worker01_mlworker_log/matlab/work のように出力されます。 このディレクトリは通常空ディレクトリですので、 unix('ls')
を実行しても何もファイルが表示されません。どこかファイルがあるディレクトリに対してlsを実行してみてください。例えば、