במדריך הזה מוסבר איך להריץ ניתוח גנומי של תא בודד באמצעות 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, והשימוש בהם כרוך בתשלום:
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
-
בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים?
-
מפעילים את Dataproc API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
הכנת הסביבה
בוחרים מיקום למשאבים.
REGION=REGION
יצירת קטגוריה של Cloud Storage.
gcloud storage buckets create gs://BUCKET --location=REGION
מעתיקים את פעולות האיניציאליזציה הבאות לקטגוריה.
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 ורכיבי קוד פתוח
- יוצרים אשכול של 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
- פותחים את הדף Clusters במסוף Managed Service for Apache Spark Cloud de Confiance .
פתיחת הדף Clusters - לוחצים על האשכול ואז על הכרטיסייה Web Interfaces.
- לוחצים על JupyterLab.
- פותחים טרמינל חדש ב-JupyterLab.
משכפלים את המאגר של
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
ב-JupyterLab, עוברים למאגר rapids-single-cell-examples/notebooks ופותחים את ה-Jupyter Notebook 1M_brain_gpu_analysis_uvm.ipynb.
כדי לנקות את כל הפלטים ב-notebook, לוחצים על Edit > Clear All Outputs.
קוראים את ההוראות בתאים של ה-notebook. ה-notebook משתמש ב-Dask וב-CUDA-X ב-Managed Service for Apache Spark כדי להדריך אתכם בתהליך עבודה של RNA-seq בתא בודד במיליון תאים, כולל עיבוד הנתונים והצגתם באופן חזותי. למידע נוסף, קראו את המאמר Accelerating Single Cell Genomic Analysis using CUDA-X.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
מחיקת הפרויקט
- נכנסים לדף Manage resources במסוף Cloud de Confiance .
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבים ספציפיים
- מחיקת האשכול של Managed Service for Apache Spark
gcloud dataproc clusters delete cluster-name \ --region=region
-
מוחקים את הקטגוריה:
gcloud storage buckets delete BUCKET_NAME
המאמרים הבאים
- מידע נוסף על Managed Service for Apache Spark
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים, מדריכים ושיטות מומלצות. כל אלה זמינים במרכז הארכיטקטורה של Cloud.