このチュートリアルでは、Managed Service for Apache Spark で構成できる Dask、NVIDIA RAPIDS、GPU を使用してシングルセルゲノミクス分析を実行する方法について説明します。スタンドアロン スケジューラまたはリソース管理用の YARN のいずれかを使用して Dask を実行するように Managed Service for Apache Spark を構成できます。
このチュートリアルでは、ホストされた JupyterLab インスタンスを使用して Managed Service for Apache Spark を構成し、シングルセル ゲノミクス分析を備えたノートブックを実行します。Managed Service for Apache Spark で Jupyter Notebook を使用すると、Jupyter のインタラクティブな機能と Managed Service for Apache Spark で可能になるワークロード スケーリングを組み合わせることができます。Managed Service for Apache Spark では、1 台のマシンから多数のマシンにワークロードをスケールアウトできます。それらのマシンは必要なだけ多数の GPU で構成できます。
このチュートリアルは、データ サイエンティストと研究者を対象としています。Python の経験があり、次の基本的な知識があることを前提としています。
目標
- GPU、JupyterLab、オープンソース コンポーネントで構成された Managed Service for Apache Spark インスタンスを作成する。
- Managed Service for Apache Spark でノートブックを実行する。
費用
このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
-
コンソールのプロジェクト セレクタページで、プロジェクトを選択または作成します。 Google Cloud Google Cloud
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択には特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
-
Dataproc API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
環境を準備する
リソースのロケーションを選択します。
REGION=REGION
Cloud Storage バケットを作成する
gcloud storage buckets create gs://BUCKET --location=REGION
次の 初期化アクション をバケットにコピーします。
SCRIPT_BUCKET=gs://goog-dataproc-initialization-actions-REGION gcloud storage cp ${SCRIPT_BUCKET}/gpu/install_gpu_driver.sh BUCKET/gpu/install_gpu_driver.sh gcloud storage cp ${SCRIPT_BUCKET}/dask/dask.sh BUCKET/dask/dask.sh gcloud storage cp ${SCRIPT_BUCKET}/rapids/rapids.sh BUCKET/rapids/rapids.sh gcloud storage cp ${SCRIPT_BUCKET}/python/pip-install.sh BUCKET/python/pip-install.sh
JupyterLab とオープンソース コンポーネントを使用して Managed Service for Apache Spark クラスタを作成する
gcloud dataproc clusters create CLUSTER_NAME \ --region REGION \ --image-version 2.0-ubuntu18 \ --master-machine-type n1-standard-32 \ --master-accelerator type=nvidia-tesla-t4,count=4 \ --initialization-actions BUCKET/gpu/install_gpu_driver.sh,BUCKET/dask/dask.sh,BUCKET/rapids/rapids.sh,BUCKET/python/pip-install.sh \ --initialization-action-timeout=60m \ --metadata gpu-driver-provider=NVIDIA,dask-runtime=yarn,rapids-runtime=DASK,rapids-version=21.06,PIP_PACKAGES="scanpy==1.8.1,wget" \ --optional-components JUPYTER \ --enable-component-gateway \ --single-node
クラスタには次のプロパティがあります。
--region: クラスタが配置されているリージョン。--image-version:2.0-ubuntu18(クラスタ イメージのバージョン)。--master-machine-type:n1-standard-32(メインのマシンタイプ)。--master-accelerator: メインノード上の GPU のタイプと数で、4 つのnvidia-tesla-t4GPU。--initialization-actions: GPU ドライバ、Dask、RAPIDS、追加の依存関係をインストールするインストール スクリプトへの Cloud Storage パス。--initialization-action-timeout: 初期化アクションのタイムアウト。--metadata: NVIDIA GPU ドライバ、Dask のスタンドアロン スケジューラ、RAPIDS バージョン21.06を使用してクラスタを構成する初期化アクションに渡されます。--optional-components: Jupyter オプション コンポーネントを使用してクラスタを構成します。--enable-component-gateway: クラスタのウェブ UI へのアクセスを許可します。--single-node: クラスタを単一ノードとして構成します(ワーカーなし)。
Jupyter Notebook にアクセスする
- Managed Service for Apache Spark Google Cloud コンソールで [クラスタ] ページを開きます。
[クラスタ] ページを開く - クラスタをクリックし、[ウェブ インターフェース] タブをクリックします。
- [JupyterLab] をクリックします。
- JupyterLab で新しいターミナルを開きます。
clara-parabricks/rapids-single-cell-examplesリポジトリのクローンを作成し、managed-spark/multi-gpuブランチをチェックアウトします。git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout managed-spark/multi-gpu
JupyterLab で、rapids-single-cell-examples/notebooks リポジトリに移動し、1M_brain_gpu_analysis_uvm.ipynb Jupyter ノートブックを開きます。
ノートブックのすべての出力をクリアするには、[編集] > [すべての出力をクリア] を選択します。
ノートブックのセルに記載されている手順を確認します。このノートブックでは、Managed Service for Apache Spark で Dask と RAPIDS を使用して、データの処理と可視化を含む 100 万セルのシングルセル RNA-seq ワークフローについて説明します。詳細については、 RAPIDS を使用した単一細胞ゲノム分析の高速化をご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。
リソースを個別に削除する
- Managed Service for Apache Spark クラスタを削除します。
gcloud dataproc clusters delete cluster-name \ --region=region
-
バケットを削除します。
gcloud storage buckets delete BUCKET_NAME
次のステップ
- Managed Service for Apache Spark の詳細を確認する。
- リファレンス アーキテクチャ、図、チュートリアル、ベスト プラクティスを確認する。Cloud Architecture Center を確認する。