Back to the Club's homepage

Scientific Python - Uri Barkan

Download the slides.

Abstract


לקראת המחצית השנייה של המאה ה-20 החל להיווצר תפקיד משמעותי למחשבים במחקר המדעי. התקדמות הפלטפורמות החישוביות, בד בבד עם פיתוח נושאים מחקריים מורכבים שדרשו פתרונות נומריים ולא אנליטיים (דוגמת פרויקט מנהטן, לפיתוח פצצת האטום האמריקאית בזמן מלחמת העולם השנייה), גרמו לפריחה של שיטת מחקר חדשה בעולם המדעי: שימוש במחשבים לצורך הרחבה ושיפור הבנתנו את הטבע.


בתכנות מדעי משתמשים בתוכנות מחשב לטובת מחקר של תהליכים. כיום משמשת השיטה כמעט בכל תחום מדעי: מתמטיקה, פיסיקה, ביולוגיה, רפואה, הנדסה ואף תחומים במדעי החברה. השימוש בתוכנות מדעיות יכול להיות מגוון. לדוגמה:

  1. סימולציות נומריות של מערכות מורכבות שלא קיים עבורן פתרון אנליטי, או שקשה למצוא אותו, ובמקרים בהם מחקר ישיר של המערכת קשה או בלתי אפשרי, לדוגמה בגלל זמינות משאבים נמוכה של המערכת. בדרך זו מחקים את המערכת בתוכנה וחוקרים את התנהגותה.

  2. ניתוח מדעי - ניסויים מורכבים ותצפיות על מערכות מורכבות יכולים ליצור כמויות מידע שניתוח ידני שלהן הופך ללא מעשי. במקרה זה תוכנות מדעיות מאפשרות ניתוח מהיר ויעיל של המידע.

  3. אופטימיזציה חישובית - בשיטה זו עושים שימוש בעיקר בהנדסה, לטובת כיוונון ושיפור תהליכים בתרחישים ידועים.

כיום ניתן לזהות תפקיד חשוב של התוכנות מדעיות בתהליכי מחקר ופיתוח (מו"פ) גם בתעשיות עתירות ידע (היי-טק), ולא רק בעולם המדעי-אקדמי. בכל חברת היי-טק ניתן למצוא מחלקת מו"פ, וברבות מהן עושים שימוש בתוכנות מדעיות לצורך אפיון מהיר של המוצר או של חלקים ממנו. הדבר נכון במיוחד בפיתוח אלגוריתמים; האלגוריתם מפותח ונבדק במהירות בתוכנה מדעית, ורק אחר-כך ממומש במוצר.


ניתן לזהות בתוכנה מדעית מספר מאפיינים:

  1. נגישות - בקרת עמיתים (peer review) היא שיטה מקובלת בעולם המדעי לבדיקה ואימות המחקר. כדי שניתן יהיה לחזור על התהליכים שביצע החוקר יש לאפשר נגישות לכלים בהם ביצע את המחקר, ולכן תוכנות מדעיות צריכות להיות נגישות לציבור החוקרים.

  2. זמינות של ספריות מתמטיות - האופי החד-פעמי של כל תהליך מחקרי או פיתוחי (בניגוד, נניח, לתהליכי ייצור) גוזר שימוש חסכוני במשאבים (במקרה שלנו, בעיקר הזמן של החוקר). מכיוון שכך, המטרה בתהליכי מו"פ היא להשתמש במידת האפשר בתשתיות קיימות, או במקרה שלנו - בספריות מתמטיות מוכנות.

  3. גמישות - האופי הדינמי של העבודה המחקרית מחייב שימוש בתוכנות גמישות וקלות לשינוי. התמורות המתחוללות בעולם המדעי בזמן קצר גרמו למפתחי התוכנות המדעיות ליצור כלים ושפות מהירים ונוחים לשימוש, גם אם לעיתים על חשבון יעילות בשימוש במשאבי המחשב. מסיבה זו שפות לתכנות מדעי הן כמעט תמיד שפות עיליות.

  4. ויזואליזציה - כמויות המידע ההולכות ותופחות במחקר המדעי דורשות כלים מתקדמים להצגת המידע הזה. כיום, טכניקות ויזואליזציה הן חלק בלתי נפרד מכל תוכנה מדעית.

אחת התוכנות המדעיות הפופולריות ביותר נקראת Matlab. תוכנה זו מופצת תחת רישיון קנייני וזכויות היוצרים שלה שייכים לחברת Mathworks המפתחת את התוכנה. הממסד האקדמי, שדוגל מטבעו בשיתוף ידע, ממהר בכל העולם לאמץ תוכנות חופשיות, הקרובות (אידיאולוגית) לאופן שבו רבים בו מאמינים שמידע צריך להיות נגש לקהילה המדעית. לכן אין זה מפתיע שבשנים האחרונות עולות אלטרנטיבות חופשיות גם ל-Matlab.

אחת מהאלטרנטיבות מושתתת על שפת התכנות הוותיקה Python. לשפה זו, שהגרסה הראשונה שלה הופצה ב-1989, פותחו מודולים רבים המאפשרים ביצוע ניתוחים מדעיים בקלות, במהירות ובדיוק הנדרש. מודולים אלה (דוגמת Numpy ו-Scipy), כמו Python עצמה, מופצים ברישיונות פתוחים, ובזכות זה תופסים מקום הולך וגדל בקהילה המדעית.

בהרצאה יציג אורי ברקן כיצד ניתן להשתמש ב-Python בשימושים מדעיים והנדסיים תוך השוואה של השפה וסביבת העבודה ל-Matlab.

Back to the Club's homepage