תכירו – Parallella

בתחום המחשבים כיום ישנם התפתחתויות שונות לכיוונים שונים, כאשר ההתקדמות כיום בד"כ היא לכיוונים די צפויים: בתחום ה-Embedded מכניסים כיום את ה-64 ביט, וירטואליזציה שתיכנס במעבדים מבוססים A15 ומעלה, יותר ליבות (כיום רוב המעבדים בתחום הנ"ל הם עם 4 ליבות, חברות כמו nVidia, Qualcomm, Samsung כבר מוכרות מעבדים עם 8 ליבות). הפיתוחים האלו כמובן לא ממש משנים כיום דברים רבים (מתי פגשתם אפליקציות 64 ביט ל-Embedded או איזה Hypervisor שידע להשתמש ביכולות של ARM A15?) אבל כמובן אלו דברים שעוד שנה שנתיים יהיה בהם שימוש רב ויש דברים כמו ה-GPU המשופר שיש בצ'יפים של החברות הנ"ל שיעשה בהם שימוש כבר במוצרים החדשים שיצאו בחודשיים-שלוש הקרובים.

בתחום המחשבים המשובצים חלה בשנה האחרונה התפתחות מעניינת, כשיצא ה-Raspbery Pi, מחשב משובץ קטן ב-2 דגמים, כאשר הדגם היותר יקר עולה כ-35$, כלום כסף. המחשב הנ"ל נותן בעצם למשתמשים לראשונה את האפשרות להכיר יותר מקרוב אפשרויות תכנות וכמובן את עולם ה-Embedded. בעולם בהחלט התלהבו מהמחשבים הקטנים הללו וכיום כבר נמכרו יותר ממיליון חתיכות.

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

אבל אם אתה מחפש לוח אחר עם יותר יכולות, אתה תיתקל במשהו מעניין: המחירים – הרבה יותר גבוהים במדרגות הבאות. כך לדוגמא, לוח ה-Panda Board (משמאל) שמכיל מעבד מבוסס ARM A9 דו-ליבתי, עם 1 ג'יגה זכרון ומעבד גרפי משופר יותר, עולה בשוק כיום כמעט 200$, כמעט פי 6 מה-Pi. הסיבה למחיר היא כמובן שאין הרבה דרישה ללוחות כאלו ועלויות היצור לכמויות קטנות – גבוהה.

בחודשים האחרונים נכנס מוצר חדש (שיצא בקרוב לשווקים) שנקרא Parallella וכך הוא נראה:

רואים את הכרטיס הנחמד הזה? הוא יעלה 99$, והוא כולל מעבד דו ליבתי עם 1 ג'יגה זכרון, כניסה לכרטיס SD, חיבור HDMI, חיבור USB OTG, חיבור USB רגיל, חיבור רשת 1Gb.

על פניו, זו נשמעת הצעה מעולה, חצי ממחיר לוח ה-Panda.

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

