יום שבת, 17 בדצמבר 2022

עבודה עם Numba - חלק 2 [פייתון]

בהמשך לחלק הראשון כאן 

אז רציתי לעשות עוד בדיקה של עבודה עם  Numba, 

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

הקוד שלקחתי (וגם ההסבר על מגדלי הנוי והאלגוריתם) נמצאים כאן 

במקרה של האלגוריתם המדובר, לא צריך לשנות כלום בקוד להתאמה ל Numba - חוץ מהוספה של הדקורטור של Numba, לא רע! 

את קוד הבדיקה שמתי ב GitHub, אפשר לראות אותו כאן https://github.com/barakbl/numba_test/blob/main/hanoi.py


הנה תוצאות ההרצה: 



התוצאות מדברות בעד עצמן, השיפור הוא כ 88 אחוז בביצועים.  לא רע בכלל. 


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




אין תגובות:

הוסף רשומת תגובה