このチュートリアルでは、Dataproc で構成できる Dask、NVIDIA RAPIDS、GPU を使用してシングルセル ゲノミクス分析を実行する方法について説明します。スタンドアロン スケジューラまたはリソース管理用の YARN のいずれかを使用して Dask を実行するように Dataproc を構成できます。
このチュートリアルでは、ホストされた JupyterLab インスタンスを使用して Dataproc を構成し、シングルセル ゲノミクス分析を備えたノートブックを実行します。Dataproc で Jupyter Notebook を使用すると、Jupyter のインタラクティブな機能と Dataproc で可能になるワークロード スケーリングを組み合わせることが可能です。Dataproc では、1 台のマシンから多数のマシンにワークロードをスケールアウトできます。それらのマシンは必要なだけ多数の GPU で構成できます。
このチュートリアルは、データ サイエンティストと研究者を対象としています。Python の経験があり、次の基本的な知識があることを前提としています。
目標
- Dataproc インスタンスを作成し、GPU、JupyterLab、オープンソース コンポーネントで構成します。
- Dataproc でノートブックを実行します。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
環境を準備する
リソースのロケーションを選択します。
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 とオープンソースのコンポーネントを使用して Dataproc クラスタを作成する
- Dataproc クラスタを作成します。
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 ノートブックにアクセスする
- Dataproc Google Cloud コンソールで [クラスタ] ページを開きます。
[クラスタ] ページを開く - クラスタをクリックし、[ウェブ インターフェース] タブをクリックします。
- [JupyterLab] をクリックします。
- JupyterLab で新しいターミナルを開きます。
clara-parabricks/rapids-single-cell-examplesリポジトリのクローンを作成し、dataproc/multi-gpuブランチをチェックアウトします。git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout dataproc/multi-gpu
JupyterLab で、rapids-single-cell-examples/notebooks リポジトリに移動し、1M_brain_gpu_analysis_uvm.ipynb Jupyter ノートブックを開きます。
ノートブックのすべての出力をクリアするには、[編集] > [すべての出力をクリア] を選択します。
ノートブックのセルに記載されている手順を確認します。このノートブックでは、Dataproc で Dask と RAPIDS を使用して、データの処理と可視化を含む 100 万セルのシングルセル RNA-seq ワークフローについて説明します。詳細については、RAPIDS を使用した単一細胞ゲノム分析の高速化をご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
リソースを個別に削除する
- Dataproc クラスタを削除します。
gcloud dataproc clusters delete cluster-name \ --region=region
-
バケットを削除します。
gcloud storage buckets delete BUCKET_NAME
次のステップ
- Dataproc に関する詳細を確認する。
- リファレンス アーキテクチャ、図、チュートリアル、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。