Multithreading. J. Kubiatowicz, UC Berkeley

Samankaltaiset tiedostot
Katsaus thain kielen syntaksin ominaispiirteistä

Matkustaminen Ulkona syöminen

Matkustaminen Liikkuminen

Yksityinen kirjeenvaihto Yksityiskirje

M E N U B U S I N E S S C L A S S

Matkustaminen Yleistä

Matkustaminen Yleistä

M E N U B U S I N E S S C L A S S

M E N U B U S I N E S S C L A S S

M E N U B U S I N E S S C L A S S

Matkustaminen Yleistä

Matkustaminen Yleistä

M E N U B U S I N E S S C L A S S

Matkustaminen Yleistä

Matkustaminen Yleistä

M E N U B U S I N E S S C L A S S

M E N U B U S I N E S S C L A S S

VIDEO-OPAS THAI-KIELELLÄ Apuväline SOL Palveluiden sähköiseen työnhakuun

M E N U B U S I N E S S C L A S S

INFOPANKIN AVIOLIITTOON JA AVIOEROON LIITTYVÄN SUOMENKIELISEN AINEISTON KÄÄNTÄMINEN THAIN KIELELLE

Transmeta Architecture

Transmeta Architecture

52480S TIETOKEARKKITEHTUURIT Tentti

POWER analytiikka-alustana

Transmeta Architecture

Transmeta Architecture

Käyttöjärjestelmän rakenne

Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

THAIN KIELI JA AIKUINEN OPPIJA

Superskalaariprosessointi

Luento 10: Superskalaari prosessori

Luento 5: Muistin hallinta Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5

MUUMIPAPAN UROTYÖT THAIN KIELELLÄ Suomenkielisen ja thainkielisen käännöksen vertailu

Operating Systems, 8 op

Superskalaariprosessointi

Superskalaariprosessointi

Luento 10: Superskalaari prosessori

IA-64. Tietokoneen rakenne. Stallings: Ch 15 Yleistä IA-64:stä Predikointi Spekulointi Ohjelmoitu liukuhihna Itanium 2 Intel Multi-core ja STI Cell

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

SPECIAL THAI MENU A LA CHEF MANIT POONHIRAN

อาหารเร ยกน ำาย อย. Appetizers Alkupalat ปอเป ยะทอด POPIA TOD PHAK SALAI เต าห ทอดกรอบน ำาจ มถ ว TAUHU TOD KROP NAM JIM. 2kpl/ kpl/ 5.

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Välimuistin suorituskyvyn mittaus

yhdistää ICT -palvelut toimivaksi kokonaisuudeksi.

Citrix NetScaler. Timo Lindfors Ironnet oy

Käyttöjärjestelmät, Luento 11 WEEK 6. Scheduling. Stallings, Chapter 9. Syksy 2007, Tiina Niklander 11-1

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

Internal Memory, Cache (välimuisti)

Internal Memory, Cache (välimuisti)

Luento 11: IA-64 ja muut esimerkit Luento 11 EPIC. u Uutta semantiikkaa konekielen tasolle. u Käsittelee käskyjä nipuissa (bundle)

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus

Luento 12: Kontrollin toteutus Luento 12. u Mikä operaatio, missä operandit? u Miten keskeytykset hoidellaan?

Internal Memory, Cache

Internal Memory, Cache

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikka. Tutkintotyö. Emil Palomäki INTEL CORE -MIKROARKKITEHTUURI

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus

เมน - Ruokalista - Menu -

Ohjausyksikkö. Tietokoneen rakenne. Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus.

Luento 12: Kontrollin toteutus Luento 12. u Millainen käskykanta käytössä, mitä käskyt tekevät? u Mikä operaatio, missä operandit?

อาหารเร ยกน ำาย อย. Alkupalat Appetizers. หอยเชลล ย างซอสมะขามสม นไพร Tofu 6.50 Scallop ปอเป ยะผ กทอด 2kpl/ 6.00

Processes and threads

RISC-arkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

