עיבוד מקבילי

מחשב העל המקבילי Blue Gene/P של IBM

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

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

המניעים לעיבוד מקבילי

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

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

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

היסטוריה

המאה ה־20

  • שנות ה־40 – מחשבים טוריים דיגיטליים ראשונים.
  • שנות ה־50 – מחשב רב־מעבדים לצורך חסינות לתקלות (fault tolerance) - ה־SAPO של אנטונין סוובודה.
  • שנות ה־60 – מערכות הפעלה תומכות בשיתוף זמנים (מאפשרות הרצת מספר תוכנות במקביל).
  • שנות ה־60 – מחשבים מרובי מעבדים.
  • שנות ה־70 – לידת רעיון אשכול המחשבים (computer cluster) - חיבור מחשבים ברשת לצורך חלוקת משימות.
  • שנות ה־80 – מחשבים מרובי מעבדים מאסיביים (MPP) - מחשבים בעלי מספר גבוה של מעבדים (אלפים ומעלה).
  • שנות ה־90 – כניסת טכנולוגיות של pipeline, superscalar ווקטוריזציה למעבדים במחשבים אישיים.

המאה ה־21

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

סיווג

סיווג מקובל למבני חישוב מקבילי הוא הסיווג של פלין (Flynn) מ־1972[1][2]:

  1. SISD: הוראה בודדת - יחידת מידע בודדת - Single Instruction - Single Data. מחשב טורי רגיל.
  2. MISD: מספר הוראות - יחידת מידע בודדת - Multiple Instruction - Single Data. אין בשיטה זו שימוש אמיתי.
  3. MIMD: מספר הוראות - יחידות מידע מרובות - Multiple Instruction - Multiple Data. חישוב מקבילי מרובה מעבדים רגילים.
  4. SIMD: הוראה בודדת - יחידות מידע מרובות - Single Instruction - Multiple Data. היישומים הראשונים נקראו מערך מעבדים (Processor Array). היום נפוץ ביחידות וקטוריזציה.

כמו כן נהוג לסווג על פי ארכיטקטורת העיבוד:

  1. ריבוי מעבדים במחשב בודד.
  2. מחשוב אשכולות (cluster computing) - חיבור מספר מחשבים באמצעות רשת ליצירת "מחשב" מבוזר.
  3. מחשוב סריגי (Grid Computing) - שימוש במשאבים פנויים של מחשבים המחוברים ברשת (לרוב ציבורית).
  4. מבנה הזיכרון (במחשב הבודד):
    1. SMP - שימוש סימטרי בזיכרון (Symmetric MultiProcessing). כל המעבדים מחוברים לאותו מאגר זיכרון באופן שווה.
    2. NUMA - שימוש לא סימטרי בזיכרון (NonUniform Memory Access/Architecture). חלקים שונים של הזיכרון מחוברים בהעדפה למעבד מסוים, אך קיימת גישה משותפת לכל המעבדים. המודל המעשי המשמש בתעשייה הוא CC-NUMA.
    3. MPP - ריבוי מעבדים מסיבי (Massive Parallel Processing). מחשבים בעלי אלפי מעבדים, לא ניתן לעשות שימוש במאגר זיכרון בודד במצב זה.

טכניקות חישוב מקבילי

תכנות מקבילי

