Singularity (תוכנה)

מתוך ויקיפדיה, האנציקלופדיה החופשית
Singularity
סמליל התוכנה
סמליל התוכנה
גרסה אחרונה 3.8.7 (17 במאי 2022) עריכת הנתון בוויקינתונים
מערכת הפעלה לינוקס עריכת הנתון בוויקינתונים
נכתבה בשפות Go, C עריכת הנתון בוויקינתונים
סוג רישיון רישיון BSD החדש עריכת הנתון בוויקינתונים
קוד מקור https://github.com/apptainer/singularity עריכת הנתון בוויקינתונים
apptainer.org
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

Singularity היא תוכנה חוצה פלטפורמות מחשוב, המבוססת קוד פתוח ומאפשרת וירטואליזציה וכמיסת קוד (Software container) ברמת מערכת ההפעלה.

אחד השימושים העיקריים של תוכנת Singularity הוא בהנגשת אריזת קוד ויבילות קוד (Portable application) לעולמות המחשוב המדעי ומחשוב עתיר ביצועים. הצורך ביבילות קוד, המאפשר מעבר מהמחשב האישי לשרת מרוחק ולסביבה מרובת משאבי מחשוב ועד הענן הציבורי, יחד עם הצורך בריבוי מופעי הרצה (reproducibility)[1], הם בין הצרכים העיקריים במחשוב מדעי עתיר ביצועים לטובת הרצת סימולציות מורכבות לאימון, למידה עמוקה ועוד. צרכים אלו מקבלים מענה דרך שימוש בפתרון Singularity.

השימוש בקוד ארוז מבוסס Singularity[2]מאפשר למפתחי תוכנה ואלגוריתמים לנייד קוד בצורה פשוטה מפלטפורמה אחת לאחרת בשקיפות ובקלות ובאופן כזה לנצל בקלות משאבי מחשוב רבים ומגוונים לטובת פתרון בעיות שמצריכות משאבים רבים. פתרון זה מאפשר שסביבות שלמות ניתנות להעתקה ולביצוע בפלטפורמות אחרות.

היסטוריה[עריכת קוד מקור | עריכה]

Singularity החלה כפרויקט בקוד פתוח בשנת 2015, כאשר צוות חוקרים במעבדה הלאומית של לורנס ברקלי, בראשות גרגורי קורצ'ר, פיתחו ושחררו את הגרסה הראשונית[3] תחת BSD License .

בסוף 2016, מפתחים רבים ממתקני מחקר שונים איחדו כוחות עם הצוות במעבדה הלאומית של לורנס ברקלי כדי לקדם את פיתוח פתרון ה-singularity[4].

Singularity משכה במהירות את תשומת הלב של מוסדות מדעיים הצורכות כח מחשוב רב ברחבי העולם:

במשך שנתיים ברציפות, בשנים 2016 ו-2017, הוכרה Singularity על ידי עורכי HPCwire כ"אחת מחמש טכנולוגיות חדשות"[10]. בשנת 2017 Singularity זכתה גם במקום הראשון בקטגוריה: הכלי הטוב ביותר לתכנות HPC או טכנולוגיה[11]

נכון לשנת 2018, על סמך הנתונים שהוזנו במרשם ציבורי, מעריכים כי בסיס המשתמשים ביחידניות גדול מ־25,000 התקנות וכולל משתמשים במוסדות אקדמיים כמו אוניברסיטת אוהיו ואוניברסיטת מישיגן, כמו גם מרכזי HPC המובילים כמו מרכז המחשוב המתקדם בטקסס, מרכז מחשבי העל של סן דייגו ומעבדה לאומית של אוקרידג'.

יכולות[עריכת קוד מקור | עריכה]

השימוש ב-Singularity מאפשר תמיכה מלאה ומובנית בתשתיות תקשורת מהירות וממשקים מורכבים תחת סטנדרטיזציה בעולם המחשוב עתיר הביצועים כדוגמת InfiniBand של חברת מלנוקס כמו גם תשתיות תקשורת מהירות אחרות כגון Omni Path Architecture) OPA) של אינטל.

באופן דומה, מתקיימת תמיכה מלאה ומובנית גם בהתקנים מבוססי PCIe כדוגמת מאיצים גרפיים רבים המשמשים כיום לתהליכי אימון ולמידה עמוקה בעולם הבינה המלאכותית.

בנוסף, Singularity תומך באופן מלא בספריות תוכנה לטובת תקשורת מקבילית כדוגמת OpenMPI הן ברמת תקשורת פנימית בתוך הקוד העטוף והן בין חבילות תוכנה עטופות (Containerized).

כל היכולות המוזכרות לעיל הופכות את Singularity לתשתית פופולרית מאוד בתרחישים שבהם נדרשים חישובים המצריכים תקשורת מהירה ורחבת פס כדוגמת תהליכי אימון, למידה עמוקה והרצת חקר ביצועים למול אתגרי מחקר משמעותיים[12].

אינטגרציה[עריכת קוד מקור | עריכה]

פתרון מבוסס Singularity הוא אינטגרטיבי למערכות ניהול משאבים ותזמון עבודות במחשוב עתיר ביצועים (High Performance Computing Schedulers) והוא מאפשר השתלבות פשוטה שאינה מצריכה התאמות מרחיקות לכת במערכים הקיימים וזאת בניגוד לשימוש בתשתית כדוגמת Docker שמצריכה התקנות ושינויים במערך ההרשאות בכלל מערכי העיבוד המיועדים לטובת תהליכי החישוב.

פתרון Singularity משתלב היטב עם המערכות הפופולריות הבאות:

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא Singularity בוויקישיתוף

הערות שוליים[עריכת קוד מקור | עריכה]