אחסון נתונים הניתנים לחישוב מחדש
מהדורת Python מהדורת JVM בלוג … ספרייה —> אחסון נתונים הניתנים לחישוב מחדש מאת קונרד הינסן, פורסם ב-03 בינואר 2014 שאלה נפוצה שאני מקבל כשאני מציג את ActivePapers היא “מה הטעם לאחסן תוצאות של חישובים? אם שומרים את הקוד, אפשר פשוט להריץ אותו מחדש. כל מה שצריך לאחסן זה את הקוד ואת נתוני הקלט.” התשובה הקצרה לכך היא שזה נכון מבחינה תיאורטית, אך פחות נכון במציאות. לתשובה המלאה, המשיכו לקרוא. כמו כן, תלמדו כיצד ActivePapers יכול לסייע לכם גם באחסון וגם באי-אחסון של נתונים הניתנים לחישוב מחדש. ראשית, בואו נסלק את הסיבה הברורה לאחסון נתונים הניתנים לחישוב מחדש: החישוב עשוי להיות יקר מדי להרצה חוזרת ונשנית. זהו מקרה קלאסי של דילמה בין זמן (מחשב) לבין ניצולת שטח אחסון בדיסק. במקרים רבים, פשרה טובה היא לשמור את הנתונים המתקבלים לזמן מה, כדי לאפשר ביצוע ניתוח מהיר אם צץ רעיון חדש, אך לא לארכב אותם לאחסון לטווח ארוך. לאחר מכן, סיבה פחות ברורה, ויתרה מכך, סיבה שאנחנו לא אוהבים להיזכר בה: החישוב עשוי שלא להיות ניתן לשחזור במידה הרצויה. תוכנות שמייצרות תוצאות מעט שונות בהתאם לפלטפורמה שעליה הן מורצות (מערכת הפעלה, גרסת מהדר, וכו’) נפוצות למדי. תוכנות המשתמשות בחשבון נקודה צפה כמעט תמיד נופלות בקטגוריה זו. המצב מחמיר במיוחד כאשר ההבדלים בין שתי הרצות של התוכנית גדולים עד כדי כך שהמסקנות המופקות מהתוצאות משתנות. כן, זה קורה. לבסוף, קיים מצב נפוץ מאוד שבו אחסון נתוני הפלט של חישוב אינו חשוב, אך אחסון המטא-נתונים הנלווים אליהם הוא כן. וכאן ActivePapers באמת מצטיין. מצב זה מתרחש כאשר הפלט הניתן לחישוב מחדש הוא למעשה נתון ביניים בזרימת העבודה המלאה שלכם. לדוגמה, אתם מריצים סימולציה כלשהי המייצרת מסלול ארוך, לאחר מכן מריצים ניתוח על המסלול, וממנו מפיקים תרשים. התרשים הוא התוצאה הסופית שלכם, ולכן תרצו לשמור אותו. המסלול והניתוח הגולמי הם תוצאות ביניים, שאין צורך לאחסן אלא אם כן הן נופלות באחת משתי הקטגוריות שהוסברו לעיל. עם זאת, תרצו לשמור את העובדה שהתרשים שלכם הופק מהניתוח הגולמי, אשר בתורו הופק ממסלול הסימולציה. בעזרת מידע זה, אתם וכל מי שיעיין בעבודתכם בעתיד, תוכלו לאמת בקלות שהתרשים אכן תואם לגרסה העדכנית ביותר של קוד הסימולציה והניתוח שלכם. ActivePapers מספק “ערכות נתונים מדומות” (dummy datasets) לטיפול במצב זה. ערכת נתונים מדומה אינה מכילה נתונים ממשיים, אך יש בה את כל המטא-נתונים ש-ActivePapers מייצר במהלך הרצת codelets. במצב הנוכחי של ActivePapers, הדרך היחידה ליצור ערכת נתונים מדומה כזו היא תחילה ליצור ערכת נתונים אמיתית, לאחר מכן להריץ את כל ה-calclets המשתמשים בה כקלט, ולבסוף להחליף את ערכת הנתונים האמיתית בערכת נתונים מדומה באמצעות aptool dummy .... המדריך מזכיר גם הוא ערכות נתונים מדומות ומראה כיצד לחשב מחדש את הנתונים המקוריים. ישנו מקום רב לשיפורים עתידיים בממשק המשתמש עבור ערכות נתונים מדומות. לדוגמה, ה-calclet היוצר ערכת נתונים יכול לסמן אותה כמדומה מיד, ואז היא לעולם לא תיכתב לקובץ אלא תועבר ל-calclets לקוח בזיכרון. אם יש לכם רעיונות בנושא זה, אנא פתחו issue בגיטראקר של Github . הערות מופעלות על ידי Disqus
למד Python על ידי קידוד בדפדפן שלך
קורסים אינטראקטיביים של Python ומדעי נתונים אתה מקודד ישירות בדפדפן