開発のヒホ

iOSとかAndroidとかのアプリを開発するのに四苦八苦するブログ

MATLABのParallel Tool Boxのmatlabpoolがエラーを吐く

 趣味で大規模計算するため並列計算ができるToolbox、Parallel Tool Boxを購入しました。
 学生価格なので約2500円、超お得!

 いざ実行するためにmatlabpoolを叩いたのですが、ぬるぽを吐いてうまく動きませんでした。

EDU>> matlabpool
Error using matlabpool (line 134)
Java exception occurred:
java.lang.NullPointerException
    at
        java.util.logging.Logger.demandLogger(Logger.java:286)
            at
        java.util.logging.Logger.getLogger(Logger.java:321) 
EDU>> matlabpool
Starting matlabpool using the 'local' profile ... Warning: an error occurred while parsing class
distcomp.fileserializer:
Attempt to reference field of non-structure array.
 
> In distcomp.filestorage.filestorage at 49
  In CJSCluster>CJSCluster.CJSCluster at 487
  In Local.Local>Local.Local at 302
  In parcluster at 51
  In ProfileConfigHelper>ProfileConfigHelper.buildScheduler at 76
  In MatlabpoolHelper>MatlabpoolHelper.parseMatlabpoolInputs at 290
  In MatlabpoolHelper>MatlabpoolHelper.parseInputsAndCheckOutputsForFunction at 100
  In matlabpool at 130 

Error using matlabpool (line 134)
Undefined function 'distcomp.fileserializer' for input
arguments of type 'distcomp.filestorage'.

 解決策をいろいろ調べたのですが、どうやらValidateしないといけないようです。
 環境設定ですね。 手順を紹介します。

1. ツールバーのParallel→Manage Cluster Profile

f:id:hihokaruta:20140220155730p:plain

f:id:hihokaruta:20140220155727p:plain

2. localを右クリック→Validate

f:id:hihokaruta:20140220155723p:plain
このあとしばらく待ちます。

3. 完了

f:id:hihokaruta:20140220155718p:plain

 これで完了です!
 再度matlabpoolをしてみると・・・

EDU>> matlabpool
Starting matlabpool using the 'local' profile ... connected to 4 workers.

 やったね☆
 この辺自動でやってくれるのがありがたいですね。