AWS Graviton-enabled clusters | Databricks on AWS [2022/4/12時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
プレビュー
本機能はパブリックプレビューです。
DatabricksクラスターではAWS Gravitonインスタンスをサポートしています。これらのインスタンスでは、Arm64命令セットで構築されたAWS設計のGravitonプロセッサーを使用しています。AWSはこれらのプロセッサーを持つインスタンスタイプは、いかなるAmazon EC2のインスタンスタイプと比較しても、ベストなコストパフォーマンスを提供すると説明しています。
利用条件
DatabricksではAWS Graviton有効化クラスターをサポートしています。
-
PhotonなしのDatabricks Runtime 9.1 LTS以降のランタイム、PhotonありのDatabricks Runtime 10.2以降のランタイム
-
すべてのAWSリージョン。しかし、すべてのリージョンで全てのインスタンスタイプが利用できる訳ではないことに注意してください。ワークスペースのリージョンで利用できないインスタンスタイプを選択した際、クラスターの作成に失敗します。
-
以下のAWS Gravitonインスタンスファミリー
Photonなし
Photonあり
-
AWS Graviton2プロセッサーのみ
AWS Graviton有効化クラスターの作成
AWS Graviton有効化クラスターを作成するには、Databricksにおけるクラスター作成の手順に従ってください。
以下のように、クラスターの作成手段によってAWS Gravitonの指定方法は変わります。
作成ボタン、クラスターUI
AWS Graviton有効化クラスターを作成するには、Createボタンを使うかクラスターUIを使うの手順に従ってください。Databricks runtime versionに対しては、利用条件セクションでリストされている利用可能なaarch64ランタイムを選択してください。Worker type、Driver type、その両方に対しては、利用条件セクションでリストされているAWS Gravitonインスタンスタイプを選択してください。
Databricks REST API
-
セットアップしていない場合には、Databricks REST APIのauthenticationをセットアップします。
-
Clusters APIの
POST clusters/create
オペレーションを呼び出します。例えば、以下のような呼び出しをcurl
を用いて行います。Bashcurl --netrc -X POST \ https://dbc-a1b2345c-d6e7.cloud.databricks.com/api/2.0/clusters/create \ --data @create-cluster.json
create-cluster.json
JSON{ "cluster_name": "my-cluster", "spark_version": "10.2.x-aarch64-scala2.12", "node_type_id": "m6gd.large", "num_workers": 2 }
Photonあり
JSON{ "cluster_name": "my-cluster", "spark_version": "10.2.x-aarch64-photon-scala2.12", "node_type_id": "m6gd.large", "num_workers": 2 }
Databricks CLI
-
設定していない場合は、CLIをセットアップし、認証を設定します。
-
Clusters CLIで
clusters create
コマンドを実行します。例えば、以下のようなコマンドを実行します。Bashdatabricks clusters create --json-file create-cluster.json
create-cluster.json
JSON{ "cluster_name": "my-cluster", "spark_version": "10.2.x-aarch64-scala2.12", "node_type_id": "m6gd.large", "num_workers": 2 }
Photonあり
JSON{ "cluster_name": "my-cluster", "spark_version": "10.2.x-aarch64-photon-scala2.12", "node_type_id": "m6gd.large", "num_workers": 2 }
Databricks Terraformプロバイダー
- インストールしていない場合には、Terraformのオペレーションに必要なコマンドラインツールをインストールし、設定します。
- Databricksクラスターリソースを作成するTerraform設定を作成して実行します。例えば、以下のような最小限の設定を実行することができます。
terraform {
required_providers {
databricks = {
source = "databrickslabs/databricks"
}
}
}
provider "databricks" {
}
resource "databricks_cluster" "this" {
cluster_name = "my-cluster"
spark_version = "10.2.x-aarch64-scala2.12"
node_type_id = "m6gd.large"
num_workers = 2
}
Photonあり
resource "databricks_cluster" "this" {
cluster_name = "my-cluster"
spark_version = "10.2.x-aarch64-photon-scala2.12"
node_type_id = "m6gd.large"
num_workers = 2
}
制限
ARM64 ISA
- 浮動小数点制度の変更: 加算、減算、乗算、除算のようなて近景的なオペレーションでは制度の変更はありません。
sin
、cos
のような単一の三角関数では、Intelインスタンスに対する精度の差は1.11e-16
となります。 - サードパーティのサポート: ISAの変更はサードパーティのツールやライブラリのサポートに幾らかのインパクトを与える場合があります。
- 混成インスタンスのクラスター: Databricksでは、異なるDatabricksランタイムが必要とするタイプで、AWS Gravitonと非AWS Gravitonのインスタンスタイプのミックスはサポートしていません。
機能
AWS Gravitonは以下の機能をサポートしていません。
- Databricks機械学習ランタイム
- Databricksランタイム10以降のARM64上のJDK 11
- AWS Glueメタストア
- Databricksコンテナサービス
参考情報
- AWSウェブサイトのAWS Graviton Processor
- GitHubのAWS Graviton Getting Started
- AWSウェブサイトのAWS News Blog: Graviton