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

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

במדריך הזה מוסבר איך להגדיר את Managed Service for Apache Spark עם מכונת JupyterLab באירוח כדי להריץ מחברת עם ניתוח גנומיקה של תא יחיד. שימוש ב-Jupyter Notebook ב-Managed Service for Apache Spark מאפשר לכם לשלב את היכולות האינטראקטיביות של Jupyter עם שינוי קנה המידה של עומסי העבודה שמתאפשרים באמצעות Managed Service for Apache Spark. עם Managed Service for 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, נדרשת ההרשאה 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
      

    יצירת אשכול 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,‏ 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 ופותחים את ה-Jupyter Notebook‏ 1M_brain_gpu_analysis_uvm.ipynb.

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

    8. קוראים את ההוראות בתאים של הנוטבוק. המחברת משתמשת ב-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

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