**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

הערות שוליים
------------

1. ↑  Jon Claerbout and Martin Karrenbach, Electronic Documents Give Reproducible Research a New Meaning, stanford, ‏October 25-29, 1992
2. ↑  sylabs.io. Sylabs, Singularity Releases, Github
3. ↑  Michael Feldman, Sylabs Brings Singularity Containers into Commercial HPC, Top500, ‏February 9, 2018 01:27 CET
4. ↑  @gmkurtzer gmkurtzer

Gregory M. Kurtzer, "Changes to the AUTHORS.md file in Singularity source code made in April 2017, Github, ‏Apr 26, 2017
5. ↑  Stanford University, XStream online user manual, section on Singularity, stanford
6. ↑  Stanford university, Sherlock Supercomputer: What's New, Containers and Deep Learning Tools, stanford, ‏JUN 6 2016
7. ↑  NIH HPC online user manual, section on Singularity, HPC
8. ↑  Linux Cluster - NIH HPC Systems, HPC
9. ↑  Singularity in CMS: Over a million containers served
10. ↑  HPCwire Reveals Winners of the 2016 Readers' and Editors' Choice Awards at SC16 Conference in Salt Lake City
11. ↑  HPCwire Reveals Winners of the 2017 Readers' and Editors' Choice Awards at SC17 Conference in Denver
12. ↑  Nathan R. Tallent, Nitin Gawande, Adolfy Hoisie, Evaluating On-Node GPU Interconnects for Deep Learning Workloads, semanticscholar
13. ↑  Mark Coatsworth, HTCondor Stable Release Manual : Singularity Support, GitHub