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);
この方法は、スタンドアロン アプリケーションのユーザーが自分でクラスター プロファイルを用意する必要がある場合に適しています。mccによるコンパイル時に-aフラグを使用して追加したファイルは、MATLAB 検索パスに追加されます。そのため、外部に保存されているクラスター プロファイルをアプリケーションにまとめることもできます。まず、whichを使用してクラスター プロファイルへの絶対パスを取得します。次に、これにリンクします。
mpSettingsPath = which('myClusterProfile.mlsettings'); setmcruserdata('ParallelProfile', mpSettingsPath);
最後に、コマンド ラインでコンパイルして、クラスター プロファイルを追加します。
mcc-a/path/to/myClusterProfile.mlSettings-mmyApp.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 CODEorigSettingsPath = fullfile(prefdir,'parallel.mlsettings'); setmcruserdata('ParallelProfile', origSettingsPath);% MORE APPLICATION CODE

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

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; }