Main Content

RemoteClusterAccess

クライアント ユーティリティがローカルで使用できない場合のスケジューラへの接続

コンストラクター

r = parallel.cluster.RemoteClusterAccess(username)

r = parallel.cluster.RemoteClusterAccess(username,P1,V1,...,Pn,Vn)

説明

r = parallel.cluster.RemoteClusterAccess(username) は、Usernameusername に設定して RemoteClusterAccess オブジェクトを作成します。

既定で、クラスターに接続するときにパスワードの入力が求められます。

ヒント

リモート クラスター用のクラスター プロファイルを設定している場合は、parcluster を使用します。詳細については、クラスターの検出とクラスター プロファイルの使用を参照してください。

非共有送信モードまたはリモート送信モードで接続するサードパーティ製スケジューラ用のプラグイン スクリプトを変更する必要がある場合、RemoteClusterAccess を使用するだけで済みます。プラグイン スクリプトは、汎用スケジューラ インターフェイスを使用してクラスターに接続する場合に使用します。

クライアントがサードパーティ製スケジューラに直接送信できない場合、またはクライアントがファイル システムをクラスターと共有していない場合は、以下を検討します。

  • サードパーティ製スケジューラに MathWorks® アドオンがある場合は、それをインストールします。アドオンを使用すると、設定ウィザードまたはクラスター プロファイル マネージャーを使用してクラスター プロファイルの多くの項目を設定できます。詳細については、汎用スケジューラのプラグイン スクリプトを参照してください。

  • アドオンのないサードパーティ製スケジューラを使用しなければならない場合、またはアドオンをカスタマイズしなければならない場合は、汎用スケジューラ インターフェイスを使用した構成 (MATLAB Parallel Server)を参照してください。

  • リモート クラスターの接続、送信、またはデータ転送の設定を変更しなければならない場合は、RemoteClusterAccess を使用します。

r = parallel.cluster.RemoteClusterAccess(___,Name,Value) は、1 つ以上の名前と値の引数を使用して、RemoteClusterAccess オブジェクトを作成します。たとえば、ポート番号 31415 を使用してクラスターに接続するには、'Port',31415 を指定します。名前と値の引数は、他のすべての入力引数の後で指定します。

受け入れられる名前と値の引数は、次のとおりです。

  • 'AuthenticationMode' — クラスターへの接続時に使用する認証モード。string スカラー、文字ベクトル、string 配列、または cell 配列として指定します。

    引数 'IdentityFilename' を指定した場合、既定値は 'IdentityFile' です。それ以外の場合、既定値は 'Password' です。'AuthenticationMode' の有効な値は次のとおりです。

    • 'Agent' – クライアントはクライアント マシン上で実行される SSH エージェントと連動します。

    • 'IdentityFile' – クラスターへの接続時に、クライアントは ID ファイルを使用して認証します。IdentityFilename オプションを使用してファイルを指定した場合は、そのファイルを使用します。それ以外の場合、接続時に MATLAB® により ID ファイルへの絶対パスを指定するように要求されます。

    • 'Multifactor' – クライアントにより 1 回以上の入力が要求されます。たとえば、クライアント上で 2 要素認証 (2FA) が有効になっている場合、クライアントによりパスワードと 2 番目の認証要素に対する応答を要求されます。

    • 'Password' – クライアントにより SSH パスワードが要求されます。ユーザー名は Username プロパティで指定されます。

    別の方法として、複数の認証要件をもつクライアントに接続するには、'Agent''IdentityFile''Multifactor'、および 'Password' の組み合わせを含む string 配列または cell 配列として AuthenticationMode を指定します。

  • 'IdentityFileHasPassphrase' — ID ファイルがパスフレーズを要求するかどうかを示すフラグ。true または false として指定します。true の場合、接続時にパスワードが要求されます。ID ファイルが指定されていない場合、この名前と値の引数は使用されません。

  • 'IdentityFilename'RemoteClusterAccess がリモート ホストに接続するときに使用する ID ファイルへの絶対パス。'IdentityFilename' と、string スカラーまたは文字ベクトルとして指定します。

  • 'Port' — 接続するクラスターのポート番号。1 から 65535 までの整数スカラーとして指定します。

    既定値は 22 です。

詳細と詳しい例については、共有ファイル システムなしでの送信およびリモート ホストからの送信を参照してください。

メソッド

メソッド名説明
connect

connect(r,clusterHost) は、コンストラクターに指定されているユーザー資格情報オプションを使用して、指定されたホストとの接続を確立します。ファイルのミラーリングはサポートされていません。clusterHost は Linux を実行している必要があります。

