- Ïî÷åìó òîðìîçèò êîìïüþòåð? -
Ïî÷åìó òîðìîçèò êîìïüþòåð?
Çäðàâñòâóéòå, äîðîãàÿ ðåäàêöèÿ!
Íåäàâíî êóïèëà íîâûé êîìïüþòåð, íî ÷åðåç íåêîòîðîå âðåìÿ îí íà÷àë æóòêî òîðìîçèòü. Ïîäñêàæèòå, â ÷åì ìîæåò áûòü ïðîáëåìà?
Ìàðèÿ
Çäðàâñòâóéòå, Ìàðèÿ!
Åùå ãîä íàçàä âû êóïèëè íîâåíüêèé ÏÊ ñ ñàìûì ñîâðåìåííûì, ìíîãîÿäåðíûì ïðîöåññîðîì è íå ìîãëè íàðàäîâàòüñÿ ïðèîáðåòåíèþ. Íî óæå ñåãîäíÿ âäðóã ñòàëè çàìå÷àòü: êîìïüþòåð ãðóçèòñÿ äîëüøå, à íîâûå ïðîãðàììû (îñîáåííî èãðû) ðàáîòàþò ìåäëåííî.  ÷åì ïðîáëåìà? Ïî÷åìó âàø òðåõúÿäåðíûé (èëè ÷åòûðåõúÿäåðíûé) ïðîöåññîð íå ñïðàâëÿåòñÿ ñ íàãðóçêîé?
Ìíîãîÿäåðíîñòü – íå ïàíàöåÿ
Ïî ìíåíèþ ýêñïåðòîâ, êîíöåïöèÿ ìíîãîÿäåðíîñòè è íîâûå òåõíîëîãèè ïðîèçâîäñòâà CPU (high-k íà îñíîâå ãàôíèÿ è ìåòàëëè÷åñêîãî çàòâîðà) ïðîäëèëè æèçíü çàêîíó Ìóðà ýäàê åùå ëåò íà 40-50. Îäíàêî íå âñå ñîãëàñíû ñ äàííûì ïðîãíîçîì.
 ñâîåé ðàáîòå «Çàêîí Àìäàëà â ìíîãîÿäåðíóþ ýðó» (Amdahl’s Law in the Multicore Era) èññëåäîâàòåëè Ìàðê Õèëë è Ìàéêë Ìàðò ññûëàþòñÿ íà ñôîðìóëèðîâàííîå Äæèíîì Àìäàëîì â 1967 ãîäó ïðàâèëî, êîòîðîå ãëàñèò, ÷òî ïðè ðàñïàðàëëåëèâàíèè âû÷èñëåíèé ïðîèçâîäèòåëüíîñòü ðàñòåò, íî íå ëèíåéíî.
Ðèñ. 1
Ðèñ. 2
 îðèãèíàëå çàêîí çâó÷èò òàê: «Â ñëó÷àå, êîãäà çàäà÷à ðàçäåëÿåòñÿ íà íåñêîëüêî ÷àñòåé, ñóììàðíîå âðåìÿ åå âûïîëíåíèÿ íà ïàðàëëåëüíîé ñèñòåìå íå ìîæåò áûòü ìåíüøå âðåìåíè âûïîëíåíèÿ ñàìîãî äëèííîãî ôðàãìåíòà».
 èòîãå, ÷åì áîëüøå ÿäåð (ðèñ. 1 è 2) áóäåò ñîäåðæàòü ïðîöåññîð, òåì áîëüøå âðåìåíè áóäåò óõîäèòü íà ðàñïàðàëëåëèâàíèå ïðîöåññîâ. Êàê ïîêàçûâàåò ïðàêòèêà, ñ äâóìÿ ÿäðàìè ïðîáëåì íå âîçíèêàåò è áîëüøèíñòâî ïðîãðàìì â ñðåäå Windows ðàáîòàþò êîððåêòíî. Îäíàêî ñ ÷åòûðåõúÿäåðíûìè CPU óæå âîçíèêàþò íåñóðàçíîñòè. Íàïðèìåð, ðàáîòàþò òîëüêî äâà ÿäðà, à îñòàëüíûå ïðîñòàèâàþò.
 êîíâåéåðíûõ âû÷èñëåíèÿõ åñòü åùå îäèí èçúÿí: âñå ÿäðà èñïîëüçóþò îäíè è òå æå ðåñóðñû, ò.å. îáðàùàþòñÿ ê îäíèì è òåì æå ñåãìåíòàì ïàìÿòè (ïðî îòñòàâàíèå áûñòðîäåéñòâèÿ ïàìÿòè ñêðîìíî óìîë÷èì).  ñëó÷àå ñ îäíîïðîöåññîðíîé àðõèòåêòóðîé ïîòîêè âñòàþò â î÷åðåäü, ñ ìíîãîÿäåðíûìè – óæå ïîÿâëÿþòñÿ ïðîáëåìû. Êîãäà íåñêîëüêî ïîòîêîâ îäíîâðåìåííî ïûòàþòñÿ ïîëó÷èòü äîñòóï ê îäíîìó è òîìó æå ñåãìåíòó ïàìÿòè, ñèñòåìà âïîëíå ìîæåò âïàñòü â íåêîòîðóþ «çàäóì÷èâîñòü».
