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

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

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

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

מטרות

  • יצירת מכונה של Managed Service for Apache Spark שמוגדרת עם מעבדי GPU,‏ JupyterLab ורכיבים של קוד פתוח.
  • מריצים מחברת ב-Managed Service for Apache Spark.

עלויות

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

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

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

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

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

    1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

      תפקידים שנדרשים כדי לבחור או ליצור פרויקט

      • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
      • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

      כניסה לדף לבחירת הפרויקט

    2. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

    3. מפעילים את Dataproc API.

      תפקידים שנדרשים להפעלת ממשקי API

      כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

      להפעלת ה-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
      

    יצירת אשכול Managed Service for Apache Spark עם JupyterLab ורכיבים בקוד פתוח

    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
    

    ל-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 במסוף Managed Service for Apache Spark Google Cloud .
      פתיחת הדף Clusters
    2. לוחצים על האשכול ואז על הכרטיסייה Web Interfaces (ממשקי אינטרנט).
    3. לוחצים על JupyterLab.
    4. פותחים טרמינל חדש ב-JupyterLab.
    5. משכפלים את clara-parabricks/rapids-single-cell-examples המאגר ומבצעים checkout של הענף 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 ופותחים את ה-notebook‏ 1M_brain_gpu_analysis_uvm.ipynb של Jupyter.

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

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

    הסרת המשאבים

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

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

    1. במסוף Google Cloud , נכנסים לדף Manage resources.

      כניסה לדף Manage resources

    2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
    3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

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

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

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