API を呼び出して Elastic Compute Service (ECS) インスタンスの CPU トポロジーを表示および変更し、仮想化、マルチスレッドプログラミング、HPC などのシナリオでパフォーマンスを最適化します。
背景情報
特定の Alibaba Cloud インスタンスファミリーのみが、HT 連続 (ContinuousCoreToHTMapping) と HT 離散 (DiscreteCoreToHTMapping) の 2 つの CPU トポロジータイプをサポートしています。
-
HT 連続 CPU トポロジー:論理コアが物理コアに連続的に割り当てられ、スレッド間通信と競合が削減されます。メモリアクセスレイテンシーが低く、物理コアに近い演算能力を必要とするタスク (科学計算、データ分析、HPC など) に適しています。
-
HT 離散 CPU トポロジー:論理コアが物理コア全体に離散的に分散され、マルチスレッド環境でのリソースの競合が削減され、より優れたパフォーマンス分離が実現されます。個別のスレッドに割り当てられるタスクや、高いシングルスレッドパフォーマンスを必要とするタスクに適しています。
以下の図では、8 つの vCPU を搭載した x86 インスタンスを例として使用しています。
2 つの CPU トポロジータイプを以下に示します。
HT 連続 CPU トポロジー

論理コアと物理コアの関係:
-
HT 0とHT 1はCORE 0に属します。 -
HT 2とHT 3はCORE 1に属します。 -
HT 4とHT 5はCORE 2に属します。 -
HT 6とHT 7はCORE 3に属します。
HT 離散 CPU トポロジー

論理コアと物理コアの関係:
-
HT 0とHT 4はCORE 0に属します。 -
HT 1とHT 5はCORE 1に属します。 -
HT 2とHT 6はCORE 2に属します。 -
HT 3とHT 7はCORE 3に属します。
制限事項
CPU トポロジーの変更は、以下のインスタンスファミリーでのみサポートされています。
-
ecs.g9i、ecs.c9i、ecs.r9i
-
ecs.hfg9i、ecs.hfc9i、ecs.hfr9i
-
ecs.g8i、ecs.c8i、ecs.r8i
-
ecs.g7、ecs.c7、ecs.r7
-
ecs.g7a、ecs.c7a、ecs.r7a
-
ecs.hfg8i、ecs.hfc8i、ecs.hfr8i
-
ecs.hfg7、ecs.hfc7、ecs.hfr7
-
ecs.g6、ecs.c6、ecs.r6
-
ecs.g6e、ecs.c6e、ecs.r6e
詳細については、「インスタンスファミリー」をご参照ください。
CPU トポロジーの表示
DescribeInstances API に AdditionalAttributes パラメータを指定して呼び出し、レスポンスパラメータ TopologyType で CPU トポロジータイプを確認します。詳細については、「DescribeInstances」をご参照ください。
TopologyType の有効な値:
-
ContinuousCoreToHTMapping:HT 連続 CPU トポロジー。 -
DiscreteCoreToHTMapping:HT 離散 CPU トポロジー。 -
空:CPU トポロジーを変更できません。
CPU トポロジーの変更
CPU トポロジーを変更する前に、ベンチマークテストとパフォーマンス評価を実施して、最適なモードを決定してください。
CpuOptions.TopologyType パラメータを設定して、インスタンスの CPU トポロジーを変更します。
-
インスタンス作成時の CPU トポロジーの変更
RunInstances API を呼び出し、
CpuOptions.TopologyTypeパラメータを設定します。詳細については、「RunInstances」をご参照ください。 -
既存インスタンスの CPU トポロジーの変更
説明インスタンスは[停止済み]状態である必要があります。
ModifyInstanceAttribute API を呼び出し、
CpuOptions.TopologyTypeパラメータを設定します。詳細については、「ModifyInstanceAttribute」をご参照ください。
CpuOptions.TopologyType の有効な値:
-
ContinuousCoreToHTMapping:HT 連続 CPU トポロジー -
DiscreteCoreToHTMapping:HT 離散 CPU トポロジー