Ðàçäåëÿé è âëàñòâóé
Îäíàêî ñóùåñòâóåò äðóãîé ïóòü: íå ãíàòüñÿ çà ÷èñëîì ÿäåð, à ãðàìîòíî ðàçäåëÿòü ìàññèâû âõîäíîé èíôîðìàöèè. À èìåííî ðàçáèâàòü èõ íà ïîòîêè. Ýòà ãåíèàëüíàÿ èäåÿ ïðèøëà â ãîëîâó ãðóïïå èññëåäîâàòåëåé èç Ñòýíäôîðäñêîãî óíèâåðñèòåòà âî ãëàâå ñ Êóíëå Îëîêîòóíîì. È îíè ïðèíÿëèñü ðàáîòàòü íàä ïðîöåññîðîì Hydra, âåñüìà îáðàçíî íàçâàííûì ïî èìåíè ÷óäîâèùà, ñ êîòîðûì ñðàæàëñÿ Ãåðàêë. Âïîñëåäñòâèè, ïðîÿâèâ èçðÿäíóþ ïðîçîðëèâîñòü, êîìïàíèÿ Sun Mirosystems êóïèëà ýòó òåõíîëîãèþ è ñòàëà ïðîèçâîäèòü ñîáñòâåííûå ïðîöåññîðû SPARC.
Íàèáîëåå èçâåñòíûì ñòàë 65-íì ìíîãîïîòîêîâûé è ìíîãîÿäåðíûé ìèêðîïðîöåññîð UltraSPARC T2 (Niagara 2). Ïðîöåññîð ñîäåðæàë â ñåáå 8 ÿäåð, êàæäîå èç êîòîðûõ ìîãëî îäíîâðåìåííî îáðàáàòûâàòü 8 ïîòîêîâ. Â èòîãå ïðîöåññîð UltraSPARC T2 ñïîñîáåí áûë îáðàáàòûâàòü 64 êîíêóðèðóþùèõ ïîòîêà. Ñàìè ïîòîêè ìîæíî ðàçäåëÿòü ïî òèïàì äàííûõ, ÷òî òîæå ïîâûøàëî áûñòðîäåéñòâèå ñèñòåìû.
Ïðè÷åì, êàæäûé îáðàáàòûâàåìûé ïîòîê ìîã ïðåäñòàâëÿòü ñîáîé èçîëèðîâàííûé äîìåí. È â êàæäîì äîìåíå ìîãëà áûòü çàïóùåíà îòäåëüíàÿ ÎÑ. Ïðåäñòàâüòå ñåáå: íå ìåøàÿ äðóã äðóãó, 64 «îïåðàöèîíêè» ñïîêîéíî ðàáîòàþò íà âàøåì ÏÊ!
Ðèñ. 3
 2011 ãîäó íà ñâåò ïîÿâèëñÿ âîñüìèÿäåðíûé ïðîöåññîð SPARC T4 (ðèñ. 3) ñ ðàáî÷åé ÷àñòîòîé 2,5 ÃÃö, âûïîëíåííûé ïî 40-íì òåõíîëîãèè. Íî, óâû, òåõíîëîãèÿ ìíîãîïîòî÷íûõ âû÷èñëåíèé äî ñèõ ïîð îñòàåòñÿ ïðèâèëåãèåé ñåðâåðíûõ ñèñòåì.
