DATA Analytics בסביבת MATLAB

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

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

בסביבת MATLAB קיימים מגוון פתרונות ויכולות המאפשרים עבודה וניתוח מידע מסוג זה:

MATLABהתמודדות עם Big Data באמצעות MATLAB

Big Data הוא מונח המתייחס למאגר מידע כה גדול, שבשל גודלו הרב קשה לנו לעבד אותו בשיטות מסורתיות. בסביבת העבודה של MATLAB, big data הוא מידע שיהיה לנו קשה לעבד אותו בפונקציות הרגילות של MATLAB, המניחות שכל המידע נמצא בזיכרון בזמן העיבוד.

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

התמודדות עם Big Data באמצעות MATLAB

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

גישה למידע וטעינה לזיכרון

סביבת MATLAB תומכת בפעולות והרצה על גבי מחשבים מבוססי 64-ביט. מיפוי הזיכרון בשיטת 64-ביט מאפשר גישה וטעינה של מערכים ונתונים בגודל של 500GB או עד 4TB לשרתים (בסביבת חלונות). ע"י שימוש בפונקציה memmapfile ניתן להגדיר מצביע לקובץ גדול, ואז במקום לטעון את כל הקובץ לזיכרון, ניתן לגשת למידע ישירות מבלי לטעון אותו.. הפונקציה datastore מאפשרת להגדיר מצביע דומה לפונקציה memmapfile, אך מרחיבה את השימוש בו גם למאגרי מידע חיצוניים (database), מאפשרת להגדיר את הפורמטט למידע הנקרא, ולקרוא את המידע בצורה של גושי מידע (Chunk) – כל שנדרש הוא להגדיר לולאה שתעבור על כל המידע. מאחר וחלק גדול מהפונקציות ב-MATLAB רצות בצורהה מקבילית על גבי המעבד, זמן החישוב הוא מהיר, ללא צורך לעשות כל פעולה מעבר לכך. במידה וקיים על גבי מחשב העבודה מעבד גרפי (GPU), ניתן להריץ פונקציות רבות בצורה מקבילית על גבי מעבד זה, ולהאיץ את זמן העיבוד.

בעזרת System Objects, המבוססים על גישת Object Oriented Programming, ניתן לבצע חישובי Streaming על מידע גדול, כלומר פעולות שמבוצעות בצורה טורית וצורכות פחות זיכרון ומשאבים.

לצורכי עיבוד תמונות גדולות ווידאו ניתן להשתמש ביכולות ה- Blockproc ולבצע פעולות בצורה של תתי תמונה בכל פעם.

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

כדי להאיץ את הביצועים בעיבוד big data, ניתן למקבל את כל הפעולות שהוזכרו לעיל ע"י שימוש ב- GPU או ביכולות עיבוד מקבילי.

שימוש באלמנטים מובנים בשפת התוכנה MATLAB

שפת MATLAB היא שפת תוכנה מהדור ה-4, וקיימות בה יכולות המאפשרות פעולות המותאמות ישירות למאגרי מידע גדולים.

במקום לכתוב קוד מיוחד שמתחשב בגודל הנתונים, ניתן להשתמש בטיפוס המשתנה tall arrays על מנת לעבוד עם big data  באופן פשוט ואינטואיטיבי. נוכל לבצע חישובים סטטיסטיים, למידת מכונה וויזואליזציה של מידע שאינו מתאים לגודל הזיכרון עם אותן פונקציות מוכרות ובאותו סינטקס, כאילו היה זה משתנה רגיל הנמצא בזיכרון. ניתן לעבוד עם tall arrays  במחשב האישי, על גבי clusters, ואפילו על גבי Spark.

כמו כן, בעזרת distributed arrays ניתן לבצע פעולות מתמטיות ופעולות בין מטריצות על מידע המתאים לזיכרון הכולל של ה-cluster, על ידי שימוש באותן פונקציות MATLAB מוכרות.

תמיכה בתשתית ופלטפורמות

MATLAB ניתן לחבר ולהריץ על גבי מערכות IT שונות, בין היתר:

  • מחשב מקומי – היכול להכיל בתוכו רכיבים מקביליים, כמו מעבד עם מספר ליבות או מחשב הכולל בתוכו רכיבי GPU
  • מאגרי מידע מסוג SQL ו-NoSQL
  • צבירים (Clusters) ומחשוב ענן (כדוגמת EC2 של Amazon)
  • סביבות Hadoop, HDFS ו-Spark
Using Tall Arrays for Big Data

Using Tall Arrays for Big Data

Tall Arrays - טיפוס נתונים חדש המאפשר עבודה יעילה ונוחה עם מידע שאינו מתאים לגודל הזיכרון

Tall הוא טיפוס נתונים חדש המאפשר עבודה עם מידע גדול מדי לזיכרון (של המחשב או של Cluster), שיש לו מבנה "גבוה", כלומר מעט עמודות והרבה שורות.
במקום לכתוב קוד מיוחד שמתחשב בגודל של המידע, tall arrays מאפשרות לעבוד באופן אינטואיטיבי ובאותה צורה שהיינו עובדים אם המידע היה קטן ומתאים לזיכרון.
העבודה עם Tall יעילה עבור בניית מודלים ולימוד מכונה, ולשם כך נוספה תמיכה רחבה לעבודה עם Tall בתחומים אלה, עם אותן פונקציות מוכרות בהן השתמשנו עד היום.
העבודה עם Tall יכולה להתבצע במחשב האישי או על cluster עם או בלי Spark, כאשר העבודה מול Spark מנוהלת באופן אוטומטי מאחורי הקלעים.

Why Use MATLAB for Big Data

?Why Use MATLAB for Big Data

Tackling Big Data with MATLAB

Tackling Big Data with MATLAB

פוסט בבלוג על חידושים בעבודה עם big data (ספסטמבר 2016)

MATLAB
צרו קשר ונציגנו יחזרו אליכם בהקדם האפשרי

Feedback