Main Content

デプロイ アプリケーションでの Parallel Computing Toolbox の使用

Parallel Computing Toolbox™ を使用するアプリケーションは、MATLAB® 基本設定フォルダーにあるクラスター プロファイルを使用できます。このフォルダーを検索するには、prefdir を使用します。

たとえば、スタンドアロン アプリケーションを作成する場合、クラスター プロファイル マネージャーで使用可能なすべてのプロファイルがこのアプリケーションで使用可能になります。

アプリケーションは外部ファイルで提供されるクラスター プロファイルも使用できます。アプリケーションがこのファイルを使用できるようにするには、次のいずれかを行います。

  1. コード内でこのファイルにリンクする。

  2. 実行時にこのファイルの場所を渡す。

クラスター プロファイルのエクスポート

クラスター プロファイルを外部ファイルにエクスポートするには、以下の手順に従います。

  1. [ホーム] タブの [環境] セクションで、[並列][クラスターの作成と管理] を選択します。

  2. [クラスター プロファイル マネージャー] ダイアログでプロファイルを選択し、[管理] セクションで [エクスポート] をクリックします。

コード内での Parallel Computing Toolbox プロファイルへのリンク

アプリケーションが外部ファイルで提供されたクラスター プロファイルを使用できるようにするには、コードからファイルにリンクします。この例では、絶対パス、相対パス、MATLAB 検索パスを使用して、クラスター プロファイルにリンクします。各リンクはコンパイル前に指定されているため、各リンクが変わっていないことを確認しなければなりません。

アプリケーションのクラスター プロファイルを設定するには、関数 setmcruserdata を使用します。

MATLAB 基本設定フォルダーはアプリケーションにまとめられているため、このフォルダー内のファイルへの相対リンクはつねに機能します。アプリケーション コードでは、MATLAB 基本設定フォルダー内の myClusterProfile.mlsettings ファイルを使用できます。

mpSettingsPath = fullfile(prefdir, 'myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
関数 fullfile を使用すると、外部ファイルの絶対パスが得られます。mpSettingsPath で指定する引数は、絶対パスでなければなりません。アプリケーションのユーザーのファイル システム上の変化しない絶対パスにクラスター プロファイルがある場合は、これに直接リンクします。
mpSettingsPath = '/path/to/myClusterProfile.mlsettings'; 
setmcruserdata('ParallelProfile', mpSettingsPath);
この方法は、クラスター プロファイルがアプリケーションのために一元管理されている場合に適しています。アプリケーションのユーザーが、クラスター プロファイルをローカルに保存している場合、現在の作業ディレクトリからの相対パスを拡張できます。
mpSettingsPath = fullfile(pwd, '../rel/path/to/myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
この方法は、スタンドアロン アプリケーションのユーザーが自分でクラスター プロファイルを用意する必要がある場合に適しています。コンパイル時にアプリケーションに追加したすべてのファイルは、MATLAB 検索パスに追加されます。そのため、外部に保存されているクラスター プロファイルをアプリケーションにまとめることもできます。まず、which を使用してクラスター プロファイルへの絶対パスを取得します。次に、これにリンクします。
mpSettingsPath = which('myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
最後に、コマンド ラインでコンパイルして、クラスター プロファイルを追加します。
mcc -a /path/to/myClusterProfile.mlsettings -m myApp.m;
コンパイル前にアプリケーションを実行するには、MATLAB 検索パスに手動で /path/to/ を追加する必要があります。

実行時に Parallel Computing Toolbox プロファイルを渡す

アプリケーション myApp のユーザーが、実行時に選択するクラスター プロファイルを使用している場合は、コマンド ラインでこれを指定することができます。

myApp -mcruserdata ParallelProfile:/path/to/myClusterProfile.mlsettings

コードで関数 setmcruserdata を使用すると、-mcruserdata フラグの使用がオーバーライドされます。

デプロイされたアプリケーションでのクラスター プロファイルの切り替え

関数 setmcruserdata を使用する場合、クラスター プロファイル マネージャーで使用可能なプロファイルはどれも使用できなくなります。クラスター プロファイル マネージャーのプロファイルを再度有効にするには、parallel.mlSettings ファイルを使用します。

mpSettingsPath = '/path/to/myClusterProfile.mlsettings'; 
setmcruserdata('ParallelProfile', mpSettingsPath);

% SOME APPLICATION CODE

origSettingsPath = fullfile(prefdir, 'parallel.mlsettings'); 
setmcruserdata('ParallelProfile', origSettingsPath);

% MORE APPLICATION CODE

クラスター プロファイルを読み込むためのサンプル C コード

MATLAB Compiler SDK™ でビルドされた C および C++ アプリケーション内でネイティブに関数 mcruserdata を呼び出すことができます。

mxArray *key = mxCreateString("ParallelProfile"); 
mxArray *value = mxCreateString("/path/to/myClusterProfile.mlsettings");
if (!setmcruserdata(key, value))
{
    fprintf(stderr, 
            "Could not set MCR user data: \n %s ",
            mclGetLastErrorMessage());
    return -1;
}

参考

|

関連するトピック