Ïðîáëåìà ¹2
Èòàê, âåðíåìñÿ ê «áûòîâûì» ÏÊ ñ ìíîãîÿäåðíûìè ïðîöåññîðàìè íà àðõèòåêòóðå x86. Êàê èçâåñòíî, â íèõ åñòü íåêîå ïîäîáèå ìíîãîïîòî÷íîñòè: êîíâåéåðû äàííûõ (âïåðâûå ïîÿâèëèñü â Pentium) è ðàñïàðàëëåëèâàíèå ïðîöåññîâ. ×àñòü ýòèõ ôóíêöèé áåðåò íà ñåáÿ è îïåðàöèîííàÿ ñèñòåìà. Ïî óòâåðæäåíèþ Microsoft â Windows 7 ðåàëèçîâàíà ïîääåðæêà ìíîãîÿäåðíûõ ïðîöåññîðîâ ñ êîëè÷åñòâîì ÿäåð äî 256.
Íî òîãäà ïî÷åìó äî ñèõ ïîð òîðìîçÿò íîâûå ïðîãðàììû? Óñïåâàþò (è õîòÿò ëè) ïðîãðàììèñòû ïèñàòü ïðèëîæåíèÿ, ãðàìîòíî èñïîëüçóþùèå ðåñóðñû ÏÊ?  ÷àñòíîñòè, âîçìîæíîñòè ìíîãîÿäåðíûõ ïðîöåññîðîâ. Íàñêîëüêî ñîâðåìåííûé ïðîãðàììíûé èíñòðóìåíòàðèé îòâå÷àåò åæåêâàðòàëüíûì îáíîâëåíèÿì ïðîöåññîðíûõ ëèíååê?
Ñóäÿ ïî âñåìó, îòâåò îòðèöàòåëüíûé. Çà÷àñòóþ, ïðîãðàììû ñîçäàþòñÿ áåç îïòèìèçàöèè êîäà, ñ ïîìîùüþ íàáîðà ãîòîâûõ ìîäóëåé è ñòàíäàðòíûõ áèáëèîòåê. Áåç ó÷åòà âû÷èñëèòåëüíûõ âîçìîæíîñòåé è ïåðåäîâûõ òåõíîëîãèé, çàëîæåííûõ â òîì èëè èíîì ïðîöåññîðå.
Îñîáåííî ýòèì «áîëåþò» èãðîâûå ïðèëîæåíèÿ. Ðàçðàáîò÷èêè äàâíî ìàõíóëè ðóêîé íà ïîëüçîâàòåëåé. «Ìîùíîñòè æåëåçà ðàñòóò ñ êàæäûì äíåì. Òàê ÷òî íèêàêîé «øëèôîâêè» è «ïîäãîíêè» êîäà îò íàñ íå îæèäàéòå. Õîòèòå èãðàòü – ïîêóïàéòå íîâûé êîìïüþòåð» - â îòêðûòóþ çàÿâëÿþò ñîçäàòåëè èãð.
Èíîé ïîäõîä
Ìýòüþ Äèëëîí, àâòîð îïåðàöèîííîé ñèñòåìû DragonFly BSD (ðèñ. 4), óáåæäåí, ÷òî ìíîãîÿäåðíûå ñèñòåìû òðåáóþò êîðåííûõ èçìåíåíèé â ÿäðå äëÿ òîãî, ÷òîáû ÎÑ ìîãëà ýôôåêòèâíî èñïîëüçîâàòü âñå ðåñóðñû êîìïüþòåðà.
DragonFly («ñòðåêîçà», àíã.) - ýòî çàíîâî ïåðåïèñàííàÿ «îïåðàöèîíêà» BSD.  «Ñòðåêîçå» ïîëíî íîâûõ èäåé è ðàçðàáîòîê. Êëþ÷åâîå ðåøåíèå – ïåðåïèñàííîå ÿäðî ñ ó÷åòîì òîãî, ÷òî ïðîöåññû, ðàáîòàþùèå íà îäíîì ïðîöåññîðå, íå òðåáóþò êàêèõ-ëèáî âçàèìíûõ áëîêèðîâîê.
Ðèñ. 4
Äëÿ ýòîé öåëè áûëà ðåàëèçîâàíà èäåÿ ëåãêîâåñíûõ íèòåé ÿäðà (LWKT), ïî îäíîé íà êàæäûé ïðîöåññ â ñèñòåìå, è îòäåëüíûé ïëàíèðîâùèê íà êàæäûé ïðîöåññîð. Äëÿ äîñòóïà ê äàííûì äðóã äðóãà íèòè èñïîëüçóþò ìåõàíèçì ñîîáùåíèé, êîòîðûé ïîçâîëÿåò èçáåæàòü áëîêèðîâîê, îáåñïå÷èâàåò ïðàâèëüíóþ ïîñëåäîâàòåëüíîñòü âûïîëíåíèÿ îïåðàöèé äîñòóïà. Òàêîå ðàçäåëåíèå íå âûçûâàåò êîëëèçèé ïðè îáìåíå äàííûìè ìåæäó íèòÿìè, ðàáîòàþùèìè íà îäíîì ïðîöåññîðå.
Âòîðîé èäååé, ðåàëèçîâàííîé Ìýòüþ Äèëëîíîì, ñòàëà êëàñòåðíàÿ ôàéëîâàÿ ñèñòåìà HAMMER è åå áîëåå ïðîäâèíóòàÿ ìîäèôèêàöèÿ HAMMER2, çàïëàíèðîâàííàÿ íà 2013 ãîä.
Èíòåðåñíî, ÷òî â ðåçóëüòàòå ðàçäåëåíèÿ ÿäðà íà îòäåëüíûå ïîòîêè, äîñòóï ê êîòîðûì îñóùåñòâëÿåòñÿ ñ ïîìîùüþ ñîîáùåíèé, DragonFly ïðèîáðåëà íåêîòîðûå ÷åðòû ìèêðîÿäåðíûõ ÎÑ. Íå íàïîìèíàåò ëè âàì ýòîò âàðèàíò òåõíîëîãèè ìíîãîïîòî÷íûõ âû÷èñëåíèé?
Íà ñîîáùåíèÿõ, ëåãêîâåñíûõ íèòÿõ ÿäðà è êëàñòåðíîé ôàéëîâîé ñèñòåìå íîâîââåäåíèÿ è îñîáåííîñòè DragonFly íå çàêàí÷èâàþòñÿ. Çäåñü åñòü ìíîæåñòâî äðóãèõ âåñüìà ëþáîïûòíûõ è ïîëåçíûõ èäåé, î êîòîðûõ ðàçðàáîò÷èêè äðóãèõ ñèñòåì äàæå íå çàäóìûâàþòñÿ.
Íàèáîëåå èíòåðåñíûå èç íèõ – ýòî âèðòóàëüíîå ÿäðî, ñïîñîáíîå ðàáîòàòü êàê ïîëüçîâàòåëüñêèé ïðîöåññ, äðàéâåð äëÿ âûíåñåíèÿ ìåòàäàííûõ ôàéëîâîé ñèñòåìû íà äðóãîé íàêîïèòåëü swapcache è ìåõàíèçì çàìîðîçêè ïðîöåññîâ, ïîçâîëÿþùèé ñîõðàíèòü òåêóùåå ñîñòîÿíèå ïðèëîæåíèÿ â ôàéë.
Ìîæåò áûòü òàêèå ÎÑ, êàê DragonFly, ðåøàò ïðîáëåìû íàøåãî êîìïüþòåðà? Â èòîãå, ìû íå áóäåì ñèäåòü ó ýêðàíà ìîíèòîðà â òîìèòåëüíîì îæèäàíèè çàãðóçêè îïåðàöèîííîé ñèñòåìû. Ëèáî ïåðåñòàíåì íàáëþäàòü çà ñëàéä-øîó â íîâîé èãðóøêå…
|