Singularity (תוכנה)

Singularity היא תוכנה חוצה פלטפורמות מחשוב, המבוססת קוד פתוח ומאפשרת וירטואליזציה וכמיסת קוד (Software container) ברמת מערכת ההפעלה. אחד השימושים העיקריים של תוכנת Singularity הוא בהנגשת אריזת קוד ויבילות קוד (Portable application) לעולמות המחשוב המדעי ומחשוב עתיר ביצועים. הצורך ביבילות קוד, המאפשר מעבר מהמחשב האישי לשרת מרוחק ולסביבה מרובת משאבי מחשוב ועד הענן הציבורי, יחד עם הצורך בריבוי מופעי הרצה (reproducibility), הם בין הצרכים העיקריים במחשוב מדעי עתיר ביצועים לטובת הרצת סימולציות מורכבות לאימון, למידה עמוקה ועוד. צרכים אלו מקבלים מענה דרך שימוש בפתרון Singularity. השימוש בקוד ארוז מבוסס Singularityמאפשר למפתחי תוכנה ואלגוריתמים לנייד קוד בצורה פשוטה מפלטפורמה אחת לאחרת בשקיפות ובקלות ובאופן כזה לנצל בקלות משאבי מחשוב רבים ומגוונים לטובת פתרון בעיות שמצריכות משאבים רבים. פתרון זה מאפשר שסביבות שלמות ניתנות להעתקה ולביצוע בפלטפורמות אחרות. Singularity החלה כפרויקט בקוד פתוח בשנת 2015, כאשר צוות חוקרים במעבדה הלאומית של לורנס ברקלי, בראשות גרגורי קורצ'ר, פיתחו ושחררו את הגרסה הראשונית תחת BSD License . בסוף 2016, מפתחים רבים ממתקני מחקר שונים איחדו כוחות עם הצוות במעבדה הלאומית של לורנס ברקלי כדי לקדם את פיתוח פתרון ה-singularity. Singularity משכה במהירות את תשומת הלב של מוסדות מדעיים הצורכות כח מחשוב רב ברחבי העולם: מרכז המחשוב לחקר המחקר של אוניברסיטת סטנפורד פרסם את פתרון ה- Singularity על XStream ו-Sherlock. מכוני הבריאות הלאומיים התקינו את Singularity על Biowulf לטובת ה- Linux cluster. אתרים שונים של ארגון המידע הפתוח כולל Fermilab החלו לאמץ את Singularity. עד אפריל 2017, Singularity נפרסה על 60% מרשת המדע פתוח. במשך שנתיים ברציפות, בשנים 2016 ו-2017, הוכרה Singularity על ידי עורכי HPCwire כ"אחת מחמש טכנולוגיות חדשות". בשנת 2017 Singularity זכתה גם במקום הראשון בקטגוריה: הכלי הטוב ביותר לתכנות HPC או טכנולוגיה ″ נכון לשנת 2018, על סמך הנתונים שהוזנו במרשם ציבורי, מעריכים כי בסיס המשתמשים ביחידניות גדול מ־25,000 התקנות וכולל משתמשים במוסדות אקדמיים כמו אוניברסיטת אוהיו ואוניברסיטת מישיגן, כמו גם מרכזי HPC המובילים כמו מרכז המחשוב המתקדם בטקסס, מרכז מחשבי העל של סן דייגו ומעבדה לאומית של אוקרידג'. השימוש ב-Singularity מאפשר תמיכה מלאה ומובנית בתשתיות תקשורת מהירות וממשקים מורכבים תחת סטנדרטיזציה בעולם המחשוב עתיר הביצועים כדוגמת InfiniBand של חברת מלנוקס כמו גם תשתיות תקשורת מהירות אחרות כגון Omni Path Architecture) OPA) של אינטל. באופן דומה, מתקיימת תמיכה מלאה ומובנית גם בהתקנים מבוססי PCIe כדוגמת מאיצים גרפיים רבים המשמשים כיום לתהליכי אימון ולמידה עמוקה בעולם הבינה המלאכותית. בנוסף, Singularity תומך באופן מלא בספריות תוכנה לטובת תקשורת מקבילית כדוגמת OpenMPI הן ברמת תקשורת פנימית בתוך הקוד העטוף והן בין חבילות תוכנה עטופות (Containerized). כל היכולות המוזכרות לעיל הופכות את Singularity לתשתית פופולרית מאוד בתרחישים שבהם נדרשים חישובים המצריכים תקשורת מהירה ורחבת פס כדוגמת תהליכי אימון, למידה עמוקה והרצת חקר ביצועים למול אתגרי מחקר משמעותיים. פתרון מבוסס Singularity הוא אינטגרטיבי למערכות ניהול משאבים ותזמון עבודות במחשוב עתיר ביצועים (High Performance Computing Schedulers) והוא מאפשר השתלבות פשוטה שאינה מצריכה התאמות מרחיקות לכת במערכים הקיימים וזאת בניגוד לשימוש בתשתית כדוגמת Docker שמצריכה התקנות ושינויים במערך ההרשאות בכלל מערכי העיבוד המיועדים לטובת תהליכי החישוב. פתרון Singularity משתלב היטב עם המערכות הפופולריות הבאות: HTCondor (Oracle Grid Engine (SGE SLURM - תוכנה לינוקסית קטנה לניהול משאבים. TORQUE - תוכנה לניהול משאבים במערכות חישוב מבוזרות. מדיה וקבצים בנושא Singularity בוויקישיתוף אתר האינטרנט הרשמי של Singularity singularity-containers-for-hpc-deep-learning מאמר אקדמי בנושא Singularity Containers for mobility computers Jon Claerbout and Martin Karrenbach, Electronic Documents Give Reproducible Research a New Meaning, stanford, ‏October 25-29, 1992 sylabs.io. Sylabs, Singularity Releases, Github Michael Feldman, Sylabs Brings Singularity Containers into Commercial HPC, Top500, ‏February 9, 2018 01:27 CET @gmkurtzer gmkurtzer Gregory M. Kurtzer, "Changes to the AUTHORS.md file in Singularity source code made in April 2017, Github, ‏Apr 26, 2017 Stanford University, XStream online user manual, section on Singularity, stanford Stanford university, Sherlock Supercomputer: What's New, Containers and Deep Learning Tools, stanford, ‏JUN 6 2016 NIH HPC online user manual, section on Singularity, HPC Linux Cluster - NIH HPC Systems, HPC Singularity in CMS: Over a million containers served HPCwire Reveals Winners of the 2016 Readers' and Editors' Choice Awards at SC16 Conference in Salt Lake City HPCwire Reveals Winners of the 2017 Readers' and Editors' Choice Awards at SC17 Conference in Denver Nathan R. Tallent, Nitin Gawande, Adolfy Hoisie, Evaluating On-Node GPU Interconnects for Deep Learning Workloads, semanticscholar Mark Coatsworth, HTCondor Stable Release Manual : Singularity Support, GitHub