Spekulativní multithreading - Speculative multithreading
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Spekulace s úrovní vlákna (TLS) je technika spekulativně provést část počítačového kódu, u které se předpokládá, že bude provedena později paralelně s běžným provedením na samostatném nezávislém vlákno. Takové spekulativní vlákno může vyžadovat předpoklady o hodnotách vstupních proměnných. Pokud se ukáže, že jsou neplatné, bude nutné spekulativní vlákno zahodit a zmáčknout. Pokud jsou předpoklady správné, program lze dokončit za kratší dobu, pokud bylo možné vlákno efektivně naplánovat.
Je také známý jako Spekulativní multithreading (SpMT).[Citace je zapotřebí ]
Popis
TLS extrahuje vlákna ze sériového kódu a provádí je spekulativně paralelně s bezpečným závitem. Spekulativní vlákno bude nutné zahodit nebo znovu spustit, pokud se jeho předpoklady o stavu vstupu ukáží jako neplatné. Je to dynamické (runtime) paralelizace technika, která může odhalit paralelismus, který statické (kompilační) paralelizační techniky nemusí využít, protože v době kompilace nelze zaručit nezávislost vlákna. Aby technika dosáhla cíle zkrácení celkového času spuštění, musí být k dispozici prostředek CPU, který lze efektivně provádět paralelně s hlavním bezpečným vláknem. [1]:2
Reference
- ^ Martínez, José F .; Torrellas, Josep (2002). "Spekulativní synchronizace" (PDF). Sborník z 10. mezinárodní konference o architektonické podpoře programovacích jazyků a operačních systémů (ASPLOS-X) - ASPLOS '02. ACM. str. 18. doi:10.1145/605397.605400. ISBN 1581135742.
Další čtení
- Yiapanis, Paraskevas; Brown, Gavin; Lujan, Mikel (2016). „Spekulace softwaru řízeného kompilátorem pro paralelismus na úrovni vlákna“. Transakce ACM v programovacích jazycích a systémech. 38 (2): 1–45. doi:10.1145/2821505.
- Yiapanis, Paraskevas; Rosas-Ham, Demian; Brown, Gavin; Lujan, Mikel (2013). „Optimalizace softwarových běhových systémů pro spekulativní paralelizaci“. Transakce ACM na architektuře a optimalizaci kódu. 9 (4): 1–27. doi:10.1145/2400682.2400698.
- Johnson, Nick P .; Kim, Hanjun; Prabhu, Prakash; Zaks, Ayal; August, David I. (2012). „Spekulativní oddělení pro privatizaci a redukce“ (PDF). Sborník z 33. konference ACM SIGPLAN o návrhu a implementaci programovacího jazyka. PLDI '12. str. 359–370. doi:10.1145/2254064.2254107.
- Bhowmik, Anasua; Franklin, Manoj (2002). "Obecný rámec kompilátoru pro spekulativní multithreading". Sborník čtrnáctého ročníku sympozia ACM o paralelních algoritmech a architekturách. SPAA '02. 99–108. doi:10.1145/564870.564885.
- Bruening, Derek; Devabhaktuni, Srikrishna; Amarasinghe, Saman (2000). Softspec: Softwarový spekulativní paralelismus (PDF). FDDO-3. s. 1–10.
- Chen, Michael K .; Olukotun, Kunle (1998). "Využití paralelismu na úrovni metody v programech Java s jedním vláknem". Mezinárodní konference o paralelních architekturách a technikách kompilace. PACT 1998. s. 176–184. doi:10.1109 / PACT.1998.727190.
- Chen, Michael K .; Olukotun, Kunle (2003). "Systém Jrpm pro dynamickou paralelizaci programů Java". Sborník z 30. ročníku mezinárodního sympozia o počítačové architektuře. ISCA '03. 434–446. doi:10.1145/859618.859668.
- Cintra, Marcelo; Llanos, Diego R. (2003). "Směrem k efektivní a robustní spekulativní paralelizaci softwaru na více procesorech". Sborník devátého sympózia ACM SIGPLAN o zásadách a praxi paralelního programování. PPoPP '03. s. 13–24. doi:10.1145/781498.781501.
- Cook, Jonathan J. (2002). "Zpětné provedení Java Bytecode". Počítačový deník. 45 (6): 608–619. CiteSeerX 10.1.1.20.4765. doi:10.1093 / comjnl / 45.6.608.
- Chinony, Carlos Garcia; Madriles, Carlos; Sanchez, Ježíš; Marcuello, Pedro; Gonzalez, Antonio; Tullsen, Dean M. (2005). „Mitosis Compiler: Infrastructure for Speculative Threading Based on Pre-Computation Slices“. Sborník konferencí ACM SIGPLAN 2005 o návrhu a implementaci programovacího jazyka. PLDI '05. 269–279. doi:10.1145/1065010.1065043.
- Hu, Shiwen; Bhargava, Ravi; John, Lizy Kurian (2003). „Role predikce návratové hodnoty při využívání spekulativního paralelismu na úrovni metody“ (PDF). JILP. 5: 1–21.
- Kazi, Iffat H. (2000). Dynamicky adaptivní paralelní model založený na spekulativním multithreadingu (Disertační práce). University of Minnesota. s. 1–188.
- Pickett, Christopher J.F .; Verbrugge, Clark (2005). "SableSpMT: Softwarový rámec pro analýzu spekulativního multithreadingu v Javě". Sborník 6. workshopu ACM SIGPLAN-SIGSOFT na téma Programová analýza pro softwarové nástroje a inženýrství. PASTE '05. str. 59–66. doi:10.1145/1108792.1108809.
- Pickett, Christopher J.F .; Verbrugge, Clark (2005). „Spekulace úrovně softwarového vlákna pro jazyk Java a prostředí virtuálních strojů“ (PDF). Sborník z 18. mezinárodní konference o jazycích a překladačích pro paralelní výpočty. LCPC '05. LNCS. 4339. 304–318. doi:10.1007/978-3-540-69330-7_21.
- Porter, Leo; Choi, Bumyong; Tullsen, Dean M. (2009). "Mapování cesty z hardwarové transakční paměti na spekulativní multithreading". 18. mezinárodní konference o paralelních architekturách a technikách kompilace. PAKTA '09. 313–324. doi:10.1109 / PACT.2009.37.
- Rundberg, Peter; Stenstrom, Per (2001). „All-Software Thread-Level Data Dependence Speculation System for Multiprocessors“ (PDF). JILP. 3: 1–28.
- Steffan, J. Gregory; Colohan, Christopher; Zhai, Antonia; Mowry, Todd C. (2005). „Přístup STAMPede k spekulaci na úrovni vlákna“. Transakce ACM v počítačových systémech. 23 (3): 253–300. CiteSeerX 10.1.1.79.4317. doi:10.1145/1082469.1082471.
- Whaley, John; Kozyrakis, Christos (2005). „Heuristika pro spekulativní paralelizaci na úrovni metod založenou na profilu“. Mezinárodní konference o paralelním zpracování. ICPP 2005. str. 147–156. doi:10.1109 / ICPP.2005.44.
- Renau, Jose; Strauss, Karin; Ceze, Luis; Liu, Wei; Sarangi, Smruti; Tuck, James; Torrellas, Josep (2006). „Energeticky efektivní spekulace na úrovni vlákna“ (PDF). IEEE Micro. 26 (1): 80–91. doi:10.1109 / MM.2006.11.
- Yoshizoe, Kazuki; Matsumoto, Takashi; Hiraki, Kei (1998). "Spekulativní paralelní provádění na JVM". Workshop ve Velké Británii o HPNC. str. 1–20.
- Oancea, Cosmin E .; Mycroft, Alan; Harris, Tim (2009). „Lehká implementace na místě pro spekulace na úrovni softwarového vlákna“ (PDF). Sborník z 21. ročníku sympozia o paralelismu v algoritmech a architekturách. SPAA '09. s. 1–10. doi:10.1145/1583991.1584050.
![]() | Tento počítačová věda článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |