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

במדריך הזה מוסבר איך להריץ ניתוח גנומי של תא בודד באמצעות Dask,‏ NVIDIA CUDA-X ומעבדי 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 מאפשר. עם Managed Service for Apache Spark, אתם יכולים להרחיב אופקית את עומסי העבודה ממכונה אחת למספר מכונות, ולהגדיר אותן עם כמה מעבדים גרפיים שאתם צריכים.

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

מטרות

  • יוצרים מכונה של Managed Service for Apache Spark שמוגדרת עם מעבדים גרפיים, JupyterLab ורכיבי קוד פתוח.
  • מריצים notebook ב-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 ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
      • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?

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

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

    3. מפעילים את Dataproc API, אם הוא עדיין לא מופעל.

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

      כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (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
      

    איך יוצרים אשכול 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
    

    לאשכול יש את המאפיינים הבאים:

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

    גישה ל-Jupyter Notebook

    1. פותחים את הדף Clusters במסוף Managed Service for Apache Spark Cloud de Confiance .
      פתיחת הדף Clusters
    2. לוחצים על האשכול ואז על הכרטיסייה Web Interfaces.
    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 ופותחים את ה-Jupyter Notebook‏ 1M_brain_gpu_analysis_uvm.ipynb.

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

    8. קוראים את ההוראות בתאים של ה-notebook. ה-notebook משתמש ב-Dask וב-CUDA-X ב-Managed Service for Apache Spark כדי להדריך אתכם בתהליך עבודה של RNA-seq בתא בודד במיליון תאים, כולל עיבוד הנתונים והצגתם באופן חזותי. למידע נוסף, קראו את המאמר Accelerating Single Cell Genomic Analysis using CUDA-X.

    הסרת המשאבים

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

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

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

      כניסה לדף 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

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