JupyterLab ノートブックでゲノム解析を実行する

このチュートリアルでは、Managed Service for Apache Spark で構成できる Dask、NVIDIA CUDA-X、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 の経験があり、次の基本的な知識があることを前提としています。

目標

  • Managed Service for Apache Spark インスタンスを作成し、GPU、JupyterLab、オープンソース コンポーネントで構成します。
  • Managed Service for Apache Spark でノートブックを実行する。

費用

このドキュメントでは、課金対象である次の Cloud de Confiance by S3NSコンポーネントを使用します。

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

    始める前に

    1. Cloud de Confiance コンソールのプロジェクト セレクタページで、 Cloud de Confiance プロジェクトを選択または作成します。

      プロジェクトの選択または作成に必要なロール

      • プロジェクトを選択する: プロジェクトを選択する際に、特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
      • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者のロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。

      プロジェクト セレクタに移動

    2. Cloud de Confiance プロジェクトに対して課金が有効になっていることを確認します。

    3. Dataproc API を有効にします(有効になっていない場合)。

      API を有効にするために必要なロール

      API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法を確認する。

      API の有効化

    環境を準備する

    1. リソースのロケーションを選択します。

      REGION=REGION
      

    2. Cloud Storage バケットを作成します。

      gcloud storage buckets create gs://BUCKET --location=REGION
      

    3. 次の初期化アクションをバケットにコピーします。

      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 クラスタを作成する

    1. 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-t4 GPU。
    • --initialization-actions: GPU ドライバ、Dask、CUDA-X、追加の依存関係をインストールするインストール スクリプトへの Cloud Storage パス。
    • --initialization-action-timeout: 初期化アクションのタイムアウト。
    • --metadata: NVIDIA GPU ドライバ、Dask のスタンドアロン スケジューラ、CUDA-X バージョン 21.06 を使用してクラスタを構成する初期化アクションに渡されます。
    • --optional-components: Jupyter オプション コンポーネントを使用してクラスタを構成します。
    • --enable-component-gateway: クラスタのウェブ UI へのアクセスを許可します。
    • --single-node: クラスタを単一ノードとして構成します(ワーカーなし)。

    Jupyter ノートブックにアクセスする

    1. Managed Service for Apache Spark Cloud de Confiance コンソールで [クラスタ] ページを開きます。
      [クラスタ] ページを開く
    2. クラスタをクリックし、[ウェブ インターフェース] タブをクリックします。
    3. [JupyterLab] をクリックします。
    4. JupyterLab で新しいターミナルを開きます。
    5. 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
      

    6. JupyterLab で、rapids-single-cell-examples/notebooks リポジトリに移動し、1M_brain_gpu_analysis_uvm.ipynb Jupyter ノートブックを開きます。

    7. ノートブックのすべての出力をクリアするには、[編集] > [すべての出力をクリア] を選択します。

    8. ノートブックのセルに記載されている手順を確認します。このノートブックでは、Managed Service for Apache Spark で Dask と CUDA-X を使用して、データの処理と可視化を含む 100 万セルのシングルセル RNA-seq ワークフローについて説明します。詳細については、CUDA-X を使用した単一細胞ゲノム分析の高速化をご覧ください。

    クリーンアップ

    このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

    プロジェクトを削除する

    1. Cloud de Confiance コンソールで [リソースの管理] ページに移動します。

      [リソースの管理] に移動

    2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
    3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

    リソースを個別に削除する

    1. Managed Service for Apache Spark クラスタを削除します。
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. バケットを削除します。
      gcloud storage buckets delete BUCKET_NAME

    次のステップ