הרצת ניתוח גנומיקה ב-notebook של JupyterLab ב-Dataproc

במדריך הזה מוסבר איך להריץ ניתוח גנומיקה של תא יחיד באמצעות Dask,‏ NVIDIA RAPIDS ומעבדים גרפיים (GPU), שאפשר להגדיר ב-Dataproc. אפשר להגדיר את Dataproc להרצת Dask עם מתזמן עצמאי או עם YARN לניהול משאבים.

במדריך הזה מוגדר Dataproc עם מכונת JupyterLab מתארחת להרצת notebook עם ניתוח גנומיקה של תא יחיד. שימוש ב-Jupyter Notebook ב-Dataproc מאפשר לכם לשלב את היכולות האינטראקטיביות של Jupyter עם שינוי קנה המידה של עומסי העבודה ש-Dataproc מאפשר. בעזרת Dataproc, אפשר להרחיב את עומסי העבודה ממכונה אחת לכמה מכונות, שאפשר להגדיר בהן כמה מעבדי GPU שרוצים.

המדריך הזה מיועד למדעני נתונים ולחוקרים. אנחנו מניחים שיש לכם ניסיון ב-Python וידע בסיסי בנושאים הבאים:

מטרות

  • יוצרים מכונת Dataproc שמוגדרים בה מעבדי GPU,‏ JupyterLab ורכיבים בקוד פתוח.
  • מריצים מחברת ב-Dataproc.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • Dataproc
  • Cloud Storage
  • GPUs
  • כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אפשר להשתמש במחשבון התמחור.

    יכול להיות שמשתמשים חדשים ב- Google Cloud זכאים לתקופת ניסיון בחינם.

    כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.

    לפני שמתחילים

    1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    2. Verify that billing is enabled for your Google Cloud project.

    3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the 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
      

    יצירת אשכול Dataproc עם JupyterLab ורכיבים בקוד פתוח

    1. יצירה של אשכול 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
    

    ל-cluster יש את המאפיינים הבאים:

    • --region: האזור שבו נמצא האשכול.
    • --image-version: 2.0-ubuntu18, the cluster image version
    • --master-machine-type: n1-standard-32, סוג המכונה הראשי.
    • --master-accelerator: הסוג והמספר של יחידות ה-GPU בצומת הראשי, ארבע יחידות GPU‏ nvidia-tesla-t4.
    • --initialization-actions: הנתיבים ב-Cloud Storage לסקריפטים של ההתקנה שמתקינים מנהלי התקנים של GPU,‏ Dask,‏ RAPIDS ותלות נוספת.
    • --initialization-action-timeout: הזמן הקצוב לתפוגה של פעולות האתחול.
    • --metadata: מועבר לפעולות האתחול כדי להגדיר את האשכול עם מנהלי התקנים של NVIDIA GPU, מתזמן עצמאי ל-Dask ו-RAPIDS בגרסה 21.06.
    • --optional-components: הגדרת האשכול עם הרכיב האופציונלי Jupyter.
    • --enable-component-gateway: מאפשר גישה לממשקי משתמש באינטרנט באשכול.
    • --single-node: מגדיר את האשכול כצומת יחיד (ללא צמתים של עובדים).

    גישה ל-Jupyter Notebook

    1. פותחים את הדף Clusters במסוף Dataproc Google Cloud .
      פתיחת הדף Clusters
    2. לוחצים על האשכול ואז על הכרטיסייה Web Interfaces (ממשקי אינטרנט).
    3. לוחצים על JupyterLab.
    4. פותחים טרמינל חדש ב-JupyterLab.
    5. משכפלים את clara-parabricks/rapids-single-cell-examples המאגר ומבצעים checkout של הענף dataproc/multi-gpu.

      git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git
      git checkout dataproc/multi-gpu
      

    6. ב-JupyterLab, מנווטים אל המאגר rapids-single-cell-examples/notebooks ופותחים את ה-Jupyter Notebook‏ 1M_brain_gpu_analysis_uvm.ipynb.

    7. כדי לנקות את כל הפלט ב-notebook, בוחרים באפשרות Edit > Clear All Outputs.

    8. קוראים את ההוראות בתאים של המחברת. המחברת משתמשת ב-Dask וב-RAPIDS ב-Dataproc כדי להדריך אתכם בתהליך עבודה של RNA-seq של תא יחיד במיליון תאים, כולל עיבוד והצגה חזותית של הנתונים. מידע נוסף זמין במאמר האצת ניתוח גנומי של תא בודד באמצעות RAPIDS.

    הסרת המשאבים

    כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

    מחיקת הפרויקט

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    מחיקת משאבים בודדים

    1. מוחקים את אשכול Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. מוחקים את הקטגוריה:
      gcloud storage buckets delete BUCKET_NAME

    המאמרים הבאים