אחד החוקים הבסיסיים בתכנות מקבילי קובע שההאצה משימוש בחישוב מקבילי על n מעבדים תמיד תהיה נמוכה מ־n, כלומר הפונקציה היא תמיד פחות מליניארית. הכלל נובע מחוק אמדאהל (Amdahl's law). כדי לקבל האצה כלשהי יש צורך לבנות אלגוריתם מקבילי, המחלק את המטלות על מספר מעבדים.

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

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

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

רבים מהאלגוריתמים לפיכך בנויים ממספר שלבים:

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

ממשק העברת הודעות (MPI - Message Passing Interface)

במערכות ללא זיכרון משותף, הממשק לפירוק הבעיות וקבלת התוצאות מכל אחת מיחידות העיבוד מבוסס על העברת הודעות. MPI הוא תקן מקובל לעבודה במערכות מקביליות ללא זיכרון משותף.

סינכרון

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

דוגמה

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

  1. קרא מהזיכרון את מספר הפעולות שבוצעו עד עתה.
  2. הוסף למספר 3 (מספר הפעולות בתוכנית זו).
  3. כתוב את הערך בחזרה לזיכרון.

במצב בו שני מעבדים רצים במקביל עלול לקרות המצב הבא:

  1. מעבד 1 קורא את הערך 0.
  2. מעבד 2 קורא את הערך 0.
  3. מעבד 1 מוסיף לערך 3.
  4. מעבד 2 מוסיף לערך 3.
  5. מעבד 1 כותב את הערך 3 לזיכרון.
  6. מעבד 2 כותב את הערך 3 לזיכרון.

כיוון שמעבד 2 קרא את הערך לפני שמעבד 1 הספיק להוסיף את מספר הפעולות שלו, התוצאה שנרשמת בזיכרון היא 3 במקום 6.

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

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

מקביליות בחומרה: "צינור" (pipeline)

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

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

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

  • הבאת ההוראה "חבר" מהזיכרון.
  • קריאת שני הערכים מהזיכרון.
  • ביצוע הפעולה.
  • כתיבת התוצאה לזיכרון.

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

  • הבא את הוראה 1 מהזיכרון
  • בצע את הפעולה האריתמטית של הוראה 1. בו־זמנית: הבא את הוראה 2 מהזיכרון.
  • בצע את פעולה האריתמטית של הוראה 2. בו־זמנית: הבא את הוראה 3 מהזיכרון.

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

לצינורות יש מספר בעיות:

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

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

  • חיזוי הסתעפות (Branch Prediction) - ישנן הוראות המפצלות את החישוב בהתאם לתנאי כלשהו. לכאורה לא ניתן להשתמש בצינור במקרה זה, אך המעבד יכול לנחש מאיזו הסתעפות להביא את ההוראות הבאות. אם מתברר כי הוא בחר לא נכונה הוא מבטל את החישובים המיותרים. במקרה של ניחוש נכון התקבל שיפור בביצועים.
  • ביצוע שלא לפי הסדר (Out of order execution) - כדי להביא לניצול מיטבי של המעבד, הוא מנסה להריץ פקודות שמנצלות יחידות פנויות אף אם אלה אינן הפקודות הבאות סדרתית בתוכנית.

מקביליות בחומרה: יחידות וקטוריות

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

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

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

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

ראו גם

קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא עיבוד מקבילי בוויקישיתוף

הערות שוליים

  1. ^ Flynn, M. J. (בספטמבר 1972). "Some Computer Organizations and Their Effectiveness". IEEE Trans. Comput. C-21 (9): 948–960. doi:10.1109/TC.1972.5009071. {{cite journal}}: (עזרה)
  2. ^ Duncan, R. (בפברואר 1990). "A survey of parallel computer architectures". Computer. 23 (2): 5–4. doi:10.1109/2.44900. {{cite journal}}: (עזרה)


Read other articles:

بول فايراباند (بالألمانية: Paul Karl Feyerabend)‏    معلومات شخصية الميلاد 13 يناير 1924 [1][2][3][4][5][6][7]  فيينا[8]  الوفاة 11 فبراير 1994 (70 سنة) [9][10][3][4][6][11][12]  سبب الوفاة سرطان الدماغ  [لغات أخرى]‏  مواطنة ا�...

 

Untuk kegunaan lain, lihat 1000 Miles. A Thousand MilesSingel oleh Vanessa Carltondari album Be Not NobodySisi-BRed DittyDirilis12 Februari 2002 (2002-02-12)FormatCD singleGenrePop Baroquepop rockDurasi4:00LabelA&MPenciptaVanessa CarltonProduserRon FairCurtis SchweitzerKronologi singel Vanessa Carlton A Thousand Miles (2002) Ordinary Day (2002) A Thousand Miles (judul aslinya Interlude) adalah single debut yang ditulis dan direkam oleh penyanyi pop Amerika, Vanessa Carlton. Diproduks...

 

Traditional alcoholic drink from Madeira This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (September 2012) (Learn how and when to remove this template message) PonchaCocktailPonchaTypeCocktailServedOn the rocks: poured over iceStandard garnishsugar cane, lime (ingredient)Standard drinkware Old fashioned glassCommonly used ingr...

Hypothetical situation This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to provide an accessible overview of all important aspects of the article. (July 2023) Schrödinger's cat (1935) presents a cat that is in a superposition of alive and dead states, depending on a random quantum event. It illustrates the counter-intuitive implications of Bohr's Copenhagen interpretation when applied to everyday objects.[1] A tho...

 

Questa voce o sezione sull'argomento Cile non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Regione Metropolitana di Santiagoregione(ES) Región Metropolitana de Santiago Regione Metropolitana di Santiago – VedutaMontaggio di luoghi della Regione Metropolitana di Santiago. LocalizzazioneStato Cile AmministrazioneCapoluogoSantiago del Cile Territorio...

 

Yugoslav-Croatian basketball player (1964–1993) Dražen PetrovićPetrović with the New Jersey Nets in 1992Personal informationBorn(1964-10-22)22 October 1964Šibenik, Croatia, YugoslaviaDied7 June 1993(1993-06-07) (aged 28)Denkendorf, GermanyNationalityCroatianListed height6 ft 5 in (1.96 m)Listed weight195 lb (88 kg)Career informationNBA draft1986: 3rd round, 60th overall pickSelected by the Portland Trail BlazersPlaying career1979–1993PositionShooting guar...

Solarpunk Données clés Origines stylistiques Cyberpunk modifier Le solarpunk (association des mots solar et punk) est un mouvement artistique et politique dérivé du cyberpunk qui encourage une vision optimiste de l'avenir à la lumière des préoccupations environnementales actuelles, telles que le changement climatique et la pollution[1], ainsi que des inégalités sociales[2]. Le solarpunk englobe une multitude de médias tels que la littérature, l'art, l'architecture, la mode, la mus...

 

Эта статья или раздел нуждается в переработке.Пожалуйста, улучшите статью в соответствии с правилами написания статей. Марш «в защиту жизни». Прага, 2006 год Демонстрация «Важна каждая жизнь» в Мадриде, Испания, 17 октября 2009 года. Прола́йф, или движение «в защиту жизни...

 

此條目之中立性有争议。其內容、語調可能帶有明顯的個人觀點或地方色彩。 (2011年6月)加上此模板的編輯者需在討論頁說明此文中立性有爭議的原因,以便讓各編輯者討論和改善。在編輯之前請務必察看讨论页。 格奥尔基·季米特洛夫保加利亚共产党中央委员会总书记任期1948年8月—1949年7月2日前任自己(第一书记)继任维尔科·契尔文科夫保加利亚共产党中央委员会第一�...

Questa voce o sezione sull'argomento calciatori italiani non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Alessandro Bonesso Bonesso al Catania nella stagione 1980-1981 Nazionalità  Italia Altezza 180 cm Peso 79 kg Calcio Ruolo Attaccante Termine carriera 1989 CarrieraGiovanili 1973-1975 Saronno...

 

Giorgiana Masi, fotografia dal documento d'identità L'omicidio di Giorgiana Masi, una studentessa italiana il cui vero nome era Giorgina Masi, fu commesso a Roma il 12 maggio 1977, durante una manifestazione politica.[1] Quel giorno, insieme al fidanzato Gianfranco Papini, la ragazza si trovava nel centro storico, dove erano scoppiati violenti scontri tra dimostranti e forze dell'ordine in seguito a una manifestazione pacifica (ma non autorizzata) del Partito Radicale, a cui si e...

 

Навчально-науковий інститут інноваційних освітніх технологій Західноукраїнського національного університету Герб навчально-наукового інституту інноваційних освітніх технологій ЗУНУ Скорочена назва ННІІОТ ЗУНУ Основні дані Засновано 2013 Заклад Західноукраїнський �...

Pulse-shaping filter in digital modulation The raised-cosine filter is a filter frequently used for pulse-shaping in digital modulation due to its ability to minimise intersymbol interference (ISI). Its name stems from the fact that the non-zero portion of the frequency spectrum of its simplest form ( β = 1 {\displaystyle \beta =1} ) is a cosine function, 'raised' up to sit above the f {\displaystyle f} (horizontal) axis. Mathematical description Frequency response of raised-cosine fil...

 

YovianusSolidus Kaisar YovianusKaisar Romawi ke-64Berkuasa27 Juni 363 – 17 Februari 364PendahuluYulianus si MurtadinPenerusValentinianus IInformasi pribadiKelahiran331Singidunum (kini Beograd, Serbia)Kematian17 Februari 364 (umur 33)Dadastana (di Anatolia)PemakamanGereja Rasul Suci, KonstantinopelNama lengkapFlavius Yovianus (dari lahir hingga naik tahta); Flavius Yovianus Augustus (sebagai kaisar)AyahVarronianusIstriCharitoAnakDua anak laki-laki, yang satu bernama Varronianus (menjadi kons...

 

Species of bird American goshawk Juvenile (left) and adult by Louis Agassiz Fuertes Conservation status Least Concern  (IUCN 3.1)[1] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Class: Aves Order: Accipitriformes Family: Accipitridae Genus: Accipiter Species: A. atricapillus Binomial name Accipiter atricapillus(Wilson, A, 1812) Subspecies Accipiter atricapillus apache Accipiter atricapillus atricapillus Accipiter atricapillus laingi[2 ...

Italian special forces diving unit This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Comando Raggruppamento Subacquei e Incursori Teseo Tesei – news · newspapers · books · scholar · JSTOR (March 2013) (Learn how and when to remove this message) Divers and Raiders Group Command Teseo TeseiComando Raggruppamento...

 

2018年世界場地自由車錦標賽主辦城市 荷蘭阿珀尔多伦日期2018年2月28日至3月4日自由車館Omnisport Apeldoorn參賽國家40項目20← 2017 2019 → 2018年世界场地自行车锦标赛于2月28日至3月4日在荷兰阿珀尔多伦Omnisport Apeldoorn举行,该场馆曾举办2011年世界场地自行车锦标赛以及2015年世界残疾人场地自行车锦标赛[1][2]。 奖牌榜 排名 国家/地区 金牌 银牌 铜牌 總數 1 ...

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: フォード・C100 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2012年9月) フォード・C100 カテゴリー 二座席レーシン�...

Struttura dei superplume ricavata da indagini condotte con la tomografia sismica.[1] I superplume o super-pennacchi del mantello (in lingua inglese indicati anche più estesamente come Large low-shear-velocity provinces cioè grandi province a bassa velocità di taglio, e abbreviati in LLSVP) sono strutture caratteristiche delle parti più interne del mantello terrestre (la regione che contorna il nucleo esterno).[2] Queste province sono caratterizzate da basse velocità di ta...

 

Biological molecules constituting nucleic acids Not to be confused with nucleoside or nucleobase. Part of a series onGenetics Key components Chromosome DNA RNA Genome Heredity Nucleotide Mutation Genetic variation Allele Amino acid Outline Index History and topics Introduction History Evolution (molecular) Population genetics Mendelian inheritance Quantitative genetics Molecular genetics Research Geneticist DNA sequencing Genetic engineering Genomics ( template) Medical genetics Branches of g...