主要内容

。

クラスターおよびクラウドへの议案ループのスケールアップ

この例では,ローカルのマルチコアデスクトップである计算の実行に必要な时间の测定を开始し,この测定を关数としてワーカー数を増やして実行します。このテストを “ストロングスケーリング”テストと呼びます。このテストでは,ワーカーを追加した场合の计算所要时间の减少を测定できます。この依存关系は “高速化”と呼ばれ,そこからコードの “并列スケーラビリティ”を推定することができます。これにより,并列プールのワーカー数を増やして,クラスターおよびクラウドコンピューティングにスケールアップすることが有用かどうかを判断できます。

  1. 关数を作成します。

    编辑mycode的
  2. 马铃薯®エディターで新しい议案ループを入力し,経过时间を测定するTic.およびTOC.を追加します。

    功能一个= mycode的(A)抽动议案I = 1:200 A(I)= MAX(ABS(EIG(RAND(A))));结尾TOC.结尾
  3. ファイルを保存してエディターを闭じます。

  4. [并列][并列基本设定]メニューで,[既定のクラスター][ローカル](デスクトップマシン)であることを确认します。

  5. MATLABコマンドウィンドウでサイズ1の并列プールを定义し,1つのワーカーで关数を実行して経过时间を计算します0.1つのワーカーの経过时间を记录し,并列プールをシャットダウンします。

    parpool(1);一个= mycode的(1000);
    经过时间是172.529228秒。
    删除(GCP);
  6. 2つのワーカーからなる新しい并列プールを开き,关数をもう一度実行します。

    parpool(2);一个= mycode的(1000);

    経过时间を确认します。単一のワーカーの场合に比べて减少しているはずです。

  7. 4,8,12および16个のワーカーで试します。両対数スケールで各ワーカー数の経过时间をプロットして,并列スケーラビリティを测定します。

    この図は,一般的なマルチコアデスクトップPCのスケーラビリティを示したものです(青い円のデータ点)。ストロングスケーリングテストでは,ワーカー8个までのほぼ线形的な高速化と大幅な并列スケーラビリティが示されています。この図から,この例では8个を超えるワーカーではさらなる高速化は実现されないことが分かります。この结果は,ローカルデスクトップマシンのすべてのコアが8个のワーカーで最大限に使用されていることを意味します。ハードウェアによっては,ローカルデスクトップで异なる结果が得られることがあります。并列アプリケーションをさらに高速化するには,クラウドまたはクラスターコンピューティングへのスケールアップを検讨してください。

  8. 前述の例のように,ローカルのワーカーを使い切った场合は,计算をクラウドコンピューティングにスケールアップできます。[并列][クラスターの検出]メニューでクラウドコンピューティングへのアクセスをチェックします。

    クラウドで并列プールを开き,コードを変更せずにアプリケーションを実行します。

    parpool(16);一个= mycode的(1000);

    増加するクラスターワーカーの数に対する経过时间に注目してください。ワーカー数の关数として経过时间を両対数スケールにプロットし,并列スケーラビリティを测定します。

    この図は,クラウドのワーカーの一般的なパフォーマンスを示したものです(赤いプラスのデータ点)。このストロングスケーリングテストでは,クラウドの16个のワーカーまで,线形的な高速化と100%の并列スケーラビリティが示されています。クラウドまたは計算クラスター上のワーカー数を増やして、計算をさらにスケール アップすることを検討してください。ワーカーおよびその他のアプリケーションの数が多い場合、並列スケーラビリティはハードウェアによって異なる場合があります。

  9. クラスターに直接アクセスする场合は,クラスター上のワーカーを使用して计算をスケールアップできます。[并列][クラスターの検出]メニューでクラスターへのアクセスをチェックします。アカウントがある场合は,[クラスター]を选択し,并列プールを开いて,コードを変更せずにアプリケーションを実行します。

    parpool(64);一个= mycode的(1000);

    この図は,クラスター上のワーカーでの一般的なストロングスケーリングのパフォーマンスを示したものです(黒いXのデータ点)0.100%の并列スケーラビリティが达成され,それが,クラスター上の少なくとも80个のワーカーまで継続しています。このアプリケーションは线形的にスケーリングすることに注目してください。高速化は使用されているワーカーの数に対応しています。

    この例は,ワーカー数がそのまま高速化に结びつくことを示しています。すべてのタスクで同様な高速化が実现できるわけではありません。PARFORを使用した対话形式でのループの并列実行の例を参照してください。

    特定のタスクでは,异なる方法が必要となる场合があります。代替方法の详细については,并列计算の解决策の选択を参照してください。

ヒント

ticBytesおよびtocBytesを使用して并列プール内のワーカーが送受信するデータ量を测定することにより,议案ループをさらにプロファイリングできます。详细と例については,PARFORループのプロファイリングを参照してください。

关键词トピック