connect(r,clusterHost,remoteDataLocation) は、コンストラクターに指定されているユーザー資格情報オプションを使用して、指定されたホストとの接続を確立します。remoteDataLocation はファイルのミラーリングに使用される clusterHost 上のフォルダーを特定します。コンストラクターに指定するユーザー資格情報には、このフォルダーへの書き込みアクセス権限が必要です。

disconnectdisconnect(r) は、既存のリモート接続を切断します。connect メソッドが既に呼び出されていなければなりません。
doLastMirrorForJob

doLastMirrorForJob(r,job) は、指定されたジョブで変更されたファイルについて、リモートの remoteDataLocation からローカルの JobStorageLocation への最終的なコピーを実行します。そのジョブについて実行されているミラーもすべて停止し、リモートの remoteDataLocation からジョブ ファイルが削除されます。startMirrorForJob メソッドまたは resumeMirrorForJob メソッドが既に呼び出されていなければなりません。

getRemoteJobLocation

getRemoteJobLocation(r,jobID,remoteOS) は、指定された jobID のリモート ジョブの場所への絶対パスを返します。remoteOS の有効な値は 'pc' および 'unix' です。

isJobUsingConnection

isJobUsingConnection(r,jobID) は、ジョブが現在ミラーリングされている場合に true を返します。

reconnectreconnect(r) は、リモート ホストへの既存の SSH 接続を再作成します。
resumeMirrorForJob

resumeMirrorForJob(r,job) は、指定されたジョブについて、リモートの remoteDataLocation からローカルの JobStoragelocation へのファイルのミラーリングを再開します。これは startMirrorForJob メソッドに似ていますが、最初にローカルの JobStorageLocation からリモートの remoteDataLocation にファイルをコピーしません。connect メソッドが既に呼び出されていなければなりません。これは、元のクライアントで MATLAB セッションが終了しているときに、新しいクライアント セッションから同じファイルにアクセスする場合に便利です。

runCommand

[status,result] = runCommand(r,command) は指定されたコマンドをリモート ホストで実行し、結果のステータスと標準出力を返します。connect メソッドが既に呼び出されていなければなりません。

startMirrorForJob

startMirrorForJob(r,job) はすべてのジョブ ファイルをローカルの JobStorageLocation からリモートの remoteDataLocation にコピーし、ファイルのミラーリングを開始します。そのため、リモートの remoteDataLocation にあるファイルに対するすべての変更がローカルの JobStorageLocation にコピーされます。connect メソッドが既に呼び出されていなければなりません。

stopMirrorForJob

stopMirrorForJob(r,job) は、指定されたジョブについて、リモートの remoteDataLocation からローカルの JobStorageLocation へのファイルのミラーリングをただちに停止します。startMirrorForJob メソッドまたは resumeMirrorForJob メソッドが既に呼び出されていなければなりません。これは実行中のミラーリングをキャンセルし、ジョブ ファイルをリモートの場所から削除します。これは doLastMirrorForJob に似ていますが、stopMirrorForJob はローカルのジョブ ファイルが最新であることを確認しない点が異なります。通常のミラーリングの停止には doLastMirrorForJob を使用します。

getConnectedAccess

getConnectedAccess(host,username) は、指定されたホストに接続している RemoteClusterAccess オブジェクトを返します。この関数は、以前に作成された RemoteClusterAccess オブジェクトがある場合にそれを返すことがあります。host は Linux を実行していなければなりません。

getConnectedAccess(...,P1,V1,...Pn,Vn) は追加のパラメーターを RemoteClusterAccess コンストラクターに渡します。

getConnectedAccessWithMirror

getConnectedAccessWithMirror(host,remoteDataLocation,username) は、remoteDataLocation をミラーの場所として使用して、指定されたホストに接続している RemoteClusterAccess オブジェクトを返します。この関数は、以前に作成された RemoteClusterAccess オブジェクトがある場合にそれを返すことがあります。host は Linux を実行していなければなりません。

getConnectedAccessWithMirror(...,P1,V1,...Pn,Vn) は追加のパラメーターを RemoteClusterAccess コンストラクターに渡します。

プロパティ

RemoteClusterAccess オブジェクトには以下の読み取り専用プロパティがあります。これらの値は、オブジェクトを作成したとき、またはその connect メソッドを呼び出したときに設定されます。

プロパティ名説明
AuthenticationMode