קודם כל, בכרטיס הקטנצ'יק הנחמד הזה יש לך FPGA, כלומר אם בא לך לתכנן צ'יפ, בין אם זה יהיה מעין מעבד גרפי, או כל דבר שבא לך, כל עוד אתה יודע לעבוד עם FPGA – אתה יכול, וזה בנוי בפנים. אגב, לוח פיתוח FPGA פשוט עולה בשוק היום (רק הלוח עם הצ'יפ, שום דבר מעבר, לא ARM ולא נעליים) – בערך כ-200$.

אבל גולת הכותרת של המכשיר הוא צ'יפ ה-Epiphany 3 שבתוכו. מדובר בצ'יפ שכולל בתוכו 16 ליבות כאשר כל ליבה כוללת מעבדת RISC פשוט, 32K זכרון, DMA שמאפשר לך לגשת לזכרונות בליבות האחרים, ממשק רשת, ובין הליבות יש גם … ראוטר.

זה נראה כך:

emesh

מבחינת ביצועים, לא מדובר פה במשהו שיכול להתחרות ב-GPU שנמצא לך במחשב. בהחלט לא. הצ'יפ הנ"ל מסוגל לתת ביצועים של כ-70 ג'יגהפלופ (GFlop). היתרון של הצ'יפ הוא בצריכת חשמל, כאשר כל ה-16 ליבות עובדות, הוא צורך כ… 2 וואט! ה-GPU במחשב צורך הרבה, הרבה יותר.

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

הכרטיס הזה בעצם מאפשר למפתחים לראשונה להכיר את עולם העבודה המקבילה, קחו את עולם ה-Multithreaded צעד קדימה. אתה לא צריך ללמוד שפת תכנות חדשה, ואם אתה יודע C ואתה משתמש ב-GCC, אז לא תצטרך להשקיע הרבה. חשבת פעם ללמוד OpenCL? הצ'יפ בהחלט תומך בכך.

אבל זה לא מסתיים כאן.

16 ליבות היה בשביל חברת Adapteva רק ההתחלה. כיום יש להם את צ'יפ ה-Epiphany IV שכולל לא פחות מ-64 ליבות וכבר בשנה הבאה הם יוציאו מעבד עם לא פחות מ-1024 ליבות כאשר לכל ליבה יהיו 128K זכרון, עם ביצועים של 1.2 TFlop ועם זה אפשר לעשות המון. מי שמכיר או שמע על Beowulf בלינוקס, ישמח לראות איך הוא רץ יפה מאוד על הכרטיס והצ'יפ במאמר כאן.

לסיכום: אני ממליץ בחום לרכוש את הכרטיס הזה, גם לאלו שמעולם לא התנסו בתכנות מקבילי. הכרטיס הזה מריץ מהרגע הראשון אובונוטו 12.10 גירסת Desktop, כך שאפשר להתחיל להשתמש בכרטיס כמחשב דסקטופ קטנצ'יק ומשם להמשיך בלימוד והתנסות. אחרי הכל, 99$ זה לא כזה יקר.

 

דעה: כשהמעסיק צריך להשקיע בעובדים

בימים אלו עבדכם הנאמן עוסק בהקמת LAB בבית למטרות טסטים, ניסויים, פרוייקטים ועוד. המעבדה הזו תכלול:

  • 4 שרתים כפולי מעבדים
  • 2 שרתים עם 4 מעבדים
  • מתג HP PROCURVE (יש למישהו יד שניה במצב תקין?)
  • ולקינוח – Storage של בערך 40 טרהבייט

עדיין נשאר לי להשיג עוד כמה דברים קטנים כמו איזה MINI PC קטן שישמש כ-Firewall, וכמה כרטיסי רשת, אולי גם Infiniband. בינתיים הדבר הכי מוזר והכי קשה להשיג – זה חצי ארון על גלגלים עם עומק של 80 ס"מ (יש 50-60 ס"מ שזה בעייתי) שנסגר מקדימה ואחורה.

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

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

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

כשכיר – העולם הזה שונה לחלוטין. 

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

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

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