Luento 9: RISC-arkkitehtuuri Luento 9 EAX, EBX, EBX, EDX, ESP, EBP, ESI, EDI CS, SS, DS, ES, FS, GS. (Sta06 Table 12.

TKT-3201 Tietokonearkkitehtuuri 2

Suoritinesimerkit RISC- arkkitehtuuri

Security server v6 installation requirements

LAADUSTA KANSAINVÄLISTÄ KILPAILUKYKYÄETUA ESITELMÄN SISÄLTÖ: 1. SABRISCAN-TARINA 2. TULOKSET 3. YHTEENVETO

Backup Exec 3600 Appliance

Security server v6 installation requirements

Suoritinesimerkit RISC- arkkitehtuuri

PAINEILMAHYDRAULISET TUNKIT AIR HYDRAULIC JACK

Scheduling. Stallings, Chapter 9. When? Priorities

Suoritinesimerkit RISC- arkkitehtuuri

6.3. AVR_rauta. EEPROM-muisti pva

P O W E R SCART OUT FL FR SW SL SR CEN

DISTRIBUTED TRANSMISSION FOR COOPERATIVE WIRELESS NETWORKS

computer are not up to the challenges of tomorrow. home desktop computer obselete.

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

MUISTINHALLINNAN OHJELMISTO

Lähtötiedot tiedot / seuraavaksi? Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO. Looginen vs. fyysinen osoite Perusvalinnat.

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi

SPECIAL THAI MENU A LA CHEF MANIT POONHIRAN

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Virtualisoi viisaasti paranna palvelua. Iikka Taanila Systems Architect IBM Systems and Technology Group

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

C++11 seminaari, kevät Johannes Koskinen

HITSAUKSEN TUOTTAVUUSRATKAISUT

WindPRO version joulu 2012 Printed/Page :47 / 1. SHADOW - Main Result

Staattinen haarautumisen ennustus

Intel Threading Building Blocks

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Q = pienin suunniteltu ilmamäärä ja k = puhaltimen tai iirispellin k-arvo.

Transkriptio:

Multithreading เน อหามาจากสไลด ของ C. Batten, Cornell U. และ J. Kubiatowicz, UC Berkeley

น ยามศ พท Program หมายถ งช ดค าส งและข อม ลท จะน ามาประมวลผล เวลาพ ดถ งโปรแกรม จะเป นส งท อย น งๆ ย งไม ได ท างานอะไร Process หมายถ งโปรแกรมท ท างานแล ว สามารถม หลายๆ process มาจากโปรแกรมเด ยวได Thread เป นส วนย อยในการท างานของ process น นค อในหน ง process อาจจะม หลายๆ thread ท เป นส วนหน งของ process ได Single-threaded execution หมายถ งการประมวลผลเพ ยง thread เด ยวเท าน น Multi-threaded execution หมายถ งการประมวลผลหลายๆ thread ส าหร บการประมวลผลแบบ multi-threaded น น thread หลายๆอ นท ท างานอย อาจจะมาจาก process เด ยวก น หร อ อาจจะมาจากต าง process ก นก ได

ข อจ าก ดในการเพ ม ILP ถ าโปรแกรมม ILP ส ง CPU จะประมวลผลหลายค าส งพร อมก นได มากในหน ง cycle CPU ในป จจ บ นบ บเค น ILP จนแทบจะไม ม เหล อแล ว เป นท มาของ ILPWall ท Patterson ได กล าวไว ท จร งศ กยภาพทาง ILP ย งพอม อย แต ด วยข อจ าก ดทางฮาร ดแวร เรา ไม สามารถใช ศ กยภาพน ได อย างเต มท พ จารณาเปร ยบเท ยบผลการทดลองต อไปน

Instructions Issued per clock Instruction Window Size Renaming Registers Ideal Infinite 64 Infinite 64 Infinite 128 Branch Prediction Perfect 2-bit Realistic Cache Perfect Perfect Memory Alias Analysis Perfect Perfect

160 จ านวนค าส งท ประมวลผลได ในหน ง cycle 140 120 100 80 60 40 20 0 gcc espresso li fpppp doducd tomcatv ideal realistic

Multithreading ข ามก าแพง ILP ด วย TLP(Thread-Level Parallelism) TLP มาจากการร นโปรแกรมหลายๆอ นท เป นอ สระต อก น TLP มาจากการร น thread ท อาจจะมาจากโปรแกรมเด ยวก น(multithreading) อาจจะมาจากโปรแกรมคนละอ นก น(multiprogramming, multithreading) CPU แบบ multithreading จะอาศ ย TLP เพ อเพ ม throughput (ปร มาณงานต อหน วยเวลา)

Pipeline Hazards t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 LW r1, 0(r2) LW r5, 12(r1) ADDI r5, r5, #12 SW 12(r1), r5 F D X M W F D D D D X M W F F F F D D D D X M W F F F F D D D D ถ าค าส งท ตามหล งต องใช ผลล พธ จากค าส งท มาก อน ต อง stall ด งแสดง หร อต องม bypass network

แนวค ดใหม multithreading น าค าส งจาก thread อ นๆ เข ามาประมวลผล เม อถ งเวลากล บมาประมวลผลท thread เด ม ได ผลล พธ จากค าส งก อหน ามาแล ว ตามต วอย าง ค าส งแรกของ T1write back ท cycle t4 ซ งเป นเวลาท เร ม fetch ค าส งท สองของ T1 T1: T2: T3: T4: T1: LW r1, 0(r2) ADD r7, r1, r4 XORI r5, r4, #12 SW 0(r7), r5 LW r5, 12(r1) t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 F D X M W F D X M W F D X M W F D X M W F D X M W

โครงสร างของ pipeline P P C C P C 1 PC 1 1 1 I$ IR GPR1 GPR1 GPR1 GPR1 X Y D$ +1 2 Thread select 2 ต องแพร ส ญญาณ thread select ไปตาม pipeline เพ อจะได ร ว าขณะน ก าล งประมวล thread ใดอย ซอฟต แวร ด านบนเห นว าเสม อนม ฮาร ดแวร ท ม CPU หลายๆต ว

ส งท ต องเพ มเม อเป น multithreading แต ละ thread ต องม เป นของตนเอง PC ร จ สเตอร System state เช น Page table Register mapping table Exception handling registers ย งม overhead อ นๆของการท า multithreading ม conflict ของ cache และ TLB มากกว าปกต อาจท าให ต องใช cache และ TLB ใหญ กว าเด ม OS overhead ในการจะ schedule แต ละ thread เข ามา

Fine-Grain Multithreading Fixed interleave Thread แต ละอ นประมวลผลหน งค าส งท กๆ N cycles ถ า thread น นไม พร อม ใส bubble ใน slot น น Software-controlled interleave OS เป นคนจ ดการเล อก S slots ส าหร บ N threads ฮาร ดแวร จ ดการประมวลแบบ fixed interleave ส าหร บ S slots โดย ประมวลผล thread ท อย ใน slot น น Hardware-controlled thread scheduling ฮาร ดแวร เป นคนเล อก thread ท จะประมาลในแต ละ slot เล อก thread ไหน ส าหร บ slot ใด ตาม priority scheme ของฮาร ดแวร

Coarse-Grain Multithreading สถาป ตยกรรมบางแบบ latency ของค าส ง (เวลาในการให ได ผล ล พธ ) ม ค าท ไม ต าก ส งมากไปเลย เช น การเก ด cache miss ในค าส ง load เพ มให ฮาร ดแวร สามารถม การ swap thread เม อเก ดเหต การณ ท เพ มให ฮาร ดแวร สามารถม การ swap thread เม อเก ดเหต การณ ท ท าให latency ของค าส งม ค ามากผ ดปกต

Oracle/Sun Niagara processors เจาะตลาด datacenter ท ร น web servers ท รองร บ request จ านวนมากๆ ในเวลาเด ยวก น โครงสร างภายในม CPU หลายๆcore โดยท แต ละ core ม โครงสร าง ภายในท ไม ซ บซ อน แต ละ core ร น thread ได จ านวนมาก Single-thread performance ส พวก superscalar ไม ได ประหย ดพล งงาน Niagara-1 [2004], 8 cores, 4 threads/core Niagara-2 [2007], 8 cores, 8 threads/core Niagara-3 [2009], 16 cores, 8 threads/core

Simultaneous Multithreading (SMT) เทคน คท ผ านมาเป นแบบ vertical multithreading โดยแต ละ stage ของ pipeline ประมวลผลหน ง thread ณ เวลาใดๆ SMT จะใช กลไกท ม อย ในout-of-order superscalar CPU เพ อท า fine-grain multithreading ในระด บท เหน อกว า vertical multithreading

ส าหร บโปรแกรมท วไป execution unit ม งานท า ค อนข างน อย Percent of Tota al Issue Slots 8-way superscalar 8 issue slots per cycle โดยเฉล ย ~1.5 จาก 8 slots ถ กใช งาน From: Tullsen, Eggers, and Levy, Simultaneous Multithreading: Maximizing On-chip Parallelism, ISCA 1995.

Superscalar Machine Instruction issue Issue width Completely idle (vertical waste) cycle Time Partially filled cycle, i.e., IPC < 4 (horizontal waste)

Vertical Multithreading Instruction issue Issue width Second thread interleaved cycle-by-cycle Time Partially filled cycle, i.e., IPC < 4 (horizontal waste)

Chip Multiprocessing (CMP) Issue width Time

Ideal Superscalar Multithreading [Tullsen, Eggers, Levy, UW, 1995] Issue width Time สามารถน าค าส งจาก thread ต างๆ เข ามาเต มใน slot ท เคยจะต องส ญเส ยไปได อย างอ สระ

OOOSimultaneous Multithreading [Tullsen, Eggers, Emer, Levy, Stamm, Lo, DEC/UW, 1996] เพ ม context ของ thread เข าไป และ fetch จากหลายๆ thread ในเวลาเด ยวก น สามารถน าค าส งจากหลายๆ thread มาไว ท issue queue เด ยวก นได เพ มโอกาสในการหาค าส งท เป นอ สระต อก นเพ อจะ issue ไปพร อมก นได ไม ต องเพ มเต มฮาร ดแวร ใน OOOCPU มากน ก ถ าไม ม thread อ นๆมาร นร วมก นthread เด ยวก ครอง CPU ท งหมด และท างานได เร วข นกว าเวลาท ต องไป share CPU ก บ thread อ นๆ

การปร บต วของ CPU แบบ SMT ส าหร บส วนของโปรแกรมท ม TLP มาก Issue width ส าหร บส วนของโปรแกรมท ม TLP น อย (กล บไปใช ILP แทน) Issue width Time Time

IBM Power 4 Single-threaded OOO superscalar CPU IFAR I-cache BR Scana Instr Buffer Q BR Decode, BR Decode, Predict Crack Pred ict Crack & Group Formation Group Formation GCT GCT BR/C R Issue Q FX/LD 1 Issue Q FX/LD 2 Issue Q FP Issue Q FP Issue Q BR E xec Unit CR Exec Unit FX 1 Exec Unit LD 1 Exec Unit LD 2 Exec Unit FX 2 Exec Unit FP1 Exec Unit FP2 Exec Unit StQ D -cache

IBM Power 5 2 commits (architected register sets) 2 fetch (PC), 2 decodes

SMT ในทางปฏ บ ต อย างมากเพ ยงแค 2 threads ถ าจะให มากกว าน เช น 4 จะม ป ญหาคอขวดเก ดก บทร พยากรท ใช ร วมก น Cache Bandwidth ของหน วยความจ า Physical register ต วอย าง SMTCPU ท ออกส ท องตลาด Pentium-4 Hyperthreading(2002) จากน น Intel ท ง hyperthreading ไปนานมากจนกระท งย คสถาป ตยกรรม Nehalem ราว ป 2008 IBM Power 5 (2004) SMTCPU ท เป นโครงการแต ไม ได ท าออกมา Alpha 21464 (EV8)

เกณฑ ในการ schedule แต ละ thread ใน SMT เล อกค าส งจาก thread ท ม ค าส งอย ใน SMTpipe น อยท ส ด (ICOUNT policy) ค ณสมบ ต ของ ICOUNT: 1. ไม ท าให ค าส งจาก thread หน ง อย ในinstruction queue มากไป 2. ให ความส าค ญก บ thread ท ปลดค าส งจาก queue ได เร ว 3. ท าให เก ดการผสมผสานอย าง ย ต ธรรม

สร ปล กษณะการท า multithreading

OOOPipeline

SMTPipeline