クラスターに接続する際の認証方法を示すオプション。次のいずれかとして返されます。

  • 'Agent' – クライアントはクライアント マシン上で実行される SSH エージェントと連動します。

  • 'IdentityFile' – クラスターへの接続時に、クライアントは ID ファイルを使用して認証します。IdentityFilename プロパティが空の string または空の文字ベクトルではない場合は、そのファイルを使用します。それ以外の場合、接続時に MATLAB により ID ファイルへの絶対パスを指定するように要求されます。

  • "Multifactor" – クライアントにより 1 回以上の入力が要求されます。たとえば、クライアント上で 2 要素認証 (2FA) が有効になっている場合、クライアントによりパスワードと 2 番目の認証要素に対する応答を要求されます。

  • 'Password' – クライアントにより SSH パスワードが要求されます。ユーザー名は Username プロパティで指定されます。

  • 'Agent''IdentityFile''Multifactor'、および 'Password' の組み合わせを含む配列 – クラスターへの接続時に、クライアントは複数の認証オプションを使用して認証を行います。

IdentityFilename プロパティが空の string スカラーまたは空の文字ベクトルではない場合、このプロパティは既定で 'IdentityFile' に設定されます。それ以外の場合、これは既定で 'Password' に設定されます。

このプロパティを設定するには、RemoteClusterAccess オブジェクトの作成時に名前と値の引数 'AuthenticationMode' を指定します。

AutoReconnect

リモート コマンド エラー後に MATLAB がリモート ホストへの SSH 接続を自動的に再作成するかどうかを示すフラグ。true または false として指定します。

既定値は true です。

Hostname

アクセスするリモート ホストの名前。文字ベクトルとして返されます。

既定値は空の文字ベクトルです。

IdentityFileHasPassphrase

ID ファイルがパスフレーズを要求するかどうかを示すフラグ。'IdentityFileHasPassphrase' と、true または false で構成されるコンマ区切りのペアとして指定します。

既定値は false です。

このプロパティが true に設定されている場合、接続時にパスワードが要求されます。ID ファイルが指定されていない場合、このプロパティは使用されません。

このプロパティを設定するには、RemoteClusterAccess オブジェクトの作成時に名前と値の引数 'IdentityFileHasPassphrase' を指定します。

IdentityFilename

RemoteClusterAccess オブジェクトがリモート ホストに接続するときに使用する ID ファイルへの絶対パス。文字ベクトルとして返されます。

既定値は空の文字ベクトルです。このプロパティが空の場合、接続時にパスワードが要求されます。

このプロパティを設定するには、RemoteClusterAccess オブジェクトの作成時に名前と値の引数 'IdentityFilename' を指定します。

IsConnected

RemoteClusterAccess オブジェクトがクラスターに接続しているかどうかを示すフラグ。true または false として返されます。

既定値は false です。

IsFileMirrorSupported

RemoteClusterAccess オブジェクトでファイルのミラーリングがサポートされているかどうかを示すフラグ。true または false として指定します。

既定値は false です。

JobStorageLocation プロパティが空ではない場合、IsFileMirrorSupported プロパティは true に設定されます。

JobStorageLocation

リモート ホスト上でミラーリングされるファイルの場所。文字ベクトルとして返されます。

既定値は空の文字ベクトルです。

このプロパティを設定するには、以下の構文のいずれかを使用してクラスターに接続します。

  • connect(r,clusterHost,remoteDataLocation)

  • r = getConnectedAccessWithMirror(host,remoteDataLocation,username)

  • r = getConnectedAccessWithMirror(___,P1,V1,...Pn,Vn)

Port

クラスターとの接続に使用するポート番号。1 から 65535 までの整数スカラーとして返されます。

既定値は 22 です。

このプロパティを設定するには、RemoteClusterAccess オブジェクトの作成時に名前と値の引数 'Port' を指定します。

UseIdentityFile

クラスターとの接続に、RemoteClusterAccess オブジェクトが ID ファイルを使用するかどうかを示すフラグ。true または false として返されます。

既定値は false です。AuthenticationMode プロパティが 'IdentityFile' である場合、UseIdentityFile プロパティは true になります。

Username

クラスターとの接続に使用するユーザー名。文字ベクトルとして返されます。

リモート データの場所からファイルをミラーリングします。オブジェクト job は汎用スケジューラ上にあるジョブを表すと仮定します。

remoteConnection = parallel.cluster.RemoteClusterAccess('testname');
connect(remoteConnection,'headnode1','/tmp/filemirror');
startMirrorForJob(remoteConnection,job);
submit(job)
% Wait for the job to finish
wait(job);

% Ensure that all the local files are up to date, and remove the 
% remote files
doLastMirrorForJob(remoteConnection,job);

% Get the output arguments for the job
results = fetchOutputs(job)

詳細と例については、リモート ホストからの送信および共有ファイル システムなしでの送信を参照してください。

バージョン履歴

R2011a で導入