אתן דוגמא פשוטה: קחו מישהו שלמד לפני 8 שנים "בניית אתרים" ב-HTML וקצת CSS ולמד לעבוד ולתאם את האתרים שלו שיעבדו מצוין באקספלורר בלבד (זוכרים את הקורסים הנ"ל?). אחד' כזה שלא השקיע בעצמו בלימוד ג'אווהסקריפט, ספריות JS, גירסאות מתקדמות יותר של CSS, תואמות לדפדפנים כמו כרום ופיירפוקס – יתקשה יותר להשיג עבודה מעמיתו שהשקיע ולמד. אותו דבר קורה בחברות שמעסיקות מפתחים לפיתוח מוצר, שרות וכו'. אם החברה תשקיע בעובדים מבחינת העשרת ידע, הם יחסכו כספים בשלב יותר מאוחר שהם יאמצו טכנולוגיות מתקדמות יותר, ולכן לחברות כאלו שווה להשקיע את אלפי השקלים בקורס בעובד. אפשר כמובן להתנות יציאה לקורס תמורת התחייבות כזו או אחרת מצד העובד, אך כדאי לחברות לזכור שדחיית בקשה של עובד לעבור קורס זה או אחר שיכול לקדם את העובד (ובהמשך את החברה) היא מתכון בדוק לאיבוד מוטיבציה של עובד, וכשעובד מאבד מוטיבציה, הוא גם מאבד את החשק להפעיל "ראש גדול".

 

מחפש איש PERL

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

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

האם אני מרוצה מהמצב הנוכחי? ממש לא.

כשאני מדמיין פאנל, אני מדמיין פאנל הרבה יותר עשיר ממה שקיים אצל כל מתחרה, פאנל “חמישה כוכבים”. אני רוצה שפאנל יהיו לפחות חלק מהדברים הבאים:

  • התחברות סריאלית (וירטואלית) לשרת, והתחברות גרפית לשרת גם אם הוא קרס. לא תמיד שרות ה-syslog מראה על מה המכונה קרסה, וב-Windows שרותי ה-Event לא תמיד מתעדים הכל כשמופיע מסך כחול. התחברות כזו יכולה לסייע ללקוח לראות מה באמת הבעיה.
  • החלפת מערכות הפעלה והתקנת גרסאות “זרות”. נניח שלקוח רוצה להרים שרת Asterisk והוא לא מעוניין להרים מערכת CentOS ולהקים עליה מאפס את הכל, אלא הוא רוצה להרים Flash in a box מקובץ ISO שקיים במערכת. הפאנל יאפשר לו להצביע על מיקום ה-ISO, המערכת תוריד את ה-ISO ותתחיל בהתקנה ואותו לקוח יוכל להתחבר בחיבור ישיר (סעיף קודם) כדי להמשיך עם ההתקנה.
  • גרפים עשירים: איך המכונה שלך מבחינת מעבד, זכרון ודיסק בזמן אמת, ביום האחרון, חודש אחרון, שנה אחרונה וכו’. יש לך אירוע חשוב? תוכל להתחבר, ולראות ב”שידור חי” מה קורה עם השרת מבחינת עומס, ומכיוון שהמערכת דוגמת מבחוץ (ברמת Host ולא ברמה של SNMP מה-VPS עצמו) תוכל לראות את הגרפים בזמן אמת גם כשהמערכת עמוסה.
  • יצירת Snapshots ושחזור מהם, לפי כמות שהלקוח בוחר. (יעיל מאוד כשאיש הסיסטם החדש שוב שכח ליצור קובץ גיבוי להגדרות ועכשיו הכל מתפקשש)
  • מערכת “מחשוב ענן” – לקוח יכול להקים עוד שרתים נוספים ולהרוג אותם כרצונו עם Master Image שהוא יוצר מבלי לעבור בירוקרטיה.
  • דינמיות מלאה: צריך עוד ליבות? עוד זכרון, עוד דיסק? עוד רוחב פס? כמה קליקים עם העכבר ויש לך את זה מבלי למחוק את המערכת.

יש לי עוד כמה סעיפים שלא אפרט (בכל זאת.. יש תחרות וגם המתחרים קוראים בלוג זה)..

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

מדוע אני צריך מישהו עם ידע רציני ב-PERL? כי אני עובד עם VMWare ו-VMWare מציעים SDK ב-Perl או בדוט-נט. כחובב קוד פתוח אני כמובן לא מעוניין בפתרונות דוט-נט, אז נשאר PERL. אני מעדיף שהפרוייקט ירוץ ישירות מול השרתים ולא מול מערכת vSphere מרכזית של VMWare (מסיבה פשוטה: תקציב. VMWare העלו את המחירים בטירוף לאחרונה ושימוש במערכת vSphere שלהם תייקר את כל העניין).

מטבע הדברים, כחובב קוד פתוח, חלק ניכר מהמערכת ישוחרר לציבור כפרויקט קוד פתוח (לא הכל, שוב, עניין של מתחרים…)

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

  • יושכר מתכנת PERL שילמד קצת את ה-SDK ויבדוק יכולת התכנות של מספר דברים שאבקש ממנו לבדוק. על חלק זה ישולם למתכנת לפי שעה.
  • אם הדברים מתאפשרים, יסוכם ביני לבין המתכנת פרוייקט של כתיבת סקריפטים שונים כדי לבצע את העבודות עצמן. מה שהוא יכתוב יהיה ה-Back end, כלומר מישהו “מקדימה” יפנה אל הסקריפטים עם פרמטרים והסקריפטים יבצעו את העבודה ויציגו את התוצאה.
  • בסמוך לסיום החלק הנ”ל יושכר מתכנת נוסף כדי להרים מערכת Front End (כפי הנראה ג’ומלה או דרופל) שתציג למשתמש את כל הממשק בצורה ויזואלית יפה, ולמשתמש יהיו חיים קלים בניהול דרך הפאנל.

לפיכך, להלן מה שאני מחפש:

  • מישהו עם נסיון רציני ב-PERL. לא מישהו שיש לו נסיון של חודש ב-20 שפות.
  • רצינות ועמידה בלוח זמנים
  • עדיפות לאחד שיכול להוציא חשבוניות מס
  • רצוי אחד עם “תיק עבודות” שיכול להראות מה הוא יצר בעבר, או לפחות תיאור של מה שיצר בעבר
  • שתהיה לו סבלנות

אם אתם מכירים אחד כזה, אתם מוזמנים להפנות אותו אליי באימייל: [email protected]

תודה וחג שמח לכולם