×ÈÑËÅÍÍÛÅ ÌÅÒÎÄÛ, ÏÀÀËËÅËÜÍÛÅ ÂÛ×ÈÑËÅÍÈß È ÈÍÔÎÌÀÖÈÎÍÍÛÅ ÒÅÕÍÎËÎ ÈÈ
ÈÇÄÀÒÅËÜÑÒÂÎ ÌÎÑÊÎÂÑÊÎ Î ÓÍÈÂÅÑÈÒÅÒÀ 2008
îñ...
34 downloads
411 Views
6MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
×ÈÑËÅÍÍÛÅ ÌÅÒÎÄÛ, ÏÀÀËËÅËÜÍÛÅ ÂÛ×ÈÑËÅÍÈß È ÈÍÔÎÌÀÖÈÎÍÍÛÅ ÒÅÕÍÎËÎ ÈÈ
ÈÇÄÀÒÅËÜÑÒÂÎ ÌÎÑÊÎÂÑÊÎ Î ÓÍÈÂÅÑÈÒÅÒÀ 2008
îññèéñêàÿ àêàäåìèÿ íàóê Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè Ìîñêîâñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò èìåíè Ì.Â.Ëîìîíîñîâà Íàó÷íî-èññëåäîâàòåëüñêèé âû÷èñëèòåëüíûé öåíòð
×ÈÑËÅÍÍÛÅ ÌÅÒÎÄÛ, ÏÀÀËËÅËÜÍÛÅ ÂÛ×ÈÑËÅÍÈß È ÈÍÔÎÌÀÖÈÎÍÍÛÅ ÒÅÕÍÎËÎ ÈÈ
Ñáîðíèê íàó÷íûõ òðóäîâ ïîä ðåäàêöèåé Âë. Â. Âîåâîäèíà è Å. Å. Òûðòûøíèêîâà
ÈÇÄÀÒÅËÜÑÒÂÎ ÌÎÑÊÎÂÑÊÎ Î ÓÍÈÂÅÑÈÒÅÒÀ 2008
ÓÄÊ 519.6 ÁÁÊ 22.20 ×67
×67
×èñëåííûå ìåòîäû, ïàðàëëåëüíûå âû÷èñëåíèÿ è èíîðìàöèîííûå òåõíîëîãèè: Ñáîðíèê íàó÷íûõ òðóäîâ / Ïîä ðåä. Âë. Â. Âîåâîäèíà è Å. Å. Òûðòûøíèêîâà. Ì.: Èçäàòåëüñòâî Ìîñêîâñêîãî Óíèâåðñèòåòà, 2008. 320 ñ. ISBN
 ñáîðíèêå ïðåäñòàâëåíû ðàáîòû ïî ÷èñëåííûì ìåòîäàì, ïàðàëëåëüíûì âû÷èñëåíèÿì è èíîðìàöèîííûì òåõíîëîãèÿì ïî òðåì íàïðàâëåíèÿì, ñîñòàâëÿþùèì êðóã íàó÷íûõ èíòåðåñîâ àêàäåìèêà Âàëåíòèíà Âàñèëüåâè÷à Âîåâîäèíà è ñîçäàííîé èì íàó÷íîé øêîëû. Äëÿ íàó÷íûõ ðàáîòíèêîâ, àñïèðàíòîâ è ñòóäåíòîâ, ñïåöèàëèçèðóþùèõñÿ â îáëàñòè ÷èñëåííîãî àíàëèçà è ðàçðàáîòêè ñîâðåìåííîãî ïðîãðàììíîãî îáåñïå÷åíèÿ. The book presents a olle tion of works on numeri al methods, parallel omputations and information te hnologies the three dire tions omprising the area of s ienti interests of the a ademi ian Valentin Vasilievi h Voevodin and of the s ienti s hool founded by him. The book is addressed to resear hers, post graduates and students majorizing in numeri al analysis and modern software development. ÓÄÊ 519.6 ÁÁÊ 22.20 ISBN
ÍÈÂÖ Ì Ó, 2008
Ïîñâÿùàåòñÿ ñâåòëîé ïàìÿòè àêàäåìèêà Âàëåíòèíà Âàñèëüåâè÷à Âîåâîäèíà
Ïðåäèñëîâèå  ñáîðíèêå ïðåäñòàâëåíû ðàáîòû ïî ÷èñëåííûì ìåòîäàì, ïàðàëëåëüíûì âû÷èñëåíèÿì è èíîðìàöèîííûì òåõíîëîãèÿì ïî òðåì íàïðàâëåíèÿì, ñîñòàâëÿþùèì êðóã íàó÷íûõ èíòåðåñîâ àêàäåìèêà Âàëåíòèíà Âàñèëüåâè÷à Âîåâîäèíà è ñîçäàííîé èì íàó÷íîé øêîëû, âêëþ÷àþùåé óæå àêòè÷åñêè äâà íàó÷íûõ ïîêîëåíèÿ. Ìîæíî ñ óäîâëåòâîðåíèåì îòìåòèòü, ÷òî îñíîâíàÿ ÷àñòü ñîáðàííûõ çäåñü ðàáîò ïðèíàäëåæèò ¾íàó÷íûì âíóêàì¿ Âàëåíòèíà Âàñèëüåâè÷à. Âàëåíòèí Âàñèëüåâè÷ óøåë îò íàñ 27 ÿíâàðÿ 2007 ãîäà, è óæå íåò âîçìîæíîñòè îáðàòèòüñÿ ê íåìó çà ñîâåòîì ïî êàêîìó-ëèáî íàó÷íîìó èëè æèòåéñêîìó âîïðîñó. Îí âñåãäà óìåë ïðàâèëüíî îïðåäåëèòü, â êàêîå äåëî íóæíî âïðÿãàòüñÿ, à ÷òî ìîæíî è îòëîæèòü. Íî ñàìîå ãëàâíîå, îí íàó÷èë íàñ òîìó, êàê ñëåäóåò ðàçìûøëÿòü ïðè ïðèíÿòèè ïîäîáíûõ ðåøåíèé. Ìû î÷åíü íàäååìñÿ, ÷òî ýòè ðåøåíèÿ è ñâÿçàííûå ñ íèìè ðåçóëüòàòû, ïðåäñòàâëåííûå â ñáîðíèêå, áóäóò äîñòîéíû ñâåòëîé ïàìÿòè Âàëåíòèíà Âàñèëüåâè÷à Âîåâîäèíà.
Âë. Â. Âîåâîäèí Å. Å. Òûðòûøíèêîâ
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë Âë. Â. Âîåâîäèí
⋆
Óäèâèòåëüíî òåñíî ïåðåïëåëàñü æèçíü Âàëåíòèíà Âàñèëüåâè÷à Âîåâîäèíà ñ Âû÷èñëèòåëüíûì öåíòðîì Ìîñêîâñêîãî óíèâåðñèòåòà. Áåç êàêîãî-ëèáî ïðåóâåëè÷åíèÿ 50 ëåò ÍÈÂÖ Ì Ó è Âàëåíòèí Âàñèëüåâè÷ áûëè âìåñòå! Ñíà÷àëà â 1953 ãîäó èìåííî ðàññêàç áóäóùèõ ñîòðóäíèêîâ ÂÖ È.Ñ.Áåðåçèíà è Å.À.Æîãîëåâà (ñàì ÂÖ áóäåò îáðàçîâàí òîëüêî â 1955 ãîäó) ïåðåä ñòóäåíòàìè 2-ãî êóðñà ìåõìàòà ïîâëèÿë íà åãî âûáîð êàåäðû âû÷èñëèòåëüíîé ìàòåìàòèêè â êà÷åñòâå îñíîâû äëÿ îðìèðîâàíèÿ áóäóùåé ïðîåññèè. Îñåíüþ 1956 ãîäà, åùå áóäó÷è ñòóäåíòîì 5-ãî êóðñà, Âàëåíòèí Âàñèëüåâè÷ ïðèõîäèò íà ðàáîòó â âû÷èñëèòåëüíûé öåíòð, à ñî ñëåäóþùåãî ãîäà ñòàíîâèòñÿ åãî ïîñòîÿííûì ñîòðóäíèêîì, ïðîéäÿ â ðåçóëüòàòå ïóòü îò ñòàðøåãî ëàáîðàíòà äî äèðåêòîðà. Ñ 1969 ãîäà îí íàçíà÷àåòñÿ èñïîëíÿþùèì îáÿçàííîñòè çàâåäóþùåãî ÂÖ, à ñ 1970 äèðåêòîðîì, ïðîðàáîòàâ â ýòîé äîëæíîñòè äî 1978 ãîäà. Ñ 1981 ãîäà Âàëåíòèí Âàñèëüåâè÷ ïåðåõîäèò íà ðàáîòó â Îòäåë âû÷èñëèòåëüíîé ìàòåìàòèêè ïðè Ïðåçèäèóìå ÀÍ (ñåé÷àñ ýòî Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ), îäíàêî ìûñëè î íåîáõîäèìîñòè ñîçäàíèÿ ñèñòåìû ïîäãîòîâêè âûñîêîêëàññíûõ ñïåöèàëèñòîâ, ñïîñîáíûõ ïîäíèìàòü è ðàçâèâàòü âû÷èñëèòåëüíîå äåëî, îïÿòü âîçâðàùàþò åãî â ëîíî Ìîñêîâñêîãî óíèâåðñèòåòà.  1990 ãîäó êîëëåêòèâ åäèíîìûøëåííèêîâ íà áàçå ÍÈÂÖ Ì Ó ñîçäàåò Âûñøóþ êîìïüþòåðíóþ øêîëó, ðàáîòó êîòîðîé ìíîãèå ãîäû âîçãëàâëÿåò Âàëåíòèí Âàñèëüåâè÷. È äî ñàìîãî ïîñëåäíåãî ìîìåíòà îí ÿâëÿëñÿ ÷ëåíîì Ó÷åíîãî Ñîâåòà ÍÈÂÖ, ÷ëåíîì äèññåðòàöèîííîãî ñîâåòà ÍÈÂÖ, ÷ëåíîì ðåäêîëëåãèè æóðíàëà ÍÈÂÖ ¾Âû÷èñëèòåëüíûå ìåòîäû è ïðîãðàììèðîâàíèå¿... ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
6
Âë. Â. Âîåâîäèí
 íà÷àëå 90-õ îðìèðóåòñÿ è íàøà ëàáîðàòîðèÿ, êîòîðàÿ ñòàëà âåòî÷êîé åãî íàó÷íîé øêîëû, ÷òî ïðåäîïðåäåëèëî èñêëþ÷èòåëüíî òåñíûå íå òîëüêî ÷åëîâå÷åñêèå, íî è íàó÷íûå êîíòàêòû íà âñå ýòè ãîäû. Ëàáîðàòîðèÿ ïàðàëëåëüíûõ èíîðìàöèîííûõ òåõíîëîãèé ïîÿâèëàñü â ÍÈÂÖ Ì Ó â 1999 ãîäó. Îíà ñòàëà ïîëíîïðàâíîé ïðååìíèöåé ëàáîðàòîðèè íåëèíåéíûõ âû÷èñëåíèé, îðãàíèçîâàííîé â 1992 ãîäó ïî èíèöèàòèâå Â.Ì.åïèíà, âîçãëàâëÿâøåãî â òå ãîäû âû÷èñëèòåëüíûé öåíòð. Îáëàñòü íàó÷íûõ èíòåðåñîâ ñîòðóäíèêîâ ëàáîðàòîðèè îáøèðíà è âêëþ÷àåò òàêèå îáëàñòè, êàê ïàðàëëåëüíûå âû÷èñëåíèÿ, ìàòåìàòè÷åñêèå ìåòîäû èññëåäîâàíèÿ òîíêîé ñòðóêòóðû ïðîãðàìì, ìåòîäû îïèñàíèÿ è àíàëèçà àðõèòåêòóðû êîìïüþòåðîâ, òåõíîëîãèè ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ, ìåòîäû îïòèìèçàöèè ïðîãðàìì äëÿ ñóïåðêîìïüþòåðîâ è ïàðàëëåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì, Èíòåðíåò-òåõíîëîãèè è Èíòåðíåò-ïðîåêòû â íàóêå, îðãàíèçàöèÿ ðàñïðåäåëåííûõ âû÷èñëåíèé, ìåòàêîìïüþòèíã, ýëåêòðîííûå ñèñòåìû â îáðàçîâàíèè.  äàííîé ðàáîòå êðàòêî îïèñàíû òå íàïðàâëåíèÿ óíäàìåíòàëüíûõ èññëåäîâàíèé è êîíêðåòíûå ïðèêëàäíûå ïðîåêòû, êîòîðûå âûïîëíÿþòñÿ ñèëàìè íàøåãî êîëëåêòèâà ëèáî æå â êîòîðûå íàøè ñîòðóäíèêè àêòèâíî âîâëå÷åíû, ðàáîòàÿ â òåñíîì êîíòàêòå ñ êîëëåãàìè èç äðóãèõ îáëàñòåé íàóêè. Ïðè ýòîì íå ñòàâèëàñü öåëü äàòü ïîäðîáíîå îïèñàíèå êàæäîãî ïðîåêòà èëè íàïðàâëåíèÿ, ñêîðåå õîòåëîñü äàòü ïðåäñòàâëåíèå î ñïåêòðå ðàáîò, âûïîëíÿåìûõ â êîëëåêòèâå. Âìåñòå ñ ýòèì, îòìåòèì, ÷òî ÷àñòü óïîìÿíóòûõ çäåñü ïðîåêòîâ áîëåå ïîäðîáíî ïðåäñòàâëåíà â íàñòîÿùåì ñáîðíèêå â âèäå îòäåëüíûõ ñòàòåé.
ÈÍÔÎÌÀÖÈÎÍÍÎ-ÀÍÀËÈÒÈ×ÅÑÊÈÉ ÖÅÍÒ ÏÎ ÏÀÀËËÅËÜÍÛÌ ÂÛ×ÈÑËÅÍÈßÌ PARALLEL.RU
Âñ¼ î ìèðå ñóïåðêîìïüþòåðîâ è ïàðàëëåëüíûõ âû÷èñëåíèé... Èìåííî òàêîé ïîäçàãîëîâîê ëó÷øå âñåãî ïîäõîäèò ê îïèñàíèþ òåìàòèêè äàííîãî öåíòðà â ñåòè Èíòåðíåò. Ïåðâûé âàðèàíò Webñåðâåðà, ïîñâÿù¼ííîãî îñíîâíûì âîïðîñàì ïàðàëëåëüíûõ âû÷èñ-
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
7
ëåíèé, áûë ñîçäàí â ìàå 1998 ãîäà. Àêòèâíî ðàçâèâàÿñü, ïðîåêò î÷åíü áûñòðî âûøåë çà ðàìêè, õàðàêòåðíûå äëÿ òðàäèöèîííîãî òåìàòè÷åñêîãî Web-ðåñóðñà, ïðåîáðàçîâàâøèñü â ñïåöèàëèçèðîâàííûé Èíîðìàöèîííî-àíàëèòè÷åñêèé Öåíòð ïî ïàðàëëåëüíûì âû÷èñëåíèÿì â ñåòè Èíòåðíåò. Ñåðâåð ïåðåñòàë áûòü ñòàòè÷åñêèì îáðàçîâàíèåì, îáúåäèíèâ âîêðóã ñåáÿ áîëüøîå ÷èñëî ïðîåññèîíàëîâ, ó÷àñòâóþùèõ â îáñóæäåíèè àêòóàëüíûõ âîïðîñîâ, ïðåäëàãàþùèõ ñâîþ ïîìîùü ïî íàïîëíåíèþ îòäåëüíûõ ñïåöèàëèçèðîâàííûõ ðàçäåëîâ, ïîäãîòîâêå íîâûõ ìàòåðèàëîâ, ïîìîãàþùèõ ëó÷øå ïîíÿòü îñîáåííîñòè äàííîé ïðåäìåòíîé îáëàñòè. Òåìàòèêà Öåíòðà îõâàòûâàåò ñëåäóþùèå ðàçäåëû: îáçîð íîâîñòåé ìèðà âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé, îïèñàíèå àðõèòåêòóð êîìïüþòåðîâ, òåõíîëîãèè ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ, îáçîð èñòî÷íèêîâ èíîðìàöèè â äàííîé îáëàñòè, ñïèñêè êîíåðåíöèé ïî äàííîé òåìàòèêå, ñïèñêè êðóïíåéøèõ ñóïåðêîìïüþòåðíûõ öåíòðîâ, èíîðìàöèÿ î ðîññèéñêèõ ðåñóðñàõ â äàííîé îáëàñòè, î÷åðêè ïî èñòîðèè âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé è ìíîãîå äðóãîå. Âîêðóã Öåíòðà ñîðìèðîâàëîñü è àêòèâíî óíêöèîíèðóåò ñåòåâîå ñîîáùåñòâî. Ñîáèðàåòñÿ èíîðìàöèÿ î ïåðñîíàëèÿõ è îðãàíèçàöèÿõ, âîâëå÷¼ííûõ â äàííóþ äåÿòåëüíîñòü, âûïîëíÿåòñÿ ðåãóëÿðíàÿ ðàññûëêà ïî ýëåêòðîííîé ïî÷òå êàê íîâîñòåé Öåíòðà, òàê è íîâîñòåé ìèðà âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé (íà 2007 ãîä ýòî áîëåå 3000 ïîäïèñ÷èêîâ, ïðåäñòàâëÿþùèõ âñå îñíîâíûå êîëëåêòèâû îññèè è áëèæíåãî çàðóáåæüÿ, ðàáîòàþùèå â äàííîé îáëàñòè).  Öåíòðå îðãàíèçîâàí Äèñêóññèîííûé êëóá, â êîòîðîì àêòèâíî îáñóæäàþòñÿ ðàçëè÷íûå âîïðîñû ñóïåðêîìïüþòåðíîé òåìàòèêè. Îêàçûâàåòñÿ ñîäåéñòâèå â îðãàíèçàöèè è èíîðìàöèîííîé ïîääåðæêå íàó÷íûõ êîíåðåíöèé, ñåìèíàðîâ è äðóãèõ ìåðîïðèÿòèé, çàòðàãèâàþùèõ ïðîáëåìàòèêó ïàðàëëåëüíûõ âû÷èñëåíèé. Èíòåðíåò-öåíòð îäíîâðåìåííî ðåøàåò çàäà÷è îðãàíèçàöèè ýåêòèâíîãî äîñòóïà ê âû÷èñëèòåëüíûì ðåñóðñàì è êîíñóëüòàöèé äëÿ ïîëüçîâàòåëåé. Äëÿ ïîääåðæêè ýòîãî íàïðàâëåíèÿ áûë ñîçäàí ðàçäåë Ñóïåðêîìïüþòåðíîãî êîìïëåêñà Ìîñêîâñêîãî óíèâåðñèòåòà (http://parallel.ru/ luster/), ðåàëèçîâàíà ïèëîòíàÿ âåðñèÿ âû÷èñëè-
8
Âë. Â. Âîåâîäèí
òåëüíîãî è ïðîöåññîðíîãî ïîëèãîíîâ. Ïîäãîòîâëåí áîëüøîé îáú¼ì ó÷åáíî-ìåòîäè÷åñêîãî ìàòåðèàëà, à îñíîâíûå èçäàíèÿ îáúåäèíåíû â ñåðèþ ¾Áèáëèîòåêà ó÷åáíûõ ìàòåðèàëîâ Parallel.ru¿. Àäðåñ ïðîåêòà â ñåòè Èíòåðíåò http://www.parallel.ru/.
ÑÏÈÑÎÊ TOP50 ÑÀÌÛÕ ÌÎÙÍÛÕ ÊÎÌÏÜÞÒÅÎÂ ÑÍ
Áîëüøèå çàäà÷è ïîÿâèëèñü îäíîâðåìåííî ñ ðîæäåíèåì âû÷èñëèòåëüíîé òåõíèêè, è áóäóò ñóùåñòâîâàòü âñåãäà. Îíè âñåãäà âûçûâàþò ïîâûøåííûé èíòåðåñ, ïîñêîëüêó ÿâëÿþòñÿ îòðàæåíèåì íîâûõ êîìïüþòåðíûõ ìåòîäîâ ïðîâåäåíèÿ èññëåäîâàíèé â ðàçëè÷íûõ îáëàñòÿõ íàóêè, ðàñøèðÿÿ è äîïîëíÿÿ òðàäèöèîííûå ïîäõîäû. Âû÷èñëèòåëüíàÿ àýðî- è ãèäðîäèíàìèêà, ìîëåêóëÿðíîå ìîäåëèðîâàíèå, êâàíòîâîõèìè÷åñêèå ìåòîäû, âû÷èñëèòåëüíûå òåõíîëîãèè áèîèíîðìàòèêè è áèîèíæåíåðèè èìåþò êîëîññàëüíûé ïîòåíöèàë äëÿ ðåøåíèÿ ðåàëüíûõ çàäà÷, îäíàêî âñå îíè ïðåäúÿâëÿþò èñêëþ÷èòåëüíî æåñòêèå òðåáîâàíèÿ ê ïàðàìåòðàì èñïîëüçóåìûõ êîìïüþòåðíûõ ñèñòåì. Ñîðìèðîâàëîñü äàæå ñïåöèàëüíîå ïîíÿòèå, îòðàæàþùåå êîìïüþòåðû ñ ïðåäåëüíî âûñîêîé ïðîèçâîäèòåëüíîñòüþ ñóïåðêîìïüþòåðû. ×òîáû ïîìî÷ü ïðàâèëüíî ñîðèåíòèðîâàòüñÿ â ìèðå âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì è èìåòü âîçìîæíîñòü îïåðàòèâíî îòñëåæèâàòü òåíäåíöèè ðàçâèòèÿ äàííîé îáëàñòè, ÍÈÂÖ Ì Ó è ÌÑÖ ÀÍ â ìàå 2004 ãîäà íà÷àëè ñîâìåñòíûé ïðîåêò ïî îðìèðîâàíèþ ñïèñêà 50 íàèáîëåå ìîùíûõ êîìïüþòåðîâ ÑÍ . Ñ òåõ ïîð ñïèñîê îáíîâëÿåòñÿ äâà ðàçà â ãîä, à ïðàâèëà åãî âåäåíèÿ îïðåäåëåíû â ïîëîæåíèè, îïóáëèêîâàííîì íà ñàéòå ïðîåêòà. Íåñìîòðÿ íà íåáîëüøóþ ïðîäîëæèòåëüíîñòü ïðîåêòà, îïóáëèêîâàííûå ê íàñòîÿùåìó âðåìåíè ñåìü ðåäàêöèé ñïèñêà Top50 óæå ñîäåðæàò ìíîãî èíòåðåñíîãî ìàòåðèàëà, íà îñíîâå êîòîðîãî ìîæíî ïðîâîäèòü ñîäåðæàòåëüíûé àíàëèç äèíàìèêè ðàçâèòèÿ ñóïåðêîìïüþòåðíîé îòðàñëè íà òåððèòîðèè ÑÍ . Íà ñàéòå ïðîåêòà äîñòóïíû âñå ðåäàêöèè ñïèñêà, ïîäðîáíàÿ èíîðìàöèÿ ïî îòäåëüíûì âû÷èñëèòåëüíûì ñèñòåìàì, ñòàòèñòèêà, íîâîñòè, âåäåòñÿ àðõèâ. Ïðåäî-
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
9
ñòàâëåíà âîçìîæíîñòü ãèáêîãî îðìèðîâàíèÿ ñîáñòâåííîé âûáîðêè ïî èíäèâèäóàëüíûì êðèòåðèÿì äëÿ ïðîâåäåíèÿ áîëåå äåòàëüíîãî àíàëèçà, êîòîðûé äàåò èñêëþ÷èòåëüíî áîãàòóþ ïèùó äëÿ ðàçìûøëåíèé è ïîìîãàåò îïðåäåëèòü ìíîæåñòâî íåòðèâèàëüíûõ çàêîíîìåðíîñòåé â ðàçâèòèè ñóïåðêîìïüþòåðíîé òåõíèêè [1℄. Àäðåñ ïðîåêòà Top50 â ñåòè Èíòåðíåò http://www.super omputers.ru/.
ÑÓÏÅÊÎÌÏÜÞÒÅÍÛÉ ÊÎÌÏËÅÊÑ ÌÎÑÊÎÂÑÊÎ Î ÓÍÈÂÅÑÈÒÅÒÀ
Ñîáñòâåííî âû÷èñëèòåëüíûé öåíòð Ìîñêîâñêîãî ãîñóäàðñòâåííîãî óíèâåðñèòåòà èìåíè Ì.Â.Ëîìîíîñîâà áûë ñîçäàí â 1955 ãîäó è ñ ìîìåíòà îñíîâàíèÿ áûë ñðàçó îñíàùåí ñàìîé ïåðåäîâîé âû÷èñëèòåëüíîé òåõíèêîé. Óæå â äåêàáðå 1956 ãîäà â ÂÖ áûëà óñòàíîâëåíà ïåðâàÿ ñåðèéíàÿ îòå÷åñòâåííàÿ ìàøèíà ¾Ñòðåëà¿.  1961 ãîäó áûëà ââåäåíà â ñòðîé ìàøèíà Ì-20, â 1966 ÁÝÑÌ-4. Ê 1981 ãîäó â ÂÖ óíêöèîíèðîâàëè ÷åòûðå ÁÝÑÌ-6, äâå ÅÑ-1022, Ìèíñê-32, äâå ÝÂÌ Ìèð-2 è ðàçðàáîòàííàÿ â ñàìîì ÂÖ ïåðâàÿ â ìèðå ÝÂÌ ¾Ñåòóíü¿ ñ òðîè÷íîé ñèñòåìîé ñ÷èñëåíèÿ. Ñîâðåìåííûé ÍÈÂÖ âõîäèò â ÷èñëî êðóïíåéøèõ ñóïåðêîìïüþòåðíûõ öåíòðîâ îññèè. Ïðèíÿâ çà îñíîâó èññëåäîâàíèÿ ëàáîðàòîðèè è âûáðàâ â 1999 ãîäó â êà÷åñòâå ãëàâíîãî íàïðàâëåíèÿ ðàçâèòèÿ ñðåäñòâ âû÷èñëèòåëüíîé òåõíèêè èñïîëüçîâàíèå êëàñòåðíûõ ñèñòåì, ÍÈÂÖ Ì Ó ñòàë ïåðâîé ðîññèéñêîé îðãàíèçàöèåé, êîòîðàÿ ïîñòðîèëà ñóïåðêîìïüþòåðíûé öåíòð êîëëåêòèâíîãî ïîëüçîâàíèÿ íà äàííîì òèïå àðõèòåêòóðû. Ñåãîäíÿ îñíîâíîé áàçîé äëÿ ïðîâåäåíèÿ âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé ÿâëÿþòñÿ ìîùíûå âû÷èñëèòåëüíûå êëàñòåðû, ñóììàðíàÿ ïðîèçâîäèòåëüíîñòü êîòîðûõ äîñòèãëà äâóõ òðèëëèîíîâ îïåðàöèé â ñåêóíäó [2℄. Âîïðîñû ìîíèòîðèíãà óíêöèîíèðîâàíèÿ ñóïåðêîìïüþòåðíîãî êîìïëåêñà, ñîïðîâîæäåíèÿ ïðîãðàììíîé èíðàñòðóêòóðû, îáåñïå÷åíèå ïîääåðæêè ïîëüçîâàòåëåé ëåæàò íà ñîòðóäíèêàõ ëàáîðàòîðèè. Ñðåäè çàäà÷ êîìïëåêñà ïîääåðæêà óíäàìåíòàëüíûõ íàó÷íûõ èññëåäîâàíèé è ó÷åáíîãî ïðîöåññà Ìîñêîâñêîãî óíèâåðñèòåòà.
10
Âë. Â. Âîåâîäèí
Äîñòóï ê ñóïåðêîìïüþòåðíûì ðåñóðñàì ïðåäîñòàâëåí ñîòðóäíèêàì âñåõ ïîäðàçäåëåíèé Ì Ó, à òàêæå ðÿäà âåäóùèõ ó÷åáíûõ è íàó÷íûõ îðãàíèçàöèé îññèè. Ñîçäàíî ìîùíîå öåíòðàëèçîâàííîå õðàíèëèùå äàííûõ. Ñïðîåêòèðîâàíà è óæå ïðèìåíÿåòñÿ íà ïðàêòèêå òåõíîëîãèÿ ãëîáàëüíûõ âû÷èñëåíèé ñ èñïîëüçîâàíèåì ðàçðàáîòàííîé â ÍÈÂÖ ñèñòåìû ìåòàêîìïüþòèíãà X-Com.  ñîñòàâ ñóïåðêîìïüþòåðíîãî êîìïëåêñà ÍÈÂÖ âõîäèò ïðîöåññîðíûé ïîëèãîí ñ åäèíîé ñèñòåìîé óïðàâëåíèÿ, îáúåäèíÿþùèé ðàçëè÷íûå âû÷èñëèòåëüíûå ïëàòîðìû íà áàçå îñíîâíûõ òèïîâ ñîâðåìåííûõ ïðîöåññîðîâ. Îñíîâíàÿ öåëü ïîëèãîíà ïðåäîñòàâèòü ïîëüçîâàòåëÿì èíñòðóìåíò äëÿ èññëåäîâàíèÿ è îñâîåíèÿ íîâûõ ïðîöåññîðíûõ òåõíîëîãèé è ñèñòåì êîìïèëÿöèè. Äëÿ ðàçâèòèÿ âîçìîæíîñòåé ñóïåðêîìïüþòåðíîãî êîìïëåêñà, ñîòðóäíèêè ëàáîðàòîðèè âåäóò àêòèâíûå èññëåäîâàíèÿ ïî ìåòîäàì ðåøåíèÿ çàäà÷ ñ èñïîëüçîâàíèåì êîìïüþòåðîâ ñ ðåêîíèãóðèðóåìîé àðõèòåêòóðîé (FPGA-êîìïüþòåðû). Èñêëþ÷èòåëüíî èíòåðåñíîå íàïðàâëåíèå, êîòîðîå ñòàëî ðàçâèâàòüñÿ â ïîñëåäíåå âðåìÿ â ëàáîðàòîðèè ýòî ðàçðàáîòêà òåõíîëîãèé èñïîëüçîâàíèÿ ãðàè÷åñêèõ ïðîöåññîðîâ â êà÷åñòâå óíèâåðñàëüíûõ óñòðîéñòâ äëÿ ðåøåíèÿ âû÷èñëèòåëüíî ñëîæíûõ çàäà÷. Ñåãîäíÿ èäåò êà÷åñòâåííîå ðàñøèðåíèå âîçìîæíîñòåé ñóïåðêîìïüþòåðíîãî êîìïëåêñà. óêîâîäñòâîì Ìîñêîâñêîãî óíèâåðñèòåòà ïðèíÿòî ðåøåíèå îá óñòàíîâêå ñóïåðêîìïüþòåðíîé êëàñòåðíîé ñèñòåìû ñ ðåêîðäíî âûñîêîé ïðîèçâîäèòåëüíîñòüþ â 60 Òëîïñ ñàìîé ìîùíîé âû÷èñëèòåëüíîé ñèñòåìû íà òåððèòîðèè ÑÍ . Îïèñàíèå ñîñòàâà è ïîëüçîâàòåëüñêîé èíðàñòðóêòóðû ñóïåðêîìïüþòåðíîãî êîìïëåêñà ïðåäñòàâëåíî â ñåòè Èíòåðíåò íà ñòðàíèöå http://parallel.ru/ luster/.
CLEO ÑÈÑÒÅÌÀ ÓÏÀÂËÅÍÈß ÏÎÕÎÆÄÅÍÈÅÌ ÇÀÄÀÍÈÉ ÍÀ ÂÛ×ÈÑËÈÒÅËÜÍÛÕ ÊËÀÑÒÅÀÕ
Îäíîé èç âàæíåéøèõ êîìïîíåíò ñîâðåìåííîãî âû÷èñëèòåëüíîãî êëàñòåðà ÿâëÿåòñÿ ñèñòåìà óïðàâëåíèÿ ïðîõîæäåíèåì çàäàíèé. Ñè-
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
11
ñòåìà Cleo, ðàçðàáîòàííàÿ â ëàáîðàòîðèè, ïðåäíàçíà÷åíà äëÿ óïðàâëåíèÿ ïðîãðàììàìè íà êëàñòåðàõ ðàçëè÷íûõ êîíèãóðàöèé, ñ ðàçëè÷íûìè òðåáîâàíèÿìè ê çàäàíèÿì è ðåæèìàì èñïîëüçîâàíèÿ âû÷èñëèòåëüíûõ ðåñóðñîâ. Ïîääåðæèâàþòñÿ âñå îñíîâíûå ñðåäû ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ, òàêèå êàê mpi h, mvapi h, Intel MPI è äðóãèå. Ñèñòåìà ïåðåíîñèìà íà áîëüøèíñòâî UNIX-ïëàòîðì, ÷òî ïîçâîëÿåò èñïîëüçîâàòü å¼ ïðàêòè÷åñêè íà ëþáûõ êëàñòåðíûõ óñòàíîâêàõ. Ïîääåðæèâàåòñÿ ðàáîòà ñ íåñêîëüêèìè êëàñòåðàìè îäíîâðåìåííî, à òàêæå ñ îòäåëüíûìè ðàçäåëàìè âíóòðè êëàñòåðîâ. èáêàÿ íàñòðîéêà ïàðàìåòðîâ ñèñòåìû, ïîëèòèê èñïîëüçîâàíèÿ ðåñóðñîâ è ïëàíèðîâùèêà çàïóñêà çàäàíèé äåëàåò å¼ óäîáíîé äëÿ àäìèíèñòðèðîâàíèÿ è ïëàíèðîâàíèÿ ðåæèìîâ èñïîëüçîâàíèÿ êëàñòåðà. Âîçìîæíîñòè àâòîìàòè÷åñêîé è ðó÷íîé áëîêèðîâêè óçëîâ è çàäàíèé óïðîùàþò ïðîöåññ ïðîâåäåíèÿ ïðîèëàêòè÷åñêèõ ðàáîò êëàñòåðîâ áåç íåîáõîäèìîñòè ïîëíîé îñòàíîâêè ðàáîòû ïîëüçîâàòåëåé. Ñèñòåìà ïðèîðèòåòîâ è ïðåäñêàçàíèÿ çàãðóçêè ïîçâîëÿþò ìèíèìàëüíûìè óñèëèÿìè ýåêòèâíî óïðàâëÿòü çàãðóçêîé êëàñòåðà. Cleo ëåãêî ðàñøèðÿåìà. Èíòåðåéñ ìîäóëåé äîêóìåíòèðîâàí è ïðîèëëþñòðèðîâàí ïðèìåðàìè, ÷òî ïîçâîëÿåò áûñòðî ñîçäàâàòü ñîáñòâåííûå ïëàíèðîâùèêè èëè äîïîëíÿòü âîçìîæíîñòè ñèñòåìû íîâîé óíêöèîíàëüíîñòüþ. Âñå ìîäóëè Cleo ðàáîòàþò â çàùèù¼ííîé ñðåäå, ÷òî ïîâûøàåò çàùèù¼ííîñòü ñèñòåìû â öåëîì. Ñîñòîÿíèå ñèñòåìû äîñòóïíî â XML-îðìàòå è ìîæåò áûòü èñïîëüçîâàíî ëþáûìè âíåøíèìè ïðîãðàììàìè. Ñðåäñòâà ñáîðà ñòàòèñòèêè ïðåäîñòàâëÿþò êàê êîìïëåêñíûå, òàê è äåòàëüíûå îò÷¼òû î ðàáîòå ïîëüçîâàòåëåé íà êëàñòåðå.  íàñòîÿùåå âðåìÿ ïîä óïðàâëåíèåì Cleo ðàáîòàþò êëàñòåðû ñóïåðêîìïüþòåðíîãî êîìïëåêñà ÍÈÂÖ Ì Ó è ðÿäà äðóãèõ îðãàíèçàöèé. Èñõîäíûå òåêñòû Cleo äîñòóïíû ïî àäðåñó: http://sf.net/proje ts/ leo-bs/.
12
Âë. Â. Âîåâîäèí
ÑÅÒÈÔÈÊÀÖÈß ÝÔÔÅÊÒÈÂÍÎÑÒÈ ÏÀÀËËÅËÜÍÛÕ ÏÎ ÀÌÌ
Äëÿ ýåêòèâíîé îïòèìèçàöèè âû÷èñëèòåëüíî ñëîæíûõ ïðîãðàìì íåîáõîäèìî èçó÷åíèå èõ ïîâåäåíèÿ íà ðàçëè÷íûõ êîìïüþòåðíûõ ïëàòîðìàõ è êîíèãóðàöèÿõ, ÷òî ìû íàçûâàåì ñåðòèèêàöèåé ýåêòèâíîñòè ðàáîòû ïðîãðàìì â ïðîãðàììíî-àïïàðàòíûõ ñðåäàõ. Äëÿ ïðîâåäåíèÿ ïîäîáíîãî èññëåäîâàíèÿ íåäîñòàòî÷íî èìåòü òîëüêî àïïàðàòíûå ñðåäñòâà è ñîáñòâåííî ãîòîâûå âàðèàíòû ïðîãðàìì èëè æå èõ èñõîäíûå òåêñòû. Íåîáõîäèìà êàê ìåòîäèêà ïðîâåäåíèÿ òåñòèðîâàíèÿ, òàê è ñðåäñòâà, ïîçâîëÿþùèå ïðîâîäèòü îöåíêó ýåêòèâíîñòè ðàáîòû òåñòèðóåìûõ ïðîãðàìì è îöåíèâàòü âëèÿíèå àïïàðàòíûõ îñîáåííîñòåé íà èõ ïîâåäåíèå. Ïðîãðàììíûé êîìïëåêñ, ïîçâîëÿþùèé ïðîâîäèòü òàêèå èññëåäîâàíèÿ, äîëæåí âêëþ÷àòü â ñåáÿ ñèñòåìó ìîíèòîðèíãà äëÿ ñáîðà èíîðìàöèè î ðàáîòå èññëåäóåìîé çàäà÷è, ñðåäñòâà äëÿ ïðèâÿçêè âðåìåíè ðàáîòû òåñòîâîé çàäà÷è è óçëîâ ê ïàðàìåòðàì çàïóñêà, à òàêæå ñðåäñòâà âèçóàëèçàöèè è àíàëèçà. Òðåáîâàíèÿ ê ñèñòåìå ìîíèòîðèíãà îñîáûå. Äàííûå äîëæíû ñîáèðàòüñÿ ñ âûñîêîé ñòåïåíüþ äåòàëèçàöèè, íî èìåòü ìèíèìàëüíûå íàêëàäíûå ðàñõîäû è íå ìåøàòü ðàáîòå èññëåäóåìûõ çàäà÷. Èìåííî ñ ó÷¼òîì ýòèõ òðåáîâàíèé áûëà ðàçðàáîòàíà ñèñòåìà ìîíèòîðèíãà AntMon. Ìîäóëüíàÿ àðõèòåêòóðà ïîçâîëÿåò áûñòðî íàðàùèâàòü óíêöèîíàëüíîñòü ñèñòåìû, à ïðèìåí¼ííûå ïðè åå ðàçðàáîòêå ñïåöèàëüíûå òåõíîëîãèè è ïðîòîêîëû âçàèìîäåéñòâèÿ ïðèçâàíû ñíèçèòü íàãðóçêó íà âû÷èñëèòåëüíûå óçëû è êîììóíèêàöèîííóþ ñåòü. Ïîìèìî ñèñòåìû ìîíèòîðèíãà íåîáõîäèìû ñðåäñòâà, ïîçâîëÿþùèå ñîïîñòàâèòü ñîáðàííûå äàííûå ñî âðåìåíåì è ïàðàìåòðàìè çàïóñêàåìûõ çàäà÷. Ñèñòåìà óïðàâëåíèÿ ïðîõîæäåíèåì çàäàíèé Cleo îáëàäàåò øèðîêèìè âîçìîæíîñòÿìè ðàñøèðåíèÿ, ïîýòîìó ñ åå ïîìîùüþ ëåãêî ïîëó÷èòü äàííûå î ðàáîòå çàäà÷ êàê ïîñëå ïðîâåäåíèÿ ñåðèè çàïóñêîâ, òàê è â ïðîöåññå èõ âûïîëíåíèÿ. Äëÿ èçó÷åíèÿ ïðîãðàììû íåäîñòàòî÷íî ëèøü ïîëó÷èòü äàííûå ìîíèòîðèíãà è ñîïîñòàâèòü èõ ñ äàííûìè î çàäà÷å: íåîáõîäèì ïîñëåäóþùèé àíàëèç ïîëó÷åííûõ äàííûõ, ïîçâîëÿþùèé ñðàâíèòü ðåçóëüòàòû çàïóñêîâ è âûäåëèòü óçêèå ìåñòà, ìåøàþùèå ðàáîòå ïðîãðàì-
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
13
ìû. Íà ðåøåíèå ýòîãî êðóãà âîïðîñîâ íàöåëåí ïðîãðàììíûé êîìïëåêñ ParCon, êîòîðûé îáúåäèíÿåò äàííûå AntMon è Cleo â åäèíóþ áàçó è ïîçâîëÿåò ïðîâîäèòü àíàëèç çàïóùåííûõ èëè óæå çàâåðø¼ííûõ çàäà÷. Èñïîëüçóÿ âîçìîæíîñòè ParCon, Cleo è AntMon â ñîâîêóïíîñòè ñî ñïåöèàëüíîé ìåòîäèêîé òåñòèðîâàíèÿ, óäàåòñÿ ïðîâîäèòü êîìïëåêñíóþ ñåðòèèêàöèþ ýåêòèâíîñòè ðàáîòû ïîëüçîâàòåëüñêèõ ïðîãðàìì íà ñóïåðêîìïüþòåðíûõ êëàñòåðíûõ ñèñòåìàõ. Àäðåñ ïðîåêòà â ñåòè Èíòåðíåò http://par on.parallel.ru/.
ÑÈÑÒÅÌÀ ÌÅÒÀÊÎÌÏÜÞÒÈÍ À X-COM
Èäåÿ ìåòàêîìïüþòèíãà ñîñòîèò â îáúåäèíåíèè äîñòóïíûõ ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ðåñóðñîâ äëÿ ðåøåíèÿ ðàçëè÷íûõ ïðèêëàäíûõ çàäà÷. Èñõîäíûå ïðåäïîñûëêè ïðîñòû. àññìîòðèì ëîêàëüíóþ ñåòü êàêîãî-ëèáî ñîâðåìåííîãî ïðåäïðèÿòèÿ èëè æå ó÷åáíûé êîìïüþòåðíûé êëàññ. Êîìïüþòåðû, ñîñòàâëÿþùèå òàêèå êëàññû èëè ñåòè, â áîëüøèíñòâå ñëó÷àåâ ïðîñòàèâàþò ïî íî÷àì è â âûõîäíûå äíè, äà è â ðàáî÷åå âðåìÿ ðåäêî èñïîëüçóþòñÿ ñ ïîëíîé çàãðóçêîé. Îáúåäèíèâ ýòè êîìïüþòåðû äëÿ ðàáîòû íàä åäèíîé çàäà÷åé â òå ìîìåíòû, êîãäà îíè íå çàíÿòû äðóãîé ðàáîòîé, ìîæíî äîñòè÷ü ïðîèçâîäèòåëüíîñòè, ñðàâíèìîé ñ ïðîèçâîäèòåëüíîñòüþ êëàñòåðíîé óñòàíîâêè ñ àíàëîãè÷íûì ÷èñëîì óçëîâ. Äðóãîé ïðèìåð: âû÷èñëèòåëüíàÿ ñëîæíîñòü ïðèêëàäíîé çàäà÷è ìîæåò áûòü ñòîëü âåëèêà, ÷òî ñ åå îáðàáîòêîé çà ðàçóìíîå âðåìÿ íå ñïðàâëÿåòñÿ èìåþùèéñÿ â ðàñïîðÿæåíèè âûñîêîïðîèçâîäèòåëüíûé êîìïëåêñ. Îäíàêî çàäà÷à ïîääàåòñÿ ðåøåíèþ, åñëè ê ðàñ÷åòàì ïîäêëþ÷àòñÿ äîïîëíèòåëüíûå âû÷èñëèòåëüíûå ìîùíîñòè èç äðóãèõ îðãàíèçàöèé, ãîðîäîâ, ñòðàí. Îñîáûé èíòåðåñ ñ ýòîé òî÷êè çðåíèÿ ïðåäñòàâëÿåò ñåòü Èíòåðíåò.  ñàìîì äåëå, âñå êîìïüþòåðû, ïîäêëþ÷åííûå ê ãëîáàëüíîé ñåòè, ïîòåíöèàëüíî ìîæíî èñïîëüçîâàòü äëÿ ðåøåíèÿ êàêîé-ëèáî îäíîé çàäà÷è. Íî òîëüêî â òîì ñëó÷àå, åñëè áóäåò ðåøåí öåëûé ðÿä òåõíè÷åñêèõ è îðãàíèçàöèîííûõ ïðîáëåì. Ê íàñòîÿùåìó ìîìåíòó ðàçðàáîòàíû îñíîâû ïðîãðàììèðîâàíèÿ ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñðåä [3℄ è ðåàëèçîâàíà ñèñòåìà
14
Âë. Â. Âîåâîäèí
ìåòàêîìïüþòåðíûõ ðàñ÷åòîâ X-Com, ïðåäíàçíà÷åííàÿ äëÿ îðãàíèçàöèè ðàñïðåäåëåííûõ âû÷èñëåíèé ñ èñïîëüçîâàíèåì ðàçíîðîäíûõ âû÷èñëèòåëüíûõ ðåñóðñîâ. Äëÿ ðåøåíèÿ ïðèêëàäíûõ çàäà÷ ñèñòåìà X-Com çàäåéñòâóåò óæå èìåþùèåñÿ êîìïüþòåðû è êàíàëû ñâÿçè. Îòëè÷èòåëüíûå ÷åðòû ñèñòåìû X-Com ýòî ïîääåðæêà áîëüøèíñòâà ñîâðåìåííûõ ïðîãðàììíî-àïïàðàòíûõ ïëàòîðì, âîçìîæíîñòü áûñòðîãî ðàçâîðà÷èâàíèÿ âû÷èñëèòåëüíûõ ýêñïåðèìåíòîâ, èñïîëüçîâàíèå âû÷èñëèòåëüíûõ ðåñóðñîâ â ðàçëè÷íûõ ðåæèìàõ áåç íåîáõîäèìîñòè âìåøàòåëüñòâà â èõ ëîêàëüíûå ïîëèòèêè àäìèíèñòðèðîâàíèÿ, ó÷åò äèíàìè÷íîñòè ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñðåä, èõ êðàéíåé íåîäíîðîäíîñòè è ïîòåíöèàëüíîé íåíàäåæíîñòè ñîñòàâëÿþùèõ èõ îòäåëüíûõ âû÷èñëèòåëüíûõ óçëîâ. Ê íàñòîÿùåìó âðåìåíè ñèñòåìà X-Com óñïåøíî ïðîøëà àïðîáàöèþ â õîäå ðåøåíèÿ áîëüøîãî ÷èñëà ðåàëüíûõ ïðèêëàäíûõ çàäà÷ áèîèíæåíåðèè, áèîèíîðìàòèêè, ïðîåêòèðîâàíèÿ ëåêàðñòâåííûõ ïðåïàðàòîâ, ýëåêòðîäèíàìèêè. Äëÿ ðåøåíèÿ ýòèõ çàäà÷ çàäåéñòâîâàëèñü âû÷èñëèòåëüíûå ðåñóðñû ÍÈÂÖ Ì Ó, ÂÌèÊ Ì Ó, ÌÑÖ ÀÍ, ñóïåðêîìïüþòåðíûå óñòàíîâêè â ×åëÿáèíñêå, Óå, Òîìñêå, Äóáíå, ×åðíîëîãîâêå, Ïóùèíî è äðóãèõ ãîðîäàõ.  ÷àñòíîñòè, çàäà÷à ïîèñêà ìîëåêóë-èíãèáèòîðîâ äëÿ çàäàííûõ áåëêîâ-ìèøåíåé (ïðîåêò âûïîëíÿëñÿ ñîâìåñòíî ñ åìàòîëîãè÷åñêèì íàó÷íûì öåíòðîì ÀÌÍ) áûëà ðåøåíà çà 11 äíåé ñ èñïîëüçîâàíèåì 270 ïðîöåññîðîâ òðåõ êëàñòåðîâ è îäíîãî ó÷åáíîãî êëàññà, ðàñïîëîæåííûõ â ÍÈÂÖ Ì Ó (Ìîñêâà) è ÞÓð Ó (×åëÿáèíñê). Ýåêòèâíîñòü ðàñ÷åòà ñîñòàâèë áîëåå 97%, õîòÿ ñðåäà îðìèðîâàëàñü èç ñàìûõ ðàçíûõ ïðîöåññîðîâ: Intel Pentium III 500 MHz, Intel Xeon 2.6 GHz, Intel Xeon EM64T 3.2 GHz, AMD Opteron 2.2 GHz è äðóãèõ. Ñàéò ñèñòåìû X-Com: http://X-Com.parallel.ru/.
ÏÎÖÅÑÑÎÍÛÉ ÏÎËÈ ÎÍ
 ðàìêàõ äàííîãî ïðîåêòà â ëàáîðàòîðèè ñîçäàåòñÿ ïðîöåññîðíûé ïîëèãîí ñ åäèíîé ñèñòåìîé óïðàâëåíèÿ, îáúåäèíÿþùèé ðàçëè÷íûå âû÷èñëèòåëüíûå ïëàòîðìû íà áàçå ñîâðåìåííûõ ïðîöåññîðîâ. Îñíîâíàÿ öåëü äàòü èíñòðóìåíò äëÿ èññëåäîâàíèÿ è îñâîåíèÿ íîâûõ ïðîöåññîðíûõ òåõíîëîãèé. Ïîëüçîâàòåëÿì ïðåäîñòàâëÿåòñÿ íå
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
15
òîëüêî ïîäðîáíàÿ èíîðìàöèÿ î ðåçóëüòàòàõ ïðåäâàðèòåëüíîãî êîìïëåêñíîãî òåñòèðîâàíèÿ ñåðâåðîâ, âõîäÿùèõ â ñîñòàâ ïîëèãîíà, íî è âîçìîæíîñòü çàïóñêà íà âû÷èñëèòåëüíûõ ñåðâåðàõ ñòàíäàðòíûõ òåñòîâ è ðàãìåíòîâ ïðîãðàìì. Êàê ñîðèåíòèðîâàòüñÿ â ìíîãîîáðàçèè ñîâðåìåííûõ âû÷èñëèòåëüíûõ ïëàòîðì? Êàê ïîäîáðàòü îïòèìàëüíóþ êîíèãóðàöèþ êîìïüþòåðà äëÿ ïðîâåäåíèÿ íàó÷íûõ èññëåäîâàíèé â êîíêðåòíîé ïðèêëàäíîé îáëàñòè? Íà êàêîé òèï ïðîöåññîðîâ îðèåíòèðîâàòüñÿ? Íà îñíîâå êàêîé âû÷èñëèòåëüíîé ïëàòîðìû èìååò ñìûñë äåëàòü âûñîêîïðîèçâîäèòåëüíûå êëàñòåðíûå ñèñòåìû? Êàêîâ ðåàëüíûé ýåêò îò èñïîëüçîâàíèÿ ìíîãîïðîöåññîðíûõ ïëàòîðì è ìíîãîÿäåðíûõ ïðîöåññîðîâ íà êîíêðåòíûõ ïðèëîæåíèÿõ? Íà ïîäîáíûé ñïåêòð âîïðîñîâ è ïîìîãàåò îòâåòèòü ïðîöåññîðíûé ïîëèãîí. Ìîäåðíèçàöèÿ êîìïüþòåðíîãî ïàðêà ïðîõîäèò ðåãóëÿðíî, ïîýòîìó è îòâå÷àòü íà ñõîæèå âîïðîñû ïðèõîäèòñÿ ïîñòîÿííî. Êàê ðåøàþòñÿ ýòè âîïðîñû ñåé÷àñ? ×àùå âñåãî, íà îñíîâå ñëîæèâøèõñÿ òðàäèöèé èëè æå ïðåäïî÷òåíèé ñèñòåìíîãî àäìèíèñòðàòîðà. À êàê íóæíî áû äåëàòü âûáîð? Êîíå÷íî æå, íà îñíîâå ïðåäâàðèòåëüíîãî èñïûòàíèÿ ðàçëè÷íûõ âû÷èñëèòåëüíûõ ïëàòîðì, íà îñíîâå èõ òåñòèðîâàíèÿ íà òèïè÷íûõ àëãîðèòìè÷åñêèõ êîíñòðóêöèÿõ èëè ïðîãðàììàõ èç êîíêðåòíîé ïðåäìåòíîé îáëàñòè ïîëüçîâàòåëÿ. Òîëüêî àêêóðàòíûé ñðàâíèòåëüíûé àíàëèç, îïèðàþùèéñÿ íà äàííûå ðåàëüíûõ ïðîãîíîâ è èñïûòàíèé â ðàçëè÷íûõ âû÷èñëèòåëüíûõ ñðåäàõ, ïîìîæåò ñäåëàòü îáîñíîâàííûé âûáîð. Íà ñåíòÿáðü 2007 ãîäà ïðîöåññîðíûé ïîëèãîí ÍÈÂÖ Ì Ó ñîäåðæàë 20 ñåðâåðîâ. Ýòî 5 ñåðâåðîâ íà áàçå ïðîöåññîðîâ AMD Opteron, îäèí ñåðâåð íà áàçå ïðîöåññîðà IBM Power5 è 14 ñåðâåðîâ íà áàçå ïðîöåññîðîâ Intel. Ñóììàðíàÿ ïèêîâàÿ ïðîèçâîäèòåëüíîñòü ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà ñîñòàâëÿåò 475 GFlop/s, ñóììàðíûé îáú¼ì îïåðàòèâíîé ïàìÿòè 118 áàéò. Ïðîöåññîðíûé ïîëèãîí ðåàëèçîâàí â ñòîå÷íîì èñïîëíåíèè, 19 íà 42U, âñå óçëû èìåþò îðì-àêòîð 12U. Êîíèãóðàöèè âû÷èñëèòåëüíûõ óçëîâ â ðàìêàõ ïîëèãîíà îïèñûâàþòñÿ òàêèìè õàðàêòåðèñòèêàìè, êàê òèï è ÷àñòîòà ïðîöåññîðà, ÷èñëî ïðîöåññîðîâ/ÿäåð â óçëå, ñòðóêòóðà ïàìÿòè, ÷àñòîòà ñèñòåìíîé øèíû è ìíîãèìè äðóãèìè. Äëÿ ïîëíîöåííîãî ñðàâíåíèÿ ïëàò-
16
Âë. Â. Âîåâîäèí
îðì ñîðìèðîâàí, ïðîòåñòèðîâàí è óñòàíîâëåí íàáîð íàèáîëåå ýåêòèâíûõ ñîâðåìåííûõ êîìïèëÿòîðîâ: Intel, PGI, Paths ale, Absoft, GNU. Ôîðìèðóåìûé â ðåçóëüòàòå êîìïëåêñíîãî òåñòèðîâàíèÿ ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíûõ ñåðâåðîâ äîêóìåíò Performan e Guide ñîäåðæèò ñðàâíèòåëüíûå õàðàêòåðèñòèêè ïðîèçâîäèòåëüíîñòè ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà, ïîçâîëÿåò îöåíèòü èõ ðåàëüíûå õàðàêòåðèñòèêè, íàéòè óçêèå ìåñòà ïðè âûïîëíåíèè òåõ èëè èíûõ îïåðàöèé, òåñòîâ, âû÷èñëèòåëüíûõ ÿäåð è ïðèëîæåíèé.
ÝÊÑÊÓÑÈÈ ÄËß ØÊÎËÜÍÈÊÎÂ ÍÀ ÑÓÏÅÊÎÌÏÜÞÒÅÍÛÉ ÊÎÌÏËÅÊÑ ÍÈÂÖ Ì Ó
Îêðóæàþùèé íàñ ìèð áûñòðî ìåíÿåòñÿ. Êîìïüþòåðû è èíîðìàöèîííûå òåõíîëîãèè ïðîíèêàþò â íàøó æèçíü, ïðåäëàãàÿ âñå íîâûå è íîâûå âîçìîæíîñòè äëÿ îáùåíèÿ, ðàáîòû, ó÷åáû. Åñëè åùå 10 ëåò íàçàä íå âñå çíàëè, ÷òî òàêîå ýëåêòðîííàÿ ïî÷òà, òî ñåãîäíÿ òàêèå ïîíÿòèå, êàê ÊÏÊ, Bluetooth, ñåíñîðíûå ñåòè èëè æå gridòåõíîëîãèè ó ìíîãèõ óäèâëåíèÿ íå âûçûâàþò. Ìåíÿåòñÿ è ñàì êîìïüþòåðíûé ìèð, êîòîðûé çà ïîñëåäíåå âðåìÿ ñòàë ¾ïàðàëëåëüíûì¿: êîìïüþòåðû ñîåäèíÿþòñÿ â ìîùíûå êëàñòåðû, ïðîöåññîðû ñòàíîâÿòñÿ ìíîãîÿäåðíûìè, âû÷èñëèòåëüíûå ñèñòåìû ðàçíûõ îðãàíèçàöèé ìîãóò îáúåäèíÿòüñÿ â ðàñïðåäåëåííûå âû÷èñëèòåëüíûå ñðåäû äëÿ ñîâìåñòíîãî ðåøåíèÿ îñîáî ñëîæíûõ çàäà÷. Ýòî îñîáåííî ÿðêî ïðîÿâëÿåòñÿ â ñóïåðêîìïüþòåðíûõ âû÷èñëèòåëüíûõ ñèñòåìàõ, ðàáîòàþùèõ íà ïðåäåëüíûõ ñêîðîñòÿõ è îáëàäàþùèõ ðåêîðäíîé ïðîèçâîäèòåëüíîñòüþ. Ïîäîáíûå ñèñòåìû óíèêàëüíû, èõ íå ìíîãî, è äîñòóï ê íèì èìååò ëèøü íåáîëüøîå ÷èñëî ñïåöèàëèñòîâ. Îäíàêî âñå òå òåõíîëîãèè, êîòîðûå ñíà÷àëà îòðàáàòûâàþòñÿ íà ñóïåðêîìïüþòåðíûõ ñèñòåìàõ, ÷åðåç êàêîå-òî âðåìÿ ñòàíîâÿòñÿ ìàññîâûìè è äîñòóïíûìè äëÿ øèðîêîãî èñïîëüçîâàíèÿ. Ìû ïðåäëàãàåì øêîëüíèêàì è èõ íàñòàâíèêàì çàãëÿíóòü â íàøå áóäóùåå è ïðèãëàøàåì íà ýêñêóðñèþ â ñóïåðêîìïüþòåðíûé êîìïëåêñ ÍÈÂÖ Ì Ó.
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
17
Èíòåðåñíûõ è íåîæèäàííûõ âîïðîñîâ â ñóïåðêîìïüþòåðíîì ìèðå î÷åíü ìíîãî. Ìû ïîãîâîðèì î òîì, ïî÷åìó íàø ìèð ñòàë êîìïüþòåðíûì, à êîìïüþòåðíûé ìèð ïàðàëëåëüíûì, ïî÷åìó äëÿ ñîçäàíèÿ è õîðîøåãî àâòîìîáèëÿ, è äàæå õîðîøèõ êðîññîâîê, îáû÷íîãî êîìïüþòåðà íåäîñòàòî÷íî, è íóæåí ñóïåðêîìïüþòåð, ïî÷åìó ñîâðåìåííûé êîìïüþòåð ìîæåò çàíèìàòü öåëûé çàë, âåñèòü 20 òîíí, è ýòî ñ÷èòàåòñÿ âïîëíå íîðìàëüíûì ÿâëåíèåì, ïî÷åìó Èíòåðíåò ÿâëÿåòñÿ ñàìûì áîëüøèì êîìïüþòåðîì ìèðà, êàê ìîæíî ñäåëàòü ñóïåðêîìïüþòåðíóþ ñèñòåìó èç øêîëüíûõ êîìïüþòåðîâ èëè äîìàøíèõ ïåðñîíàëîê... Ïðè ïîäãîòîâêå ýêñêóðñèè ìû èñõîäèì èç òîãî, ÷òî ñëóøàòåëè èìåþò áàçîâóþ êîìïüþòåðíóþ ïîäãîòîâêó, âëàäåþò íàâûêàìè ïðîãðàììèðîâàíèÿ è óæå èìåþò îïûò ðàáîòû íà ïåðñîíàëüíûõ êîìïüþòåðàõ â îáúåìå ó÷åáíûõ ïðîãðàìì ëèöååâ è øêîë, ñïåöèàëèçèðóþùèõñÿ â îáëàñòè èíîðìàöèîííûõ òåõíîëîãèé. Ïðàêòèêà ïîêàçàëà, ÷òî ðåáÿòà ïðåêðàñíî âîñïðèíèìàþò íîâûé è âåñüìà íåîáû÷íûé äëÿ íèõ ìàòåðèàë, à óâèäåííûå ñóïåðêîìïüþòåðíûå ñèñòåìû íèêîãî èç íèõ íå îñòàâëÿþò ðàâíîäóøíûìè.
ËÈÍÅÀË: ÝËÅÊÒÎÍÍÀß ÝÍÖÈÊËÎÏÅÄÈß ÏÎ ËÈÍÅÉÍÎÉ ÀË ÅÁÅ
 ïðîáëåìå îáó÷åíèÿ ëþáîìó ïðåäìåòó ìîæíî âûäåëèòü äâà îñíîâíûõ àñïåêòà. Ïåðâûé ñâÿçàí ñ òåì, êàêóþ ñîâîêóïíîñòü çíàíèé íàäî îñâîèòü. Âòîðîé îïðåäåëÿåò òî, êàê ýòà ñîâîêóïíîñòü çíàíèé äîëæíà áûòü îñâîåíà. Òðàäèöèîííî ñîâîêóïíîñòü çíàíèé çàïèñûâàåòñÿ íà áóìàæíûõ íîñèòåëÿõ â îðìå êíèã. Ïðè âñåõ äîñòîèíñòâàõ òàêîé ñïîñîá çàïèñè èìååò ñóùåñòâåííûé íåäîñòàòîê ñ åãî ïîìîùüþ ïðàêòè÷åñêè íåâîçìîæíî îïèñàòü ïðè÷èííî-ñëåäñòâåííûå ñâÿçè íà âñåì ìíîæåñòâå àêòîâ, îïðåäåëåíèé, êîììåíòàðèåâ è ò.ï.,
18
Âë. Â. Âîåâîäèí
èìåþùèõñÿ â èçó÷àåìîé îáëàñòè. Îäíàêî ýòî ìîæíî ðåàëèçîâàòü, èñïîëüçóÿ ýëåêòðîííóþ îðìó çàïèñè çíàíèé è êîðåííîå ïðåîáðàçîâàíèå îðìû ïðåäñòàâëåíèÿ ñàìèõ çíàíèé. Ïîäîáíûé ïîäõîä àïðîáèðîâàí â ñèñòåìå ËÈÍÅÀË. Íà ïðèìåðå êóðñà ëèíåéíîé àëãåáðû ðåàëèçîâàíû îáùèå ïðèíöèïû íîâîé îðãàíèçàöèè áàç çíàíèé. Îñíîâíûå èç ýòèõ ïðèíöèïîâ äâà. Ïåðâûé ýòî ðàçáèåíèå êîíêðåòíîé ïðåäìåòíîé îáëàñòè íà îòäåëüíûå ñòàòüè, ïðåäñòàâëÿþùèå îïðåäåëåíèÿ, àêòû, êîììåíòàðèè è ò.ï. Âòîðîé ïðèíöèï çàêëþ÷àåòñÿ â óñòàíîâëåíèè ïðè÷èííî-ñëåäñòâåííûõ ñâÿçåé ìåæäó ñòàòüÿìè. Ñèñòåìà ËÈÍÅÀË âêëþ÷àåò ñâåäåíèÿ, îõâàòûâàþùèå âñå èçâåñòíûå êóðñû ïî ëèíåéíîé àëãåáðå. Îíà îòêðûòà äëÿ ðàñøèðåíèÿ è îðèåíòèðîâàíà íà èñïîëüçîâàíèå â ñåòè Èíòåðíåò. Ìàòåðèàë ñòðóêòóðíî ðàçáèò íà 13 ðàçäåëîâ, 84 ãëàâû è áîëåå 1500 ñòàòåé.  êà÷åñòâå íà÷àëüíûõ çíàíèé äëÿ ïîëüçîâàíèÿ ñèñòåìîé òðåáóåòñÿ èìåòü ëèøü ñàìûå îáùèå ïðåäñòàâëåíèÿ î âåùåñòâåííûõ ÷èñëàõ è çíàòü íåêîòîðûå ñàìûå ýëåìåíòàðíûå àêòû èç øêîëüíîé ìàòåìàòèêè. Äëÿ áûñòðîãî íàõîæäåíèÿ íóæíîé èíîðìàöèè ìîæíî âîñïîëüçîâàòüñÿ ñòðóêòóðíûì è ïðåäìåòíûì óêàçàòåëÿìè. åàëèçîâàíû ðàçëè÷íûå ñïîñîáû ïîèñêà èíîðìàöèè è ïðåäñòàâëåíèÿ â ãðàè÷åñêîì âèäå ïðè÷èííî-ñëåäñòâåííûõ ñâÿçåé â îòîáðàííîì ìàòåðèàëå. Êðîìå ïîäêëþ÷åíèÿ ê Èíòåðíåòó è íàëè÷èÿ ñòàíäàðòíîãî áðàóçåðà äëÿ ðàáîòû ñ ýíöèêëîïåäèåé íå òðåáóåòñÿ íèêàêîãî äîïîëíèòåëüíîãî èíñòðóìåíòàðèÿ. Ïðîãðàììíàÿ îáîëî÷êà ñèñòåìû ËÈÍÅÀË íå çàâèñèò îò ïðåäìåòíîé îáëàñòè è ìîæåò áûòü èñïîëüçîâàíà äëÿ ñîçäàíèÿ äðóãèõ áàç çíàíèé. Ïðîäîëæåíèåì ðàáîò â äàííîì íàïðàâëåíèè ñòàíåò âûïóñê ñèñòåìû ÏÀÀËËÅËÜ, îïèðàþùåéñÿ íà òå æå òåõíîëîãèè, èñïîëüçóþùåé òó æå ñàìóþ îáîëî÷êó, ÷òî è ËÈÍÅÀË, íî ïîñâÿùåííîé ïàðàëëåëüíûì âû÷èñëåíèÿì [4℄. Ïåðâûé âàðèàíò ñèñòåìû óæå ñîçäàí, è èäåò ïðîöåññ óòî÷íåíèÿ ïðè÷èííî-ñëåäñòâåííûõ ñâÿçåé ìåæäó îòäåëüíûìè ñòàòüÿìè. Ñèñòåìó ËÈÍÅÀË äîïîëíÿåò ìîíîãðàèÿ [5℄, êîòîðàÿ ðàñïðîñòðàíÿåòñÿ âìåñòå ñ êîìïàêò-äèñêîì, ïîçâîëÿþùèì ðàáîòàòü ñ ñèñòåìîé áåç íåîáõîäèìîñòè âûõîäà â Èíòåðíåò. Àäðåñ ñèñòåìû â ñåòè Èíòåðíåò http://lineal.guru.ru/.
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
19
À ÎÀ ÑÈÑÒÅÌÀ ÈÍÒÅÍÅÒ-ÏÎÄÄÅÆÊÈ ÏÎÂÅÄÅÍÈß ÍÀÓ×ÍÛÕ ÌÅÎÏÈßÒÈÉ
Ïðîåêò À ÎÀ íàïðàâëåí íà ñîçäàíèå êîìïëåêñíîé ñèñòåìû ïîääåðæêè ïðîâåäåíèÿ êîíåðåíöèé, ñèìïîçèóìîâ, ñåìèíàðîâ è äðóãèõ íàó÷íûõ ìåðîïðèÿòèé â ñåòè Èíòåðíåò. Öåëü ïðîåêòà ñîñòîèò â ðàçðàáîòêå óíèâåðñàëüíîãî ñðåäñòâà, ïîçâîëÿþùåãî áûñòðî ñîçäàâàòü ïîëíîöåííûå âåá-ïðåäñòàâèòåëüñòâà íàó÷íûõ ìåðîïðèÿòèé ñàìîãî øèðîêîãî ñïåêòðà. Îñíîâíîå èñõîäíîå òðåáîâàíèå íà ñèñòåìó áûòü îðèåíòèðîâàííîé íà ñàìûé øèðîêèé êðóã ïîëüçîâàòåëåé, íå âñåãäà çíàþùèõ äåòàëè è òîíêîñòè èíîðìàöèîííûõ òåõíîëîãèé, îäíàêî ïðîñòîòà èñïîëüçîâàíèÿ íå äîëæíà èäòè â óùåðá óíêöèîíàëüíîñòè. Ïðåäëàãàåìûå ñèñòåìîé À ÎÀ ñåðâèñû îðèåíòèðîâàíû íà òðè êàòåãîðèè ïîëüçîâàòåëåé: ó÷àñòíèêîâ ìåðîïðèÿòèé, îðãàíèçàòîðîâ è ýêñïåðòîâ. Îðãàíèçàòîðàì ïðåäîñòàâëÿåòñÿ èíñòðóìåíòàðèé äëÿ ñîçäàíèÿ è ïîääåðæêè âåá-ñàéòà ìåðîïðèÿòèÿ, îáðàáîòêè ðåãèñòðàöèîííûõ äàííûõ ó÷àñòíèêîâ, îðãàíèçàöèè ðàñïðåäåëåííîãî ðåöåíçèðîâàíèÿ ïðèñëàííûõ ìàòåðèàëîâ, äëÿ ïîìîùè â âûïîëíåíèè ìíîãèõ äðóãèõ óíêöèé îðãêîìèòåòà. Ó÷àñòíèêè íà âåá-ñàéòå ìåðîïðèÿòèÿ ìîãóò îçíàêîìèòüñÿ ñ íåîáõîäèìîé òåêóùåé èíîðìàöèåé, çàðåãèñòðèðîâàòüñÿ, îòïðàâèòü ñâîè ìàòåðèàëû â îðãêîìèòåò, ïîäïèñàòüñÿ íà ïî÷òîâóþ ðàññûëêó. Ýêñïåðòû èìåþò âîçìîæíîñòü ïðîâåñòè îöåíêó âûäåëåííûõ îðãêîìèòåòîì ðàáîò ó÷àñòíèêîâ ìåðîïðèÿòèÿ â óäàëåííîì ðåæèìå. èáêîñòü õîðîøî çàðåêîìåíäîâàâøåé ñåáÿ íà ïðàêòèêå ïëàòîðìû (PHP+MySQL+Apa he) ïîçâîëÿåò ëåãêî íàðàùèâàòü íàáîð ïðåäëàãàåìûõ ñåðâèñîâ. Ïåðñïåêòèâíûì íàïðàâëåíèåì ðàçâèòèÿ ÿâëÿåòñÿ ðåàëèçàöèÿ â ðàìêàõ ñèñòåìû À ÎÀ ðàñøèðåííûõ âîçìîæíîñòåé äëÿ ïåðåêðåñòíîãî ïîèñêà ïî ðàçëè÷íûì ìåðîïðèÿòèÿì. Ýòî, â ÷àñòíîñòè, ñðàçó äàåò âîçìîæíîñòü óâèäåòü íàó÷íóþ ïðîãðàììó êîíåðåíöèé, ïðîâîäèìûõ ïî êîíêðåòíûì íàïðàâëåíèÿì íàóêè, ïîääåðæàííûõ ðàçëè÷íûìè íàó÷íûìè îíäàìè, îðãàíèçîâàííûå êîíêðåòíûìè ó÷åíûìè èëè îðãàíèçàöèÿìè è âûïîëíÿòü äðóãèå âûáîðêè. Àíàëîãè÷íûå ìåõàíèçìû ïðåäïîëàãàåòñÿ ñîçäàòü äëÿ ïðîâåäåíèÿ ýëåêòðîííûõ on-line êîíåðåíöèé è äëÿ ïîääåðæêè
20
Âë. Â. Âîåâîäèí
ñåðèé ìåðîïðèÿòèé.  íàñòîÿùåå âðåìÿ À ÎÀ ÿâëÿåòñÿ îèöèàëüíûì ñåðâèñîì îññèéñêîãî óìàíèòàðíîãî Íàó÷íîãî Ôîíäà (http://www.rfh.ru, ðàçäåë ¾Ïàðòíåðû ÍÔ¿), êîòîðûé ðåêîìåíäóåò åå èñïîëüçîâàíèå íàó÷íûì êîëëåêòèâàì äëÿ ïîääåðæêè âûïîëíåíèÿ ðàáîò ïî ãðàíòàì îíäà. Ñèñòåìà íàõîäèòñÿ â ñâîáîäíîì äîñòóïå ïî àäðåñó http://agora.guru.ru.
ÈÍÒÅÍÅÒ-ÌÓÇÅÉ ¾ÈÑÒÎÈß ÈÌÏÅÀÒÎÑÊÎ Î ÌÎÑÊÎÂÑÊÎ Î ÓÍÈÂÅÑÈÒÅÒÀ¿
Ê 250-ëåòíåìó þáèëåþ Ìîñêîâñêîãî óíèâåðñèòåòà Èñòîðè÷åñêèé àêóëüòåò è ÍÈÂÖ Ì Ó âûïîëíèëè ñîâìåñòíûé íàó÷íî-èññëåäîâàòåëüñêèé ïðîåêò ïî ñîçäàíèþ Èíòåðíåò-ìóçåÿ ¾Èñòîðèÿ Èìïåðàòîðñêîãî Ìîñêîâñêîãî óíèâåðñèòåòà¿.  ðàìêàõ äàííîãî ïðîåêòà ïîäãîòîâëåíû óíèêàëüíûå ñâåäåíèÿ î âîçíèêíîâåíèè è ðàçâèòèè Ìîñêîâñêîãî óíèâåðñèòåòà, åãî ñòðóêòóðå, ïðåïîäàâàíèè, ïðîåññîðàõ è çàìå÷àòåëüíûõ âîñïèòàííèêàõ çà ïåðèîä ñ îñíîâàíèÿ äî 1917 ãîäà. Âñå ïîäãîòîâëåííûå ìàòåðèàëû ïðåäñòàâëåíû â ñåòè Èíòåðíåò â âèäå ñïðàâî÷íîé ñèñòåìû ïî èñòîðèè äîðåâîëþöèîííîãî óíèâåðñèòåòà. Ïîëüçîâàòåëè èìåþò âîçìîæíîñòü ïîëó÷èòü èíîðìàöèþ îá èñòîðèè Ìîñêîâñêîãî óíèâåðñèòåòà êàê ñî ñòàòè÷åñêèõ ñòðàíèö, ïðåäñòàâëÿþùèõ ñîáîé èëëþñòðèðîâàííûå î÷åðêè, òåêñòû äîêóìåíòîâ è äðóãèõ èñòîðè÷åñêèõ èñòî÷íèêîâ, òàê è ñîðìóëèðîâàâ çàïðîñ ê áàçå äàííûõ, îáúåäèíÿþùåé çàïèñè î ïåðñîíàëèÿõ (ïðîåññîðàõ è ñòóäåíòàõ), ïðåäìåòàõ èëè ñîáûòèÿõ èç ëåòîïèñè Ì Ó.  íåêîòîðûõ ðàçäåëàõ Èíòåðíåò-ìóçåÿ ïîèñêîâàÿ ñèñòåìà ïîçâîëÿåò ìàêñèìàëüíî ãèáêî ðåàãèðîâàòü íà çàïðîñû ïîëüçîâàòåëåé, êàñàþùèåñÿ ñîáûòèé èñòîðèè Ìîñêîâñêîãî óíèâåðñèòåòà, ïðåïîäàâàíèÿ èëè ïåðñîíàëèé.  ñàìîì íà÷àëå ðàçðàáîòêè ìóçåÿ áûëî ñîðìóëèðîâàíî òðåáîâàíèå, ÷òîáû ñèñòåìà óìåëà îòâå÷àòü íà âîïðîñû òèïà: ¾Êàêèå ïðåäìåòû ïðåïîäàâàëèñü íà èçèêî-ìàòåìàòè÷åñêîì àêóëüòåòå â 1855 ãîäó¿? èëè ¾Íà êàêèõ àêóëüòåòàõ óíèâåðñèòåòà
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
21
â ðàçíûå ãîäû ïðåïîäàâàëàñü õèìèÿ¿? èëè ¾Â êàêîì ãîäó âîçíèêëà êàåäðà ðîññèéñêîé èñòîðèè¿? èëè ¾Â êàêîé ïåðèîä âðåìåíè â óíèâåðñèòåòå ñóùåñòâîâàë èëîñîñêèé àêóëüòåò¿? èëè ¾Êàêèå ïðåäìåòû è â êàêèå ãîäû â óíèâåðñèòåòå ïðåïîäàâàë Ê.À.Òèìèðÿçåâ¿? è ò.ï. Ïîèñêîâûå çàäà÷è òàêîãî òèïà íèêîãäà ðàíåå íå ñòàâèëèñü ïî îòíîøåíèþ ê èñòîðèè âûñøåãî ó÷åáíîãî çàâåäåíèÿ ñî ñëîæíîé ìåíÿþùåéñÿ âî âðåìåíè ñòðóêòóðîé. Ïîñòîÿííîå èçìåíåíèå ñòðóêòóðû, ïåðåõîäû ïðåäìåòîâ ìåæäó êàåäðàìè, à êàåäð ñ àêóëüòåòà íà àêóëüòåò, âîçìîæíîñòü îäíîãî ó÷åíîãî âåñòè íåñêîëüêî ïðåäìåòîâ íà ðàçíûõ êàåäðàõ, à èíîãäà è íà ðàçíûõ àêóëüòåòàõ âñå ýòî íàøëî îòðàæåíèå íà ñòðàíèöàõ ìóçåÿ.  êà÷åñòâå òåõíîëîãè÷åñêîé îñíîâû ïðîåêòà èñïîëüçóåòñÿ òðàäèöèîííàÿ ñâÿçêà PHP+MySQL+Apa he. Âèçóàëèçàöèÿ ðåçóëüòàòîâ ïðîèçâîäèòñÿ ñ ïîìîùüþ äèíàìè÷åñêîãî HTML è ÿçûêà ñöåíàðèåâ JavaS ript. Àäðåñ ìóçåÿ â ñåòè Èíòåðíåò http://museum.guru.ru/. Äàííûé ïðîåêò, âûïîëíåííûé ïðè ïîääåðæêå ÍÔ, îêàçàëñÿ èñêëþ÷èòåëüíî óñïåøíûì, ïîêàçàâ ïðåèìóùåñòâà ñîâìåñòíîé ðàáîòû ïðîåññèîíàëîâ èç ðàçíûõ îáëàñòåé íàóêè: èíîðìàöèîííûõ òåõíîëîãèé è èñòîðèè. Îí ñòàë îòïðàâíîé òî÷êîé íîâîãî íàïðàâëåíèÿ ðàáîòû ëàáîðàòîðèè, äàëüíåéøåå ðàçâèòèå êîòîðîãî êðàòêî îïèñàíî â ñëåäóþùåì ïðîåêòå.
ÈÍÒÅÍÅÒ-ÖÅÍÒ ¾ÌÓÇÅÉ-ÊÂÀÒÈÀ ÀÍÄÅß ÁÅËΠο
Ñïåöèàëèñòû â îáëàñòè ëèíãâèñòèêè è êîìïüþòåðíûõ òåõíîëîãèé ÍÈÂÖ Ì Ó è ñîòðóäíèêè ìóçåÿ ¾Ìåìîðèàëüíàÿ êâàðòèðà Àíäðåÿ Áåëîãî íà Àðáàòå¿ âûïîëíèëè ñîâìåñòíûé íàó÷íî-èññëåäîâàòåëüñêèé ïðîåêò ïî ñîçäàíèþ Èíòåðíåò-ìóçåÿ ¾Ìåìîðèàëüíàÿ êâàðòèðà Àíäðåÿ Áåëîãî íà Àðáàòå¿. Ýòîò ñàéò ïîñâÿùåí ëèòåðàòóðå è êóëüòóðå îññèè íà÷àëà XX âåêà ¾Ñåðåáðÿíîìó âåêó¿ ðîññèéñêîé êóëüòóðû. Îí ïðåäñòàâëÿåò èíòåðåñ äëÿ âñåõ, êòî èíòåðåñóåòñÿ èñòîðèåé èíòåëëåêòóàëüíîé æèçíè óêàçàííîé ýïîõè, è ìîæåò èñïîëüçîâàòüñÿ êàê äëÿ óãëóáëåíèÿ äàëüíåéøèõ èññëåäîâàíèé â äàííîé îá-
22
Âë. Â. Âîåâîäèí
ëàñòè, òàê è â ïðåïîäàâàíèè ñîîòâåòñòâóþùèõ äèñöèïëèí â âûñøåé è ñðåäíåé øêîëå.  ñî÷åòàíèè ñ óæå ñîçäàííûì Èíòåðíåò-ìóçååì Ìîñêîâñêîãî óíèâåðñèòåòà äàííûé ïðîåêò ÿâëÿåòñÿ ïðåäïîñûëêîé äëÿ ñîçäàíèÿ âèðòóàëüíîãî ñîîáùåñòâà, îáúåäèíÿþùåãî ïðîåññèîíàëüíûõ èëîëîãîâ è ëþáèòåëåé ðîññèéñêîé ñëîâåñíîñòè è ðîññèéñêîé èñòîðèè. Áåçóñëîâíî, ñàéò ïîëåçåí è òåì, êòî ïðîñòî ïëàíèðóåò ïîñåòèòü ìóçåé-êâàðòèðó Àíäðåÿ Áåëîãî. Äëÿ ñîçäàíèÿ ñàéòà áûëî èñïîëüçîâàíî öåëîå ìíîæåñòâî ìóëüòèìåäèéíûõ è Èíòåðíåò-òåõíîëîãèé, ñîâðåìåííûõ ïðîòîêîëîâ âçàèìîäåéñòâèÿ êîìïîíåíòîâ ñèñòåìû, òåõíîëîãèé èíòåðàêòèâíûõ çàïðîñîâ è óäàëåííîãî äîñòóïà ê áàçàì äàííûõ. Ïîñòîÿííîå äîïîëíåíèå è îáíîâëåíèå èíîðìàöèîííûõ äàííûõ èäåò çà ñ÷åò êîíòàêòîâ ñ íàó÷íûìè êîëëåêòèâàìè, îáùåíèÿ ó÷åíûõ â ðàìêàõ âèðòóàëüíûõ êîíåðåíöèé è ñåìèíàðîâ, ïåðèîäè÷åñêèõ èçäàíèé Öåíòðà. Àäðåñ ìóçåÿ â ñåòè Èíòåðíåò http://kvartira-belogo.guru.ru/.
Çàêëþ÷åíèå
Íà ïåðâûé âçãëÿä ïðåäñòàâëåííûå íàïðàâëåíèÿ ðàáîò ñîòðóäíèêîâ ëàáîðàòîðèè ìîãóò ïîêàçàòüñÿ ðàçðîçíåííûìè è íå î÷åíü-òî ñâÿçàííûìè äðóã ñ äðóãîì îáùèìè èäåÿìè èëè òåõíîëîãèÿìè. Íàïðèìåð, êàê ìîæíî îáúÿñíèòü ñîñåäñòâî ïàðàëëåëüíûõ âû÷èñëåíèé ñî ñòîëü òåñíûìè ñâÿçÿìè ñ ïðîåêòàìè èç îáëàñòè ãóìàíèòàðíûõ íàóê? Íî ýòî òîëüêî íà ïåðâûé âçãëÿä. Èìåÿ çíà÷èòåëüíóþ ñóïåðêîìïüþòåðíóþ èñòîðèþ â èññëåäîâàòåëüñêîé ðàáîòå, ñ ïîÿâëåíèåì ñåòè Èíòåðíåò âîçíèêëà èäåÿ ñîçäàíèÿ èíîðìàöèîííî-àíàëèòè÷åñêîãî Èíòåðíåò-öåíòðà Parallel.ru. Ñòàëè àêòèâíî ðàçáèðàòüñÿ ñ Èíòåðíåòòåõíîëîãèÿìè, ïîÿâèëèñü ïåðâûå íàðàáîòêè, êîòîðûå ïîçâîëèëè, â ÷àñòíîñòè, îðãàíèçîâàòü è ïðîâåñòè â 1999 ãîäó ïåðâûé â îññèè ìàññîâûé Èíòåðíåò-êîíêóðñ ¾Ìîñêîâñêîé óíèâåðñèòåò: èñòîðèÿ, ëþäè, àêòû¿. Ïîíèìàÿ ïåðñïåêòèâíîñòü è âîñòðåáîâàííîñòü äàííîãî íàïðàâëåíèÿ, â ýòîì æå ãîäó ñîâìåñòíî ñ Ó è ÈÂÌ ÀÍ îðãàíèçîâàëè è ïðîâåëè ïåðâóþ âñåðîññèéñêóþ íàó÷íóþ êîíåðåíöèþ ñåðèè ¾Íàó÷íûé ñåðâèñ â ñåòè Èíòåðíåò¿, êîòîðàÿ ñ òåõ ïîð ïðîâîäèòñÿ íàìè åæåãîäíî. Âîçíèêëà ìàññà êîíòàêòîâ ñ ó÷åíûìè èç ñàìûõ ðàçíûõ îáëàñòåé, êîòîðûå ïðèâåëè ê âîçìîæíîñòè óñïåøíîé ðàáî-
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë
23
òû IT-ïðîåññèîíàëîâ ñ ïðîåññèîíàëüíûìè èñòîðèêàìè, èëîëîãàìè, ëèíãâèñòàìè è âûïîëíåíèþ öåëîãî ðÿäà óíèêàëüíûõ ñîâìåñòíûõ ïðîåêòîâ, î ÷¼ì è áûëî ðàññêàçàíî âûøå. Èññëåäóÿ ïîòåíöèàë Èíòåðíåò-òåõíîëîãèé äëÿ îðãàíèçàöèè ðàñïðåäåëåííûõ âû÷èñëåíèé, ìû áûñòðî ïðèøëè ê âîçìîæíîñòè ñîçäàíèÿ ñïåöèàëèçèðîâàííûõ ñåðâèñîâ è ñèñòåì òàêèõ, êàê ËÈÍÅÀË è À ÎÀ. àçðàáàòûâàÿ ìåòîäèêó ìîíèòîðèíãà ïàðàëëåëüíûõ ïðîãðàìì, ïîëó÷èëè ñíà÷àëà ñðåäñòâî äëÿ êîìïëåêñíîãî êîíòðîëÿ çà ðàáîòîé áîëüøèõ ñóïåðêîìïüþòåðíûõ êîìïëåêñîâ, à çàòåì èìåííî åãî àäàïòèðîâàëè äëÿ îáåñïå÷åíèÿ êðóãëîñóòî÷íîãî ìîíèòîðèíãà ñîñòîÿíèÿ ñåðâåðíîãî õîçÿéñòâà ÍÔ ñ âîçìîæíîñòüþ àâòîìàòè÷åñêîãî îïåðàòèâíîãî îïîâåùåíèÿ ñèñòåìíûõ àäìèíèñòðàòîðîâ îíäà ÷åðåç Èíòåðíåòñòðàíèöû, ýëåêòðîííóþ ïî÷òó èëè æå ìîáèëüíóþ ñâÿçü. Íå âñå ïðîåêòû ëàáîðàòîðèè íàøëè ñâîå îòðàæåíèå â äàííîé ñòàòüå, îäíàêî ÷àñòü èç íèõ ïðåäñòàâëåíà â ñáîðíèêå â âèäå îòäåëüíûõ ðàáîò. Èñêëþ÷èòåëüíî èíòåðåñíûì ÿâëÿåòñÿ ñîçäàíèå êîëëåêòèâíîãî áàíêà òåñòîâ ïî ïàðàëëåëüíûì âû÷èñëåíèÿì, äëÿ àíàëèçà ýåêòèâíîñòè ïðîãðàìì âàæåí âû÷èñëèòåëüíûé ïîëèãîí è êàòàëîã Performan e Guide ðåàëüíîé ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíûõ ïëàòîðì, áåçóñëîâíî ïåðñïåêòèâíûì ÿâëÿåòñÿ èññëåäîâàíèå âîçìîæíîñòè èñïîëüçîâàíèÿ ãðàè÷åñêèõ ïðîöåññîðîâ äëÿ ðåøåíèÿ âû÷èñëèòåëüíî ñëîæíûõ çàäà÷.  öåëîì æå, ÷åì äàëüøå âõîäèì â òåìàòèêó, òåì øèðå ñòàíîâèòñÿ êðóã ðàáîò è ðàçíîîáðàçíåå âûïîëíÿåìûå ïðîåêòû. Íàâåðíîå, ýòî åñòåñòâåííûé ïðîöåññ, ïðè êîòîðîì íå âñåãäà óäàåòñÿ ñðàçó îöåíèòü ïåðñïåêòèâíîñòü èäåé è âîçìîæíîñòè èõ ðåàëèçàöèè â ñìåæíûõ îáëàñòÿõ, íî íà òî è ñóùåñòâóþò ïîèñêîâûå èññëåäîâàíèÿ. ëàâíîå åñòü ýíåðãè÷íàÿ ìîëîäàÿ ãðóïïà, åñòü èíòåðåñ, åñòü ïîòåíöèàë è æåëàíèå ðàáîòàòü, à áàçà â íàø êîëëåêòèâ áûëà çàëîæåíà Ó÷èòåëåì îñíîâàòåëüíàÿ.
Ñïèñîê ëèòåðàòóðû [1℄ Âîåâîäèí Âë.Â. Top500: ÷èñëîì èëè óìåíüåì?// Îòêðûòûå ñèñòåìû. 2005, N10, Ñ.1215.
24
Âë. Â. Âîåâîäèí
[2℄ Âîåâîäèí Âë.Â., Æóìàòèé Ñ.À. Âû÷èñëèòåëüíîå äåëî è êëàñòåðíûå ñèñòåìû. -Ì.: Èçä-âî Ì Ó, 2007. 150 ñ. [3℄ Âîåâîäèí Âë.Â. åøåíèå áîëüøèõ çàäà÷ â ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñðåäàõ// Àâòîìàòèêà è Òåëåìåõàíèêà. 2007, N5, Ñ.3245. [4℄ Âîåâîäèí Â.Â., Âîåâîäèí Âë.Â. Ïàðàëëåëüíûå âû÷èñëåíèÿ. ÑÏá.: ÁÕÂ-Ïåòåðáóðã, 2002. 608 ñ. [5℄ Âîåâîäèí Â.Â., Âîåâîäèí Âë.Â. Ýíöèêëîïåäèÿ ëèíåéíîé àëãåáðû. Ýëåêòðîííàÿ ñèñòåìà ËÈÍÅÀË. ÑÏá.: ÁÕÂ-Ïåòåðáóðã, 2006. 544 ñ.
Î ñèñòåìå ïðîãðàììèðîâàíèÿ âû÷èñëåíèé îáùåãî íàçà÷åíèÿ íà ãðàè÷åñêèõ ïðîöåññîðàõ ⋆
À. Â. Àäèíåö , Í. À. Ñàõàðíûõ
⋄
Ñòàòüÿ ïîñâÿùåíà îáñóæäåíèþ âîïðîñîâ ïðîãðàììèðîâàíèÿ ñîâðåìåííûõ ãðàè÷åñêèõ ïðîöåññîðîâ äëÿ ðåøåíèÿ ñ èõ ïîìîùüþ îáùèõ âû÷èñëèòåëüíûõ çàäà÷. Ñòàòüÿ íà÷èíàåòñÿ ñ îáùåãî ïîíÿòèÿ ãðàè÷åñêèõ ïðîöåññîðîâ è âû÷èñëåíèé íà íèõ. Äàëåå ïðèâîäèòñÿ îáçîð òèïè÷íûõ àðõèòåêòóð è îñíîâíûõ åå îñîáåííîñòåé, êîòîðûå îïðåäåëÿþò êàê êëàññ ðåøàåìûõ çàäà÷, òàê è âîçìîæíîñòè ïðîãðàììèðîâàíèÿ. Ïîñëå ýòîãî äàåòñÿ êðàòêèé îáçîð ñóùåñòâóþùèõ ñðåäñòâ ïðîãðàììèðîâàíèÿ äëÿ ãðàè÷åñêèõ ïðîöåññîðîâ è îïèñàíèå ñèñòåìû, ñîçäàííîé àâòîðàìè äàííîé ðàáîòû. Ñèñòåìà C$ ñîñòîèò èç äâóõ ÷àñòåé: ÿçûêà C$ è ñðåäû èñïîëíåíèÿ, âûïîëíÿþùåé òðàíñëÿöèþ íà ãðàè÷åñêèé ïðîöåññîð. ßçûê C$ ïðåäñòàâëÿåò ñîáîé Java (C#)ïîäîáíûé ÿçûê, ðàñøèðåííûé êîíñòðóêöèÿìè äëÿ îïåðàöèé ñ óíêöèÿìè è ìàññèâàìè. Íà ýòàïå êîìïèëÿöèè ïàðàëëåëüíûé êîä îòäåëÿåòñÿ îò íåïàðàëëåëüíîãî, ïîñëå ÷åãî òðàíñëèðóåòñÿ â âûçîâû ê ñðåäå èñïîëíåíèÿ. Ñðåäà èñïîëíåíèÿ ðàáîòàåò ïî ïðèíöèïó ëåíèâûõ âû÷èñëåíèé, ñòðîÿ èçíà÷àëüíî ãðà ìàññèâíûõ îïåðàöèé è èñïîëíÿÿ åãî íà ãðàè÷åñêîì ïðîöåññîðå; ïîäîáíûé àëãîðèòì îáóñëîâëåí îñîáåííîñòÿìè öåëåâîé àðõèòåêòóðû.  çàêëþ÷åíèå äàþòñÿ ðåçóëüòàòû ðàáîòû àëãîðèòìà, àíàëèç è âîçìîæíûå íàïðàâëåíèÿ äàëüíåéøåãî ðàçâèòèÿ ðàçðàáîòàííîé ñèñòåìû. ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé ⋄ Ôàêóëüòåò
âû÷èñëèòåëüíûé öåíòð Ì Ó ÂÌÊ Ì Ó èìåíè Ì.Â.Ëîìîíîñîâà
26
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
1. Ââåäåíèå Íà÷èíàÿ ñ 2003 ãîäà, àêòèâíûå èññëåäîâàíèÿ âåäóòñÿ â îáëàñòè èñïîëüçîâàíèÿ ñîâðåìåííûõ ãðàè÷åñêèõ ïðîöåññîðíûõ óñòðîéñòâ ( ÏÓ) äëÿ ðåøåíèÿ âû÷èñëèòåëüíûõ çàäà÷ [1℄.  çàðóáåæíîé ëèòåðàòóðå ýòî íàïðàâëåíèå ïîëó÷èëî íàçâàíèå GPGPU (ñîêðàùåíèå îò General Purpose Graphi s Pro essor Unit, ãðàè÷åñêîå ïðîöåññîðíîå óñòðîéñòâî îáùåãî íàçíà÷åíèÿ), â íàñòîÿùåé ñòàòüå â êà÷åñòâå åãî ïåðåâîäà íà ðóññêèé ÿçûê áóäåò èñïîëüçîâàòüñÿ ΠÏÓ (îáùèå âû÷èñëåíèÿ íà ãðàè÷åñêèõ ïðîöåññîðàõ).  íàñòîÿùåå âðåìÿ ÏÓ èñïîëüçóþòñÿ äëÿ ðåøåíèÿ ðÿäà âû÷èñëèòåëüíûõ çàäà÷, äëÿ êîòîðûõ òðàäèöèîííî èñïîëüçîâàëèñü ñóïåðêîìïüþòåðíûå àðõèòåêòóðû, íàïðèìåð, äëÿ âûïîëíåíèÿ ìàòðè÷íûõ îïåðàöèé [2℄, ðåøåíèÿ óðàâíåíèé â ÷àñòíûõ ïðîèçâîäíûõ ïðè ïîìîùè ñåòî÷íûõ ìåòîäîâ [3, 4℄, ðåøåíèÿ çàäà÷ ìàøèííîãî çðåíèÿ [5℄, âûïîëíåíèÿ îïåðàöèé îáðàáîòêè èçîáðàæåíèé è çâóêà, â ò.÷. ïðåîáðàçîâàíèÿ Ôóðüå [6℄, òðàññèðîâêè ëó÷åé [7℄ è ìíîãèõ äðóãèõ. Ïðè ãðàìîòíîì èñïîëüçîâàíèè ðåñóðñîâ ãðàè÷åñêîãî ïðîöåññîðà óäàåòñÿ äîáèòüñÿ ïðèðîñòà ðåàëüíîé ïðîèçâîäèòåëüíîñòè âî ìíîãî ðàç ïî ñðàâíåíèþ ñ èñïîëüçîâàíèåì ðåñóðñîâ òîëüêî öåíòðàëüíîãî ïðîöåññîðà (ðå÷ü èäåò î ñðàâíåíèè íàèáîëåå ïåðåäîâûõ îáðàçöîâ ãðàè÷åñêèõ è öåíòðàëüíûõ ïðîöåññîðîâ â îïðåäåëåííûé ïåðèîä âðåìåíè). Íà íåêîòîðûõ çàäà÷àõ äîñòèãàåòñÿ ðåàëüíàÿ ïðîèçâîäèòåëüíîñòü â ñîòíè Ôëîïñ [8℄, êîòîðàÿ äî íåäàâíåãî âðåìåíè áûëà äîñòóïíà ëèøü íà êîìïüþòåðíûõ êëàñòåðàõ è ñóïåðêîìïüþòåðàõ. Êðîìå òîãî, ãðàè÷åñêèå ïðîöåññîðû îáëàäàþò ìåíüøåé ñòîèìîñòüþ â ðàñ÷åòå íà Ôëîïñ ïèêîâîé ïðîèçâîäèòåëüíîñòè (ïîðÿäêà 12$/ Ôëîïñ), à òàêæå, ÷òî îñîáåííî ñòàíîâèòñÿ àêòóàëüíûì, ìåíüøèì ýíåðãîïîòðåáëåíèåì (ïîðÿäêà 0.5 Âò/ Ôëîïñ) ïî ñðàâíåíèþ ñ êëàñòåðíûìè ñèñòåìàìè. Ïîýòîìó íàïèñàíèå ýåêòèâíûõ ïðîãðàìì äëÿ ãðàè÷åñêèõ ïðîöåññîðîâ ÿâëÿåòñÿ àêòóàëüíîé çàäà÷åé.  íàñòîÿùåå âðåìÿ íàáëþäàåòñÿ ñóùåñòâåííûé äèñáàëàíñ ìåæäó âîçìîæíîñòÿìè ãðàè÷åñêèõ ïðîöåññîðîâ è èõ ðåàëüíûì èñïîëüçîâàíèåì, âûçâàííûé ïðåæäå âñåãî îòñóòñòâèåì àäåêâàòíûõ ñðåäñòâ ïðîãðàììèðîâàíèÿ äëÿ äàííîé àðõèòåêòóðû.  òî âðåìÿ êàê äëÿ êëàñòåðîâ è ñóïåðêîìïüþòåðîâ ñóùåñòâóåò îãðîìíîå êîëè÷åñòâî
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
27
ÿçûêîâ ïðîãðàììèðîâàíèÿ (ïðåæäå âñåãî Ñè è ÔÎÒÀÍ [9℄) è áèáëèîòåê, äî íåäàâíåãî âðåìåíè ïðîãðàììû íà ÏÓ ïèñàëèñü èñêëþ÷èòåëüíî ñ èñïîëüçîâàíèåì èíòåðåéñîâ äëÿ ðàáîòû ñ òðåõìåðíîé ïîëèãîíàëüíîé ãðàèêîé òàêèõ êàê OpenGL [10℄. Ïîñêîëüêó ýòè èíòåðåéñû ïðåäíàçíà÷åíû äëÿ ýåêòèâíîé ðàáîòû ñ ãðàèêîé, ïèñàòü ñ èõ ïîìîùüþ ïðîãðàììû äëÿ ãðàè÷åñêèõ ïðîöåññîðîâ íåóäîáíî.  äîïîëíåíèå ê ýòîìó ïðîãðàììû ïîëó÷àþòñÿ ãðîìîçäêèìè, ñëîæíûìè â îòëàäêå, è íåïåðåíîñèìûìè íà àðõèòåêòóðû, îòëè÷íûå îò ãðàè÷åñêèõ ïðîöåññîðîâ.  òàêèõ óñëîâèÿõ ïðîãðàììèðîâàíèå ãðàè÷åñêèõ ïðîöåññîðîâ òðåáóåò íå òîëüêî ïîíèìàíèÿ ìîäåëè ïðîãðàììèðîâàíèÿ, íî è çíàíèÿ âñåõ òîíêîñòåé èíòåðåéñà äëÿ ðàáîòû ñ òðåõìåðíîé ãðàèêîé è èçó÷åíèÿ ÿçûêà øåéäåðîâ, íàïðèìåð GLSL [11℄, ÷òî ïðåïÿòñòâóåò ðàñïðîñòðàíåíèþ ΠÏÓ ñðåäè ñïåöèàëèñòîâ â îáëàñòè ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ.  ïîäîáíûõ óñëîâèÿõ ñòàíîâèòñÿ âàæíîé çàäà÷à ðàçðàáîòêè èíñòðóìåíòàðèÿ äëÿ íàïèñàíèÿ ïðîãðàìì äëÿ ãðàè÷åñêèõ ïðîöåññîðîâ.  ïåðâóþ î÷åðåäü ýòî èìåííî ñðåäñòâà ïðîãðàììèðîâàíèÿ, çàòåì ñðåäñòâà îòëàäêè, ïðîèëèðîâêè è ò.ä. Ïðè ýòîì ñîçäàâàåìîå ñðåäñòâî äîëæíî áûòü ñðàâíèòåëüíî ïðîñòûì â îñâîåíèè äëÿ ñïåöèàëèñòîâ â îáëàñòè ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ è ïîçâîëÿòü ñîçäàâàòü ýåêòèâíûå è ïåðåíîñèìûå ïðîãðàììû.  íàñòîÿùåå âðåìÿ íàïðàâëåíèå ΠÏÓ ïîëó÷èëî ïîääåðæêó íå òîëüêî â àêàäåìè÷åñêèõ êðóãàõ, íî è ñðåäè ïðîèçâîäèòåëåé ãðàè÷åñêèõ ïðîöåññîðîâ. Âåäóùèå ïðîèçâîäèòåëè ãðàè÷åñêèõ ïðîöåññîðîâ, AMD [12℄ è NVIDIA [13℄ óæå âûïóñòèëè êàê ïðîãðàììíûå ñðåäñòâà äëÿ âçàèìîäåéñòâèÿ ñ ãðàè÷åñêèìè ïðîöåññîðàìè â îáõîä èíòåðåéñîâ äëÿ ðàáîòû ñ ãðàèêîé (ñîîòâåòñòâåííî, Data Parallel Virtual Ma hine (DPVM) [14℄ è NVIDIA CUDA [15℄), òàê è àïïàðàòíûå óñêîðèòåëè, îðèåíòèðîâàííûå íà îáùèå âû÷èñëåíèÿ. Ïîñëåäíèå ïðåäñòàâëÿþò ñîáîé òå æå ãðàè÷åñêèå ïðîöåññîðû (ñîîòâåòñòâåííî, ATI Radeon X1900 è NVIDIA GeFor e 8800), íî ïðîäàâàåìûå êàê ðåøåíèÿ äëÿ óñêîðåíèÿ âû÷èñëåíèé îáùåãî íàçíà÷åíèÿ. Äàííàÿ ñòàòüÿ îðãàíèçîâàíà ñëåäóþùèì îáðàçîì.  ðàçäåëå ¾Îñîáåííîñòè àðõèòåêòóðû ãðàè÷åñêèõ ïðîöåññîðîâ¿ äàåòñÿ îáçîð àðõèòåêòóðû ãðàè÷åñêèõ ïðîöåññîðîâ è èõ îñíîâíûõ âîçìîæ-
28
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
èñ. 1. Ïðîãðàììèðóåìûé ãðàè÷åñêèé êîíâåéåð íîñòåé.  ðàçäåëå ¾Ñóùåñòâóþùèå ïîäõîäû ïðîãðàììèðîâàíèÿ¿ ðàññìàòðèâàþòñÿ óæå ñóùåñòâóþùèå ïîäõîäû ïðîãðàììèðîâàíèÿ ÏÓ, äàåòñÿ èõ àíàëèç.  ðàçäåëå ¾Ñèñòåìà C$: èäåè è àðõèòåêòóðà¿ ðàññìàòðèâàþòñÿ èäåè, ïîëîæåííûå â îñíîâó ñèñòåìû C$ è èõ âëèÿíèå íà àðõèòåêòóðó ñîçäàâàåìîé ñèñòåìû.  ðàçäåëå ¾Òðàíñëÿöèÿ îïåðàöèé íàä ìàññèâàìè â ñèñòåìå C$¿ ðàññêàçûâàåòñÿ, êàê ïî äåðåâó âû÷èñëåíèé ñòðîèòñÿ ïðîãðàììà äëÿ ÏÓ, ó÷èòûâàþùàÿ îñîáåííîñòè àðõèòåêòóðû êîíêðåòíîãî ÏÓ.  ðàçäåëå ¾åçóëüòàòû è íàïðàâëåíèÿ äàëüíåéøåé ðàáîòû¿ äàþòñÿ ðåçóëüòàòû ðàáîòû è íàïðàâëåíèÿ, â êîòîðîì â äàëüíåéøåì áóäåò ðàçâèâàòüñÿ ñèñòåìà.
2. Îñîáåííîñòè àðõèòåêòóðû ãðàè÷åñêèõ ïðîöåññîðîâ
Àðõèòåêòóðà ñîâðåìåííûõ ãðàè÷åñêèõ ïðîöåññîðîâ îïðåäåëÿåòñÿ èõ îñíîâíîé çàäà÷åé âîçìîæíîñòüþ ñîçäàâàòü ðåàëèñòè÷íûå èçîáðàæåíèÿ â ðåàëüíîì ìàñøòàáå âðåìåíè. Òðàäèöèîííî àðõèòåêòóðà ãðàè÷åñêèõ ïðîöåññîðîâ èçîáðàæàåòñÿ â âèäå ãðàè÷åñêîãî êîíâåéåðà, èçîáðàæåííîãî íà èñ. 1. Ïðèìèòèâû äëÿ îáðàáîòêè (â âèäå âåðøèí, èíäåêñíûõ áóåðîâ, çàäàþùèõ ïðèíàäëåæíîñòü âåðøèí, à òàêæå äîïîëíèòåëüíûõ àòðèáóòîâ âåðøèí, òàêèõ êàê òåêñòóðíûå êîîðäèíàòû èëè íîðìàëè) çàäàþòñÿ ïðè ïîìîùè èíòåðåéñà òðåõìåðíîãî ïðîãðàììèðîâàíèÿ (íàïðèìåð, OpenGL). Ïîñëå ýòîãî îíè ïåðåäàþòñÿ íà ãðàè÷åñêèé
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
29
ïðîöåññîð, ãäå îòäåëüíûå âåðøèíû îáðàáàòûâàþòñÿ ïðè ïîìîùè âåðøèííûõ øåéäåðîâ. Øåéäåð ýòî ïðîãðàììà äëÿ ãðàè÷åñêîãî ïðîöåññîðà. Âåðøèííûå øåéäåðû ïîëó÷àþò íà âõîä àòðèáóòû âåðøèíû è âûäàþò íîâûå àòðèáóòû âåðøèíû; ÷àùå âñåãî îíè ïðåîáðàçîâûâàþò êîîðäèíàòû è íîðìàëü â ñîîòâåòñòâèè ñ âèäîâîé ìàòðèöåé. Íà ýòàïå ñáîðêè ïðèìèòèâîâ èç âåðøèí ñîáèðàþòñÿ ïðèìèòèâû (íà áîëåå ñîâðåìåííûõ ÏÓ ýòîò ýòàï çàìåíåí ãåîìåòðè÷åñêèì øåéäåðîì êîòîðûé ïîçâîëÿåò îñóùåñòâëÿòü áîëåå ãèáêèé íàáîð îïåðàöèé ñ ïðèìèòèâàìè, íàïðèìåð, ðàçáèåíèå). àñòåðèçàöèÿ ïðåîáðàçóåò ïðèìèòèâ (÷àùå âñåãî ýòî òðåóãîëüíèê) â íàáîð ðàãìåíòîâ ïðîåêöèé ýòîãî òðåóãîëüíèêà íà ïèêñåëè ýêðàíà. Äëÿ êàæäîãî ðàãìåíòà âûïîëíÿåòñÿ ðàãìåíòíûé øåéäåð. Îñíîâíàÿ åãî çàäà÷à ýòî âû÷èñëåíèå öâåòà ðàãìåíòà, è, âîçìîæíî, åãî ãëóáèíû. Ïîñëå ýòîãî ðàãìåíò ïîäàåòñÿ íà çàêëþ÷èòåëüíûé ýòàï ïèêñåëüíûõ îïåðàöèé. Íàèáîëåå âàæíûå èç ïèêñåëüíûõ îïåðàöèé ýòî òåñò ãëóáèíû (âûïîëíÿåò àïïàðàòíîå óäàëåíèå íåâèäèìûõ ïîâåðõíîñòåé; î÷åíü ýåêòèâíî ðåàëèçîâàí â áîëüøèíñòâå ñîâðåìåííûõ ÏÓ) è òåñò òðààðåòà. Ñëåäóåò çàìåòèòü, ÷òî åñëè ðàãìåíòíûé øåéäåð íå âû÷èñëÿåò çíà÷åíèå ãëóáèíû, òî îòñå÷åíèå ðàãìåíòà ïî ãëóáèíå ïðîèñõîäèò äî ðàáîòû ðàãìåíòíîãî øåéäåðà äëÿ ýòîãî ðàãìåíòà, ýêîíîìÿ òåì ñàìûì âû÷èñëèòåëüíûå ðåñóðñû ÏÓ è ïðåäîñòàâëÿÿ äîâîëüíî ýåêòèâíûé ìåõàíèçì äëÿ ìàñêèðîâàíèÿ íåàêòèâíûõ ðàãìåíòîâ â ΠÏÓ. Áîëåå ïîäðîáíî î ãðàè÷åñêîì êîíâåéåðå ñì., íàïðèìåð, â [16℄. Çäåñü æå îòìåòèì òîëüêî, ÷òî íàèáîëüøåå çíà÷åíèå ñ òî÷êè çðåíèÿ ΠÏÓ èìåþò ðàãìåíòíûå (èëè ïèêñåëüíûå) øåéäåðû. Ýòî îáóñëîâëåíî ðÿäîì îñîáåííîñòåé àðõèòåêòóðû ãðàè÷åñêîãî ïðîöåññîðà: 1. Ôðàãìåíòíûå øåéäåðû ïîçâîëÿþò îñóùåñòâëÿòü ïðîèçâîëüíûé äîñòóï ê îïðåäåëåííûì îáëàñòÿì ïàìÿòè (ïðè ïîìîùè òåêñòóð), â òî âðåìÿ êàê âåðøèííûå øåéäåðû ýòîãî íå ìîãóò. 2. åçóëüòàò ðàáîòû ðàãìåíòíûõ øåéäåðîâ äîñòóïåí íåïîñðåäñòâåííî, â òî âðåìÿ êàê ðåçóëüòàò ðàáîòû âåðøèííûõ øåéäåðîâ äîñòóïåí òîëüêî ïîñëå èíòåðïîëÿöèè.
30
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ 3. Ôðàãìåíòíûå øåéäåðû ÿâëÿþòñÿ óçêèì ìåñòîì ðàáîòû áîëüøèíñòâà ñîâðåìåííûõ ïðèëîæåíèé òðåõìåðíîé âèçóàëèçàöèè, ïîýòîìó àðõèòåêòóðà ãðàè÷åñêèõ ïðîöåññîðîâ ðàçðàáàòûâàåòñÿ ïðåæäå âñåãî äëÿ îïòèìàëüíîé ðàáîòû ðàãìåíòíûõ øåéäåðîâ. Êàê ñëåäñòâèå, äëÿ íèõ îáû÷íî âûäåëÿåòñÿ áîëüøå øåéäåðíûõ óíêöèîíàëüíûõ óñòðîéñòâ (ÔÓ), è îíè îáëàäàþò áîëåå ãèáêèìè âîçìîæíîñòÿìè, ÷åì âåðøèííûå øåéäåðû.  ïîñëåäíèõ ãðàè÷åñêèõ ïðîöåññîðàõ ñ óíèèöèðîâàííîé øåéäåðíîé àðõèòåêòóðîé óíêöèîíàëüíûå óñòðîéñòâà ðàçäåëÿþòñÿ ìåæäó ðàçëè÷íûìè âèäàìè øåéäåðîâ, ïîýòîìó èõ âîçìîæíîñòè ïðèìåðíî îäèíàêîâû.
 íàñòîÿùåå âðåìÿ íà ðûíêå ïðîèçâîäñòâà äèñêðåòíûõ, ò.å. íå èíòåãðèðîâàííûõ â ñèñòåìíóþ ïëàòó, ÏÓ äîìèíèðóþò äâå êîìïàíèè AMD (ATI) è NVIDIA. È åñëè àðõèòåêòóðà ÏÓ ïðåäûäóùåãî ïîêîëåíèÿ (ATI X1K è NVIDIA GeFor e 7) ó íèõ âî ìíîãîì áûëà ïîõîæåé, òî òåêóùåå ïîêîëåíèå èõ àðõèòåêòóð (ATI HD 2K è NVIDIA GeFor e 8) çíà÷èòåëüíî îòëè÷àþòñÿ. È õîòÿ ãðàè÷åñêèå ïðîöåññîðû îáîèõ ïðîèçâîäèòåëåé ïîääåðæèâàþò ðàáîòó ÷åðåç èíòåðåéñû ïðîãðàììèðîâàíèÿ òðåõìåðíîé ãðàèêè, âíóòðåííèå ðåàëèçàöèè èõ îòëè÷àþòñÿ íàñòîëüêî, ÷òî äëÿ êàæäîé ïðèõîäèòñÿ ïèñàòü ñâîþ ýåêòèâíóþ ðåàëèçàöèþ îäíîãî è òîãî æå ðàãìåíòíîãî øåéäåðà. Íèæå ñíà÷àëà äàåòñÿ îïèñàíèå îáùèõ õàðàêòåðèñòèê ñîâðåìåííûõ ÏÓ, à çàòåì ïðèâîäèòñÿ îïèñàíèå îñîáåííîñòåé ðàçëè÷íûõ àðõèòåêòóð ãðàè÷åñêèõ ïðîöåññîðîâ. Äëÿ ýåêòèâíîé ðàáîòû ðàãìåíòíûõ øåéäåðîâ ñîâðåìåííûå ãðàè÷åñêèå ïðîöåññîðû èìåþò áîëüøîå êîëè÷åñòâî øåéäåðíûõ ÔÓ. Èõ ÷èñëî ëåæèò â äèàïàçîíå îò 4 äî 320, ïðè÷åì ñàìè ÔÓ ìîãóò áûòü ñêàëÿðíûìè èëè ðàáîòàþùèìè ñ 4-êàìè âåùåñòâåííûõ ÷èñåë. Êàæäîå øåéäåðíîå ÔÓ èìååò íå ìåíåå 32 ðåãèñòðîâ è ðàáîòàåò ñ âåùåñòâåííûìè ÷èñëàìè îäèíàðíîé òî÷íîñòè; ñàìûå íîâûå ÏÓ ïîääåðæèâàþò òàêæå ðàáîòó ñ öåëûìè ÷èñëàìè. Ïîòîê óïðàâëåíèÿ ëèáî îäèí íà âñå øåéäåðíûå ÔÓ, ëèáî îäèí íà ãðóïïó èç äîñòàòî÷íî áîëüøîãî (äî 8) ÷èñëà øåéäåðíûõ ÔÓ (â ýòîì ñëó÷àå ïðîãðàììà ó âñåõ îäíà è òà æå). Òàêèì îáðàçîì, ñîâðåìåííûå ÏÓ ÿâëÿþòñÿ ïàðàëëåëüíîé
2.1. Îáùèå õàðàêòåðèñòèêè ñîâðåìåííûõ ÏÓ.
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
31
àðõèòåêòóðîé òèïà ÎÊÌÄ. Âñå ÔÓ âûïîëíÿþò îäèí è òîò æå øåéäåð äëÿ âñåõ öåëî÷èñëåííûõ ïàð êîîðäèíàò çàäàííîãî ïðÿìîóãîëüíèêà íà ïëîñêîñòè ñî ñòîðîíàìè, ïàðàëëåëüíûìè îñÿì êîîðäèíàò, è ðåçóëüòàò èñïîëíåíèÿ äëÿ êàæäîãî ýëåìåíòà çàïèñûâàåòñÿ â áóåð â âèäåîïàìÿòè. Ñîâðåìåííûå ÏÓ ïîçâîëÿþò çàïèñûâàòü ýòè äàííûå â ïðîìåæóòî÷íûé áóåð áåç âûâîäà íà ýêðàí, ðàâíî êàê è ïîääåðæèâàòü âûâîä â 8 áóåðîâ îäíîâðåìåííî. Øåéäåð ìîæåò áûòü ñìåíåí òîëüêî ïîñëå òîãî, êàê òåêóùèé øåéäåð ïðîðàáîòàåò äëÿ âñåõ ýëåìåíòîâ ïðÿìîóãîëüíèêà; ñìåíà øåéäåðà ñ÷èòàåòñÿ äîðîãîé îïåðàöèåé. Äëÿ êàæäîãî èñïîëíåíèÿ øåéäåðà êîîðäèíàòû åãî âûõîäà æåñòêî çàäàíû è íå ìîãóò áûòü èçìåíåíû, ÷òî ïîçâîëÿåò îïòèìèçèðîâàòü çàïèñü ðåçóëüòàòîâ â âèäåîïàìÿòü. Èñïîëíåíèÿ øåéäåðà äëÿ ðàçëè÷íûõ ïèêñåëåé ïîëíîñòüþ ëîãè÷åñêè íåçàâèñèìû, ìîãóò âûïîëíÿòüñÿ ïàðàëëåëüíî, è íå ñóùåñòâóåò íèêàêèõ ñïåöèàëüíûõ ñðåäñòâ ñèíõðîíèçàöèè ìåæäó èñïîëíåíèÿìè øåéäåðà äëÿ ðàçëè÷íûõ ïèêñåëåé. Ñîâðåìåííûå ÏÓ ïðåäîñòàâëÿþò àëüòåðíàòèâíûé ðåæèì ðàáîòû, â êîòîðîì çàïèñü ìîæåò áûòü îñóùåñòâëåíà â ïðîèçâîëüíîå ìåñòî âûõîäíîãî áóåðà, îäíàêî íå ïðåäîñòàâëÿþò íèêàêèõ ñðåäñòâ ñèíõðîíèçàöèè ïîäîáíîé çàïèñè.  ýòîì ñëó÷àå, îäíàêî, êýøèðîâàíèå çàïèñè íå ïðîèçâîäèòñÿ, è äëÿ äîñòèæåíèÿ âûñîêîé ïðîèçâîäèòåëüíîñòè ïðèõîäèòñÿ ìîäåëèðîâàòü ðåæèì ðåãóëÿðíîé çàïèñè, òîëüêî ñ áîëüøèì êîëè÷åñòâîì çàïèñûâàåìûõ ýëåìåíòîâ. Êàæäîå ÔÓ ìîæåò âûäàâàòü êîìàíäû íà ÷òåíèå äàííûõ èç îïåðàòèâíîé ïàìÿòè. ×òåíèÿ ïîëíîñòüþ àñèíõðîííû è èñïîëíÿþòñÿ íà ñïåöèàëüíûõ óñòðîéñòâàõ, èìåíóåìûõ òåêñòóðíûìè óñòðîéñòâàìè.  çàâèñèìîñòè îò òèïà è ðåæèìà ðàáîòû, äîñòóïíà ëèáî âñÿ ïàìÿòü, ëèáî íàáîð èç íå áîëåå ÷åì 32 ñåãìåíòîâ (áóåðîâ).  ïîñëåäíåì ñëó÷àå çàãðóçêà ñåãìåíòíûõ ðåãèñòðîâ ïðîèçâîäèòñÿ äî âûïîëíåíèÿ øåéäåðà, è âî âðåìÿ åãî âûïîëíåíèÿ îíè èçìåíåíû áûòü íå ìîãóò. Àäðåñàöèÿ ìîæåò áûòü ëèáî ëèíåéíîé, ëèáî äâóìåðíîé. ×òåíèå ìîæåò áûòü êýøèðîâàííûì èëè íåêýøèðîâàííûì (ñì. îïèñàíèÿ ÏÓ îò êîíêðåòíûõ ïðîèçâîäèòåëåé). Îáëàñòè ïàìÿòè, àäðåñóåìûå ñåãìåíòíûìè ðåãèñòðàìè, ìîãóò ðàñïîëàãàòüñÿ êàê â ñîáñòâåííîé ïàìÿòè ãðàè÷åñêîãî ïðîöåññî-
32
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
ðà (âèäåîÎÇÓ), òàê è â ÎÇÓ. ÂèäåîÎÇÓ ñîâðåìåííûõ ÏÓ èìååò ðàçìåð îò 128 äî 1024 ÌÁ. Äîñòóï ê âèäåîÎÇÓ îñóùåñòâëÿåòñÿ ñî ñêîðîñòüþ îò 25 äî 80 Á/ñåê, äîñòóï ê ÎÇÓ ÖÏÓ íà ïîðÿäîê ìåäëåííåå. Âûãðóçêà äàííûõ îáðàòíî èç âèäåîÎÇÓ â ÎÇÓ ÖÏÓ åùå ìåäëåííåå è îñóùåñòâëÿåòñÿ íà ñêîðîñòè äî 1 Á/ñåê. Òàêèì îáðàçîì, îáðàáîòêó äàííûõ ñëåäóåò îðãàíèçîâûâàòü òàêèì îáðàçîì, ÷òîáû ïðîãðàììû ðàáîòàëè òîëüêî ñ äàííûìè â âèäåîÎÇÓ. Ïðè ïðîãðàììèðîâàíèè ÏÓ îïåðàöèè äîñòóïà ê ïàìÿòè ñ÷èòàþòñÿ ìåäëåííûìè îïåðàöèÿìè: îáìåí äàííûìè ñ ïàìÿòüþ ìîæåò çàíèìàòü äî 400 òàêòîâ, â òî âðåìÿ êàê çà 1 òàêò îäíî ÔÓ ìîæåò âûïîëíèòü äî 8 àðèìåòè÷åñêèõ îïåðàöèé. Äëÿ ñîêðûòèÿ ðàñõîäîâ íà âçàèìîäåéñòâèå ñ ïàìÿòüþ èñïîëüçóåòñÿ àïïàðàòíàÿ ìíîãîïîòî÷íîñòü. Ïîòîêè ÏÓ íàìíîãî ìåíåå ãèáêè, ÷åì òðàäèöèîííûå ïîòîêè; êàæäûé èç íèõ ñîñòîèò èç îïðåäåëåííîãî ÷èñëà îäíîâðåìåííî îáðàáàòûâàåìûõ ðàãìåíòîâ (îò 4 äî 48), è õðàíèò âåñü êîíòåêñò âíóòðè ÏÓ, ÷òî ïîçâîëÿåò ïåðåêëþ÷àòü ïîòîêè áåç ïîòåðè âðåìåíè (ðåàëüíî çà 1 òàêò). Êàê ñëåäñòâèå, êîëè÷åñòâî ïîòîêîâ îãðàíè÷åíî ðàçìåðîì ìàññèâà ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ (ÎÍ) âíóòðè ÏÓ è îáðàòíî ïðîïîðöèîíàëüíî ÷èñëó èñïîëüçóåìûõ â øåéäåðå ðåãèñòðîâ. Åùå îäíèì ñëåäñòâèåì òàêîãî ìåõàíèçìà ÿâëÿåòñÿ îòñóòñòâèå ïðîãðàììíîãî êîíòðîëÿ ïåðåêëþ÷åíèÿ ïîòîêîâ, òàê êàê âñå îïåðàöèè ïåðåêëþ÷åíèÿ îñóùåñòâëÿþòñÿ àïïàðàòíî ñ öåëüþ ïîâûøåíèÿ áûñòðîäåéñòâèÿ. Àïïàðàòóðà âûïîëíÿåò ïåðåêëþ÷åíèå ïîòîêîâ ëèøü â òîì ñëó÷àå, åñëè îäèí èç íèõ çàáëîêèðîâàëñÿ íà îïåðàöèè ñ ïàìÿòüþ. Çà ñ÷åò ïîëíîé íåçàâèñèìîñòè èñïîëíåíèé øåéäåðà äëÿ ðàçëè÷íûõ ðàãìåíòîâ ÏÓ äîñòèãàþò äîñòàòî÷íî áîëüøîé ñòåïåíè ïàðàëëåëèçìà è çíà÷èòåëüíîé ïðîèçâîäèòåëüíîñòè â òåðìèíàõ âåùåñòâåííûõ âû÷èñëåíèé. Íàïðèìåð, ãðàè÷åñêèé ïðîöåññîð X1950 XTX ñ 48 øåéäåðíûìè ÔÓ èìååò ïèêîâóþ ïðîèçâîäèòåëüíîñòü 300 Ôëîïñ ïðè âåùåñòâåííûõ âû÷èñëåíèÿõ ñ îäèíàðíîé òî÷íîñòüþ, ÷òî ñðàâíèìî ñ ïðîèçâîäèòåëüíîñòüþ ñîâðåìåííûõ ìíîãîìàøèííûõ êîìïëåêñîâ è íà ïîðÿäîê ïðåâîñõîäèò ïðîèçâîäèòåëüíîñòü ñàìîãî ìîùíîãî ñîâðåìåííîãî öåíòðàëüíîãî ïðîöåññîðà.
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
33
èñ. 2. Àðõèòåêòóðà ãðàè÷åñêîãî ïðîöåññîðà êîìïàíèè AMD
2.2. ÏÓ êîìïàíèè AMD (ATI).
Îáùàÿ ñõåìà àðõèòåêòóðû ãðàè÷åñêîãî ïðîöåññîðà êîìïàíèè AMD ïðèâåäåíà íà ðèñóíêå 2. Äàííàÿ ñõåìà îïèñûâàåò êàê ÏÓ ñåðèè X1K, òàê è ÏÓ ñåðèè HD 2K. Õîòÿ HD 2K íà óðîâíå øåéäåðíûõ ÔÓ èìååò èíóþ àðõèòåêòóðó, ñõîäñòâ ìåæäó ñåìåéñòâàìè çíà÷èòåëüíî áîëüøå, ÷åì ðàçëè÷èé. ÏÓ ñåìåéñòâà X1K èìåþò îò 4 äî 48 øåéäåðíûõ ÔÓ, êàæäîå èç êîòîðûõ îáðàáàòûâàåò ÷åòâåðêè âåùåñòâåííûõ ÷èñåë (ÎÊÌÄ ÔÓ). ÔÓ ñïîñîáíû âûïîëíÿòü âåùåñòâåííûå àðèìåòè÷åñêèå îïåðàöèè, à òàêæå âû÷èñëåíèå ýëåìåíòàðíûõ óíêöèé (òîëüêî äëÿ ñêàëÿðíûõ âåëè÷èí) è êîìàíäû óïðàâëåíèÿ; êðîìå òîãî, îíè ìîãóò âûäàâàòü çàïðîñû íà ÷òåíèå/çàïèñü êîíòðîëëåðó ïàìÿòè. Êàæäîìó èñïîëíåíèþ øåéäåðà äîñòóïíû äî 128 128-áèòíûõ âåùåñòâåííûõ ðåãèñòðîâ. ×òåíèå äàííûõ ìîæåò ïðîèçâîäèòüñÿ èç 16 äâóìåðíûõ áóåðîâ ðàçìåðà äî 4096 × 4096 ýëåìåíòîâ, ðàñïîëîæåííûõ â âèäåîÎÇÓ èëè ÎÇÓ. Êàæäûé ýëåìåíò ìîæåò áûòü ëèáî âåùåñòâåííûì ÷èñëîì, ëèáî ÷åòâåðêîé âåùåñòâåííûõ ÷èñåë; â êà÷åñòâå áóåðà ãëóáèíû ïîääåðæèâàþòñÿ áóåðû èç 16-áèòíûõ áåççíàêîâûõ öåëûõ ÷èñåë. Çàïèñü âîçìîæíà â îäèí èç 4-õ öåëåâûõ áóåðîâ, òàêæå ïîääåðæèâàåòñÿ ðåæèì ïðîèçâîëüíîé çàïèñè. ×òåíèå è çàïèñü êýøèðóþòñÿ; îäíàêî äàæå â ñëó÷àå ïîïàäàíèÿ â êýø ñòîèìîñòü îäíîãî ÷òåíèÿ ìîæåò ñîñòàâëÿòü äî 4-õ òàêòîâ, ÷òî äåëàåò ïîíèæåíèå îáùåãî êîëè÷åñòâà äîñòóïîâ â ïàìÿòü âàæíîé çàäà÷åé îïòèìèçàöèè. ÏÓ ñåìåéñòâà HD 2K [17℄ èìåþò îò 4 äî 64 øåéäåðíûõ ÔÓ, ïîñòðîåííûõ ïî àðõèòåêòóðå ñ äëèííûì êîìàíäíûì ñëîâîì. Êàæäîå
34
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
øåéäåðíîå ÔÓ èìååò â ñåáå 5 ïîäóñòðîéñòâ, êàæäîå èç êîòîðûõ çà òàêò ñïîñîáíî âûïîëíèòü 2 àðèìåòè÷åñêèå êîìàíäû ñ âåùåñòâåííûì ÷èñëîì. Ïîìèìî ýòîãî, 5-îå ÔÓ òàêæå ìîæåò âû÷èñëÿòü ýëåìåíòàðíûå óíêöèè è âûïîëíÿòü ñïåöèàëüíûå êîìàíäû. Ïîääåðæèâàþòñÿ êîìàíäû äëÿ ðàáîòû ñ öåëûìè ÷èñëàìè, à òàêæå êîìàíäû óïðàâëåíèÿ. Êîëè÷åñòâî ðåãèñòðîâ îñòàëîñü ïðåæíèì, îäíàêî ïîÿâèëàñü âîçìîæíîñòü êîñâåííîé àäðåñàöèè êàê ñàìèõ ðåãèñòðîâ, òàê è íîìåðà òåêóùåãî áóåðà ÷òåíèÿ. àçìåðû áóåðîâ óâåëè÷èëèñü äî 8192 × 8192 , ÷èñëî âõîäíûõ áóåðîâ äî 32, à ÷èñëî âûõîäíûõ áóåðîâ äî 8. Ïîÿâèëèñü íîâûå âîçìîæíîñòè, ïîääåðæèâàþùèå èíòåðåéñ ïðîãðàììèðîâàíèÿ òðåõìåðíîé ãðàèêè Dire tX 10. Îäíàêî â îñòàëüíîì àðõèòåêòóðà èçìåíèëàñü ìàëî, è äëèííîå êîìàíäíîå ñëîâî, õîòÿ è ÿâëÿåòñÿ áîëåå ãèáêèì, ÷àùå èñïîëüçóåòñÿ äëÿ ðàáîòû ñ òåìè æå ÷åòâåðêàìè âåùåñòâåííûõ ÷èñåë.
2.3. ÏÓ êîìïàíèè NVIDIA.
 îòëè÷èå îò AMD, øåéäåðíûå ÔÓ â ÏÓ ñåðèè GeFor e 8 îò NVIDIA ÿâëÿþòñÿ ñóïåðñêàëÿðíûìè, à íå ÎÊÌÄ, è ðàáîòàþò îíè ñ îòäåëüíûìè âåùåñòâåííûìè è öåëûìè ÷èñëàìè, à íå ñ ÷åòâåðêàìè ÷èñåë. Ñ îäíîé ñòîðîíû, òàêîå àïïàðàòíîå ðåøåíèå ïîçâîëÿåò ïîâûñèòü òàêòîâóþ ÷àñòîòó ÔÓ. Ñ äðóãîé ñòîðîíû, ýòî îáëåã÷àåò íàïèñàíèå øåéäåðîâ äëÿ ðàáîòû íà òàêèõ ïðîöåññîðàõ, è êàê ñëåäñòâèå óïðîùàåò ïðîãðàììèðîâàíèå ÔÓ. Åùå îäíèì ïëþñîì, íå îòíîñÿùèìñÿ íàïðÿìóþ ê àðõèòåêòóðå, ÿâëÿåòñÿ âîçìîæíîñòü èñïîëüçîâàòü äèàëåêò C CUDA äëÿ ïðîãðàììèðîâàíèÿ ÏÓ NVIDIA. È õîòÿ ïðîãðàììèðîâàíèå âåäåòñÿ ïî ñòàðîé ñõåìå çàãðóçêè äàííûõ è èñïîëíåíèÿ øåéäåðîâ, íàïèñàíèå øåéäåðîâ íà ÿçûêå C çíà÷èòåëüíî îáëåã÷àåò çàäà÷ó. Âòîðîé îñîáåííîñòüþ ÏÓ NVIDIA ÿâëÿåòñÿ çàìåíà êýø-ïàìÿòè íà ÿâíî àäðåñóåìóþ ïîëüçîâàòåëåì ñòàòè÷åñêóþ ïàìÿòü, ñêîðîñòü îáðàùåíèÿ ê êîòîðîé ïðèìåðíî ñîîòâåòñòâóåò ñêîðîñòè îáðàùåíèÿ ê ðåãèñòðó. Ïîäîáíîå ðåøåíèå òàêæå ïðèìåíÿåòñÿ, íàïðèìåð, â ïðîöåññîðå CELL [18℄. àáîòà ñ âèäåîÎÇÓ, òàêèì îáðàçîì, ñòàíîâèòñÿ íåêýøèðóåìîé. Ñ îäíîé ñòîðîíû, òàêîå ðåøåíèå äàåò äîïîëíèòåëüíûå âîçìîæíîñòè ïî îïòèìèçàöèè, íî ñ äðóãîé óñëîæíÿåò ñîçäàíèå ýåêòèâíûõ ïðîãðàìì íà ïîäîáíûõ àðõèòåêòóðàõ. Ïîäâîäÿ èòîã ïî àðõèòåêòóðàì, ìîæíî ñêàçàòü, ÷òî çàäà÷à ñî-
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
35
çäàíèÿ ýåêòèâíûõ ñðåäñòâ ïîñòðîåíèÿ âûñîêîóðîâíåâûõ è ïåðåíîñèìûõ ïðîãðàìì íà ÏÓ ÿâëÿåòñÿ, ñ îäíîé ñòîðîíû, àêòóàëüíîé, à ñ äðóãîé äîñòàòî÷íî ñëîæíîé è èíòåðåñíîé. Âåäü ïðè ñîçäàíèè ýåêòèâíîãî êîäà òðåáóåòñÿ ó÷èòûâàòü ðàçëè÷íûå îñîáåííîñòè ðàçëè÷íûõ àðõèòåêòóð ÏÓ òàêèå êàê ñòàòè÷åñêóþ ïàìÿòü, ÎÊÌÄ ÔÓ è äðóãèå, ïðè ýòîì ýòè äåòàëè æåëàòåëüíî ïî âîçìîæíîñòè ñêðûòü îò êîíå÷íîãî ïîëüçîâàòåëÿ, èëè ïðåäîñòàâèòü â ïîíÿòíûõ åìó òåðìèíàõ. Êðîìå òîãî, âîçíèêàåò âîïðîñ î ïåðåíîñèìîñòè ïîäîáíûõ ïðîãðàìì íà äðóãèå àðõèòåêòóðû íàïðèìåð, íà ìíîãîÿäåðíûå ïðîöåññîðû, ïðîöåññîðû òèïà CELL è ò.ä., òåì áîëåå ÷òî âî ìíîãîì ýòè àðõèòåêòóðû ïîõîæè è âî ìíîãèõ ñëó÷àÿõ îíè èñïîëüçóþòñÿ äëÿ ðåøåíèÿ îäíèõ è òåõ æå êëàññîâ çàäà÷ (íàïðèìåð, îáðàáîòêà èçîáðàæåíèé).
3. Ñóùåñòâóþùèå ïîäõîäû ïðîãðàììèðîâàíèÿ
Ïðè ðàññìîòðåíèè ΠÏÓ øåéäåð ìîæíî ðàññìàòðèâàòü êàê ýëåìåíò ïðîãðàììû ãðàè÷åñêîãî ïðîöåññîðà, à òåêñòóðû è áóåðà, ñ êîòîðûìè îí ðàáîòàåò ïðîñòî êàê äâóìåðíûå ìàññèâû äàííûõ. Òàêèì îáðàçîì, øåéäåð ìîæíî ðàññìàòðèâàòü êàê: êàê óíêöèþ (¾ÿäðî¿), êîòîðàÿ ïåðåðàáàòûâàåò ïîðöèþ ýëåìåíòîâ âõîäíîãî ìàññèâà, à íà âûõîäå äàåò ýëåìåíò äðóãîãî ìàññèâà, êàê óíêöèþ, êîòîðàÿ ïðèìåíÿåòñÿ ê âõîäíûì ìàññèâàì è â ðåçóëüòàòå äàåò âûõîäíîé ìàññèâ, òà.
ïðè÷åì â îáîèõ ñëó÷àÿõ ýòà óíêöèÿ íå èìååò ïîáî÷íîãî ýåê-
Òðàäèöèîííî äëÿ îïèñàíèÿ ÏÓ ïðèìåíÿëñÿ ïåðâûé ïîäõîä, êîòîðûé ïîëó÷èë íàçâàíèå ¾ïîòîêîâîå ïðîãðàììèðîâàíèå¿ (streaming programming) [19℄. Èäåÿ ýòîãî ïîäõîäà ñîñòîèò â ñëåäóþùåì. Ïðîãðàììà ðàçáèâàåòñÿ íà ÿäðà, ò.å. íåáîëüøèå ïðîãðàììíûå ýëåìåíòû ñî ñòðîãî îïðåäåëåííûìè âõîäàìè è âûõîäàìè. ßäðà îáðàáàòûâàþò ïîòîêè âõîäíûõ ýëåìåíòîâ. Îäíî ÿäðî ìîæåò èìåòü îäèí èëè íåñêîëüêî ïîòîêîâ âõîäíûõ ýëåìåíòîâ. Íà êàæäûé âõîäíîé ýëåìåíò
36
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
ÿäðî ãåíåðèðóåò ñòîëüêî-òî âûõîäíûõ ýëåìåíòîâ. Ïðè îòîáðàæåíèè íà ãðàè÷åñêèé ïðîöåññîð ïîòîêè îòîáðàæàþòñÿ íà òåêñòóðû, à ÿäðà íà øåéäåðû. Äëÿ ÿäåð ñ óñëîâíîé ãåíåðàöèåé âûõîäíûõ ýëåìåíòîâ èñïîëüçóþòñÿ âîçìîæíîñòè ìàñêèðîâàíèÿ ÏÓ çà ñ÷åò áóåðà ãëóáèíû. Äîñòóï ê íåñêîëüêèì ýëåìåíòàì îäíîãî è òîãî æå ïîòîêà îñóùåñòâëÿåòñÿ ïðè ïîìîùè îïåðàöèé òèïà s atter è gather; ïðè ýòîì îïåðàöèÿ gather îòîáðàæàåòñÿ â ÷òåíèå ñîñåäíèõ ýëåìåíòîâ òåêñòóðû, à îïåðàöèÿ s atter â äîïîëíèòåëüíûé ïðîõîä, â êîòîðîì ðåçóëüòàòû ðàáîòû ðàãìåíòíîãî øåéäåðà ïîäàþòñÿ íà âõîä âåðøèííîìó øåéäåðó (êîòîðûé ìîæåò èçìåíÿòü ïîçèöèþ çàïèñè). Ýòîò ïîäõîä õîðîøî ðàáîòàë, êîãäà ðàçìåðû øåéäåðîâ áûëè îãðàíè÷åíû (íå áîëåå 20 êîìàíä), è íàêëàäûâàëèñü îãðàíè÷åíèÿ íà ÷òåíèå èç òåêñòóðû. Ýòî ïîäõîäèëî äëÿ ïðîñòûõ àëãîðèòìîâ; äëÿ áîëåå ñëîæíûõ àëãîðèòìîâ è äëÿ áîëåå ñëîæíûõ øåéäåðîâ (íàïðèìåð, ñ öèêëàìè), ïîäõîä íå ðàáîòàåò. Íàïðèìåð, äëÿ òîãî, ÷òîáû ñîðìóëèðîâàòü â íåì àëãîðèòì òðàññèðîâêè ëó÷åé, åãî ïðèõîäèòñÿ ðàçáèâàòü íà ýëåìåíòàðíûå îïåðàöèè [20℄. Íåïîíÿòíî â òîì ÷èñëå è òî, êàê â òåðìèíàõ òàêèõ îïåðàöèé âûðàçèòü, íàïðèìåð, îïåðàöèþ óìíîæåíèÿ ìàòðèö. Ïîýòîìó ñî âðåìåíåì áîëåå ïîïóëÿðíûì ñòàë âòîðîé ïîäõîä øåéäåð åñòü óíêöèÿ, êîòîðàÿ ïðèìåíÿåòñÿ ê íàáîðó âõîäíûõ ìàññèâîâ è âûäàåò âûõîäíîé ìàññèâ. Ýòà óíêöèÿ íå èìååò ïîáî÷íîãî ýåêòà è ìîæåò áûòü âû÷èñëåíà íåçàâèñèìî (êàê ñëåäñòâèå, ïàðàëëåëüíî) äëÿ ðàçëè÷íûõ ýëåìåíòîâ âûõîäíîãî ìàññèâà. Íî êàê îïðåäåëèòü òàêóþ óíêöèþ? Ñàìûé ïðîñòîé ñïîñîá çàêëþ÷àåòñÿ â ñëåäóþùåì: åñòü ýëåìåíòàðíûå îïåðàöèè ñ ìàññèâàìè (íàïðèìåð, ñëîæåíèå, óìíîæåíèå è äðóãèå), îíè êîìáèíèðóþòñÿ, è ïîëó÷åííîå àðèìåòè÷åñêîå âûðàæåíèå ðàññìàòðèâàåòñÿ êàê óíêöèÿ. Ïîñêîëüêó ñìåíà øåéäåðà âëå÷åò çà ñîáîé íàêëàäíûå ðàñõîäû, ïîÿâëÿåòñÿ ñòðåìëåíèå ïîìåñòèòü êàê ìîæíî áîëüøå îïåðàöèé îáðàáîòêè â îäèí øåéäåð. Âû÷èñëåíèÿ ìàññèâíûõ îïåðàöèé â òàêîì ñëó÷àå îñóùåñòâëÿåòñÿ ëåíèâûì îáðàçîì: ïîêà ðåçóëüòàò ÿâíî íå íóæåí, äëÿ íåãî ñòðîèòñÿ äåðåâî, à êîãäà ðåçóëüòàò ðåàëüíî âîñòðåáîâàí (íàïðèìåð, îí ïðèâîäèòñÿ ê òèïó ÿçûêîâîãî ìàññèâà èç ñïåöèàëüíîãî êëàññà, ðåàëèçóþùåãî ìàññèâû íà ÏÓ), òî ïî äåðå-
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
37
âó ñòðîèòñÿ øåéäåð, îí êîìïèëèðóåòñÿ, èñïîëíÿåòñÿ, à ðåçóëüòàò çàãðóæàåòñÿ îáðàòíî. Ïî òàêîìó ïðèíöèïó óñòðîåíû áèáëèîòåêè A
elerator [21℄, Peak Stream [22℄ è Rapid Mind [23℄. Ïî ñóòè, îíè ïðåäëàãàþò íåêîòîðóþ áèáëèîòåêó ìàññèâíûõ îïåðàöèé íàä âåùåñòâåííûìè ÷èñëàìè, êîòîðàÿ èñïîëüçóåò ëåíèâûå âû÷èñëåíèÿ è äèíàìè÷åñêóþ êîìïèëÿöèþ. Êðîìå òîãî, ïîäîáíûå áèáëèîòåêè ìîæíî äåëàòü ïåðåíîñèìûìè ìåæäó ðàçëè÷íûìè ñèñòåìàìè íàïðèìåð, Rapid Mind ðàáîòàåò òàêæå íà CELL [18℄ è íà ìíîãîÿäåðíûõ ñèñòåìàõ.
4. Ñèñòåìà C$: èäåè è àðõèòåêòóðà
Ñèñòåìà C$ [24℄ çàèìñòâóåò èäåè ëåíèâîãî èñïîëíåíèÿ è äèíàìè÷åñêîé òðàíñëÿöèè ó óæå ñóùåñòâóþùèõ ñèñòåì, è îäíîâðåìåííî ïðåäëàãàåò öåëûé ðÿä íîâîââåäåíèé. Âî-ïåðâûõ, äëÿ ïðîãðàììèðîâàíèÿ ÏÓ ïðåäëàãàåòñÿ èñïîëüçîâàòü íå áèáëèîòåêó, à ÿçûê ïðîãðàììèðîâàíèÿ. Ïðè ýòîì, õîòÿ íà àðõèòåêòóðó ÿçûêà è îêàçàëà âëèÿíèå àðõèòåêòóðà ñîâðåìåííûõ ÏÓ, ñàì ÿçûê ÿâëÿåòñÿ ìàøèííî-íåçàâèñèìûì è â ïðèíöèïå ìîæåò áûòü ïåðåíåñåí íà äðóãèå àðõèòåêòóðû, â òîì ÷èñëå CELL è ìíîãîÿäåðíûå ñèñòåìû. Ñèíòàêñèñ íîâîãî ÿçûêà è áîëüøèíñòâî êîíñòðóêöèé çàèìñòâîâàíû èç ÿçûêà C# (è Java), ÷òî äîëæíî îáëåã÷èòü îñâîåíèå. À ðàçðàáîòêà ÿçûêà ñ èñïîëüçîâàíèåì ñðåäû èñïîëíåíèÿ .NET îáëåã÷àåò èíòåãðàöèþ åãî â óæå ñóùåñòâóþùèå ñèñòåìû. Ñïåöèè÷åñêèå îáúåêòû ÿçûêà (òàêèå êàê óíêöèè èëè ìàññèâû) â äðóãèõ .NET-ÿçûêàõ, òàêèõ êàê C#, áóäóò âèäíû ïðîñòî êàê êëàññû, à ñïåöèè÷åñêèå ÿçûêîâûå êîíñòðóêöèè êàê âûçîâû ìåòîäîâ. Ïðîöåññ âû÷èñëåíèÿ íà ãðàè÷åñêîì ïðîöåññîðå ìîæíî ïðåäñòàâèòü êàê . Âåäü îäèí âûçîâ øåéäåðà ÿâëÿåòñÿ âû÷èñëåíèåì óíêöèè (øåéäåðà) íà åãî îáëàñòè îïðåäåëåíèÿ (ýêðàííîì ïðÿìîóãîëüíèêå). Ôóíêöèÿ ìîæåò áûòü äîñòàòî÷íî ïðîñòîé, êàê â ñëó÷àå ñëîæåíèÿ äâóõ ìàññèâîâ, èëè, íàîáîðîò, äîñòàòî÷íî ñëîæíîé, êàê â ñëó÷àå òðàññèðîâêè ëó÷åé [7℄. Êðîìå òîãî, äëÿ âû÷èñëåíèÿ îäíîãî ýëåìåíòà âûõîäíîãî ìàññèâà ìîæåò èñïîëüçîâàòüñÿ ìíîãî ýëåìåíòîâ âõîäíîãî ìàññèâà íàïðèìåð, öåëàÿ
ïàðàëëåëüíîå íåçàâèñèìîå âû÷èñëåíèå óíêöèè áåç ïîáî÷íûõ ýåêòîâ íà åå îáëàñòè îïðåäåëåíèÿ
38
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
ñòðîêà èëè ñòîëáåö, êàê â ñëó÷àå óìíîæåíèÿ ìàòðèö. Ïîýòîìó â ÿçûê C$ ââåäåíî êàê ïîíÿòèå óíêöèè áåç ïîáî÷íîãî ýåêòà, òàê è ïîíÿòèå òèïà óíêöèè áåç ïîáî÷íîãî ýåêòà, èëè óíêöèîíàëüíîãî òèïà. Ñàì ïî ñåáå óíêöèîíàëüíûé òèï ÿâëÿåòñÿ àáñòðàêòíûì êëàññîì. Ïîýòîìó çíà÷åíèåì ïåðåìåííîé óíêöèîíàëüíîãî òèïà ìîæåò áûòü ññûëêà íà îáúåêò îäíîãî èç ïðîèçâîäíûõ êëàññîâ: ìàññèâ, ìåòîä êëàññà, ýëåìåíòàðíàÿ îïåðàöèÿ èëè óæå ñêîíñòðóèðîâàííîå, íî åùå íå âû÷èñëåííîå âûðàæåíèå. Ëþáîå òàêîå çíà÷åíèå íàçûâàåòñÿ . Òàêèì îáðàçîì, ìàññèâ â ÿçûêå C$ ïðåäñòàâëÿåò ñîáîé ÷àñòíûé ñëó÷àé óíêöèè. Ïðîãðàììà íà ÿçûêå Ñ$ ñîñòîèò èç ýòàïîâ, íà êàæäîì èç êîòîðûõ âûïîëíÿåòñÿ ïîñòðîåíèå òàêîé óíêöèè. Ïàðàëëåëüíîå âû÷èñëåíèå îñóùåñòâëÿåòñÿ çà ñ÷åò âû÷èñëåíèÿ óíêöèè íà âñåé åå îáëàñòè îïðåäåëåíèÿ. Îñíîâíîé îïåðàöèåé, èñïîëüçóåìîé äëÿ êîíñòðóèðîâàíèÿ íîâûõ óíêöèé â C$, ÿâëÿåòñÿ îïåðàöèÿ ñóïåðïîçèöèè óíêöèé.  îòëè÷èå îò äðóãèõ ÿçûêîâ, ãäå äëÿ ñóïåðïîçèöèè èñïîëüçóåòñÿ ñïåöèàëüíàÿ óíêöèÿ èëè îáîçíà÷åíèå, â C$ ñóïåðïîçèöèÿ îñóùåñòâëÿåòñÿ çà ñ÷åò êîíñòðóêöèè óíêöèîíàëüíîãî ïðîäâèæåíèÿ. Îíà ðàáîòàåò ñëåäóþùèì îáðàçîì: ïóñòü èìååòñÿ óíêöèÿ h òèïà T5(T1, T3), ò.å. óíêöèÿ h ïðèíèìàåò íà âõîä îäíî çíà÷åíèå òèïà T1 è îäíî çíà÷åíèå òèïà T3, è âîçâðàùàåò çíà÷åíèå òèïà T5. Ïóñòü òàêæå èìåþòñÿ óíêöèè g òèïà T3(T4) è f òèïà T1(T2). Òîãäà çàïèñü h(f, g) â ÿçûêå C$ çàäàåò óíêöèÿ òèïà T5(T2, T4) (åñëè T2 è T4 - ðàçíûå òèïû) èëè T5(T2) (åñëè ýòî îäèí è òîò æå òèï). Ïðè ýòîì çíà÷åíèå ýòîé óíêöèè ìîæåò áûòü âû÷èñëåíî ñëåäóþùèì îáðàçîì: óíêöèÿ ïåðåäàåò ñâîè àðãóìåíòû â óíêöèè f è g, ðåçóëüòàòû èõ ðàáîòû, â ñâîþ î÷åðåäü, ïåðåäàåò â óíêöèþ h, ïîñëå ÷åãî âîçâðàùàåò çíà÷åíèå, ïîëó÷åííîå èç h. Ôóíêöèîíàëüíîå ïðîäâèæåíèå èñïîëüçóåòñÿ êàê äîïîëíèòåëüíîå ñðåäñòâî ðàçðåøåíèÿ ïåðåãðóçêè óíêöèè êîãäà ïðî÷èå ñðåäñòâà, òàêèå êàê ïðèâåäåíèå òèïîâ, íå ìîãóò íàéòè ïîäõîäÿùóþ óíêöèþ. Òàêèì îáðàçîì, ëþáàÿ óíêöèÿ ìîæåò ïðèìåíÿòüñÿ íå òîëüêî ê ñêàëÿðíûì çíà÷åíèÿì, íî è ê äðóãèì óíêöèÿì ñòàíîâÿñü óíêöèåé áîëåå âûñîêîãî ïîðÿäêà (â òåðìèíàõ óíêöèîíàëüíîãî ïðî-
óíêöèîíàëüíûì îáúåêòîì
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
39
ãðàììèðîâàíèÿ). Ïîñêîëüêó ìàññèâû â ÿçûêå C$ ÿâëÿþòñÿ ÷àñòíûì ñëó÷àåì óíêöèé, çà ñ÷åò ñóïåðïîçèöèè ê ìàññèâàì ìîæíî ïðèìåíÿòü àðèìåòè÷åñêèå îïåðàöèè è ñêàëÿðíûå óíêöèè. Òàêèì îáðàçîì, â ÿçûêå C$ ïîÿâëÿþòñÿ âîçìîæíîñòè ìàññèâíî-îðèåíòèðîâàííîãî ïðîãðàììèðîâàíèÿ. Ïðèìåð èñïîëüçîâàíèÿ óíêöèîíàëüíîãî ïðîäâèæåíèÿ â ÿçûêå C$ ïðèâåäåí â ëèñòèíãå 1.
oat sin(oat x) { . . . } // óíêöèÿ ñèíóñ oat[℄ g, l; // öåëî÷èñëåííûé ìàññèâ oat(oat) m; // óíêöèÿ oat -> oat; ìîæåò áûòü êàê ìåòîäîì,
òàê è àññîöèàòèâíûì ìàññèâîì ... h = g + sin; // var âûïîëíÿåò àâòîìàòè÷åñêèé âûâîä òèïà ïåðåìåííîé; òèï oat(int, oat) t = l * g; // òèï oat (int) w = m + sin; // òèï oat (oat) Ëèñòèíã 1.
var var var
Ïðèìåð óíêöèîíàëüíîãî ïðîäâèæåíèÿ â C$
Ýëåìåíòû îáúåêòíî-îðèåíòèðîâàííîãî è óíêöèîíàëüíîãî ïðîãðàììèðîâàíèÿ â ÿçûêå C$ ñîñóùåñòâóþò. Ïðè ýòîì îáðàùåíèÿ ê ïîëÿì èëè ê ñâîéñòâàì òðàêòóþòñÿ êàê óíêöèè, êîòîðûå ïðèíèìàþò îäèí ïàðàìåòð (îáúåêò êëàññà) è âîçâðàùàþò îäíî çíà÷åíèå (îáúåêò òèïà ïîëÿ êëàññà). Êàê ñëåäñòâèå, îïåðàöèÿ ¾.¿ ó÷àñòâóåò â ñóïåðïîçèöèè óíêöèé è ìîæåò ïðèìåíÿòüñÿ ê óíêöèÿì. Ïðèìåð ýòîãî ïðèâåäåí â ëèñòèíãå 2.
nal lass oat var var Ïðèìåð óíêöèîíàëüíîãî ïðîäâèæåíèÿ ñ èñïîëüçîâàíèåì äîñòóïà ê ÷ëåíó â C$
oat3 { x, y, z; } // êëàññ òðåõìåðíîãî âåêòîðà oat3 [℄ vs; // ìàññèâ âåðøèí tt = vs.x; // óíêöèÿ, êîòîðàÿ ïðèíèìàåò íà âõîä öåëîå ÷èñëî, à âîçâðàùàåò ýëåìåíòû x âåêòîðîâ ll = tt * vs.y + g; // ñì. âûøå; òèï oat (int) Ëèñòèíã 2.
40
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
 ÿçûêå C$ ââîäèòñÿ ïîíÿòèå ïðîñòîãî íåèçìåíÿåìîãî êëàññà ýòî êëàññ, îò êîòîðîãî íåëüçÿ íàñëåäîâàòü, ïîëÿ êîòîðîãî íåëüçÿ èçìåíÿòü ïîñëå ñîçäàíèÿ îáúåêòà êëàññà è ññûëêà íà êîòîðûé íå ìîæåò áûòü null. Òàêæå òðåáóåòñÿ, ÷òîáû ïîëÿ îáúåêòà ýòîãî êëàññà
íå ìîãëè ññûëàòüñÿ íà îáúåêòû ýòîãî æå êëàññà, ïðÿìî èëè êîñâåííî. Òàêèå êëàññû ìîãóò èñïîëüçîâàòüñÿ ñîâìåñòíî ñ óíêöèÿìè áåç ïîáî÷íûõ ýåêòîâ. Êðîìå òîãî, ìàññèâû îáúåêòîâ òàêèõ êëàññîâ ìîæíî õðàíèòü íå êàê ìàññèâû ññûëîê, à êàê ìàññèâû ñàìèõ îáúåêòîâ. Äëÿ îáúÿâëåíèÿ òàêîãî êëàññà ïåðåä êëþ÷åâûì ñëîâîì íóæíî ïîñòàâèòü ìîäèèêàòîð Åñëè ïðè ýòîì òðåáóåòñÿ, ÷òîáû êëàññ áûë îáû÷íûì íåíàñëåäóåìûì, à íå ïðîñòûì íåèçìåíÿåìûì, òî ïåðåä íèì íóæíî ïîñòàâèòü ìîäèèêàòîð .
lass
nal.
mutable
Èäåÿ ââåäåíèÿ ïîäîáíîãî êëàññà íå íîâà â .NET, íàïðèìåð, óæå ñóùåñòâóþò òèïû-ñòðóêòóðû (â ïðîòèâîâåñ òèïàì-êëàññàì), õîòÿ îíè íå ÿâëÿþòñÿ íåèçìåíÿåìûìè. Èäåÿ íåèçìåíÿåìûõ êëàññîâ, ñîñòîÿùèõ òîëüêî èç ïðîñòûõ òèïîâ, òàêæå èñïîëüçóåòñÿ â ÿçûêàõ X10 [25℄ è Titanium [26℄, è äëÿ òåõ æå öåëåé îáåñïå÷èòü âîçìîæíîñòü õðàíåíèÿ ìàññèâîâ îáúåêòîâ êàê ìàññèâîâ ñàìèõ îáúåêòîâ, à íå ìàññèâîâ ññûëîê.  ÿçûêå òàêæå åñòü âîçìîæíîñòü ââîäèòü êëàññû, êîòîðûå íàñëåäóþò îò óíêöèîíàëüíûõ òèïîâ. Ïóòåì ïåðåîïðåäåëåíèÿ ìåòîäà âû÷èñëåíèÿ óíêöèè ìîæíî, íàïðèìåð, ñâÿçàòü òàêîé êëàññ ñ àéëîì òîãäà ñîáñòâåííî ÷òåíèå èç àéëà íå ïðîèçîéäåò äî òîãî ìîìåíòà, êàê ýòà óíêöèÿ áóäåò äîñòèãíóòà ïðè ëåíèâîì âû÷èñëåíèè. Åñëè îïåðàöèÿ ÷òåíèÿ äîïîëíèòåëüíî ïåðåîïðåäåëåíà, íàïðèìåð, äëÿ ñëó÷àÿ, êîãäà íà âõîä ïîäàåòñÿ ìàññèâ ïîäðÿä èäóùèõ èíäåêñîâ, ýòî ïîçâîëèò âûïîëíÿòü åå áîëåå ýåêòèâíî è ïðî÷èòàòü òîëüêî òó ÷àñòü àéëà, êîòîðàÿ äåéñòâèòåëüíî íåîáõîäèìà.
Îïåðàöèÿ ðåäóêöèè
ðåàëèçîâàíà êàê ïðèìåíåíèå äâóìåñòíîé óíêöèè ñ òèïîì T (T, T) ê óíêöèè, êîòîðàÿ âîçâðàùàåò òèï T. Åñëè òàêàÿ óíêöèÿ ïîìå÷åíà êàê êîììóòàòèâíàÿ èëè àññîöèàòèâíàÿ, òî ïðè ðåäóêöèè ìîæåò èçìåíÿòüñÿ ïîðÿäîê âû÷èñëåíèé.  äàëüíåéøåì âîçìîæíî ââåäåíèå â ÿçûê îïåðàöèè îáîáùåííîé ðåäóêöèè ëþáîé îïåðàöèè, êîòîðàÿ áåðåò íà âõîä ìàññèâ è âîçâðàùàåò ñêàëÿð, ïðè ýòîì ìîæåò áûòü âû÷èñëåíà â öèêëå çà âðåìÿ O(n) (n ðàçìåð
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
41
ìàññèâà) ñ O(1) ïàìÿòè. Ñ òî÷êè çðåíèÿ êîìïèëÿòîðà, ðåäóêöèÿ, êàê è ñóïåðïîçèöèÿ, ÿâëÿåòñÿ ñïîñîáîì ðàçðåøåíèÿ ïåðåãðóçêè óíêöèé.  ÿçûêå C$ ëþáîé óíêöèîíàëüíûé îáúåêò èìååò ðÿä àòðèáóòîâ îäíèì èç íèõ ÿâëÿåòñÿ äîìåí, èëè îáëàñòü îïðåäåëåíèÿ.  êà÷åñòâå äîìåíà ìîæåò âûñòóïàòü ëþáàÿ óíêöèÿ (õîòÿ ÷àùå âñåãî ýòî äåêàðòîâî ïðîèçâåäåíèå öåëî÷èñëåííûõ ïðîìåæóòêîâ). Îïåðàöèÿ ðåäóêöèè ìîæåò áûòü âûïîëíåíà íàä óíêöèåé òîëüêî â òîì ñëó÷àå, óíêöèÿ èìååò êîíå÷íûé äîìåí â ïðîòèâíîì ñëó÷àå ãåíåðèðóåòñÿ îøèáêà. Ïðîâåðêà êîíå÷íîñòè ïðîèçâîäèòñÿ íà ýòàïå âûïîëíåíèÿ. Äëÿ òîãî, ÷òîáû ïîêàçàòü, ÷òî ïðè âû÷èñëåíèè 2 èçìåðåíèÿ ìàññèâà äîëæíû ïðîáåãàòüñÿ ïàðàëëåëüíî, à íå íåçàâèñèìî, ìîæåò áûòü èñïîëüçîâàíà êîíñòðóêöèÿ, íàçûâàåìàÿ . Ñâÿçàííàÿ ïåðåìåííàÿ ýòî ñïåöèàëüíàÿ ïåðåìåííàÿ, êîòîðàÿ èìååò òèï, íî íå èìååò îïðåäåëåííîãî çíà÷åíèÿ; îíà ñâÿçûâàåò èçìåðåíèÿ (ïàðàìåòðû) ðàçëè÷íûõ óíêöèé. Îáëàñòü, ïðîáåãàåìàÿ ïåðåìåííîé, âû÷èñëÿåòñÿ èñõîäÿ èç äîìåíîâ óíêöèé, â êîòîðûõ îíà ïðèìåíÿåòñÿ, è ÿâíûõ îãðàíè÷åíèé íà íåå (âèäà i:f, ãäå i ñâÿçàííàÿ ïåðåìåííàÿ, à f óíêöèÿ). Ñâÿçàííûå ïåðåìåííûå íå îáÿçàòåëüíî îáúÿâëÿòü ÿâíî åñëè îíè íå îáúÿâëåíû, òî èõ òèï âûâîäèòñÿ èç èõ ïåðâîãî ïðèìåíåíèÿ. Åñëè ñâÿçàííàÿ ïåðåìåííàÿ ïðèñóòñòâóåò òîëüêî âíóòðè ðåäóêöèîííîé êîíñòðóêöèè, òî ïî íåé îñóùåñòâëÿåòñÿ ðåäóêöèÿ. Ïðèìåð èñïîëüçîâàíèÿ îïåðàöèè ðåäóêöèè è ñâÿçàííûõ ïåðåìåííûõ äëÿ óìíîæåíèÿ ìàòðèö ïðèâåäåí â ëèñòèíãå 3.
íîé
ñâÿçàííîé ïåðåìåí-
type matrix = oat(int, int); // ïñåâäîíèì òèïà matrix mul(matrix a, matrix b) { var (j, k) = + (a(j, l) * b(l, k)); return ; } Ëèñòèíã 3. Ïðèìåð óìíîæåíèÿ ìàòðèö â ÿçûêå C$  äàííîì ñëó÷àå óíàðíûé + âûïîëíÿåò ðåäóêöèþ (â C$ íåò ñòàíäàðòíîãî óíàðíîãî îïåðàòîðà +) ïî ñâÿçàííîé ïåðåìåííîé l, à ïåðå-
42
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
èñ. 3. Àðõèòåêòóðà ãðàè÷åñêîãî ïðîöåññîðà êîìïàíèè AMD ìåííûå j è k îñòàþòñÿ, ò.ê. îíè îáúÿâëåíû âíå îïåðàòîðà ðåäóêöèè. Äëÿ ââåäåíèÿ êàêîé-ëèáî ïåðåìåííîé â âûðàæåíèå (óíêöèþ) ìîæåò èñïîëüçîâàòüñÿ êîíñòðóêöèÿ òèïà . Äëÿ óäîáñòâà ââåäåíû îïåðàöèè () âìåñòî ðåäóêöèîííîãî + è () âìåñòî ðåäóêöèîííîãî *. Êðîìå òîãî, â ÿçûêå â êà÷åñòâå îïåðàöèé ïðåäñòàâëåíû è , êîòîðûå òàêæå èñïîëüçóþòñÿ êàê ðåäóêöèîííûå.  òåðìèíàõ èìïåðàòèâíîãî ïðîãðàììèðîâàíèÿ ñâÿçàííûå ïåðåìåííûå ïðåäñòàâëÿþò ñîáîé öèêë áåç çàãîëîâêà; çàãîëîâîê èì íå íóæåí, ïîñêîëüêó îáëàñòü îïðåäåëåíèÿ ñâÿçàííîé ïåðåìåííîé âû÷èñëÿåòñÿ àâòîìàòè÷åñêè.  òåðìèíàõ óíêöèîíàëüíîãî ïðîãðàììèðîâàíèÿ ñâÿçàííûå ïåðåìåííûå àíàëîãè÷íû omprehensionêîíñòðóêöèÿì ñ òîé ðàçíèöåé, ÷òî â C$ íåò ñïåöèàëüíûõ ñïèñî÷íûõ òèïîâ. Èñïîëüçîâàíèå ñâÿçàííûõ ïåðåìåííûõ ïîçâîëÿåò ïðîãðàììèðîâàòü çàäà÷è ñ áîëüøåé âû÷èñëèòåëüíîé ìîùíîñòüþ, à çíà÷èò, áîëåå ïîëíî èñïîëüçîâàòü âîçìîæíîñòè ãðàè÷åñêîãî ïðîöåññîðà. Íàïðèìåð, îïåðàöèÿ ñëîæåíèÿ äâóõ áîëüøèõ ìàññèâîâ, ñêîðåå âñåãî, íå ïîçâîëèòü äîñòèãíóòü áîëåå 2% ïèêîâîé ïðîèçâîäèòåëüíîñòè ÏÓ, ò.ê. îíà èìååò ìàëóþ âû÷èñëèòåëüíóþ ìîùíîñòü. Ñ äðóãîé ñòîðîíû, îïåðàöèÿ óìíîæåíèÿ ìàòðèö ïîçâîëÿåò âûïîëíèòü O( n3 ) âû÷èñëèòåëüíûõ îïåðàöèé íà O( n2 ) âõîäíûõ äàííûõ, ÷òî ïîçâîëèò äîñòèãàòü äî 5060% ïèêîâîé ïðîèçâîäèòåëüíîñòè ÏÓ. Îáùàÿ àðõèòåêòóðà ñèñòåìû C$ èçîáðàæåíà íà ðèñóíêå 3.
sum min max
let
prod
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
43
Êîìïèëÿòîð ÿçûêà ïðåîáðàçóåò ÿçûêîâûå êîíñòðóêöèè â âûçîâû ê ñðåäå èñïîëíåíèÿ C$. Ïðè ýòîì èñõîäíûé êîä äåëèòñÿ íà îáû÷íûé è ïàðàëëåëüíûé â òåðìèíàõ C$. Êîä ñ÷èòàåòñÿ ïàðàëëåëüíûì â òåðìèíàõ C$, åñëè îí ñîäåðæèò èñïîëüçîâàíèå óíêöèîíàëüíîãî ïðîäâèæåíèÿ, ðåäóêöèè èëè ñâÿçàííûõ ïåðåìåííûõ. Òàêèì îáðàçîì, ðåøàåòñÿ çàäà÷à âûäåëåíèÿ ïàðàëëåëüíûõ ýëåìåíòîâ ïðîãðàììû, êîòîðûå ìîæíî îòîáðàæàòü â êîä äëÿ ÏÓ. Îïåðàöèÿ âû÷èñëåíèÿ óíêöèè íà âñåì äîìåíå âûðàæàåòñÿ êàê ïðèâåäåíèå óíêöèè ê ìàññèâíîìó òèïó (ò.å. òèïó ñ êâàäðàòíûìè ñêîáêàìè). Èñõîäíûé êîä íà ÿçûêå C$ òðàíñëèðóåòñÿ â ïðîìåæóòî÷íîå ïðåäñòàâëåíèå â íàñòîÿùåå âðåìÿ ýòî ñïåöèàëüíîå ðàçðàáîòàííîå íàìè ïðåäñòàâëåíèå, îäíàêî ïëàíèðóåòñÿ äëÿ ýòîé öåëè èñïîëüçîâàòü Mi rosoft Intermediate Language (MSIL) ïðåäñòàâëåíèå ïðîìåæóòî÷íîãî êîäà â .NET. Îáðàùåíèÿ ê ñðåäå âûïîëíåíèÿ C$ ñîçäàþò íàïðàâëåííûé àöèêëè÷åñêèé ãðà (ÄÀ ) óíêöèîíàëüíûõ îïåðàöèé. Îí òàêæå íàçûâàåòñÿ óíêöèîíàëüíûì ÄÀ (ÔÄÀ ).  íàñòîÿùåå âðåìÿ ýòîò ãðà èìååò 3 òèïà ëèñòîâûõ âåðøèí: ñêàëÿðû, óíêöèè, ñâÿçàííûå ïåðåìåííûå (â ò.÷. è ïóñòûå), è 3 òèïà âíóòðåííèõ âåðøèí: ïðèìåíåíèÿ óíêöèè, ðåäóêöèè è ââåäåíèÿ íîâûé ñâÿçàííûõ ïåðåìåííûõ. Ïîñëå ìàøèííî-íåçàâèñèìûõ îïòèìèçèðóþùèõ ïðåîáðàçîâàíèé ÔÄÀ ïåðåäàåòñÿ öåëåâîìó èñïîëíèòåëþ äëÿ ñåìåéñòâà àðõèòåêòóð, íàïðèìåð, äëÿ ÏÓ. Íà ýòîì ýòàïå âûáèðàþòñÿ ñïîñîáû õðàíåíèÿ äàííûõ è îòîáðàæåíèÿ êîäà íà öåëåâóþ àðõèòåêòóðó, à òàêæå ïðîèçâîäèòñÿ îñíîâíîé íàáîð ìàøèííî-çàâèñèìûõ îïòèìèçàöèé. Ñàìà ïðîãðàììà èç ÔÄÀ ïåðåâîäèòñÿ â íàáîð øåéäåðîâ íà ïðîìåæóòî÷íîì ÿçûêå. È õîòÿ ýòîò íàáîð øåéäåðîâ åùå íå ÿâëÿåòñÿ ïðîãðàììîé, èñïîëíÿåìîé íà àïïàðàòóðå, îí íàñòîëüêî áëèçîê ê íåé, ÷òî ðàáîòà, âûïîëíÿåìàÿ íà ñëåäóþùåì ýòàïå (èñïîëíèòåëÿ äëÿ êîíêðåòíîé àðõèòåêòóðû) ÿâëÿåòñÿ ñêîðåå ìåõàíè÷åñêîé. Íàêîíåö, ñàìûì íèæíèì óðîâíåì íàøåé ñèñòåìû ÿâëÿåòñÿ èñïîëíèòåëü äëÿ êîíêðåòíîé àðõèòåêòóðû. Îñíîâíîé åãî çàäà÷åé ÿâëÿåòñÿ ïðåäîñòàâëåíèå ñòàíäàðòíîãî èíòåðåéñà óðîâíþ ñåìåéñòâà àðõèòåêòóð. Ýòîò èíòåðåéñ âêëþ÷àåò â ñåáÿ ìåõàíèçì óïðàâëåíèÿ ïàìÿòüþ, ìåõàíèçì òðàíñëÿöèè êîäà èç ïðîìåæóòî÷íîãî ïðåäñòàâëåíèÿ â ìàøèííûé, è ìåõàíèçì ñîîáùåíèÿ î âîçìîæíîñòÿõ óñòðîé-
44
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
ñòâà. Ê ïîñëåäíèì îòíîñèòñÿ, íàïðèìåð, ìàêñèìàëüíîå êîëè÷åñòâî äîñòóïíûõ äëÿ ÷òåíèÿ èëè çàïèñè áóåðîâ, ìàêñèìàëüíîå êîëè÷åñòâî äîñòóïíûõ ðåãèñòðîâ è äðóãèå îñîáåííîñòè. àáîòà ñ ïàìÿòüþ òîæå ðàñïðåäåëåíà ïî óðîâíÿì ñèñòåìû, êàê è ðàáîòà ñ òðàíñëÿöèåé ïðîãðàììû. Óðîâåíü ñèñòåìû âðåìåíè âûïîëíåíèÿ ðàáîòàåò ñ óíêöèÿìè è ïðÿìîóãîëüíûìè ìàññèâàìè íàïðèìåð, ñ ìàññèâàìè âåùåñòâåííûõ ÷èñåë. Îí çíàåò ðàíã è äîìåí ìàññèâà, íî íè÷åãî íå çíàåò î òîì, êàê îí õðàíèòñÿ â ïàìÿòè. Íàèáîëåå âàæíûì óðîâíåì ÿâëÿåòñÿ óðîâåíü èñïîëíèòåëÿ äëÿ ñåìåéñòâà àðõèòåêòóð. Åãî çàäà÷à ñîñòîèò â òîì, ÷òîáû ýåêòèâíî ïðåäñòàâèòü èñõîäíûé ìàññèâ ïðîèçâîëüíîé ðàçìåðíîñòè â ïàìÿòè óñòðîéñòâà äëÿ îðãàíèçàöèè â äàëüíåéøåì åãî ýåêòèâíîé îáðàáîòêè. Íà ýòîì óðîâíå, íàïðèìåð, ðåøàþòñÿ âîïðîñû îòîáðàæåíèÿ èñõîäíûõ ìàññèâîâ â ìàññèâû ðàçìåðíîñòè, ïîääåðæèâàåìîé àïïàðàòóðîé, íàïðèìåð, ðàçìåðíîñòè 2, êàê íà áîëüøèíñòâå ÏÓ. Êðîìå òîãî, ðåøàåòñÿ çàäà÷à ñèíõðîíèçàöèè äàííûõ; ýòî ïîçâîëÿåò ìèíèìèçèðîâàòü êîëè÷åñòâî äîðîãîñòîÿùèõ îïåðàöèé îáìåíà ìåæäó ÎÇÓ è âèäåîÎÇÓ. Íàêîíåö, óðîâåíü èñïîëíèòåëÿ äëÿ êîíêðåòíîé àðõèòåêòóðû ðåøàåò çàäà÷ó óïðàâëåíèÿ èçè÷åñêîé ïàìÿòüþ.
5. Òðàíñëÿöèÿ îïåðàöèé íàä ìàññèâàìè â ñèñòåìå C$ Òðàíñëÿöèÿ ìàññèâíûõ îïåðàöèé îñóùåñòâëÿåòñÿ â 3 ýòàïà: ñðåäîé âðåìåíè âûïîëíåíèÿ, öåëåâûì èñïîëíèòåëåì äëÿ ñåìåéñòâà è öåëåâûì èñïîëíèòåëåì äëÿ êîíêðåòíîé àðõèòåêòóðû. Ïðè ýòîì ñðåäà âðåìåíè âûïîëíåíèÿ îñóùåñòâëÿåò ìàøèííî-íåçàâèñèìóþ îïòèìèçàöèþ òàêóþ êàê óäàëåíèå ïîâòîðÿþùèõñÿ âûðàæåíèé è ñâåðòêó êîíñòàíò. Òàêæå îíà îïðåäåëÿåò ñïèñêè èçìåðåíèé â êàæäîé âåðøèíå ÔÄÀ . Ñàìîå âàæíîå, íà ýòîì ýòàïå äëÿ êàæäîé âåðøèíû ãðàà âû÷èñëÿåòñÿ åå äîìåí. Âïîñëåäñòâèè îí èñïîëüçóåòñÿ äëÿ âûäåëåíèÿ ïàìÿòü ïîä öåëåâóþ óíêöèþ è îïðåäåëåíèÿ îáëàñòè åå âû÷èñëåíèÿ. àçìå÷åííûé òàêèì îáðàçîì ãðà ïîñòóïàåò íà âõîä öåëåâîìó èñïîëíèòåëþ äëÿ ñåìåéñòâà àðõèòåêòóð ÏÓ, êîòîðûé ïðåîáðàçóåò
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
45
åãî â ïîñëåäîâàòåëüíîñòü øåéäåðîâ. Åãî ðàáîòà ñîñòîèò èç íåñêîëüêèõ ýòàïîâ: 1. Äåëåíèå èñõîäíîãî ãðàà íà ïðîõîäû. Êàæäûé ïðîõîä ñîîòâåòñòâóåò èñïîëíåíèþ îäíîãî øåéäåðà. 2. Âûáîð îòîáðàæåíèÿ äàííûõ è êîäà íà öåëåâóþ àðõèòåêòóðó. Çäåñü âûáèðàåòñÿ ñõåìà ïðåäñòàâëåíèÿ äàííûõ â èçè÷åñêîé ïàìÿòè óñòðîéñòâà, à ñïîñîá èçè÷åñêîé ðåàëèçàöèè ìàññèâíûõ îïåðàöèé. 3. åíåðàöèÿ èíäåêñîâ äëÿ îïåðàöèé ÷òåíèÿ èç ïàìÿòè. Ïîñêîëüêó ïðè ýòîì äîëæíû ó÷èòûâàòüñÿ îòîáðàæåíèÿ èñõîäíîãî è öåëåâîãî ìàññèâà, à òàêæå ïðîìåæóòî÷íûõ îïåðàöèé, ýòà ãåíåðàöèÿ âûíåñåíà â îòåëüíûé ýòàï. 4. åíåðàöèÿ øåéäåðíîãî êîäà â ïðîìåæóòî÷íîì ïðåäñòàâëåíèè ïî ÔÄÀ . Ïðè ýòîì ìàññèâíûå îïåðàöèè îòîáðàæàþòñÿ íà àðèìåòè÷åñêèå îïåðàöèè â øåéäåðå, à îïåðàöèè ðåäóêöèè ëèáî íà ðåäóêöèþ âäîëü èçìåðåíèé áóåðà ïàìÿòè, åñëè åå ðåçóëüòàòîì ÿâëÿåòñÿ ñêàëÿð, ëèáî íà öèêë âíóòðè øåéäåðà, åñëè ðåçóëüòàòîì åå ÿâëÿåòñÿ äðóãàÿ óíêöèÿ. Ñãåíåðèðîâàííûé øåéäåðíûé êîä ïîäàåòñÿ íà âõîä óðîâíþ èñïîëíèòåëÿ äëÿ êîíêðåòíîé àðõèòåêòóðû. Åãî çàäà÷à ïðåîáðàçîâàòü êîä èç ýòîãî ïðåäñòàâëåíèÿ â êîä, ïðèãîäíûé äëÿ èñïîëíåíèÿ íà öåëåâîì ÏÓ. Íà ðèñ. 4 ïðèâåäåíî äåðåâî, êîòîðîå ñòðîèòñÿ ïî êîäó óìíîæåíèÿ ìàòðèö, ïðèâåäåííîìó â ëèñòèíãå 3. Èñïîëüçóåìûå òèïû âåðøèí: ïðèìåíåíèÿ óíêöèè , ðåäóêöèè R. Ïðè ýòîì â ñêîáêàõ ó âåðøèí ðåäóêöèè óêàçàíû ñâÿçàííûå ïåðåìåííûå, ïî êîòîðûì èäåò ðåäóêöèÿ. Ñâÿçàííûå ïåðåìåííûå è ìàññèâû ïîìå÷åíû áóêâàìè. Íà ðèñ. 5 ïðèâåäåí êîä, ïîëó÷åííûé èç ýòîãî ãðàà âûðàæåíèé äëÿ óìíîæåíèÿ ìàòðèö ðàçìåðîì 1024 íà 1024. Îáðàòèòå âíèìàíèå, ÷òî êîä áûë ñãåíåðèðîâàí ñ ó÷åòîì òîãî, ÷òî ÏÓ ðàáîòàåò ñ ÷åòâåðêàìè âåùåñòâåííûõ ÷èñåë. Îïåðàöèÿ ðåäóêöèè áûëà àâòîìàòè÷åñêè
46
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
èñ. 4. ÄÀ îïåðàöèé, ïîñòðîåííûé ïî êîäó ïåðåìíîæåíèÿ ìàòðèö ïðåîáðàçîâàíà â äâîéíîé öèêë, ò.ê. ìàêñèìàëüíîå ÷èñëî èòåðàöèé öèêëà íà ÏÓ (255) ìåíüøå, ÷åì ïîëîâèíà ðàçìåðà ìàòðèöû. Ìàòðèöà ïðåäñòàâëåíà áóåðîì èç 512 × 512 ÷åòâåðîê âåùåñòâåííûõ ÷èñåë, ïðè ýòîì êàæäàÿ èç ÷åòâåðîê ýòî ïîäìàòðèöà ðàçìåðîì 2 × 2 . Ñëåäóåò ñêàçàòü, ÷òî áîëåå ýåêòèâíûé (â 2 ðàçà) êîä, ãåíåðèðóåìûé íàøåé ñèñòåìîé, åùå â äâà ðàçà äëèííåå, è íå ïðèâåäåí çäåñü ïî ïðè÷èíå ýêîíîìèè ìåñòà.
6. åçóëüòàòû è íàïðàâëåíèÿ äàëüíåéøåé ðàáîòû
×àñòü ñèñòåìû C$ áûëà ðåàëèçîâàíà íà ÿçûêå C# 2.0 äëÿ ðàáîòû â ñðåäå âûïîëíåíèÿ .NET 2.0. Äîñòóï ê ãðàè÷åñêîìó ïðîöåññîðó îñóùåñòâëÿëñÿ ñðåäñòâàìè ATI DPVM [14℄. Òåêóùàÿ ðåàëèçàöèÿ ñèñòåìû èìååò ñëåäóþùèå îãðàíè÷åíèÿ ïî ñðàâíåíèþ ñ îïèñàííûìè âûøå èäåÿìè: Ïîääåðæèâàþòñÿ òîëüêî ïðîñòûå óíêöèè (ò.å. îïåðàöèè ñ ïðîñòûìè òèïàìè oat, int) è ìàññèâû.
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
47
èñ. 5. Øåéäåðíûé êîä, ñãåíåðèðîâàííûé ïî ÄÀ íà ðèñ. 4 Ïîääåðæèâàþòñÿ òîëüêî äîìåíû, ïðåäñòàâëÿþùèå ñîáîé äåêàðòîâî ïðîèçâåäåíèå öåëî÷èñëåííûõ ïðîìåæóòêîâ, ëèáî ïîëíûå äîìåíû. Òðàíñëÿöèÿ îñóùåñòâëÿåòñÿ â ñïåöèè÷åñêîå ïðîìåæóòî÷íîå ïðåäñòàâëåíèå, à íå â êîä MSIL. Ýòî, îäíàêî, ïëàíèðóåòñÿ èñïðàâèòü. Íå ïîääåðæèâàþòñÿ âåðøèíû ââåäåíèÿ äîïîëíèòåëüíûõ ïåðåìåííûõ (let-âåðøèíû). Îäíàêî ïîääåðæèâàþòñÿ ðåäóêöèîííûå âåðøèíû è âåðøèíû ñóïåðïîçèöèè.
48
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
 îñòàëüíîì æå óíêöèîíàëüíîñòü òåêóùåé ñèñòåìû ðåàëèçîâàíà â ñîîòâåòñòâèè ñ âûñêàçàííûìè âûøå èäåÿìè. Ñèñòåìà áûëà ïðîòåñòèðîâàíà íà êîäå óìíîæåíèÿ ìàòðèö, ïðèâåäåííîì â ëèñòèíãå 3. Òåñòèðîâàíèå ïðîâîäèëîñü íà ìàòðèöàõ ðàçëè÷íûõ ðàçìåðîâ è ñ ðàçëè÷íûìè íàñòðîéêàìè îïòèìèçàöèè.  òàáëèöå 1 ïðèâåäåíû ðåçóëüòàòû (ïðîèçâîäèòåëüíîñòü â ëîïñ) äëÿ ðàçëè÷íûõ íàñòðîåê îïòèìèçàöèè. Ïðè ýòîì ìàòðèöà ïðåäñòàâëÿëàñü â âèäå ïðîñòîãî äâóìåðíîãî ìàññèâà ( 1 × 1 ), â âèäå ìàññèâà ïîäìàòðèö 2×2 è ìàññèâà ïîäìàòðèö 4×4 . Êðîìå òîãî, äëÿ ñðàâíåíèÿ ïðèâîäèòñÿ ïðîèçâîäèòåëüíîñòü ðó÷íîé ðåàëèçàöèè ïðîöåäóðû sgemm íà àññåìáëåðå èç ïðèìåðîâ AMD äëÿ DPVM. àçìåð ìàòðèöû Íàñòðîéêè îïòèìèçàöèè oat, 1 ∗ 1 oat4, 2 ∗ 2 oat4, 4 ∗ 4 ðó÷íàÿ îïòèìèçàöèÿ
128 × 128
256 × 256
512 × 512
1024 × 1024
3.94 8.10 9.03
5.00 14.20 24.13
5.16 15.66 29.16 30
4.61 15.81 29.35 31
Òàáë. 1. Ïðîèçâîäèòåëüíîñòü ïðîãðàììû óìíîæåíèÿ ìàòðèö íà ìàòðèöàõ ðàçëè÷íûõ ðàçìåðîâ ïðè ðàçëè÷íûõ íàñòðîéêàõ îïòèìèçàöèè Íà îñíîâàíèè ðåçóëüòàòîâ, ïðèâåäåííûõ â òàáëèöå 1, ìîæíî ñäåëàòü ðÿä âûâîäîâ. Âî-ïåðâûõ, ñ óâåëè÷åíèåì ðàçìåðà ìàòðèöû ïðîèçâîäèòåëüíîñòü âû÷èñëåíèé ðàñòåò. Ýòî ìîæíî îáúÿñíèòü äâóìÿ ïðè÷èíàìè. Ñ îäíîé ñòîðîíû, çàïóñê øåéäåðà íà ÏÓ òðåáóåò èêñèðîâàííûõ íàêëàäíûõ ðàñõîäîâ, òàêèõ êàê êîììóíèêàöèè ìåæäó ÖÏÓ è ÏÓ, óñòàíîâêè ðåãèñòðîâ äàííûõ è êîìàíä, è äðóãèõ. Ñ äðóãîé ñòîðîíû, è ýòî áîëåå âàæíî, â ñàìîì øåéäåðå åñòü ó÷àñòîê íà÷àëüíîé èíèöèàëèçàöèè (èíèöèàëèçàöèÿ èíäåêñîâ, ïåðåìåííûõ ðåäóêöèè) è öèêëè÷åñêèé ó÷àñòîê. Ñ ðîñòîì ðàçìåðà ìàòðèöû ðàñòåò
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
49
äîëÿ öèêëè÷åñêîãî ó÷àñòêà â îáùåì ÷èñëå êîìàíä, à çíà÷èò, âîçðàñòàåò ïðîèçâîäèòåëüíîñòü. Âî-âòîðûõ, îïòèìèçàöèè, ñâÿçàííûå ñ ïîâûøåíèåì âû÷èñëèòåëüíîé ìîùíîñòè ñãåíåðèðîâàííîãî êîäà, ïðèíîñÿò çíà÷èòåëüíûé âûèãðûø. Òðåõêðàòíûé ðîñò ïðîèçâîäèòåëüíîñòè íàáëþäàåòñÿ ïðè ïåðåõîäå îò òðèâèàëüíîãî àëãîðèòìà ê àëãîðèòìó ñ áëîêàìè 2 × 2 . Äâóêðàòíûé ðîñò íàáëþäàåòñÿ ïðè ïåðåõîäå ê áëîêàì ðàçìåðà 4 × 4 . Ñëåäóåò çàìåòèòü, ÷òî ìàêñèìàëüíûé ðàçìåð áëîêà îãðàíè÷åí îáùèì ÷èñëîì âûõîäíûõ ýëåìåíòîâ, ïîýòîìó óâåëè÷èâàòü ðàçìåð áëîêà äàëüøå íåò âîçìîæíîñòè. Ïðè ýòîì ðîñò ïðîèçâîäèòåëüíîñòè ïðè ïåðåõîäå ê áëîêàì 2 × 2 îáóñëîâëåí êàê ïîâûøåíèåì îòíîøåíèÿ êîëè÷åñòâà àðèìåòè÷åñêèõ îïåðàöèé ê êîëè÷åñòâó ÷òåíèé, òàê è ïîâûøåíèåì ýåêòèâíîñòè èñïîëüçîâàíèÿ àðèìåòè÷åñêèõ îïåðàöèé. îñò æå ïðè ïåðåõîäå îò 2 × 2 ê 4 × 4 îáóñëîâëåí òîëüêî ïîâûøåíèåì îòíîøåíèÿ êîëè÷åñòâà àðèìåòè÷åñêèõ îïåðàöèé ê ÷òåíèþ èç ïàìÿòè, ïîòîìó îí è ìåíüøå. åçóëüòàòû, ïðèâåäåííûå â òàáëèöå 1, óæå ñàìè ïî ñåáå íåïëîõè.  ëó÷øåì ñëó÷àå äîñòèãíóòà ïðèìåðíî ïîëîâèíà ïèêîâîé ïðîèçâîäèòåëüíîñòè, è, ÷òî ñàìîå âàæíîå - ïî÷òè 100% ïðîèçâîäèòåëüíîñòè, äîñòèãíóòîé ïðè ïîìîùè ðó÷íîé îïòèìèçàöèè. Äàëüíåéøåå ðàçâèòèå ñèñòåìû ìîæåò èäòè ïî íåñêîëüêèì íàïðàâëåíèÿì. Âî-ïåðâûõ, ýòî ðàñøèðåíèå ãèáêîñòè ñèñòåìû C$. Ïðåæäå âñåãî ýòî âîçìîæíîñòü èñïîëüçîâàòü îïðåäåëåííûå ïîëüçîâàòåëåì óíêöèè, à òàêæå ïðîñòûå íåèçìåíÿåìûå êëàññû. Ýòî ïîçâîëèò ïðèìåíÿòü ñèñòåìó äëÿ ðåøåíèÿ áîëåå øèðîêîãî êëàññà ℄ çàäà÷. Âî-âòîðûõ, ýòî ðàñøèðåíèå íàáîðà öåëåâûõ àðõèòåêòóð, íà êîòîðûõ ñèñòåìà C$ ñìîæåò ðàáîòàòü. Ïîìèìî ïîääåðæêè OpenGL è Dire tX, êîòîðûå õîðîøè ïðåæäå âñåãî âîçìîæíîñòüþ ðàáîòàòü ñ ïðàêòè÷åñêè ëþáûìè ÏÓ, áîëüøîé èíòåðåñ ïðåäñòàâëÿþò ïðîöåññîðû ñåìåéñòâà NVIDIA GeFor e 8. Äëÿ èõ ýåêòèâíîãî ïðîãðàììèðîâàíèÿ íåîáõîäèìî ðàçðàáîòàòü ìåòîäû ðàáîòû ñ ïðîìåæóòî÷íîé ñòàòè÷åñêîé ïàìÿòüþ.  áîëåå äàëåêîé ïåðñïåêòèâå èíòåðåñíû ìíîãîÿäåðíûå ñèñòåìû è ïðîöåññîðû CELL. Êðîìå ýòîãî, ïîòðåáóåòñÿ áîëåå øèðîêèé íàáîð îïòèìèçàöèé äëÿ íîâîãî ïîêîëåíèÿ ÏÓ AMD.
50
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
Â-òðåòüèõ, ýòî ðàñøèðåíèå ñèñòåìû C$ íà öåëåâûå àðõèòåêòóðû ñ íåñêîëüêèìè ãðàè÷åñêèìè ïðîöåññîðàìè. Ýòà çàäà÷à ñòàíîâèòñÿ àêòóàëüíîé ñ âîçðàñòàíèåì ðàñïðîñòðàíåííîñòè ïîäîáíûõ ñèñòåì, ñîçäàííûõ íà îñíîâå ÏÓ îò AMD è NVIDIA. Êðîìå òîãî, ñïåöèàëèçèðîâàííûå ðåøåíèÿ äëÿ âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé îò ýòèõ êîìïàíèé ÷àùå âñåãî îñíàùàþòñÿ ÏÓ îò AMD è NVIDIA.
Ñïèñîê ëèòåðàòóðû
[1℄ GPGPU.org. http://www.gpgpu.org/. [2℄ Fatahalian, K., Sugerman, J. è Hanrahan, P. Understanding the e ien y of GPU algorithms for matrix-matrix multipli ation// ACM Press, 2004. P. 133137. ISBN ISSN:17273471, 3-905673-150. [3℄ Bolz, Je, et . Sparse matrix solvers on the GPU: onjugate gradients and multigrid// ACM Press, 2005. ACM SIGGRAPH 2005. [4℄ Goodnight, Nolan, et . A multigrid solver for boundary value problems using programmable graphi s hardware// Pro eedings of SIGGRAPH/EUROGRAPHICS Workshop On Graphi s Hardware. P.102111. ISBN ISSN:17273471, 1-58113-739-7. [5℄ Farrugia, J.P., et . GPUCV: A framework for image pro essing a
eleration with graphi s pro essors // Pro eedings of IEEE International Conferen e on Multimedia & Expo (ICME 2006). [6℄ Mit hel, Jason L., Ansari, Marvan Y., Hart, Evan. Advan ed Image Pro essing with Dire tX 9 Pixel Shaders. ATI Te hnologies In . Shader X2. 2004. [7℄ Adinetz, Andrew V., Berezin, Sergey B. Implementing Classi al Ray Tra ing on GPU - a Case Study of GPU Programming// Pro eedings of Graphi on'06. P.17. ISBN 5-89407-262-X.
Ïðîãðàììèðîâàíèå íà ãðàè÷åñêèõ ïðîöåññîðàõ
51
[8℄ Belleman, Robert G., Bedorf, Jeroen, Portegies Zwart, Simon F. High Performan e Dire t Gravitational N-Body Simulations on Graphi s Pro essing Units. Elsevier Preprint. 16 èþëÿ 2007 ã. [9℄ Wikipedia. Fortran. http://en.wikipedia.org/wiki/Fortran. [10℄ OpenGL.org. http://www.opengl.org. [11℄ Kesseni h, John, Baldwin, Dave, Rost, Randi. The OpenGL Shading Language. 7 September 2006. [12℄ AMD In . ATI Web Site. http://ati.amd. om/. [13℄ NVIDIA Corporation. http://www.nvidia. om/page/home.html. [14℄ Peer y, Mark, Segal, Mark, Gerstmann, Derek. A performan eoriented data parallel virtual ma hine for GPUs// Pro eedings of ACM SIGGRAPH 2006 Sket hes. ISBN: 1-59593-364-6. [15℄ NVIDIA Corporation. NVIDIA CUDA Complete Unied Devi e Ar hite ture. 12 February 2007. [16℄ Segal, Mark, Akeley, Kurt. The OpenGL (R) Graphi s System: A Spe i ation (Version 2.1). Edited by Pat Brown. 1 De ember 2006. [17℄ Persson, Emil. ATI Radeon TM HD 2000 Programming Guide. June 2007. [18℄ IBM Corporation. Cell Broadband Engine Ar hite ture. 3 O tober 2006. [19℄ Bu k, Ian, et . Brook for GPUs: stream omputing on graphi s hardware// ACM Press, 2004. P.777786. [20℄ Foley, Tim, Sugerman, Jeremy. KD-tree a
eleration stru tures for a GPU raytra er// Pro eedings of SIGGRAPH/EUROGRAPHICS Workshop On Graphi s Hardware. P.1522. ISBN:1-59593-086-8. [21℄ Tarditi, David, Puri, Sidd, Oglesby, Jose. A
elerator: using data parallelism to program GPUs for general-purpose uses// Pro eedings of the 12th international onferen e on Ar hite tural
52
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ support for programming languages and operating systems. P.325 335. SESSION: Embedded and spe ial-purpose systems.
[22℄ PeakStream In . http://www.peakstreamin . om/. [23℄ Rapid Mind In . http://www.rapidmind.net/. [24℄ Adinetz, Andrew V. C$ http://www. odeplex. om/ bu ks.
Proje t
Web
Site.
[25℄ Saraswat, Vijay. Report on the Experimental Language X10. 8 äåêàáðÿ 2006. [26℄ Bona hea, Dan, et . Titanium Language Referen e Manual. Berkeley, California, USA. Àâãóñò 2006 ã.
Âëèÿíèå õàðàêòåðèñòèê ïðîãðàììíî-àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé À. Ñ. Àíòîíîâ
⋆
Ñîçäàâàåìûé â ÍÈÂÖ Ì Ó èìåíè Ì.Â.Ëîìîíîñîâà ïðîöåññîðíûé ïîëèãîí ïîçâîëÿåò èññëåäîâàòü âëèÿíèå áàçîâûõ õàðàêòåðèñòèê ïðîãðàììíî-àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü ïîëüçîâàòåëüñêèõ ïðèëîæåíèé. Òàêîé àíàëèç íåîáõîäèì äëÿ ïîëó÷åíèÿ íà ðåàëüíûõ ïðîãðàììàõ ìàêñèìàëüíî âîçìîæíîé ïðîèçâîäèòåëüíîñòè.
1. Ââåäåíèå
Ïðàêòèêà ïîêàçûâàåò, ÷òî äëÿ ðåàëüíûõ ïðèëîæåíèé, íàïèñàííûõ íà ÿçûêå âûñîêîãî óðîâíÿ, âåñüìà òðóäíî ïîëó÷èòü ïðîèçâîäèòåëüíîñòü ïðîöåññîðíîãî ÿäðà, ïðåâûøàþùóþ 15-20% îò ïèêîâîé. Ïðè÷¼ì ýòî êàñàåòñÿ âñåõ íàèáîëåå ðàñïðîñòðàí¼ííûõ íà äàííûé ìîìåíò ñåðèéíûõ ìèêðîïðîöåññîðîâ. Ïðèìåíÿÿ äîñòàòî÷íî ñëîæíûå óõèùðåíèÿ èëè èñïîëüçóÿ íèçêîóðîâíåâóþ îïòèìèçàöèþ, èíîãäà óäà¼òñÿ ñóùåñòâåííî ïðèáëèçèòüñÿ ê ïèêîâûì õàðàêòåðèñòèêàì [1℄, íî ýòî îáû÷íî íåïðèìåíèìî äëÿ ðåàëüíûõ ïîëüçîâàòåëüñêèõ çàäà÷. Äëÿ ïîëó÷åíèÿ âûñîêîé ýåêòèâíîñòè ïîëüçîâàòåëüñêîãî ïðèëîæåíèÿ íóæíî ó÷èòûâàòü áîëüøîå êîëè÷åñòâî àêòîðîâ, âëèÿþùèõ íà ïðîèçâîäèòåëüíîñòü êîíêðåòíîãî ïðîöåññîðà. Ýòè àêòîðû îïðåäåëÿþòñÿ êàê âíóòðåííåé àðõèòåêòóðîé âû÷èñëèòåëüíîãî óçëà, òàê è âëèÿíèåì âñåãî êîìïëåêñà ïðîãðàììíîãî îáåñïå÷åíèÿ. Ïðè ýòîì âñ¼ ìíîæåñòâî àêòîðîâ äåéñòâóåò îäíîâðåìåííî, â ðåçóëüòàòå ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
54
À. Ñ. Àíòîíîâ
÷åãî è ïîëó÷àåòñÿ ñòîëü ñóùåñòâåííîå óìåíüøåíèå ïðîèçâîäèòåëüíîñòè. Èññëåäîâàòü âëèÿíèå áàçîâûõ õàðàêòåðèñòèê ïðîãðàììíî-àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé ìîæíî ïðè íàëè÷èè ïîäõîäÿùåé àïïàðàòíîé áàçû, ìàêñèìàëüíî ïîëíîãî êîìïëåêòà ñèñòåìíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ è ðàçðàáîòàííîé ñèñòåìû òåñòîâ, ïîçâîëÿþùåé ïðîâîäèòü êîìïëåêñíîå èññëåäîâàíèå ìàêñèìàëüíîãî êîëè÷åñòâà àêòîðîâ, îòðàæàþùèõñÿ íà ïðîèçâîäèòåëüíîñòè.
2. Àïïàðàòíàÿ áàçà è ñèñòåìíîå ïðîãðàììíîå îáåñïå÷åíèå
 ÍÈÂÖ Ì Ó èìåíè Ì.Â.Ëîìîíîñîâà ñîçäà¼òñÿ óíèêàëüíûé ïðîöåññîðíûé ïîëèãîí èç âû÷èñëèòåëüíûõ óçëîâ íà îñíîâå ñîâðåìåííûõ ñåðèéíûõ ìèêðîïðîöåññîðîâ. Ê íàñòîÿùåìó ìîìåíòó îí ñîäåðæèò 20 ñåðâåðîâ. Ýòî âû÷èñëèòåëüíûå ñåðâåðà íà áàçå: 5 ñåðâåðîâ íà áàçå ïðîöåññîðîâ AMD Opteron ñî ñëåäóþùèìè õàðàêòåðèñòèêàìè: Íàçâàíèå
Òèï
Òàêòîâàÿ
×èñëî
×èñëî
Îáú¼ì
óçëà
ïðîöåññîðà
÷àñòîòà,
ïðîö.
ÿäåð íà
ÎÏ,
ïðîèç-
ïðîö.
Á
âîäèòåëü-
ö
Ïèêîâàÿ
íîñòü óçëà, GFlop/s opteron1
Opteron 244
1.8
2
1
2
opteron2
Opteron 244
1.8
2
1
2
7.2 7.2
opteron3
Opteron 280
2.4
2
2
4
19.2
opteron4
Opteron 265
1.8
2
2
4
14.4
opteron5
Opteron 265
1.8
1
2
2
7.2
1 ñåðâåð íà áàçå ïðîöåññîðà IBM Power5 ñî ñëåäóþùèìè õàðàêòåðèñòèêàìè: Íàçâàíèå
Òèï
Òàêòîâàÿ
×èñëî
×èñëî
Îáú¼ì
Ïèêîâàÿ
óçëà
ïðîöåññîðà
÷àñòîòà,
ïðîö.
ÿäåð íà
ÎÏ,
ïðîèçâîäè-
ïðîö.
Á
òåëüíîñòü
ö
óçëà, GFlop/s power1
POWER5
1.65
2
2
4
26.4
14 ñåðâåðîâ íà áàçå ïðîöåññîðîâ Intel ñî ñëåäóþùèìè õàðàêòåðèñòèêàìè:
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
55
Íàçâàíèå
Òèï
Òàêòîâàÿ
×èñëî
×èñëî
Îáú¼ì
Ïèêîâàÿ
óçëà
ïðîöåññîðà
÷àñòîòà,
ïðîö.
ÿäåð íà
ÎÏ,
ïðîèçâîäè-
ïðîö.
Á
òåëüíîñòü
ö
óçëà, GFlop/s dempsey1
Xeon 5050
3
1
2
4
12
xeon1
Xeon EM64T
3.2
2
1
4
12.8
pentiumd1
PentiumD 945
3.4
1
2
4
13.6
pentium41
Pentium 4 531
3.0
1
1
2
6
wood rest1
Xeon 5150
2.66
1
2
16
21.28
wood rest2
Xeon 5150
2.66
2
2
8
42.56
wood rest3
Xeon 5150
2.66
1
2
4
21.28
wood rest4
Xeon 5150
2.66
1
2
4
21.28
wood rest5
Xeon 5160
3
2
2
10
48
wood rest6
Xeon 5130
2
2
2
8
32
wood rest7
Xeon 5130
2
2
2
8
32
lovertown1
Xeon 5310
1.6
2
4
16
51.2
lovertown2
Xeon 5345
2.33
1
4
6
37.28
lovertown3
Xeon 5355
2.66
1
4
6
42.56
Ñóììàðíàÿ ïèêîâàÿ ïðîèçâîäèòåëüíîñòü ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà ñîñòàâëÿåò 475.44 GFlop/s, ñóììàðíûé îáú¼ì îïåðàòèâíîé ïàìÿòè 118 áàéò. Ñåðâåðà â ïðîöåññîðíûé ïîëèãîí ïîäáèðàþòñÿ òàêèì îáðàçîì, ÷òîáû îòñëåäèòü îñíîâíûå òåíäåíöèè ðàçâèòèÿ êîìïüþòåðíîãî ðûíêà è ïðåäîñòàâèòü âîçìîæíîñòü èññëåäîâàíèÿ ìàêñèìàëüíîãî êîëè÷åñòâà àêòîðîâ, âëèÿþùèõ íà ïðîèçâîäèòåëüíîñòü ñîâðåìåííûõ ñåðèéíûõ ìèêðîïðîöåññîðîâ. Âñå ñåðâåðà óñòàíîâëåíû â ñòîéêó, èìåþò îðì-àêòîð 12U è äîñòóïíû ïîñðåäñòâîì ñèñòåìû î÷åðåäåé Cleo [3℄. Íà óçëàõ ïðîöåññîðíîãî ïîëèãîíà óñòàíîâëåíà ÎÑ Linux, äèñòðèáóòèâ SUSE 10.1, íà óçëå power1 AIX 5.3. Íà âñåõ óçëàõ ïðîöåññîðíîãî ïîëèãîíà (êðîìå óçëà power1) óñòàíîâëåíû ñëåäóþùèå êîìïèëÿòîðû: GNU (C, C++, Fortran 77/90/95) 4.1.2 (4.0.2); Intel Compilers (C, C++, Fortran 77/90/95) 9.1; Portland Group In . Compilers (C, C++, Fortran 77/90/95) 6.2-5; PathS ale EKOPath Compiler Suite (C, C++, Fortran 90/95) 2.5; Absoft Fortran (Fortran77/90/95) 9.0.
56
À. Ñ. Àíòîíîâ
Äëÿ êîððåêòíîãî ñðàâíåíèÿ ðàçëè÷íûõ êîìïèëÿòîðîâ, åñëè íå óêàçàíî äîïîëíèòåëüíî, èñïîëüçîâàëàñü òîëüêî îïöèÿ ñòàíäàðòíîé îïòèìèçàöèè -O3. Èñïîëüçîâàíèþ áîëåå ñïåöèè÷íûõ äëÿ êàæäîãî êîìïèëÿòîðà îïöèé ïîñâÿùåíî îòäåëüíîå èññëåäîâàíèå. Äëÿ çàäà÷, òðåáóþùèõ ïàðàëëåëüíîãî èñïîëíåíèÿ, èñïîëüçîâàëàñü áèáëèîòåêà Intel MPI 3.0. Äëÿ êîìïèëÿöèè òåñòà HPL áûëè óñòàíîâëåíû àëüòåðíàòèâíûå áèáëèîòåêè ATLAS 3.7.30, MKL 5.2 è GotoBLAS 1.11.
3. Êîìïëåêñíîå òåñòèðîâàíèå âû÷èñëèòåëüíûõ ñåðâåðîâ
Äëÿ ðåøåíèÿ çàäà÷ êîìïëåêñíîãî òåñòèðîâàíèÿ âû÷èñëèòåëüíûõ ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà ïðåäíàçíà÷åíà ñèñòåìà òåñòîâ, âêëþ÷àþùèõ êàê øèðîêî èçâåñòíûå òåñòû, òàê è òåñòû, ðàçðàáîòàííûå â ÍÈÂÖ Ì Ó èìåíè Ì.Â.Ëîìîíîñîâà. HPL (High Performan e Linpa k) ñòàíäàðòíûé òåñò, ðåàëèçóþùèé ðåøåíèå áîëüøèõ ñèñòåì ëèíåéíûõ àëãåáðàè÷åñêèõ óðàâíåíèé ìåòîäîì LU-ðàçëîæåíèÿ. Âû÷èñëåíèÿ ïðîèçâîäÿòñÿ ñ ïîìîùüþ âûçîâîâ ïðîöåäóð BLAS. Òåñò HPL òðàäèöèîííî èñïîëüçóåòñÿ äëÿ óïîðÿäî÷èâàíèÿ ñïèñêà íàèáîëåå ìîùíûõ êîìïüþòåðîâ ìèðà Top500 (http://www.top500.org/) è ñïèñêà íàèáîëåå ìîùíûõ êîìïüþòåðîâ ÑÍ Top50 (http://super omputers.ru). Peak íåáîëüøîé òåñò, àäàïòèðîâàííûé èç [4℄, ïðåäíàçíà÷åííûé äëÿ äîñòèæåíèÿ ìàêñèìàëüíî âîçìîæíîé ïðîèçâîäèòåëüíîñòè ïðîöåññîðíîãî ÿäðà íà ðàãìåíòå ïðîãðàììû, íàïèñàííîì íà ÿçûêå âûñîêîãî óðîâíÿ (Ôîðòðàí). Äëÿ ýòîãî èñïîëüçóþòñÿ ïàðû îïåðàöèé ñëîæåíèå+óìíîæåíèå, à âñå äàííûå ïîòåíöèàëüíî ìîãóò áûòü ðàñïîëîæåíû íà ðåãèñòðàõ. Operations òåñò, îïðåäåëÿþùèé ïðîèçâîäèòåëüíîñòü ïðîöåññîðíîãî ÿäðà íà ðÿäå ïðîñòûõ àðèìåòè÷åñêèõ îïåðàöèé è èõ êîìáèíàöèé. STREAM ñòàíäàðòíûé òåñò, èçìåðÿþùèé ïðîèçâîäèòåëüíîñòü íà îïåðàöèÿõ a(i) = b(i); a(i) = q∗b(i); a(i) = b(i)+c(i); a(i) = b(i) + q ∗ c(i) è ïðîèçâîäÿùèé çàìåð ñêîðîñòè ïåðåäà÷è äàííûõ èç
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
57
îïåðàòèâíîé ïàìÿòè â ïðîöåññîð. Flo52 ïðîãðàììà èç ïàêåòà òåñòîâ Perfe t Club Ben hmarks, ðåàëèçóþùàÿ óïðîù¼ííûé âàðèàíò îäíîé èç çàäà÷ âû÷èñëèòåëüíîé ãèäðîäèíàìèêè [5℄. Ïðèìåíÿåòñÿ òàêæå ðÿä äðóãèõ òåñòîâ, è ýòîò íàáîð ïîñòîÿííî ïîïîëíÿåòñÿ ñ ðàñøèðåíèåì ìíîæåñòâà àíàëèçèðóåìûõ àêòîðîâ, âëèÿþùèõ íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé. Ôîðìèðóåìûé â ðåçóëüòàòå êîìïëåêñíîãî òåñòèðîâàíèÿ ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíûõ ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà äîêóìåíò Performan e Guide [6℄ ñîäåðæèò èíîðìàöèþ î ñðàâíèòåëüíûõ õàðàêòåðèñòèêàõ ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà, ïîçâîëÿåò îöåíèòü èõ ïèêîâûå õàðàêòåðèñòèêè, íàéòè óçêèå ìåñòà ïðè âûïîëíåíèè òåõ èëè èíûõ îïåðàöèé, îïðåäåëèòü ýåêòèâíîñòü áàçîâîãî ïðîãðàììíîãî îáåñïå÷åíèÿ (îïåðàöèîííûõ ñèñòåì, êîìïèëÿòîðîâ, îïòèìèçèðîâàííûõ íèçêîóðîâíåâûõ áèáëèîòåê è ò.ä.), à òàêæå ðåøàòü ìíîãèå äðóãèå çàäà÷è.
4. åçóëüòàòû òåñòèðîâàíèÿ
àññìîòðèì íåêîòîðûå ðåçóëüòàòû, ïîëó÷åííûå â õîäå òåñòèðîâàíèÿ ñåðâåðîâ ïðîöåññîðíîãî ïîëèãîíà. Öåëüþ òåñòèðîâàíèÿ ÿâëÿëîñü îïðåäåëåíèå âëèÿíèÿ ðàçëè÷íûõ õàðàêòåðèñòèê ïðîãðàììíîàïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé. Ñíà÷àëà ïîñìîòðèì, êàêîé ïðîèçâîäèòåëüíîñòè ìîæíî äîñòè÷ü â ïðèíöèïå íà ïðîöåññîðíûõ ÿäðàõ ñåðâåðîâ ïîëèãîíà íà ïðîãðàììå, íàïèñàííîé íà ÿçûêå âûñîêîãî óðîâíÿ. èñ. 1 äåìîíñòðèðóåò ïðîèçâîäèòåëüíîñòü òåñòà peak â ñðàâíåíèè ñ ïèêîâîé ïðîèçâîäèòåëüíîñòüþ ïðîöåññîðíûõ ÿäåð. Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûë èñïîëüçîâàí êîìïèëÿòîð gfortran ñ îïöèåé îïòèìèçàöèè -O3. Íà ãðàèêå âèäíî, ÷òî òåñò peak ïîçâîëÿåò çíà÷èòåëüíî ëó÷øå ïðèáëèçèòüñÿ ê ïèêîâîé ïðîèçâîäèòåëüíîñòè íà ïðîöåññîðàõ AMD, ÷åì íà ïðîöåññîðàõ Intel èëè IBM. Íà ïðîöåññîðàõ Intel ìîæíî äîáèòüñÿ áîëüøåãî ïðè çàäåéñòâîâàíèè êîìàíä èç íàáîðîâ SSE2 è SSE3, íî ýòà îïåðàöèÿ òðåáóåò äàëüíåéøåãî ïðåîáðàçîâàíèÿ òåêñòà èñïîëüçóåìîãî òåñòà.
58
À. Ñ. Àíòîíîâ
èñ. 1. Ïðîèçâîäèòåëüíîñòü òåñòà peak íà óçëàõ ïîëèãîíà
èñ. 2. Ïðîèçâîäèòåëüíîñòü òåñòà HPL íà óçëàõ ïîëèãîíà
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
59
Ïðîãðàììà HPL òðàäèöèîííî èñïîëüçóåòñÿ â âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèÿõ êàê íåêîòîðàÿ ìåðà ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíîãî óçëà. Îíà ïîçâîëÿåò îöåíèòü âîçìîæíîñòü äîñòèæåíèÿ ìàêñèìàëüíîé ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíîãî óçëà ñ èñïîëüçîâàíèåì íèçêîóðîâíåâûõ áèáëèîòåê. åçóëüòàòû òåñòà HPL ïðèâåäåíû íà ðèñ. 2. Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûë èñïîëüçîâàí êîìïèëÿòîð g
ñ îïöèåé îïòèìèçàöèè -O3.  êà÷åñòâå ðåàëèçàöèè BLAS áûëà âçÿòà áèáëèîòåêà ATLAS. Òåñò çàïóñêàëñÿ íà îäíîì ÿäðå ñ ìàòðèöåé 15000 × 15000 . ðàèê ïîêàçûâàåò, ÷òî ñ èñïîëüçîâàíèåì îïòèìèçèðîâàííîé ïîä êîíêðåòíóþ àðõèòåêòóðó íèçêîóðîâíåâîé áèáëèîòåêè ìîæíî çíà÷èòåëüíî áëèæå ïîäîéòè ê ïèêîâîé ïðîèçâîäèòåëüíîñòè ïðîöåññîðíîãî óçëà, îñîáåííî ýòî êàñàåòñÿ ïðîöåññîðîâ Intel è IBM. Ìíîãèå ñòàíäàðòíûå àëãîðèòìû ìíîãîêðàòíî ðåàëèçîâàíû íà äîñòóïíûõ ïëàòîðìàõ. Çà÷àñòóþ áûâàåò ãîðàçäî ïðîùå èñïîëüçîâàòü ñóùåñòâóþùóþ ðåàëèçàöèþ, à íå ïèñàòü ñâîé âàðèàíò. Íî íàñêîëüêî ýåêòèâíû òå èëè èíûå ðåàëèçàöèè ñòàíäàðòíûõ áèáëèîòåê íà êîíêðåòíîé ïëàòîðìå, íóæíî ïîêàçàòü ïðè ïîìîùè íàáîðà òåñòîâ. Ïîñìîòðèì, êàê âëèÿåò âûáîð êîíêðåòíîé ñïåöèàëèçèðîâàííîé áèáëèîòåêè íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèÿ. Äëÿ òåñòà HPL ñðàâíèì ïðîèçâîäèòåëüíîñòü ïðè èñïîëüçîâàíèè áèáëèîòåê ATLAS, MKL è GotoBLAS (ðèñ. 3). Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûë èñïîëüçîâàí êîìïèëÿòîð g
ñ îïöèåé îïòèìèçàöèè -O3. Òåñò çàïóñêàëñÿ íà îäíîì ÿäðå óçëà opteron1 ñ ìàòðèöåé 15000 × 15000 . Íàèáîëåå ýåêòèâíîé áèáëèîòåêîé â äàííîì ñëó÷àå ÿâëÿåòñÿ GotoBLAS. ż èñïîëüçîâàíèå äà¼ò íàèëó÷øèå ðåçóëüòàòû è íà ïðîöåññîðàõ Intel, íî íà íèõ áèáëèîòåêà MKL ýåêòèâíåå, ÷åì áèáëèîòåêà ATLAS. Òåïåðü ïîñìîòðèì, êàêîâà ïðîèçâîäèòåëüíîñòü ïðîöåññîðíûõ ÿäåð ïîëèãîíà íà âû÷èñëèòåëüíîì ÿäðå ðåàëüíîãî àëãîðèòìà. Äëÿ ýòîãî âîçüì¼ì áîëüøîé (large) âàðèàíò ïðîãðàììû o52 (ðèñ. 4). Î÷åâèäíî, ÷òî ïðîèçâîäèòåëüíîñòü ïðîöåññîðîâ íà ðåàëüíîì ïðèëîæåíèè çíà÷èòåëüíî íèæå, ÷åì íà ñïåöèàëüíî ðàçðàáîòàííîì òåñòå èëè íà òåñòå, èñïîëüçóþùåì îïòèìèçèðîâàííûå áèáëèîòåêè. Îöåíèì òåïåðü, êàêîé âêëàä â ïðîèçâîäèòåëüíîñòü ïðîöåññîðíûõ
60
À. Ñ. Àíòîíîâ
èñ. 3. HPL íà óçëå opteron1 â çàâèñèìîñòè îò ðåàëèçàöèè BLAS
èñ. 4. Ïðîèçâîäèòåëüíîñòü òåñòà o52 íà óçëàõ ïîëèãîíà
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
61
èñ. 5. Ïðîèçâîäèòåëüíîñòü àðèìåòè÷åñêèõ îïåðàöèé íà óçëàõ ïîëèãîíà ÿäåð íà ïðîãðàììàõ, íàïèñàííûõ íà ÿçûêàõ âûñîêîãî óðîâíÿ, âíîñÿò ðàçëè÷íûå áàçîâûå àðèìåòè÷åñêèå îïåðàöèè. Ïîñìîòðèì ÷àñòü ðåçóëüòàòîâ òåñòà operations íà íåñêîëüêèõ ñåðâåðàõ ïðîöåññîðíîãî ïîëèãîíà (ðèñ. 5). Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûë èñïîëüçîâàí êîìïèëÿòîð gfortran ñ îïöèåé îïòèìèçàöèè -O3. åçóëüòàòû òåñòà ïîêàçûâàþò, ÷òî äàæå íà, êàçàëîñü áû, ¾õîðîøèõ¿ ñ òî÷êè çðåíèÿ àðõèòåêòóðû ïðîöåññîðîâ áàçîâûõ îïåðàöèÿõ ïîëó÷àåòñÿ ïðîèçâîäèòåëüíîñòü, ñîñòàâëÿþùàÿ ëèøü íåáîëüøóþ äîëþ îò ïèêîâîé ïðîèçâîäèòåëüíîñòè. Òåïåðü õîòåëîñü áû ïðîâåðèòü, íàñêîëüêî âåëèêî âëèÿíèå êîìïèëÿòîðà íà ýåêòèâíîñòü èñïîëüçîâàíèÿ àïïàðàòíûõ ñðåäñòâ. Ïîñìîòðèì, êàê çàâèñèò ïðîèçâîäèòåëüíîñòü áîëüøîãî âàðèàíòà òåñòà o52 îò èñïîëüçîâàíèÿ ðàçëè÷íûõ êîìïèëÿòîðîâ (ðèñ. 6). Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûëè èñïîëüçîâàíû êîìïèëÿòîðû ñ îïöèåé îïòèìèçàöèè -O3. Âèäíî, ÷òî äëÿ o52 ëó÷øèì âàðèàíòîì íà âñåõ óçëàõ ÿâëÿåòñÿ èñïîëüçîâàíèå êîìïèëÿòîðà PathS ale. Ýòî êàñàåòñÿ êàê ïðîöåññî-
62
À. Ñ. Àíòîíîâ
èñ. 6. o52 íà óçëàõ ïîëèãîíà â çàâèñèìîñòè îò êîìïèëÿòîðà
èñ. 7. àçíûå òåñòû íà óçëå wood rest6 â çàâèñèìîñòè îò èñïîëüçóåìîãî êîìïèëÿòîðà
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
63
èñ. 8. àçíûå òåñòû íà óçëå wood rest6 â çàâèñèìîñòè îò èñïîëüçóåìûõ îïöèé êîìïèëÿòîðà ifort ðîâ AMD, òàê è ïðîöåññîðîâ Intel. Íà ðèñ. 7 ïðèâåäåíî ñðàâíåíèå ýåêòèâíîñòè ðàçëè÷íûõ êîìïèëÿòîðîâ íà íàáîðå èç íåñêîëüêèõ òåñòîâ. Äëÿ êîìïèëÿöèè íà óçëå wood rest6 áûëè èñïîëüçîâàíû êîìïèëÿòîðû ñ îïöèåé îïòèìèçàöèè -O3. Íà âñåõ òåñòàõ êðîìå peak ñíîâà ëó÷øèì ÿâëÿåòñÿ êîìïèëÿòîð PathS ale. Ñ òåñòîì peak ÷óòü ëó÷øå äðóãèõ ñïðàâëÿåòñÿ êîìïèëÿòîð Portland Group. Êàæäûé êîìïèëÿòîð ÿâëÿåòñÿ ñëîæíîé ïðîãðàììîé. Äëÿ åãî ýåêòèâíîãî èñïîëüçîâàíèÿ íà êàæäîé êîíêðåòíîé ïëàòîðìå íóæíî çíàòü ìíîãî òîíêèõ âåùåé. Âñå ïðåäûäóùèå ýêñïåðèìåíòû ïðîâîäèëèñü ñî ñòàíäàðòíûì óðîâíåì îïòèìèçàöèè -O3. Ïîñìîòðèì, ÷åãî ìîæíî äîáèòüñÿ ïðè èñïîëüçîâàíèè äðóãèõ ñïåöèè÷åñêèõ îïöèé îïòèìèçàöèè. Íà ðèñ. 8 ïîêàçàíà çàâèñèìîñòü ïðîèçâîäèòåëüíîñòè íàáîðà òåñòîâ îò èñïîëüçóåìûõ îïöèé êîìïèëÿòîðà ifort. åçóëüòàòû ïðèâîäÿòñÿ äëÿ óçëà wood rest6.
64
À. Ñ. Àíòîíîâ
èñ. 9. HPL íà óçëå lovertown1 â çàâèñèìîñòè îò êîëè÷åñòâà ÿäåð Âèäíî, ÷òî äëÿ êîìïèëÿòîðà Intel Fortran íà âñåõ òåñòàõ êðîìå peak ëó÷øèå ðåçóëüòàòû ïîëó÷àþòñÿ ñ îïöèåé -fast, êîòîðàÿ ÿâëÿåòñÿ ñîêðàùåíèåì äëÿ íàáîðà îïöèé -O3 -ipo -no-pre -div -stati -xP. Íà òåñòå peak ëèøíèå îïòèìèçàöèè òîëüêî óõóäøàþò ñèòóàöèþ, è îïòèìàëüíûì îñòà¼òñÿ âàðèàíò ñ óðîâíåì îïòèìèçàöèè -O1. Äàëüíåéøèå èññëåäîâàíèÿ ñïåöèè÷åñêèõ îïöèé êàæäîãî êîìïèëÿòîðà äëÿ êàæäîé êîíêðåòíîé àðõèòåêòóðû ìîãóò äàòü äîïîëíèòåëüíûé ýåêò, íî âðÿä ëè î÷åíü ñóùåñòâåííî èçìåíÿò îáùóþ êàðòèíó. Äî ñèõ ïîð ðå÷ü øëà î ïðîèçâîäèòåëüíîñòè îäíîãî ïðîöåññîðíîãî ÿäðà.  íàñòîÿùåå âðåìÿ ïî÷òè âñå ïðîöåññîðû äåëàþòñÿ ìíîãîÿäåðíûìè, è ýòà òåíäåíöèÿ íàõîäèò îòðàæåíèå â ñîñòàâå ïðîöåññîðíîãî ïîëèãîíà. Íà ìíîãîÿäåðíûõ è ìíîãîïðîöåññîðíûõ óçëàõ ìîæíî ïðîâåðèòü ìàñøòàáèðóåìîñòü ïàðàëëåëüíûõ ïðîãðàìì, òî åñòü èçìåíåíèå ïðîèçâîäèòåëüíîñòè òåñòîâûõ ïðèëîæåíèé ïðè óâåëè÷åíèè êîëè÷åñòâà ïðîöåññîâ. ðàèê íà ðèñ. 9 äåìîíñòðèðóåò ìàñøòàáèðóåìîñòü òåñòà HPL ïðè óâåëè÷åíèè êîëè÷åñòâà çàäåéñòâîâàííûõ ÿäåð óçëà lovertown1. Äëÿ êîìïèëÿöèè íà âñåõ óçëàõ áûë èñïîëüçîâàí
Âëèÿíèå àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü
65
êîìïèëÿòîð g
ñ îïöèåé îïòèìèçàöèè -O3.  êà÷åñòâå ðåàëèçàöèè BLAS áûëà âçÿòà áèáëèîòåêà GotoBLAS. Òåñò çàïóñêàëñÿ ñ ìàòðèöåé 15000 × 15000 . Ïðè óâåëè÷åíèè êîëè÷åñòâà çàäåéñòâîâàííûõ ïðîöåññîðíûõ ÿäåð áîëüøåå âëèÿíèå íà÷èíàþò îêàçûâàòü êàíàëû ìåæúÿäåðíîãî è ìåæïðîöåññîðíîãî âçàèìîäåéñòâèÿ. Ïîýòîìó ïðîèçâîäèòåëüíîñòü òåñòà âñ¼ áîëåå óäàëÿåòñÿ îò ïèêîâîé. Çäåñü ïîêàçàíà ìàñøòàáèðóåìîñòü òîëüêî âíóòðè îäíîãî ñåðâåðà, ïðè çàäåéñòâîâàíèè íåñêîëüêèõ ñåðâåðîâ âñ¼ áîëüøåå âëèÿíèå íà÷í¼ò îêàçûâàòü è èñïîëüçóåìàÿ êîììóíèêàöèîííàÿ ñåòü.
5. Çàêëþ÷åíèå ×àñòü àêòîðîâ, âëèÿþùèõ íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé, îñòàëàñü çà ðàìêàìè äàííîé ñòàòüè. Ýòî, íàïðèìåð, îöåíêà ñêîðîñòè ðàáîòû ñ ðàçëè÷íûìè óðîâíÿìè ïàìÿòè, îöåíêà âëèÿíèÿ íà ïðîèçâîäèòåëüíîñòü îáú¼ìà îïåðàòèâíîé ïàìÿòè, ÷àñòîòû ñèñòåìíîé øèíû, ýåêòèâíîñòü îïåðàöèîííîé ñèñòåìû è äðóãèå. Äëÿ êàæäîé òàêîé çàäà÷è òðåáóþòñÿ ñâîè ïîäõîäû è îðìèðóþòñÿ ñâîè íàáîðû òåñòîâ. ×àñòî âëèÿíèå îäíîãî àêòîðà î÷åíü òðóäíî îòäåëèòü îò âëèÿíèÿ äðóãîãî, à â ïðîöåññå ðàáîòû ïðîãðàììû ñêàçûâàþòñÿ ïî÷òè âñå àêòîðû. Âàæíî, ÷òî ïðîàíàëèçèðîâàâ ðåçóëüòàòû êîìïëåêñíîãî òåñòèðîâàíèÿ ïîëüçîâàòåëü ìîæåò îöåíèòü âàæíîñòü äëÿ åãî çàäà÷è òåõ èëè èíûõ àêòîðîâ è ïîïûòàòüñÿ íàéòè ëó÷øåå ñîîòâåòñòâèå ðåàëèçóåìîãî àëãîðèòìà è öåëåâîé ïðîãðàììíî-àïïàðàòíîé ñðåäû.
Ñïèñîê ëèòåðàòóðû [1℄ Àíòîíîâ À.Ñ. Äàëåêî ëè äî ïèêà?// Îòêðûòûå ñèñòåìû, N 6, 2006. Ñ. 6466. [2℄ Âîåâîäèí Â.Â., Âîåâîäèí Âë.Â. Ïàðàëëåëüíûå âû÷èñëåíèÿ. ÑÏá.: ÁÕÂ-Ïåòåðáóðã, 2002.
66
À. Ñ. Àíòîíîâ
[3℄ Æóìàòèé Ñ.À. Ñèñòåìà àíàëèçà ïðîèçâîäèòåëüíîñòè ïàðàëëåëüíûõ ïðîãðàìì íà êëàñòåðíûõ óñòàíîâêàõ// Âû÷èñëèòåëüíûå ìåòîäû è ïðîãðàììèðîâàíèå. 2005. T 6, N 2. Ñ. 5764. [4℄ AIX Version 3.2 for RISC System/6000. Optimization and Tuning Guide for Fortran, C, and C++. [5℄ Âîåâîäèí Âë.Â., Àíòîíîâ À.Ñ. Ýåêòèâíàÿ àäàïòàöèÿ ïîñëåäîâàòåëüíûõ ïðîãðàìì äëÿ ñîâðåìåííûõ âåêòîðíîêîíâåéåðíûõ è ìàññèâíî-ïàðàëëåëüíûõ ñóïåð-ÝÂÌ// Ïðîãðàììèðîâàíèå, 1996, N 4, C.3751. [6℄ Àíòîíîâ À.Ñ. Êîìïëåêñíîå òåñòèðîâàíèå ïðîèçâîäèòåëüíîñòè âû÷èñëèòåëüíûõ ñåðâåðîâ// Íàó÷íûé ñåðâèñ â ñåòè Èíòåðíåò: ìíîãîÿäåðíûé êîìïüþòåðíûé ìèð. 15 ëåò ÔÔÈ: Òðóäû Âñåðîññèéñêîé íàó÷íîé êîíåðåíöèè (24-29 ñåíòÿáðÿ 2007 ã., ã.Íîâîðîññèéñê).-Ì.: Èçä-âî Ì Ó, 2007. Ñ. 135138.
×èñëåííûå àëãîðèòìû àíàëèçà ÷óâñòâèòåëüíîñòè è ñëîæíîñòè îïèñàíèÿ â çàäà÷àõ èäåíòèèêàöèè ìîäåëåé ìàòåìàòè÷åñêîé èììóíîëîãèè $
⋄
. À. Áî÷àðîâ , Í. À. Ìåäâåäåâà
àçâèòèå ýåêòèâíûõ âû÷èñëèòåëüíûõ ïîäõîäîâ ê ðåàëèçàöèè çàäà÷ ñèñòåìíîãî àíàëèçà èììóííûõ ïðîöåññîâ â íîðìå è ïðè âèðóñíûõ çàáîëåâàíèÿõ, ñ ó÷åòîì áëî÷íîé ñòðóêòóðû îðãàíèçìà, ÿâëÿåòñÿ åäèíñòâåííûì ñðåäñòâîì èíòåãðàöèè ðàçëè÷íûõ äàííûõ íàáëþäåíèé è òåîðåòè÷åñêèõ ãèïîòåç â åäèíóþ ìàòåìàòè÷åñêóþ òåîðèþ èììóííîé ñèñòåìû. Ìîäóëüíûé ïîäõîä ê ïîñòðîåíèþ óðàâíåíèé ìîäåëåé íà îñíîâå áàëàíñíûõ ñîîòíîøåíèé ïîçâîëÿåò ñîðìèðîâàòü íåêîòîðîå ñåìåéñòâî âîçìîæíûõ ìàòåìàòè÷åñêèõ ìîäåëåé. Ïðîâåðêà àäåêâàòíîñòè ñòðóêòóðû óðàâíåíèé äàííûì íàáëþäåíèé ñ öåëüþ âûáîðà îïòèìàëüíîé ìîäåëè ÿâëÿåòñÿ ÷ðåçâû÷àéíî ïðîáëåìíûì è ïëîõî èññëåäîâàííûì ýòàïîì îðìèðîâàíèÿ êîëè÷åñòâåííûõ ìàòåìàòè÷åñêèõ òåîðèé (ãèïîòåç) èììóííûõ ïðîöåññîâ. Ýòî ñâÿçàíî ñ òðóäíîñòÿìè ìíîãîêðàòíîãî ðåøåíèÿ îáðàòíûõ çàäà÷, ÷èñëåííîé ðåàëèçàöèè àëãîðèòìîâ àíàëèçà èäåíòèèöèðóåìîñòè ìîäåëåé, îöåíèâàíèÿ èíîðìàöèîííîé ñëîæíîñòè ìîäåëåé.  äàííîé ðàáîòå ðàññìàòðèâàþòñÿ êëþ÷åâûå ýëåìåíòû ÷èñëåííîé òåõíîëîãèè ïîñòðîåíèÿ îïòèìàëüíîãî îïèñàíèÿ äèíàìèêè èììóííûõ ïðîöåññîâ íà ïðèìåðå ïðîòèâîâèðóñíîé ðåàêöèè ñèñòåìû èíòåðåðîíà.  îñíîâå íàøåãî ïîäõîäà ëåæèò $ Äàííàÿ ðàáîòà ïðîâîäèëàñü ïðè ïîääåðæêå îññèéñêîãî îíäà óíäàìåíòàëüíûõ èññëåäîâàíèé (ãðàíò ÔÔÈ 05-01-00732). Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ ⋄ Ìîñêîâñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò èìåíè Ì.Â.Ëîìîíîñîâà
68
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà èñïîëüçîâàíèå ïðèíöèïà ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ äëÿ èäåíòèèêàöèè ïàðàìåòðîâ ìîäåëè, èñïîëüçîâàíèå èíîðìàöèîííîé ìàòðèöû Ôèøåðà äëÿ îöåíêè ñòåïåíè íåîïðåäåë¼ííîñòè ïàðàìåòðîâ, ëîêàëüíûé è ãëîáàëüíûé àíàëèç ÷óâñòâèòåëüíîñòè â ðàìêàõ äåòåðìèíèñòñêîãî è ñòîõàñòè÷åñêîãî ïîäõîäîâ, îöåíèâàíèå êà÷åñòâà ìîäåëåé íà îñíîâå èíîðìàöèîííî-òåîðåòè÷åñêèõ ïîäõîäîâ.
1. Óðàâíåíèÿ ìàòåìàòè÷åñêîé èììóíîëîãèè
Îäíîé èç öåíòðàëüíûõ çàäà÷ ìàòåìàòè÷åñêîé èììóíîëîãèè ÿâëÿåòñÿ ðàçðàáîòêà ýåêòèâíîé âû÷èñëèòåëüíîé ìåòîäîëîãèè ïîñòðîåíèÿ îïòèìàëüíûõ, â ñìûñëå èíîðìàòèâíîñòè, ìîäåëåé äèíàìèêè ñëîæíûõ ñèñòåì. Ýòî ñâÿçàíî ñ ðåøåíèåì çàäà÷ óñâîåíèÿ äàííûõ, ïîëó÷àåìûõ ñ ïîìîùüþ ñîâðåìåííûõ âûñîêîïðîèçâîäèòåëüíûõ ëàáîðàòîðíûõ è êëèíè÷åñêèõ ìåòîäîâ, òàêèõ êàê, ïðîòî÷íàÿ öèòîëóðîìåòðèÿ, ïðîòåîìèêà, ãåíîìèêà è äð.  îòëè÷èå îò êëàññè÷åñêîé èçèêè èëè õèìèè, ïðè ìîäåëèðîâàíèè æèâûõ ñèñòåì èñïîëüçóåòñÿ åíîìåíîëîãè÷åñêèé ïîäõîä ê êîíñòðóèðîâàíèþ óðàâíåíèé ìîäåëåé. Ïðè ýòîì, ìîäåëè ñëîæíûõ ñèñòåì ñòðîÿòñÿ èç áëîêîâ îïèñûâàþùèõ ýëåìåíòàðíûå ïðîöåññû. Òàê ìîäåëè ïîïóëÿöèîííîé äèíàìèêè èììóííûõ ðåàêöèÿ ñòðîÿòñÿ íà îñíîâå áàëàíñíûõ ñîîòíîøåíèé ïðîöåññîâ ðîæäåíèÿ è ãèáåëè êëåòîê è ïàòîãåíîâ. Ýòîò ïîäõîä ïîçâîëÿåò ñîðìèðîâàòü íåêîòîðîå ñåìåéñòâî âîçìîæíûõ ìàòåìàòè÷åñêèõ ìîäåëåé, ðàçëè÷àþùèõñÿ óíêöèîíàëüíûìè çàâèñèìîñòÿìè, èñïîëüçóåìûìè ïðè îïèñàíèè îäíîãî è òîãî æå ýëåìåíòàðíîãî ïðîöåññà, ÷èñëîì ïàðàìåòðîâ, ñòðóêòóðíîé ñëîæíîñòüþ. Àíàëèç àäåêâàòíîñòè ñòðóêòóðû ìîäåëåé äàííûì íàáëþäåíèé ñ öåëüþ âûáîðà íàèáîëåå èíîðìàòèâíîé ïðåäïîëàãàåò íåîáõîäèìîñòü ðàçâèòèÿ ýåêòèâíûõ, àäàïòèðîâàííûõ ê êîíêðåòíûì òèïàì óðàâíåíèé, ÷èñëåííûõ ìåòîäîâ ðåøåíèÿ çàäà÷ îöåíèâàíèÿ ïàðàìåòðîâ ìîäåëåé, èññëåäîâàíèÿ ÷óâñòâèòåëüíîñòè è èíîðìàöèîííîé ñëîæíîñòè ìîäåëåé.  äàííîé ðàáîòå èçëàãàåòñÿ êëþ÷åâûå ýëåìåíòû åäèíîãî ïîäõîäà, íà îñíîâå ìåòîäà ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ, ê ïîñòðîåíèþ îïòèìàëüíîãî îïèñàíèÿ èììóííûõ ïðîöåññîâ.  êà÷åñòâå êîíêðåò-
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 69 íîãî îáúåêòà ìîäåëèðîâàíèÿ áóäåò ðàññìîòðåíà äèíàìèêà ðåàêöèè ñèñòåìû èíòðååðîíà íà óðîâíå áàçîâîãî áëîêà, îïèñûâàþùåãî àêòèâíîñòü äåíäðèòíûõ êëåòîê.  êà÷åñòâå ñðåäñòâà ìàòåìàòè÷åñêîãî îïèñàíèÿ ìû ðàññìàòðèâàåì ìîäåëè íà îñíîâå ñèñòåì äèåðåíöèàëüíûõ óðàâíåíèé ñ çàïàçäûâàþùèì àðãóìåíòîì: y′ (t) =
f (y(t), y(t − τ)), p) (τ > 0),
t ∈ [t0 , T ],
(1)
ãäå y(t, p) ∈ RM è p ∈ RL . Îáîçíà÷èì êîìïîíåíòû âåêòîðà ïàðàìåòðîâ â óðàâíåíèÿõ p ÷åðåç pℓ . Âåëè÷èíà çàïàçäûâàíèÿ, τ > 0 , ÿâëÿåòñÿ äîïîëíèòåëüíûì ïàðàìåòðîì, àíàëèç êîòîðîãî ÿâëÿåòñÿ áîëåå ñëîæíûì, ÷åì äëÿ îáû÷íûõ ïàðàìåòðîâ pℓ . Äëÿ äàííîãî êëàññà ñèñòåì òðåáóåòñÿ çàäàòü íà÷àëüíûå óñëîâèÿ [t0 − τ, t0 ] , â îáùåì ñëó÷àå, òàêæå çàâèñÿùèå îò ïàðàìåòðîâ: y(t, p)
:= ψ0 (t, p),
t ∈ [t0 − τ, t0 ].
(2)
åøåíèå ìîäåëè â ìîìåíòû âðåìåíè íàáëþäåíèé tj ∈ [t0 , T ] , y(tj , p) äîëæíî ñîîòâåòñòâîâàòü ïî âûáðàííîé ìåðå äàííûì èçìåðåíèé {yj } . Äåòàëüíîå èçëîæåíèå ðàçëè÷íûõ àñïåêòîâ ïîñòðîåíèÿ óðàâíåíèé ìîäåëåé â èììóíîëîãèè ðàññìàòðèâàåòñÿ â ðàáîòàõ [1, 2℄.
2. Ìàòåìàòè÷åñêàÿ ìîäåëü ñèñòåìû èíòåðåðîíà  ìîäåëè ðåàêöèè ñèñòåìû èíòåðåðîíà â îòâåò íà âèðóñíóþ èíåêöèþ [3℄ ðàññìàòðèâàåòñÿ ïîïóëÿöèîííàÿ äèíàìèêà ÷èñëåííîV(t) , I(t) , ñòåé C(t) è , ïðîäóöèðóþùèõ èíòeðåðîí CV (t) . Óðàâíåíèÿ ìîäåëè ñîäåðæàò îïèñàíèå êèíåòèêè ïðîöåññîâ, èçîáðàæåííûõ íà ðèñ. 1.
âèðóñîâ íûõ êëåòîê
ìîëåêóë èíòåðåðîíà íåèíèöèðîâàíèíèöèðîâàííûõ êëåòîê
Ñèñòåìà óðàâíåíèÿ ìîäåëè ñîäåðæèò îïèñàíèå ñêîðîñòè èçìåíåíèÿ ÷èñëåííîñòè ïîïóëÿöèé âèðóñîâ, ìîëåêóë èíòðååðîíà è êëåòîê ñ ïîìîùüþ îáûêíîâåííûõ äèåðåíöèàëüíûõ óðàâíåíèé (ÎÄÓ) è äèåðåíöèàëüíûõ óðàâíåíèé ñ çàïàçäûâàþùèì àðãóìåíòîì (ÄÓ-
70
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
ÇÀ) ñëåäóþùåãî âèäà: dV (t) dt dI (t) dt dC (t) dt dCV (t) dt
=
ρV CV (t − τV ) − dV V(t), 1 + I(t)/θ
(3a)
=
ρI CV (t − τI ) − dI I(t),
(3b)
=
−σV(t)C(t) − dC (t)C(t),
(3 )
=
σV(t)C(t) − dCV (t)CV (t).
(3d)
Îäíîé èç îñîáåííîñòåé äàííîé ìîäåëè ÿâëÿåòñÿ èñïîëüçîâàíèå çàêîíà îìïåðòöà, ïðè îïèñàíèè ïðîäîëæèòåëüíîñòè æèçíè êëåòîê. Ñ ó÷åòîì ýòîãî, êèíåòèêà ãèáåëè êëåòîê îïðåäåëÿåòñÿ äâóìÿ ïàðàìåòðàìè íà÷àëüíîé ñêîðîñòüþ ãèáåëè è òåìïîì óâåëè÷åíèÿ äàííîé ñêîðîñòè. Îáîñíîâàííîñòü äàííîãî îïèñàíèÿ áóäåò èññëåäîâàíà ïîçæå ñ ïîìîùüþ èíîðìàöèîííûõ êðèòåðèåâ. Íà÷àëüíûå äàííûå äëÿ çàäà÷è Êîøè (t = 0) èìåþò âèä: V(0) =
èñ. 1. Áèîëîãè÷åñêàÿ ñõåìà, ëåæàùàÿ â îñíîâå ìàòåìàòè÷åñêîé ìîäåëè (3) ñèíòåçà èíòåðåðîíà àíòèãåíïðåçåíòèðóþùèìè êëåòêàìè â îòâåò íà âèðóñíóþ èíåêöèþ.
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 71 Ïàðàìåòð ρV ρI θ σ τV τI d0C V kC V fi
dV dI d0C kC
Ôèçè÷åñêèé àçìåðñìûñë íîñòü Ñêîðîñòü ïðîäóêöèè âèðóñîâ âèð/÷àñ îäíîé êëåòêîé Ñêîðîñòü ïðîäóêöèè èíòåðåðîíà ïã/÷àñ îäíîé êëåòêîé Ïîðîã 50% èíãèáèðîâàíèÿ ïã/ìë ïðîäóêöèè âèðóñîâ èíòåðåðîíîì Ñêîðîñòü èíèöèðîâàíèÿ êë/âèð/÷àñ êëåòîê Çàäåðæêà ïðîäóêöèè âèðóñîâ ÷àñ êëåòêîé Çàäåðæêà ïðîäóêöèè èíòåðåðîíà ÷àñ êëåòêîé Íà÷àëüíàÿ ñêîðîñòü ãèáåëè 1/÷àñ èíèöèðîâàííûõ êëåòîê Óñêîðåíèå òåìïà ãèáåëè êëåòîê 1/÷àñ èíèöèðîâàííûõ êëåòîê Íà÷àëüíàÿ äîëÿ èíèöèðîâàííûõ êëåòîê ïðè êðàòíîñòè èíåêöèè 1 Ñêîðîñòü ãèáåëè âèðóñîâ 1/÷àñ Ñêîðîñòü ðàñïàäà èíòðååðîíà 1/÷àñ Íà÷àëüíàÿ ñêîðîñòü ãèáåëè 1/÷àñ íåèíèöèðîâàííûõ êëåòîê Óñêîðåíèå òåìïà ãèáåëè êëåòîê 1/÷àñ íåèíèöèðîâàííûõ êëåòîê
Îïòèì. îöåíêà 1.1
0.00091 11.6 2.1 × 10−6 4.9 4.5 0.1 0.13 0.0077
0.155 0.012 0.0055 0.089
Òàáëèöà 1. Ïàðàìåòðû ìîäåëè è èõ îöåíêè ïîëó÷åííûå ïî ìåòîäó ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ. V0 , I(0) = I0 , C(0) = C0 , CV (t) = 0 , t ∈ [− max(τV , τI ), 0] . Ïàðàìåòðû ìîäåëè îïèñàíû â òàáë. 1. Äëÿ èäåíòèèêàöèè ïàðàìåòðîâ ìîäåëåé èñïîëüçîâàëñÿ ïîäõîä íà îñíîâå ìåòîäà ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ.
3. Îáðàòíûå çàäà÷è è êðèòåðèé ïðàâäîïîäîáèÿ
Çàäà÷à ïðèáëèæåíèÿ ìîäåëè ê äàííûì íàáëþäåíèé ñâÿçàíà, ïðåæäå âñåãî, ñ âûáîðîì êðèòåðèÿ áëèçîñòè èëè öåëåâîãî óíêöèîíàëà íåâÿçêè.  èäåàëå, ýòîò âûáîð äîëæåí îïðåäåëÿòüñÿ õà-
72
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
ðàêòåðîì ðàñïðåäåëåíèÿ è ñòàòèñòè÷åñêèìè ñâîéñòâàìè ïîãðåøíîñòåé èçìåðåíèé íàáëþäàåìûõ ïåðåìåííûõ ìîäåëè. àíåå, äàííûé âîïðîñ èññëåäîâàëñÿ íàìè â ðàáîòå [4℄.  ÷àñòíîñòè, ïóòåì àíàëèçà áîëüøîãî ìàññèâà ýêñïåðèìåíòàëüíûõ äàííûõ ïî äèíàìèêå ÷èñëåííîñòè ëèìîöèòîâ ïðè èììóííîì îòâåòå áûëî ïîêàçàíî, ÷òî ïî êðèòåðèþ Êîëìîãîðîâà-Ñìèðíîâà íàèáîëåå àäåêâàòíîé ìîäåëüþ îøèáîê ÿâëÿåòñÿ íîðìàëüíîå èëè ëîã-íîðìàëüíîå ðàñïðåäåëåíèÿ. Ôóíêöèîíàë íåâÿçêè Φ(p) , Φ(p) > 0 , çàâèñèò îò äàííûõ íàáëþäåíèé {tj ; yij }N j=1 (äëÿ i = 1, · · · , M ) è çíà÷åíèÿìè ñîîòâåòñòâóþùèõ ïåðåìåííûõ {yi (tj ; p)}i=1:M j=1:N ðåøåíèÿ ìîäåëè y(t; p) (3), íåÿâíî çàâèñÿùåãî îò ïàðàìåòðîâ óðàâíåíèé. Òåì ñàìûì, çàäà÷à ñâîäèòñÿ ê ïîèñêó òàêèõ çíà÷åíèé ïàðàìåòðîâ p⋆ äëÿ (3), ïðè êîòîðûõ ðåøåíèå i i=1:M {yi (tj ; p⋆ )}i=1:M j=1:N , íàèëó÷øèì îáðàçîì îïèñûâàåò äàííûå {yj }j=1:N : Φ(p⋆ ) = min Φ(p). p∈RL +
(4)
Äàííàÿ îáðàòíàÿ çàäà÷à, â îáùåì ñëó÷àå, ÿâëÿåòñÿ íåêîððåêòíîé â ñèëó òîãî, ÷òî ñ ó÷åòîì îøèáîê èçìåðåíèé, ñòàòèñòè÷åñêè äîïóñòèìûì ðåøåíèÿìè ÿâëÿþòñÿ âñå òå çíà÷åíèÿ ïàðàìåòðîâ, ïðè êîòîðûõ ðåøåíèå óêëîíÿåòñÿ îò äàííûõ íàáëþäåíèé íå áîëåå ÷åì íà íåêîòîðóþ âåëè÷èíó. åøåíèå îáðàòíîé çàäà÷è, ñ âû÷èñëèòåëüíîé òî÷êè çðåíèÿ, ñâîäèòñÿ ê ïîèñêó ãëîáàëüíîãî ìèíèìóìà óíêöèîíàëà Φ(·) . Ñäåëàåì ñëåäóþùèå ïðåäïîëîæåíèÿ: 1) îøèáêè èçìåðåíèé â ðàçëè÷íûå ìîìåíòû âðåìåíè íåçàâèñèìû; 2) îøèáêè èçìåðåíèé ðàñïðåäåëåíû ïî íîðìàëüíîìó çàêîíó yj ∼ N (y(tj ; p), Σj ),
ãäå ÿâëÿþòñÿ ñðåäíèìè îïðåäåëÿåìûìè ìîäåëüþ, à Σj ÿâëÿåòñÿ j -îé êîâàðèàöèîííîé ìàòðèöåé (ìàòðèöåé îøèáîê); {y(tj ; p)}N j=1
3) îøèáêè èçìåðåíèé êîìïîíåíò âåêòîð-óíêöèè ðåøåíèÿ ÿâëÿþòñÿ íåêîððåëèðîâàííûìè, ò.å. êîâàðèàöèîííàÿ ìàòðèöà ÿâëÿåòñÿ äèàãîíàëüíîé [j] [j] [j] Σj = σ2 diag[ω1 , ω2 , . . . , ωM ] , (5)
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 73 (ãäå σ2 êîýèöèåíò âàðèàöèè).
ìàêñè-
Äëÿ ðåøåíèÿ îáðàòíîé çàäà÷è áóäåì ñëåäîâàòü ïðèíöèïó (ÌÏ). àñïðåäåëåíèå âåðîÿòíîñòè íàáëþäåíèÿ äàííûõ âûáîðêè îáúåìà N îïðåäåëÿåòñÿ ïðîèçâåäåíèåì óíêöèé [5, 7℄:
ìàëüíîãî ïðàâäîïîäîáèÿ
N 1 1 [y(t ; p)−y ]} H(yj ; p) = p . exp{− [y(tj ; p)−yj ]T Σ−1 j j j 2 j=1 (2π)M det Σj (6) Ïîëíàÿ óíêöèÿ ïðàâäîïîäîáèÿ èëè âåðîÿòíîñòü ïîëó÷åíèÿ äàííîé âûáîðêè êàê óíêöèè âåêòîðà ïàðàìåòðîâ ìîäåëè p èìååò âèä
L(p) =
N Y j=1
(7)
H(yj ; p).
Âåêòîð ïàðàìåòðîâ p⋆ , ïðè êîòîðîì ýòà óíêöèÿ äîñòèãàåò ìàêñèìóìà è ÿâëÿåòñÿ îöåíêîé ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ. àññìîòðèì óíêöèîíàë âçâåøåííûõ íàèìåíüøèõ êâàäðàòîâ ΦWLS (p) ≡ [y(tj ; p) − yj ]T Σ−1 j [y(tj ; p) − yj ].
(8)
Ñ ó÷åòîì ïðåäïîëîæåíèÿ 3) (9)
ΦWLS (p) ≡ σ−2 ΦΩLS (p),
ãäå ΦΩLS (p) =
X j
[j]
[j]
[j]
kdiag−1 [ω1 , ω2 , . . . , ωM ][y(tj ; p) − yj ]k2 .
(10)
Ëîãàðèìè÷åñêàÿ óíêöèÿ ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ èìååò âèä
X [j] ℓn (ωi ) ℓn L(p) = − 21 NM ℓn (2π) + NM + 2 i,j
− 21 {NMℓn(ΦΩLS (p)
− NMℓn(NM)}.
(11)
74
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
Íåòðóäíî âèäåòü, ÷òî ìàêñèìèçàöèÿ óíêöèè ïðàâäîïîäîáèÿ L(p) ýêâèâàëåíòíà ìèíèìèçàöèè ΦΩLS (p) (èëè ΦWLS (p) ), ïðè ýòîì îöåíêà ÌÏ äèñïåðñèè èìååò âèä σ2
⋆
=
1 X [j] [j] [j] kdiag−1 [ω1 , ω2 , . . . , ωM ][y(tj , p⋆ ) − yj ]k2 NM j
=
1 ΦΩLS (p⋆ ). NM
(12)
ãäå p⋆ îáîçíà÷àåò îïòèìàëüíóþ â ñìûñëå ÌÏ îöåíêó ïàðàìåòðîâ. Çàäà÷à ïîèñêà òî÷å÷íûõ îöåíîê ìàêñèìàëüíî ïðàâäîïîäîáíûõ ïàðàìåòðîâ ñâîäèòñÿ ê ìèíèìèçàöèè óíêöèîíàëà íàèìåíüøèõ êâàäðàòîâ. Êîððåêòíûé âûáîð êîíêðåòíîãî âèäà óíêöèîíàëà íàèìåíüøèõ êâàäðàòîâ ïðåäïîëàãàåò èçâåñòíûì çàêîí ðàñïðåäåëåíèÿ îøèáîê èçìåðåíèé.  ïðèëîæåíèÿõ âñòðå÷àþòñÿ òðè âàðèàíòà óíêöèîíàëà íåâÿçêè, ñîîòâåòñòâóþùèõ íîðìàëüíîìó çàêîíó ñ äèñïåðñèåé, íå çàâèñÿùåé îò ìîìåíòîâ èçìåðåíèé è îäèíàêîâîé äëÿ âñåõ íàáëþäàåìûõ ïåðåìåííûõ îáû÷íûé ìåòîä íàèìåíüøèõ êâàäðàòîâ: ΦOLS (p) =
N X M X
i
y (tj ; p) −
j=1 i=1
2 yij
=
N X j=1
ky(tj , p) − yj k2 ; (13a)
íîðìàëüíîìó çàêîíó ñ äèñïåðñèåé, íå çàâèñÿùåé îò ìîìåíòîâ èçìåðåíèé, íî ðàçëè÷íîé äëÿ êàæäîé ïåðåìåííûõ âçâåøåííûé ìåòîä íàèìåíüøèõ êâàäðàòîâ (ïðè ýòîì, ìîæåò áûòü èìåòü ìåñòî ñèòóàöèÿ, êîãäà îòíîñèòåëüíàÿ âåëè÷èíà äèñïåðñèè îäèíàêîâà äëÿ âñåõ ïåðåìåííûõ): −2
ΦWLS (p) ≡ σ
N X M X 2 [j] i ; ωi y (tj , p) − yij
(13b)
j=1 i=1
ëîã-íîðìàëüíîìó çàêîíó (ïðåäïîëàãàåòñÿ, ÷òî yij > 0 è yi (tj ; p) > 0 ) ñ äèñïåðñèåé íå çàâèñÿùåé îò ìîìåíòîâ èçìåðåíèé è îäèíàêîâîé (ñëó÷àé ðàçëè÷íûõ äèñïåðñèé ïðèâîäèò ê âçâåøåííîìó
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 75 âàðèàíòó, àíàëîãè÷íî ïðåäûäóùåìó ñëó÷àþ) äëÿ âñåõ íàáëþäàåìûõ ïåðåìåííûõ ëîãàðèìè÷åñêèé ìåòîä íàèìåíüøèõ êâàäðàòîâ:
ΦLogLS (p) =
N X M X j=1 i=1
2 ℓn (yi (tj , p)) − ℓn (yij ) .
(13 )
Íîðìàëüíûé è ëîã-íîðìàëüíûé çàêîíû ðàñïðåäåëåíèÿ îòðàæàþò, ñîîòâåòñòâåííî, àðèìåòè÷åñêóþ è ãåîìåòðè÷åñêóþ çàâèñèìîñòü ñðåäíåãî îò çíà÷åíèé äàííûõ íàáëþäåíèé. Êà÷åñòâåííî, ðàçëè÷èå ìåæäó àðèìåòè÷åñêîé è ãåîìåòðè÷åñêîé íîðìàëüíîñòüþ îøèáîê èçìåðåíèé, ïðîÿâëÿåòñÿ â òîì, â ïåðâîì ñëó÷àå îòêëîíåíèÿ îò îæèäàåìûõ ñðåäíèõ çíà÷åíèé â îáå ñòîðîíû (óâåëè÷åíèÿ èëè óìåíüøåíèÿ) âíîñÿò îäèíàêîâûé âêëàä â çíà÷åíèå óíêöèîíàëà, åñëè èõ àáñîëþòíûå çíà÷åíèÿ ðàâíû, à âî âòîðîì âàðèàíòå, òîëüêî, åñëè èõ îòíîñèòåëüíûå çíà÷åíèÿ ðàâíû. Ïîñëåäíåå âàðèàíò ïðåäïîëàãàåò, ÷òî åñëè ìàñøòàá ïåðåìåííûõ ìîäåëè ñèëüíî âàðüèðóåò, òî ñëåäóåò èñïîëüçîâàòü ëîãàðèìè÷åñêèé ìåòîä íàèìåíüøèõ êâàäðàòîâ. Äëÿ èäåíòèèêàöèè ïàðàìåòðîâ ìîäåëè 3 ìû èñïîëüçîâàëè ëîãàðèìè÷åêèé ìåòîä íàèìåíüøèõ êâàäðàòîâ, ñ ó÷åòîì òîãî, ÷òî ïåðåìåííûå ìîäåëè ñóùåñòâåííî ðàçëè÷àþòñÿ ïî ñâîèì àáñîëþòíûì çíà÷åíèÿì. ×àñòü óíäàìåíòàëüíûõ ïàðàìåòðîâ ìîäåëè (ïîñëåäíèå 4 â òàáë. 1, â ÷àñòíîñòè, ñêîðîñòè äåãðàäàöèè âèðóñîâ, èíòåðåðîíà è íåèíèöèðîâàííûõ êëåòîê, îïðåäåëÿëàñü ïî íåçàâèñèìûì ýêñïåðèìåíòàëüíûì äàííûì. Îïòèìàëüíûì îöåíêàì ïàðàìåòðîâ òàáë. 1 ñîîòâåòñòâóåò ðåøåíèå ìîäåëè ïðèâåä¼ííîå íà ðèñ. 2. Çàìåòèì, ÷òî ÷àñòü ïåðåìåííûõ ìîäåëè ( V(t) è I(t) ) ÿâëÿþòñÿ íåïîñðåäñòâåííî íàáëþäàåìûìè, à îñòàâøèåñÿ äîëæíû áûòü ïðåîáðàçîâàíû â íàáëþäàåìûå íåêîòîðûì íåëèíåéíûì îáðàçîì %Live pDC(t) = %Infe ted pDC(t) =
C(t) + CV (t) , C0 CV (t) . C(t) + CV (t)
(14a) (14b)
76
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà −/−
IFNαR
IFN (pg/ml), virus (pfu/ml) & pDC (cell/ml)
IFN (pg/ml), virus (pfu/ml) & pDC (fraction)
WT 6
10
MHV 5
MHV
10
4
10
IFNα
IFNα
2
10
Live pDC
0
10
Live pDC
0
10
Infected pDC
Infected pDC
−2
10
0
10
20
t
30
0
10
20
30
6
6
10
10
4
4
10
10
2
10
2
10
I V C
V
C
0
10
0
10
20
0
30
10
0
10
t
20
30
t
èñ. 2. Äàííûå íàáëþäåíèé è ðåøåíèÿ ìîäåëè, ñîîòâåòñòâóþùèå ìèíèìóìó ëîãàðèìè÷åñêîãî óíêöèîíàëà íàèìåíüøèõ êâàäðàòîâ. Äâà ëåâûõ ãðàèêà îïèñûâàþò êèíåòèêó ýêñïåðèìåíòàëüíî íàáëþäàåìûõ ïðîöåññîâ â ñëó÷àå èíåêöèè íîðìàëüíûõ äåíäðèòíûõ êëåòîê è êëåòîê, ó êîòîðûõ îòñóòñòâóåò ðåöåïòîð ê èíòåðåðîíó. Äâà ïðàâûõ ãðàèêà õàðàêòåðèçóþò äèíàìèêó ïåðåìåííûõ ìîäåëè, ñîîòâåñòâåííî, ïðè íàëè÷èè èíãèáèðóþùåãî ýåêòà èíòåðåðîíà íà ïðîäóêöèþ âèðóñîâ, è â ñëó÷àå, êîãäà åãî íåò.
4. Óðàâíåíèÿ ÷óâñòâèòåëüíîñòè è èíîðìàöèîííàÿ ìàòðèöà Ôèøåðà 4.1. ×óâñòâèòåëüíîñòü ïî ïàðàìåòðàì è çàïàçäûâàíèþ.
 îñíîâå àíàëèçà ÷óâñòâèòåëüíîñòè ìîäåëåé ê âàðèàöèÿì ïàðàìåòðîâ ëåæèò èññëåäîâàíèå ýëåìåíòàðíûõ êîýèöèåíòîâ ÷óâñòâèòåëüíîñòè, ÿâëÿþùèõñÿ ÷àñòíûìè ïðîèçâîäíûìè îò êîìïîíåíò âåêòîðóíêöèè ðåøåíèÿ ìîäåëè ïî ïàðàìåòðàì. Ïðåäïîëàãàÿ ãëàäêîñòü ðåøåíèÿ y(t; p) ïî âåêòîðó ïàðàìåòðîâ p , ðàññìîòðèì ðàçëîæåíèå y(t; p + δp) = y(t; p) + S(t, p)δp + O(kδpk2 ).
ìàòðèöåé êîýèöèåí-
Ìàòðèöà S(t) ≡ S(t, p) ÿâëÿåòñÿ M × L i -ÿ ñòðîêà êîòîðîé èìååò âèä si (t; p) = T T ∂yi (t; p) ∂ ∂yi (t, p) ∂yi (t; p) , ,..., . Èñïîëüçóÿ îáîçíà÷åíèå , ∂p1 ∂p2 ∂pL ∂p ìàòðèöó êîýèöèåíòîâ ÷óâñòâèòåëüíîñòè S(t; p) ìîæíî çàïèñàòü
òîâ ÷óâñòâèòåëüíîñòè,
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 77 â âèäå S(t; p) ≡
∂ T y(t; p) ∈ RM×L . ∂p
(15)
Òàêèì îáðàçîì, ìàòðèöà S(t; p) õàðàêòåðèçóåò ëîêàëüíóþ ÷óâñòâèèçìåíåíèÿì êîìïîòåëüíîñòü ðåøåíèÿ ìîäåëè y(t, p) ê íåíò ïàðàìåòðà p ; ïðè ýòîì, ñòðîêà si (t; p) ñîîòâåòñòâóåò ïåðâûì ïðîèçâîäíûì i -îé êîìïîíåíòû yi (t; p) ïî ïàðàìåòðàì pℓ ( ℓ ∈ {1, 2 . . . , L} ). Îñîáåííîñòüþ ÄÓÇÀ ÿâëÿåòñÿ ðàçðûâíîñòü ïåðâûõ ïðîèçâîäíûõ ðåøåíèÿ ïî âðåìåíè. Åñëè íà÷àëüíàÿ óíêöèÿ èìååò ðàçðûâ ïåðâîãî ðîäà â òî÷êå t0 , òî ñîîòâåñòâóþùåå ðåøåíèå èìååò ðàçðûâû [ nτ . Ïðè ýòîì, èìååò ìåñòî óâåëèïðîèçâîäíûõ â ìîìåíòû t ∈
ìàëûì
n∈N
÷åíèå ãëàäêîñòè ðåøåíèé ñ ðîñòîì t . Âîñïîëüçóåìñÿ îáîçíà÷åíèÿìè y := y(t; p),
yτ := y(t − τ; p),
y′ τ := y′ (t − τ; p).
(16)
Äëÿ ñèñòåìû (1) çàâèñÿùèå îò âðåìåíè êîýèöèåíòû ÷óâñòâèòåëüíîñòè ðåøåíèÿ ïî êîìïîíåíòàì âåêòîðà ïàðàìåòðîâ p óäîâëåòâîðÿ[ [t0 + nτ, t0 + (n + 1)τ] ñëåäóþùåé ñèñòåìå þò íà îòðåçêàõ t ∈ n∈N
óðàâíåíèé ÷óâñòâèòåëüíîñòè S′ (t) =
∂ ∂ f (y, yτ ; p)S(t − τ) f (y, yτ ; p)S(t) + ∂y ∂yτ ∂ + f (y, yτ ; p). ∂p
(17)
Íà ðèñ. 3 ïðèâåäåíû ãðàèêè ïîâåäåíèÿ ýëåìåíòàðíûõ óíêöèé (êîýèöèåíòîâ) ÷óâñòâèòåëüíîñòè ðåøåíèÿ ìîäåëè 3 äëÿ íîðìàëüíûõ êëåòîê è êëåòîê, íå èìåþùèõ ðåöåïòîðû ê èíòåðåðîíó, ïî ïàðàìåòðàì ρI è ρV , õàðàêòåðèçóþùèì ñêîðîñòè ïðîäóêöèè îäíîé êëåòêîé èíòåðåðîíà è âèðóñíûõ ÷àñòèö. Ïðîèçâîäíàÿ sτ (t) ≡ sτ (t, p) âåêòîð-óíêöèè ðåøåíèÿ y(t; p) ïî ∂ ïàðàìåòðó çàïàçäûâàíèÿ τ ( sτ (t, p) = y(t; p) ∈ RM ) óäîâëåòâî∂τ ðÿåò óðàâíåíèÿì ñ çàïàçäûâàþùèì àðãóìåíòîì íåéòðàëüíîãî òèïà
78
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà x 10
15
∂y/∂ ρ
5
I
15
sV sI sC
x 10
5
0.5
x 10
∂ y/∂ ρ
5
V
x 10
10 0
V
sC Sensitivities
10 Sensitivities
12
10
5 5
−0.5
sV sI sC
−1
sC
8 IFN, virus & pDC
7
20
V
6 4 2
−1.5 0
0
−5 0
−2
10
20
30
t (hours)
0 0
10
20 t
30
−2.5 0
−2 10
20 t
30
−4 0
10
20
30
t
èñ. 3. Äèíàìèêà ïðîèçâîäíûõ ðåøåíèÿ ìîäåëè ïî ïàðàìåòðàì êîýèöèåíòû ÷óâñòâèòåëüíîñòè. Äâà ëåâûõ ãðàèêà îïèñûâàþò ÷óâñòâèòåëüíîñòü ðåøåíèé ê èçìåíåíèþ ñêîðîñòè ñèíòåçà èíòåðåðîíà â ñëó÷àå íîðìàëüíûõ äåíäðèòíûõ êëåòîê è êëåòîê, ó êîòîðûõ îòñóòñòâóåò ðåöåïòîð ê èíòåðåðîíó, ñîîòâåòñòâåííî. Àíàëîãè÷íî, äâà ïðàâûõ ãðàèêà õàðàêòåðèçóþò ÷óâñòâèòåëüíîñòü ðåøåíèé ìîäåëè ê âàðèàöèè ñêîðîñòè ñèíòåçà âèðóñîâ ïðè íàëè÷èè èíãèáèðóþùåãî ýåêòà èíòåðåðîíà íà ïðîäóêöèþ âèðóñîâ, è â ñëó÷àå, êîãäà åãî íåò. ñëåäóþùåãî âèäà: sτ ′ (t) =
∂ ∂ f (y, yτ , yτ′ ; p)sτ (t − τ) f (y, yτ , yτ′ ; p)sτ (t) + ∂y ∂yτ ∂ ∂ − f (y, yτ , yτ′ ; p)y′ (t − τ) + f (y, yτ , yτ′ ; p). (18) ∂yτ ∂τ
×èñëåííîå ðåøåíèå òàêèõ óðàâíåíèþ ïðåäñòàâëÿåò áîëåå ñëîæíóþ çàäà÷ó, ò.ê. óâåëè÷åíèÿ ãëàäêîñòè ðåøåíèé ñ ðîñòîì t â ñëó÷àå óðàâíåíèé íåéòðàëüíîãî òèïà íå èìååò ìåñòà [6℄.
4.2. Èíîðìàöèîííàÿ ìàòðèöà Ôèøåðà.
Ïðè îöåíèâàíèè òî÷íîñòè ðåøåíèÿ îáðàòíûõ çàäà÷ óíäàìåíòàëüíàÿ ðîëü ïðèíàäëåæèò ìàòðèöå Ôèøåðà, êîòîðàÿ õàðàêòåðèçóåò êîëè÷åñòâî èíîðìàöèè î ïàðàìåòðàõ ìîäåëè ñîäåðæàùåéñÿ â êîíêðåòíîé âûáîðêå äàííûõ íàáëþäåíèé [8, 9℄. Èíîðìàöèîííàÿ ìàòðèöà ïîçâîëÿåò îïðåäåëèòü ïðåäåëüíóþ òî÷íîñòü, ñ êîòîðîé ìîæíî îöåíèòü ïàðàìåòðà ìîäåëè. Èíîðìàöèîííàÿ ìàòðèöà Ôèøåðà F , îïðåäåëÿåòñÿ êàê
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 79 ìàòåìàòè÷åñêîå îæèäàíèå ìàòðèöû âòîðûõ ïðîèçâîäíûõ óíêöèè ìàêñèìàëüíîãî ïðàâäîïîäîáèÿ ïî ýëåìåíòàì âåêòîðà ïàðàìåòðîâ p
∂2 L(p, τ) . F(p⋆ , τ⋆ ) ≡ E ∂p2 p⋆ ,τ⋆
(19)
Èñïîëüçóÿ ðåøåíèå óðàâíåíèé ÷óâñòâèòåëüíîñòè S, sτ , äëÿ ìíîæåñòâà âðåìåí äàííûõ íàáëþäåíèé tn N n=1 ïîñòðîèì ðàñøèðåííóþ ìàòðèöó ÷óâñòâèòåëüíîñòè Z , ñòðîêè êîòîðîé ñîäåðæàò êîýèöèåíòû ÷óâñòâèòåëüíîñòè ïî ïàðàìåòðàì äëÿ âñåõ ìîìåíòîâ (âûáîðêè) èçìåðåíèé S(t1 ; p⋆ , τ⋆ ) sτ (t1 ; p⋆ , τ⋆ ) S(t2 ; p⋆ , τ⋆ ) sτ (t2 ; p⋆ , τ⋆ ) Z := (20) .. .. . . S(tN ; p⋆ , τ⋆ )
sτ (tN ; p⋆ , τ⋆ )
 ñëó÷àå, êîãäà îøèáêè íàáëþäåíèé ðàñïðåäåëåíû ïî íîðìàëüíîìó çàêîíó, òî äëÿ ìàòðèöû Ôèøåðà ñïðàâåäëèâî ñëåäóþùåå ïðåäñòàâëåíèå ÷åðåç âûáîðî÷íóþ ìàòðèöó ÷óâñòâèòåëüíîñòè Z : F := ZT Σy Z.
(21)
Ñîãëàñíî íåðàâåíñòâó èíîðìàöèè Êðàìåðààî íèæíÿÿ îöåíêà ýëåìåíòîâ ìàòðèöû ðàññåÿíèÿ ïàðàìåòðîâ Σp (êîâàðèàöèîííîé ìàòðèöû ïàðàìåòðîâ) îò èñòèííûõ çíà÷åíèé îïðåäåëÿåòñÿ ýëåìåíòàìè ìàòðèöû, îáðàòíîé èíîðìàöèîííîé ìàòðèöå Ôèøåðà: Σp > F−1 .
(22)
åçóëüòàòû ðàñ÷åòà ìàòðèöû Ôèøåðà äëÿ àíàëèçà ïðåäåëüíîé îöåíêè òî÷íîñòè âàæíåéøèõ ïàðàìåòðîâ ìîäåëè èíòåðåðîíà (çà èñêëþ÷åíèåì çàïàçäûâàíèé è íà÷àëüíîé äîëè èíèöèðîâàííûõ êëåòîê) ïðèâåäåíû â òàáë. 2. Ïîëó÷åííûå îöåíêè ñíèçó äëÿ ñòàíäàðòíûõ îòêëîíåíèé îöåíîê ïàðàìåòðîâ ïîêàçûâàþò, ÷òî ïî èìåþùåìóñÿ ìàññèâó äàííûõ èçìåðåíèé ïàðàìåòðû, ìîäåëè íåëüçÿ îïðåäåëèòü òî÷íåå, ÷åì 50% îò èõ íîìèíàëüíûõ çíà÷åíèé.
80
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
5. Àíàëèç èäåíòèèöèðóåìîñòè ïàðàìåòðîâ
Âûáîðî÷íàÿ ìàòðèöà ÷óâñòâèòåëüíîñòè ïîçâîëÿåò ðàíæèðîâàòü ïàðàìåòðû ïî èõ âêëàäó â èçìåðåííûå çíà÷åíèÿ íàáëþäåíèé. Ïîñêîëüêó ìàñøòàá ïåðåìåííûõ ìîäåëè è ïàðàìåòðîâ ñèëüíî âàðüèðóåò, ìû ïðîâåëè àíàëèç ïåðåìàñøòàáèðîâàííîé âûáîðî÷íîé ìàòðèöû ÷óâñòâèòåëüíîñòè, ñîñòàâëåííîé èç áëîêîâ Slog (t; p) ≡
∂ T log(y(t; p)) ∈ RM×L . ∂log(p)
(23)
Àëãîðèòì àíàëèçà, ïðèâåä¼ííûé â [10℄ äëÿ èññëåäîâàíèÿ çàäà÷ õèìè÷åñêîé êèíåòèêè, àíàëîãè÷åí ìåòîäó ëèíåéíîé ïîøàãîâîé ðåãðåññèè: àêòîðû ïîñëåäîâàòåëüíî âêëþ÷àþòñÿ â ðåãðåññèîííóþ ìîäåëü â ïîðÿäêå óáûâàíèÿ êîððåëÿöèîííîé ñâÿçè ñ îòêëèêîì; ïðè ýòîì, îñòàòî÷íàÿ äèñïåðñèÿ, ïîêàçûâàþùàÿ ñòåïåíü ðàñõîæäåíèÿ ìåæäó äàííûìè è ïðîãíîçèðóåìûìè ìîäåëüþ çíà÷åíèÿìè îòêëèêà, ìîæåò áûòü íåïðèåìëåìî âåëèêà, äëÿ ïðåîäîëåíèÿ ÷åãî è ïîïîëíÿåòñÿ ìîäåëü. Ñõåìà ÷èñëåííîé ðåàëèçàöèè àëãîðèòìà ìîæíî çàïèñàòü â âèäå S1. Âû÷èñëèòü ñóììó êâàäðàòîâ ýëåìåíòîâ äëÿ êàæäîãî ñòîëáöà Z; S2. Âûáðàòü ñòîëáåö Zl ñ ìàêñèìàëüíîé ñóììîé, 1 6 l 6 L ;
Òàáëèöà 2. Ïðåäåëüíàÿ îöåíêà òî÷íîñòè ïàðàìåòðîâ íà îñíîâå èíîðìàöèîííîé ìàòèöû Ôèøåðà. Ïàðàìåòð
Îïòèìàëüíàÿ îöåíêà
ρV ρI θ σ d0CV kCV
1.1 0.00091 11.6 2.1 × 10−6 0.1 0.13
Íèæíÿÿ îöåíêà äèñïåðñèè 0.52 0.0004 6.5 8.9 × 10−7 0.1 0.055
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 81 S3. Âû÷èñëèòü êîýèöèåíòû ëèíåéíîé ðåãðåññèè ñòîëáöîâ ìàòðèöû Z îòíîñèòåëüíî ñòîëáöîâ ðàñøèðåííîé ìàòðèöû P , ñîñòàâëåííîé ñëåäóþùèì îáðàçîì P = [P, Zl ] (ïðè ïåðâîé èòåðàöèè P = Zl , ãäå l íîìåð âûáðàííîãî ñòîëáöà) ïî ìåòîäó íàèìåíüøèõ êâàäðàòîâ è îñóùåñòâèòü ïðîãíîç: b = P(PT P)−1 PZ; Z
(24)
S4. Âû÷èñëèòü ìàòðèöó íåâÿçêè (îøèáêó ðåãðåññèîííîãî ïðîãíîb; çà) R = Z − Z S5. Ïåðåîïðåäåëèòü àíàëèçèðóåìóþ ìàòðèöó Z := R ;
S6. Åñëè ÷èñëî ñòîëáöîâ ìàòðèöû P ìåíüøå L , òî ïîâòîðèòü øàãè 15. Ïðèìåíèâ äàííûé àëãîðèòì äëÿ àíàëèçà äëÿ ìàòðèöû ÷óâñòâèòåëüíîñòè, ïàðàìåòðû ìîäåëè ìîæíî óïîðÿäî÷èòü ïî èõ îòíîñèòåëüíîìó âêëàäó â íàáëþäàåìûå ïåðåìåííûå ìîäåëè ñëåäóþùèì îáðàçîì kCV > σ > ρV > ρI > θ > d0CV .
åçóëüòàòû àíàëèçà ïîçâîëÿþò áîëåå òî÷íî îöåíèòü âêëàä ïàðàìåòðîâ â äèíàìèêó íàáëþäàåìûõ ïåðåìåííûõ, ñ ó÷åòîì îñîáåííîñòåé ýêñïåðèìåíòà.
6. Èíîðìàöèîííûå êðèòåðèè ñëîæíîñòè ìîäåëåé
Ïîñêîëüêó äëÿ îïèñàíèÿ êîëè÷åñòâåííûõ çàêîíîìåðíîñòåé îäíîãî è òîãî æå äèíàìè÷åñêîãî ïðîöåññà â èììóíîëîãèè ìîæíî ïðåäëîæèòü íåñêîëüêî ðàçëè÷íûõ ìîäåëåé, âàæíåéøåé çàäà÷åé àíàëèçà ÿâëÿåòñÿ âûáîð íàèáîëåå àäåêâàòíîé ìîäåëè. Âåëè÷èíà óíêöèîíàëà íåâÿçêè Φ(p⋆ ) â òî÷êå ìèíèìóìà ÿâëÿåòñÿ ïðîñòåéøåé õàðàêòåðèñòèêîé áëèçîñòè êîíêðåòíîé ìîäåëè y(tj ; p) ê äàííûì yj .  îáùåì ñëó÷àå, äàííûé êðèòåðèé íå ÿâëÿåòñÿ îáîñíîâàííûì, ïîñêîëüêó ìîäåëè áîëåå ñëîæíîé ñòðóêòóðû, íàïðèìåð, ñ áîëüøèì ÷èñëîì ïàðàìåòðîâ, ìîãóò áîëåå òî÷íî ïðèáëèçèòü äàííûå. Ïðè ýòîì, ïîñêîëüêó èíîðìàöèîííîå ñîäåðæàíèå ìàññèâà äàííûõ îñòàåòñÿ
82
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
íåèçìåííûì, åñòåñòâåííî îæèäàòü, ÷òî íà÷èíàÿ ñ íåêîòîðîãî óðîâíÿ ñëîæíîñòè, òî÷íîñòü îöåíèâàíèÿ ïàðàìåòðîâ áóäåò óìåíüøàòüñÿ. Ýòî, â ñâîþ î÷åðåäü, óõóäøèò êà÷åñòâî ïðîãíîçà íà îñíîâå ìîäåëè. Ñëåäóÿ êëàññè÷åñêîé êîíöåïöèè èíîðìàöèîííîãî ðàññòîÿíèÿ Êóëüáàêà-Ëåéáëåðà è èíòåðïðåòàöèè ìàòåìàòè÷åñêîé ìîäåëè êàê ïðåäïîëàãàåìîé óíêöèè ïëîòíîñòè ðàñïðåäåëåíèÿ âåðîÿòíîñòè íàáëþäåíèé, öåëüþ çàäà÷è èäåíòèèêàöèè ÿâëÿåòñÿ îòûñêàíèå ìîäåëè, ìèíèìèçèðóþùåé èíîðìàöèîííîå ðàññòîÿíèå äî èñòèííîé ñèñòåìû [9℄. Ïîäõîä ê èäåíòèèêàöèè ñâÿçàííûé ñ ìàêñèìèçàöèåé óíêöèè ïðàâäîïîäîáèÿ ïîçâîëÿåò îöåíèòü ñðåäíåå èíîðìàöèîííîå ðàññòîÿíèå ìåæäó äàííîé ìîäåëüþ è èñòèííîé ñèñòåìîé. Øèðîêî èçâåñòåí èíîðìàöèîííûé êðèòåðèé Àêàèêå ðàíæèðîâàíèÿ ìîäåëåé [11℄: µ = −2 ℓn L(b p) + 2(L + 1), (25a) 2(L + 1)(L + 2) µc = −2 ℓn L(b p) + 2(L + 1) + (25b) , ν−L−2 ν = NM. Ìîäåëè ñ ìåíüøåé âåëè÷èíîé êðèòåðèÿ íàõîäÿòñÿ áëèæå ê èñòèííîé ñèñòåìå ïî èíîðìàöèîííîé ìåðå Êóëüáàêà-Ëåéáëåðà. Âîïðîñû ïðèëîæåíèé äàííîãî êðèòåðèÿ â çàäà÷àõ ìàòåìàòè÷åñêîé èììóíîëîãèè èññëåäîâàëèñü íàìè, â ÷àñòíîñòè â [7℄. Íàðÿäó ñ êðèòåðèÿìè, â îñíîâå êîòîðûõ ëåæèò îöåíèâàíèå èíîðìàöèîííîãî óêëîíåíèÿ îò èäåàëüíîé ìîäåëè äàííûõ íàáëþäåíèé, ïåðñïåêòèâíûì ïðåäñòàâëÿåòñÿ ïîäõîä ê ðàíæèðîâàíèþ ìîäåëåé ïî êðèòåðèþ ¾äëèíû îïèñàíèÿ¿ [14℄, ñâÿçàííûé ñ èìåíåì èññàíåíà.  îñíîâå äàííîãî êðèòåðèÿ ëåæèò êîíöåïöèÿ Êîëìîãîðîâñêîé ñëîæíîñòè àëãîðèòìîâ îïèñàíèÿ äàííûõ.  ðàìêàõ äàííîãî ïîäõîäà íàèëó÷øåé ÿâëÿåòñÿ ìîäåëü, êîòîðàÿ äîïóñêàåò íàèáîëåå êîìïàêòíîå îïèñàíèå äàííûõ, ò.å. íàèáîëåå ñèëüíîå ñæàòèå èíîðìàöèè â äàííûõ [9℄. Z p L ν det[F(p)]dp) (26) ∆MDL = − ℓnL(b p) + log( ) + log( 2 2π Ω
åàëèçàöèÿ àëãîðèòìà âû÷èñëåíèÿ äëèíû îïèñàíèÿ äëÿ ìíîãîïàðàìåòðè÷åñêèõ ìîäåëåé ÿâëÿåòñÿ âû÷èñëèòåëüíî òðóäî¼ìêîé çàäà÷åé,
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 83 ò.ê. ñâÿçàíà ñ ðàñ÷åòîì ìíîãîìåðíûõ èíòåãðàëîâ, çàâèñÿùèõ îò äåòåðìèíàíòà ìàòðèöû Ôèøåðà, â ñâîþ î÷åðåäü, îïðåäåëÿåìîé ðåøåíèåì ñèñòåìû óðàâíåíèé ÷óâñòâèòåëüíîñòè ìîäåëè ïî ïàðàìåòðàì. Äëÿ èëëþñòðàöèè ýåêòèâíîñòè äàííûõ êðèòåðèåâ, ðàññìîòðèì ïðîñòåéøóþ çàäà÷ó êèíåòèêè ïåðñèñòåíöèè êëåòîê â íîðìå, ò.å. ïðè îòñóòñòâèè âîçìóùåíèé â âèäå èíåêöèè. Íàèáîëåå ðàñïðîñòðàí¼ííûì ñïîñîáîì îïèñàíèÿ êèíåòèêè ÿâëÿåòñÿ ýêñïîíåíöèàëüíàÿ ìîäåëü (îáîçíà÷èì å¼ èíäåêñîì E ) d C(t) = −dC · C(t), dt
C(0) = C0 .
(27)
 òî æå âðåìÿ, ìíîãèå çàäà÷è áèîëîãèè ïðîäîëæèòåëüíîñòè æèçíè ìîäåëèðóþòñÿ ñ ïîìîùüþ çàêîíà îìïåðòöà (îáîçíà÷èì G ), çàäàâàåìîãî ñèñòåìîé óðàâíåíèé äëÿ ãèáåëè êëåòîê è èçìåíåíèÿ ïàðàìåòðà ñêîðîñòè ãèáåëè: d C(t) = dt d dC (t) = dt
−dC (t) · C(t),
(28a)
kC · dC (t).
(28b)
Íà ðèñ. 4 ïðåäñòàâëåíû ýêñïåðèìåíòàëüíûå äàííûå è ðåøåíèÿ ìîäåëè ñîîòâåòñòâóþùèå îïòèìàëüíûì îöåíêàì ïàðàìåòðîâ ýòèõ äâóõ ìîäåëåé. Âåëè÷èíû óíêöèîíàëîâ íåâÿçêè â òî÷êå ìèíèìóìà, è ñîîòâåòñòâóþùèõ êðèòåðèåâ Àêàèêå è äëèíû îïèñàíèÿ äëÿ äàííûõ ìîäåëåé èìåþò ñëåäóþùèå çíà÷åíèÿ: ΦE = 1012, ΦG = 1012, µE = 38, µG = 30, ∆E = 22.1, ∆G = 19.5.
Òàêèì îáðàçîì, ñî÷åòàíèå êðèòåðèåâ áëèçîñòè ê äàííûì íàáëþäåíèé, ñ èíîðìàöèîííûìè êðèòåðèÿìè, ïîçâîëÿåò îäíîçíà÷íî èäåíòèèöèðîâàòü ìîäåëü îìïåðòöà, êàê íàèáîëåå àäåêâàòíûé çàêîí îïèñàíèÿ ïðîöåññà ãèáåëè êëåòîê â äàííîé ñèñòåìå.
7. ëîáàëüíûé àíàëèç ÷óâñòâèòåëüíîñòè
Èçëîæåííûå âûøå ìåòîäû àíàëèçà ÷óâñòâèòåëüíîñòè ìîäåëåé ÿâëÿëèñü ëîêàëüíûìè. Â ðåàëüíûõ ïðèëîæåíèÿõ âàæíûì ÿâëÿåò-
84
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà 100
100 data y(t)
data y(t) d (t)
80
80
% pDC
% pDC
C
60
60 40
40 20
20 0 0
10
20 t
30
40
0 −10 0
10
20 t
30
40
èñ. 4. Äàííûå íàáëþäåíèé è ðåøåíèÿ ìîäåëåé ýêñïîíåíöèàëüíîé ãèáåëè êëåòîê (ñëåâà) è ãèáåëè ïî çàêîíó îìïåðòöà (ñïðàâà). ñÿ èññëåäîâàíèå âàðèàöèé ãëîáàëüíîãî ïîâåäåíèÿ ìîäåëè ïðè îäíîâðåìåííîì èçìåíåíèè ïàðàìåòðîâ. ëîáàëüíûé àíàëèç ÷óâñòâèòåëüíîñòè ìíîãîïàðàìåòðè÷åñêèõ ìîäåëåé ìîæíî ïðîâåñòè, èñïîëüçóÿ ñîâîêóïíîñòü äâóõ ïðèåìîâ: âûáîðêè íà îñíîâå Ëàòèíñêîãî ãèïåðêóáà è ðàíãîâîãî êðèòåðèÿ îöåíêè ïàðàìåòðîâ [12, 13℄. åçóëüòàòîì òàêîãî àíàëèçà ÿâëÿåòñÿ ðàíæèðîâàíèå ïàðàìåòðîâ ìîäåëè ïî ñòåïåíè èõ âëèÿíèÿ íà ïåðåìåííûå ìîäåëè èëè óíêöèîíàëû îò òàêîâûõ. Ñïîñîá âûáîðêè ïî ñõåìå Ëàòèíñêîãî ãèïåðêóáà ÿâëÿåòñÿ ðàçíîâèäíîñòüþ ìåòîäà Ìîíòå Êàðëî. Êàæäûé àíàëèçèðóåìûé ïàðàìåòð ìîäåëè òðàêòóåòñÿ êàê ñëó÷àéíàÿ âåëè÷èíà. Äëÿ âñåõ ïàðàìåòðîâ îïðåäåëÿåòñÿ óíêöèÿ ðàñïðåäåëåíèÿ, îáëàñòü çíà÷åíèÿ äåëèòñÿ îñîáûì ñïîñîáîì, è çàòåì, ïàðàìåòð âûáèðàåòñÿ ñëó÷àéíûì îáðàçîì. Ñ ïîìîùüþ òàêîé âûáîðêè ìîæíî ïîëó÷èòü ìíîæåñòâî ñî÷åòàíèé çíà÷åíèé ïàðàìåòðîâ, òàêèõ, ÷òî âûáîðî÷íîå çíà÷åíèå êàæäîãî ïàðàìåòðà èñïîëüçóåòñÿ òîëüêî îäèí ðàç. Äàëåå, ìîäåëü ïðîñ÷èòûâàåòñÿ äëÿ âñåõ íàáîðîâ ïàðàìåòðîâ, è ïîëó÷åííûå çíà÷åíèÿ ïåðåìåííûõ ìîäåëè èñïîëüçóþòñÿ äëÿ àíàëèçà ÷óâñòâèòåëüíîñòè (êîððåëÿöèè) êàæäîé ïîëó÷åííîé ïåðåìåííîé è êàæäîãî ïàðàìåòðà ñ ïðèìåíåíèåì ðàíãîâîãî êðèòåðèÿ.
7.1. Ïîñòðîåíèå âûáîðêè íà îñíîâå Ëàòèíñêîãî ãèïåðêóáà.
Ñëåäóÿ [12, 13℄, äëÿ êàæäîãî èññëåäóåìîãî ïàðàìåòðà èç âåêòîðà ïàðàìåòðîâ ìîäåëè p íåîáõîäèìî îïðåäåëèòü îáëàñòü çíà÷åíèé è
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 85 óíêöèþ ïëîòíîñòè ðàñïðåäåëåíèÿ. Äàëåå, âûáèðàåòñÿ ÷èñëî èñïûòàíèé N êîëè÷åñòâî íàáîðîâ ïàðàìåòðîâ è ñîîòâåòñòâåííî ÷èñëî ïðîãîíîê ìîäåëè. Ñòðîãèå êðèòåðèè äëÿ âûáîðà ýòîãî ÷èñëà íå ñóùåñòâóþò, îäíàêî îïûòíûì ïóòåì ðàíåå áûëî ïîëó÷åíî, ÷òî N > 3 4 L . Ñîîòâåòñòâåííî, îáëàñòü çíà÷åíèé êàæäîãî èç L ïàðàìåòðîâ äåëèòñÿ íà N íåïåðåêðûâàþùèõñÿ, ðàâíîâåðîÿòíûõ îòðåçêîâ. Äàëåå, ñîñòàâëÿåòñÿ òàáëèöà âûáîðêè íà îñíîâå Ëàòèíñêîãî ãèïåðêóáà ðàçìåðîì N × L ïî ñëåäóþùåìó ïðàâèëó: íà êàæäîì èç N èíòåðâàëîâ ñëó÷àéíûì îáðàçîì, íî â ñîîòâåòñòâèè ñ çàêîíîì ðàñïðåäåëåíèÿ, âûáèðàåòñÿ çíà÷åíèå êàæäîãî ïàðàìåòðà, ïîñëå ÷åãî, ñíîâà ñëó÷àéíûì îáðàçîì ñîñòàâëÿþòñÿ ïàðû èç èíòåðâàëîâ äëÿ ïåðâîãî è âòîðîãî ïàðàìåòðîâ, äàëåå èç ýòèõ ïàð îïÿòü ñëó÷àéíûì îáðàçîì ïîëó÷àþò òðîéêè ñ òðåòüèì ïàðàìåòðîì è òàê äàëåå, ïîêà íå èñ÷åðïàíû âñå ïàðàìåòðû.  ðåçóëüòàòå, ïîëó÷àåì íåêîòîðóþ ìàòðèöó ðàçìåðîì N × L , ñòðîêè êîòîðîé ñîäåðæàò ñëó÷àéíûé âåêòîð ïàðàìåòðîâ p , à êàæäûé ñòîëáåö ñîäåðæèò ñëó÷àéíûå ðåàëèçàöèè êàæäîãî ïàðàìåòðà pℓ . Ïîñëåäíèì ýòàïîì ðåàëèçàöèè àëãîðèòìà ðåàëèçàöèè ñëó÷àéíîé âûáîðêè ÿâëÿåòñÿ ÷èñëåííûé ðàñ÷åò ðåøåíèé ìîäåëè äëÿ âñåõ âåêòîðîâ p èç ïîñòðîåííîé âûáîðêè ïàðàìåòðîâ, ñ öåëüþ ïîëó÷åíèÿ íàáîðà çíà÷åíèé èññëåäóåìûõ ïåðåìåííûõ ìîäåëè. Äëÿ èññëåäóåìîé ìîäåëè ñèñòåìû èíòåðåðîíà îáëàñòü íåîïðåäåëåííîñòè çíà÷åíèé ïàðàìåòðîâ çàäàâàëàñü â ñëåäóþùåì âèäå: 1 ∗ ∗ 2 pℓ 6 pℓ 6 2pℓ è ïðåäïîëàãàëîñü, ÷òî ïàðàìåòðû ðàñïðåäåëåíû pmax +pmin
ïî òðåóãîëüíîìó çàêîíó ñ ïèêîì â òî÷êå ℓ 2 ℓ .  õîäå ÷èñëåííîãî ýêñïåðèìåíòà N ðàâíÿëîñü 500 .  êà÷åñòâå èññëåäóåìîé ïåðåìåííîé (öåëåâîé RT óíêöèîíàë) áðàëîñü ñóììàðíîå êîëè÷åñòâî èíòåðåðîíà It ≡ 0 I(t)dt .
7.2. àíãîâûé êðèòåðèé â îöåíêå çíà÷èìîñòè ïàðàìåòðîâ..
×òîáû ðàíæèðîâàòü ïàðàìåòðû ïî ñòåïåíè èõ âëèÿíèÿ íà öåëåâîé óíêöèîíàë ìîäåëè, áóäåì èñïîëüçîâàòü ñëåäóþùèé ñòàòèñòè÷åñêèé êðèòåðèé. Äëÿ ìíîæåñòâà âåêòîðîâ ïàðàìåòðîâ p è çíà÷åíèé çàâèñèìîé ïåðåìåííîé It , ïîëó÷åííûõ â õîäå ðåàëèçàöèè âûáîðêè íà îñíîâå Ëàòèíñêîãî ãèïåðêóáà, ñîñòàâèì ìàòðèöó N × (L + 1) ñ . Äàëåå, âû÷èñëèì êîðäàííûìè ðàñ÷åòîâ ïî ìîäåëè X = {Xl }l=L+1 l=1 ðåëÿöèîííóþ ìàòðèöó C , ýëåìåíòû êîòîðîé Cij ÿâëÿþòñÿ êîýè-
86
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
öèåíòàìè êîððåëÿöèè ìåæäó ïåðåìåííûìè ñòîëáöîâ Xi è Xj : P P P k (L + 1) Xki Xkj − Xki Xj Cij = q (29) P k 2 P k 2q P k 2 P (L + 1) (Xi ) − ( Xi ) (L + 1) (Xj ) − ( Xkj )2
Ïîñêîëüêó íàñ èíòåðåñóåò êîððåëÿöèÿ óíêöèîíàëà It è ïàðàìåòðîâ ìîåäëè, îïðåäåëèì ÷àñòè÷íûé êîýèöèåíò êîððåëÿöèè ìåæäó It è pℓ ïî îðìóëå ( C−1 îáðàòíàÿ ìàòðèöà): 1
σpl It = −Cl(L+1) /(Cll C(L+1)(L+1) ) 2 .
(30)
Ïî ðåçóëüòàòàì àíàëèçà äàííûõ êîýèöèåíòîâ ïàðàìåòðû ìîäåëè ìîæíî óïîðÿäî÷èòü ïî èõ ñòåïåíè èõ âëèÿíèÿ íà èçìåí÷èâîñòü It . Ïðèìåíåíèå èçëîæåííîãî àëãîðèòìà ê ìîäåëè ñèñòåìû èíòåðåðîíà ïîçâîëÿåò îöåíèòü íåîïðåäåë¼ííîñòü â çíà÷åíèè óíêöèè îò ðåøåíèÿ ìîäåëè è ñëó÷àéíûìè çíà÷åíèÿìè ïàðàìåòðîâ. åçóëüòàòû ðàñ÷åòîâ äëÿ äëÿ íåêîòîðûõ ïàðàìåòðîâ ïðèâåäåíû íà ðèñ. 5-6. Ñïëîøíûå ëèíèè, ïðåäñòàâëåííûå íà ãðàèêàõ ñîîòâåòñòâóþò óðàâíåíèÿì ðåãðåñññèè. Èíòåðåñíî, ÷òî çàâèñèìîñòü It îò ïàðàìåòðà çàïàçäûâàíèÿ τV ìîæåò áûòü íåïëîõî îïè àíà ýêñïîíåíöèàëüíîé êðèâîé, â òî âðåìÿ êàê ïî îñòàëüíûì ïàðàìåòðàì òàêîé ÿâíîé çàâèñèìîñòè íåò. Êîëè÷åñòâåííî, àíàëèç êîððåëÿöèè ïðèâîäèò ê ñëåäóþùèì îöåíêàì êîýèöèåíòîâ ðàíãîâîé êîððåëÿöèè ìåæäó öåëåâîé óíêöèåé è ïàðàìåòðàìè ìîäåëè, ïðåäñòàâëåííûìè â òàáë. 3. Âåëè÷èíà êîýèöèåíòà êîððåëÿöèè õàðàêòåðèçóåò ñòåïåíü âëèÿíèÿ íåîïðåäåëåííîñòè çíà÷åíèÿ ïàðàìåòðà íà íåòî÷íîñòü â îöåíêå öåëåâîé óíêöèè. Äëÿ ðàññìàòðèâàåìîé ìîäåëè ìîæíî ñäåëàòü
Òàáëèöà 3. Âûáîðî÷íûå êîýèöèåíòû ðàíãîâîé êîððåëÿöèè ìåæäó It è ïàðàìåòðàìè ìîäåëè èíòåðåðîíà. ρI ρV θ
It 0.3917 −0.0007 0.0286
σV d0c kc
It 0.0684 0.0151 0.0266
τI τv fi
It −0.0464 −0.0947 0.3154
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 87 5
4
5
x 10
4 3.5
3
3
2.5
2.5 Itot
Itot
3.5
2 1.5
2 1.5
1
1
0.5
0.5
0
x 10
2
3
4
5
6 τv
7
8
9
10
0
2
3
4
5
τi
6
7
8
9
èñ. 5. åçóëüòàòû ÷èñëåííûõ ýêñïåðèìåíòîâ ïî èññëåäîâàíèþ ÷óâñòâèòåëüíîñòè ìîäåëè èíòåðåðîíà (çàâèñèìàÿ ïåðåìåííàÿ It ) ê ïàðàìåòðàì ìîäåëè ñ ïîñòðîåíèåì ñëó÷àéíîé âûáîðêè ïî ñõåìå Ëàòèíñêîãî ãèïåðêóáà. Ñëåâà: êîððåëÿöèÿ It ñ âåëè÷èíîé çàïàçäûâàíèÿ τV , óðàâíåíèå ðåãðåññèè èìååò âèä It = 6 × 105 exp−0.3·τV . Ñïðàâà: êîððåëÿöèÿ It ñ âåëè÷èíîé çàïàçäûâàíèÿ τI , óðàâíåíèå ðåãðåññèè èìååò âèä It = 90000 + 4500 · τV . âûâîä î òîì, ÷òî íàèáîëåå çíà÷èìûìè ñ òî÷êè çðåíèÿ ãëîáàëüíîé êîððåëÿöèè ñóììàðíîãî êîëè÷åñòâà èíòðååðîíà ïðîèçâåäåííîãî â õîäå èíåêöèè ÿâëÿåòñÿ ñêîðîñòü ñèíòåçà èíòåðåðîíà ρI è ÷èñëî ïåðâè÷íî èíèöèðîâàííûõ êëåòîê fi .
8. Çàêëþ÷åíèå: ìàòðè÷íûé àíàëèç â çàäà÷àõ èäåíòèèêàöèè
Îöåíêà ïàðàìåòðîâ è èäåíòèèêàöèÿ îïòèìàëüíûõ ìîäåëåé ÿâëÿåòñÿ âàæíåéøåé ïðèêëàäíîé çàäà÷åé ìîäåëèðîâàíèÿ â áèîëîãèè. Äëÿ å¼ óñïåøíîãî ðåøåíèÿ òðåáóåòñÿ ðàçâèòèå ýåêòèâíûõ ìåòîäîâ ðåøåíèÿ îáðàòíûõ çàäà÷, îöåíèâàíèÿ ïàðàìåòðè÷åñêîé èäåíòèèöèðóåìîñòè ìîäåëåé è èíîðìàöèîííîé ñëîæíîñòè ìîäåëåé.  äàííîé ðàáîòå ïðåäñòàâëåí íàáîð áàçîâûõ àëãîðèòìîâ àíàëèçà ïàðàìåòðè÷åñêèõ ìîäåëåé â êîíòåêñòå äàííûõ íàáëþäåíèé. àçâèâàåìàÿ íàìè âû÷èñëèòåëüíàÿ òåõíîëîãèÿ ìîäåëèðîâàíèÿ â èììóíîëîãèè ìîæåò áûòü èñïîëüçîâàíà äëÿ èçó÷åíèÿ ãîðàçäî áîëåå øèðîêîãî ñïåêòðà ïðèêëàäíûõ çàäà÷ ìàòåìàòè÷åñêîé áèîëîãèè. Âîïðîñû
88
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà 5
4
5
x 10
4 3.5
3
3
2.5
2.5 Itot
Itot
3.5
2 1.5
2 1.5
1
1
0.5
0.5
0
x 10
2
4
6
8
10
12
14
fi
16 −3
x 10
0
4
6
8
10
12
14 θ
16
18
20
22
24
èñ. 6. åçóëüòàòû ÷èñëåííûõ ýêñïåðèìåíòîâ ïî èññëåäîâàíèþ ÷óâñòâèòåëüíîñòè ìîäåëè èíòåðåðîíà (çàâèñèìàÿ ïåðåìåííàÿ It ) ê ïàðàìåòðàì ìîäåëè ñ ïîñòðîåíèåì ñëó÷àéíîé âûáîðêè ïî ñõåìå Ëàòèíñêîãî ãèïåðêóáà. Ñëåâà: çàâèñèìîñòü It îò äîëè ïåðâè÷íî èíèöèðîâàííûõ êëåòîê fi , óðàâíåíèå ðåãðåññèè èìååò âèä It = 60000 + 6 × 106 · fi . Ñïðàâà: çàâèñèìîñòü It îò ïàðàìåòðîâ èíãèáèðîâàíèÿ ñèíòåçà âèðóñîâ θ , óðàâíåíèå ðåãðåññèè èìååò âèä It = 128500 − 803 · θ . ýåêòèâíîé ÷èñëåííîé ðåàëèçàöèè ñîîòâåòñòâóþùèõ àëãîðèòìîâ áàçèðóþòñÿ íà øèðîêèì ïðèìåíåíèåì ìåòîäîâ ìàòðè÷íîãî àíàëèçà è ëèíåéíîé àëãåáðû [15, 16℄ è òðåáóþò äàëüíåéøèõ èññëåäîâàíèé.
Ñïèñîê ëèòåðàòóðû
[1℄ Áî÷àðîâ .À., Ìàð÷óê .È. Ïðèêëàäíûå ïðîáëåìû ìàòåìàòè÷å// 2000. . ñêîãî ìîäåëèðîâàíèÿ â èììóíîëîãèè. 19051920.
ÆÂÌèÌÔ.
40
[2℄ Andrew S.M., Baker C.T.H., Bo harov G.A. Rival approa hes to mathemati al modelling in immunology. // 2007. . 669686.
Math.
205
J. Comput. Appl.
[3℄ G. Bo harov, L. Cervantes-Barragan, R. Zust, K. Eriksson, V. Thiel, B. Ludewig. Mathemati al modeling of the antiviral type I interferon response. // In: Pro eedings of the FOSBE 2007 Eds. F. Allgower and M.Reuss. Fraunhofer IRB Verlag. 2007. 325330.
×óâñòâèòåëüíîñòü â ìîäåëÿõ ìàòåìàòè÷åñêîé èììóíîëîãèè 89 [4℄ L.K. Babadzanjanz, A.A. Voitylov, P. Krebs, B. Ludewig, D.R. Sarkissian, G.A. Bo harov. On primary statisti al data pro essing of experimental measurements of lympho ytes using C57BL/6 mouse line. //  ñá. ¾Óñòîé÷èâîñòü è ïðîöåññû óïðàâëåíèÿ¿. Ìåæäóíàðîäíîé êîíåðåíöèè ïîñâÿùåííîé 75-ëåòèþ Â.È. Çóáîâà, ïîä ðåä. Ä.À. Îâñÿííèêîâà è Ë.À.Ïåòðîñÿíà. Ñàíêò-Ïåòåðáóðãñêèé ãîñóäàðñòâåííûé Óíèâåðñèòåò. 2005. Ò. 2. Ñ. 1227-1236. [5℄ C.T.H. Baker, G.A. Bo harov, C.A.H. Paul and F.A. Rihan. Computational modelling with fun tional dierential equations: identi ation, sele tion and sensitivity. // . 2005. . 107129.
Mathemati s
Applied Numeri al
53
[6℄ Christopher T.H. Baker and Gennady A. Bo harov. Computational aspe ts of time-lag models of Mar huk type that arise in . 2005. immunology. // . 247262.
20
Russ. J. Numer. Anal. Math. Modelling
[7℄ C.T.H. Baker, G.A. Bo harov, J.M. Ford, P.M. Lumb, S.J. Norton, C.A.H. Paul, T. Junt, P. Krebs, B. Ludewig. Computational Approa hes to Parameter Estimation and Model Sele tion in 2005. . 5076. Immunology. //
184
J. Comput. Appl. Math.
[8℄ Òåðåáèæ Â.Þ. Ââåäåíèå â ñòàòèñòè÷åñêóþ òåîðèþ îáðàòíûõ çàäà÷. Ì.: ÔÈÇÌÀÒËÈÒ. 2005. [9℄ Ëüþíã Ë. Èäåíòèèêàöèÿ ñèñòåì. Òåîðèÿ äëÿ ïîëüçîâàòåëÿ. Ì.: Íàóêà. 1991. [10℄ K. Zhen Yao, Benjamin M. Shaw, Bo Kou, Kim B. M Auley, D. W. Ba on. Modeling Ethylene/Butene Copolymerization with Multisite Catalysts: Parameter Estimability and Experimental Design. // . 2003. . pp. 563588.
Polymer Rea tion Engineering
11
[11℄ Burnham, K.P., Anderson, D.R. Model Sele tion and Multimodel Inferen e - a pra ti al information-theoreti approa h, 2nd ed. Springer-Verlag, New York. 3rd printing. 2004.
90
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
[12℄ Ronald L. Iman, Jon C. Helton. An Investigation of Un ertainty and Sensitivity Analysis Te hniques for Computer Models. // 1988. (1). 7190.
Analysis
8
Risk
[13℄ S. M. Blower. H. Dowlatabadi. Sensitivity and Un ertainty Analysis of Complex Models of Disease Transmission: An HIV Model, as an Example. // . 1994. . pp. 229243.
International Statisti al Review / Revue Internationale de Statistique 62
[14℄ Hanson A.J., Fu P.C-W. Appli ations of MDL to sele ted families of models. In: Advan es in Minimum Des ription Lenght Theory and Appli ations. Ed. by P.D. Gr unwald, I.J. Myung, M.A. Pitt. The MIT Press. Cambridge MA. 195150. 2005. [15℄ Âîåâîäèí Â.Â. ×èñëåííûå ìåòîäû ëèíåéíîé àëãåáðû (òåîðèÿ è àëãîðèòìû). Ì.: Íàóêà. 1966. [16℄ Äæ. îëóá., ×. Âàí Ëîóí. Ìàòðè÷íûå âû÷èñëåíèÿ. Ì.: Ìèð. 1999.
Àðõèòåêòóðà è ïðèíöèïû ðåàëèçàöèè êîëëåêòèâíîãî áàíêà òåñòîâ â ñåòè Èíòåðíåò ⋄
⋆
Âàä. Â. Âîåâîäèí , Ñ. È. Ñîáîëåâ , À. Â. Ôðîëîâ
 äàííîé ñòàòüå îïèñûâàþòñÿ òåõíîëîãè÷åñêèå îñíîâû è àðõèòåêòóðà ñèñòåìû, ïðåäíàçíà÷åííîé äëÿ îðìèðîâàíèÿ â ñåòè Èíòåðíåò êîëëåêòèâíîãî áàíêà òåñòîâ ïî íåêîòîðîé ïðåäìåòíîé îáëàñòè. ëàâíîé îñîáåííîñòüþ ñèñòåìû ÿâëÿåòñÿ âîçìîæíîñòü îáúåäèíåíèÿ ðàáîòû ìíîãèõ ñïåöèàëèñòîâ-ïðîåññèîíàëîâ äëÿ ñîçäàíèÿ â ðàñïðåäåëåííîì ðåæèìå âûñîêîêà÷åñòâåííîãî íàáîðà òåñòîâ, âîïðîñîâ è óïðàæíåíèé, ïðèãîäíûõ êàê äëÿ ïðîâåäåíèÿ òåñòèðîâàíèÿ óðîâíÿ ïîäãîòîâêè ó÷àùèõñÿ, òàê è äëÿ èñïîëüçîâàíèÿ â ðåæèìå òðåíàæåðà. Îáîëî÷êà ñèñòåìû íå çàâèñèò îò ïðåäìåòíîé îáëàñòè è ìîæåò áûòü èñïîëüçîâàíà äëÿ ïîääåðæêè ó÷åáíîãî ïðîöåññà ïî ñàìûì ðàçíûì äèñöèïëèíàì, à ïåðâàÿ âåðñèÿ ñèñòåìû áóäåò îðèåíòèðîâàíà íà ïàðàëëåëüíûå âû÷èñëåíèÿ.
1. Ââåäåíèå
Ñîâðåìåííûé ìèð ñòàíîâèòñÿ âñå áîëåå ¾êîìïüþòåðíûì¿, à êîìïüþòåðíûé ìèð âñå áîëåå ¾ïàðàëëåëüíûì¿. Ìíîãîÿäåðíûå ïðîöåññîðû, êëàñòåðíûå ñèñòåìû, ðàñïðåäåëåííûå âû÷èñëåíèÿ è gridòåõíîëîãèè ñòàíîâÿòñÿ äîñòóïíûìè, ïîýòîìó õîðîøèå ñïåöèàëèñòû ïî ïàðàëëåëüíûì âû÷èñëåíèÿì óæå íà äàííûé ìîìåíò ÷ðåçâû÷àéíî âîñòðåáîâàíû, è ñî âðåìåíåì íåîáõîäèìîñòü â íèõ áóäåò òîëüêî ðàñòè. Ïîäãîòîâêà òàêèõ ñïåöèàëèñòîâ ÿâëÿåòñÿ î÷åíü âàæíîé çàäà÷åé, ⋄ Ìîñêîâñêèé
ãîñóäàðñòâåííûé óíèâåðñèòåò èìåíè Ì.Â.Ëîìîíîñîâà âû÷èñëèòåëüíûé öåíòð Ì Ó Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
92
Âàä. Â. Âîåâîäèí, Ñ. È. Ñîáîëåâ, À. Â. Ôðîëîâ
è îäíîé èç ñîñòàâëÿþùèõ äàííîãî ïðîöåññà ÿâëÿåòñÿ ïðîâåäåíèå òåñòèðîâàíèé. Äàííàÿ ñòàòüÿ ñîäåðæèò îïèñàíèå ðàçðàáàòûâàåìîé ñèñòåìû êîëëåêòèâíîãî áàíêà òåñòîâ, öåëüþ êîòîðîé ÿâëÿåòñÿ ñîçäàíèå Èíòåðíåò-ðåñóðñà, ïðåäîñòàâëÿþùåãî íàáîð òåñòîâ, âîïðîñîâ è óïðàæíåíèé ïî íåêîòîðîé ïðåäìåòíîé îáëàñòè. Íàäî îòìåòèòü, ÷òî ñèñòåìû, ïîçâîëÿþùèå ïðîõîäèòü òåñòèðîâàíèå ïî îïðåäåëåííîé òåìàòèêå, ñóùåñòâóþò óæå äîñòàòî÷íî äàâíî [1, 2℄. Îäíàêî ó ïîäîáíûõ ñèñòåì åñòü áîëüøîé íåäîñòàòîê: ñîçäàíèåì âîïðîñîâ çàíèìàåòñÿ íåêàÿ îïðåäåëåííàÿ, è îáû÷íî íåáîëüøàÿ, ãðóïïà ëþäåé, ÷òî íå ïîçâîëÿåò â ïîëíîé ìåðå îõâàòèòü ïðåäñòàâëåííóþ â òåñòå îáëàñòü çíàíèé.  îïèñûâàåìîé ñèñòåìå ïðåäëàãàòü ñâîè âîïðîñû ìîæåò ëþáîé êâàëèèöèðîâàííûé ñïåöèàëèñò, ÷òî ïîçâîëÿåò ðàñøèðèòü îïèñàíèå ïðåäìåòíîé îáëàñòè ñèëàìè ìíîãèõ ñïåöèàëèñòîâ. Ñèñòåìû, ïðåäëàãàþùèå ñõîæèé ïîäõîä, òî åñòü ðåàëèçóþùèå íàïîëíåíèå ðåñóðñîâ ñèëàìè ìíîãèõ ïîëüçîâàòåëåé, óæå ñóùåñòâóþò, è ñàìîé èçâåñòíîé ñðåäè íèõ ÿâëÿåòñÿ íàáîð ïðîãðàìì Wiki, ïîëîæåííûõ â îñíîâó ýíöèêëîïåäèè Wikipedia, íà ïðèìåðå êîòîðîé ìîæíî óâèäåòü, íàñêîëüêî òàêèå ñèñòåìû ìîãóò áûòü âîñòðåáîâàííûìè. Ïðåäïîëàãàåòñÿ, ÷òî îïèñûâàåìàÿ â äàííîé ðàáîòå ñèñòåìà áóäåò àïðîáèðîâàíà íà ïàðàëëåëüíûõ âû÷èñëåíèÿõ, îäíàêî îáîëî÷êà ñèñòåìû ïðîåêòèðóåòñÿ íåçàâèñèìîé îò ïðåäìåòíîé îáëàñòè.
2. Îáùèå ïðèíöèïû ðàáîòû ñèñòåìû
Êîëëåêòèâíûé áàíê òåñòîâ ÿâëÿåòñÿ õðàíèëèùåì òåñòîâ è âîïðîñîâ, èç êîòîðûõ ýòè òåñòû ñîñòîÿò, è ïðåäîñòàâëÿåò âîçìîæíîñòè äëÿ ïîïîëíåíèÿ è èñïîëüçîâàíèÿ õðàíèìîé èíîðìàöèè. Äàííûå âîçìîæíîñòè âêëþ÷àþò â ñåáÿ ñîçäàíèå è ñîõðàíåíèå âîïðîñîâ â õðàíèëèùå, ïîäáîð ëîêàëüíîãî òåñòà èç ñîõðàíåííûõ âîïðîñîâ (ïðè ýòîì îí ìîæåò áûòü èñïîëüçîâàí òîëüêî òåì ïîëüçîâàòåëåì, êîòîðûé åãî ñîçäàë), ñîçäàíèå òàê íàçûâàåìûõ ýòàëîííûõ òåñòîâ, êîòîðûå ÿâëÿþòñÿ òèïîâûìè äëÿ äàííîé îáëàñòè çíàíèé è äîñòóïíû âñåì, à òàêæå ïðîõîæäåíèå ñîçäàííûõ òåñòîâ è îöåíèâàíèå ïîëó÷åííûõ ðåçóëüòàòîâ. Ïåðå÷èñëåííûå â òàêîì ïîðÿäêå ïóíêòû ñîîòâåòñòâóþò àëãîðèò-
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
93
ìó èñïîëüçîâàíèÿ äàííîé ñèñòåìû: ñíà÷àëà ñîçäàþòñÿ âîïðîñû, ïîòîì èç íèõ îðìèðóþòñÿ òåñòû, êîòîðûå â êîíå÷íîì èòîãå èñïîëüçóþòñÿ â ïðîöåññå òåñòèðîâàíèÿ. Êîëëåêòèâíûé áàíê òåñòîâ òàêæå ñîäåðæèò îïèñàíèå ñòðóêòóðû ïðåäìåòíîé îáëàñòè. Âñÿ îáëàñòü ïðåäñòàâëåíà â âèäå òðåõóðîâíåâîãî äåðåâà, â ëèñòüÿõ êîòîðîãî õðàíÿòñÿ âîïðîñû. Êîðåíü ýòîãî äåðåâà ýòî ñàìà îáëàñòü. Îíà ñîñòîèò èç ðàçäåëîâ (1-é óðîâåíü), òå â ñâîþ î÷åðåäü ñîñòîÿò èç ãëàâ (2-é óðîâåíü), à ãëàâû èç ïàðàãðàîâ (3-é óðîâåíü). Íåïîñðåäñòâåííî ñàìè âîïðîñû íàõîäÿòñÿ íà ñàìîì íèæíåì óðîâíå. Êàê ïîêàçàëà ïðàêòèêà [3, 4℄, ìíîãèå ïðåäìåòíûå îáëàñòè ìîãóò áûòü ïðåäñòàâëåíû â âèäå óêàçàííîãî äåðåâà, à æåñòêàÿ ñòðóêòóðèçàöèÿ íà íå áîëåå ÷åì òðè óðîâíÿ íå ÿâëÿåòñÿ ñèëüíûì îãðàíè÷åíèåì. Ïîä âîïðîñîì ïîíèìàåòñÿ îáû÷íîå çàäàíèå: åñòü îðìóëèðîâêà âîïðîñà, åñòü âàðèàíòû îòâåòà íà íåãî, è íåîáõîäèìî âûáðàòü ïðàâèëüíûé âàðèàíò.  ïåðâîé âåðñèè ñèñòåìû âîïðîñû ìîãóò áûòü îäíîãî èç òðåõ òèïîâ: âûáîð åäèíñòâåííîãî âàðèàíòà èç ìíîãèõ, ìíîæåñòâåííûé âûáîð è ââîä çíà÷åíèé. Âìåñòå ñ ýòèì, ñèñòåìà ñðàçó ïðîåêòèðóåòñÿ òàêèì îáðàçîì, ÷òîáû â äàëüíåéøåì ìîæíî áûëî áû ëåãêî äîáàâèòü íîâûå òèïû, íàïðèìåð, âûáîð îáëàñòåé íà ãðàè÷åñêîì èçîáðàæåíèè. Òåñò ïðåäñòàâëÿåò ñîáîé óïîðÿäî÷åííîå ìíîæåñòâî âîïðîñîâ, ñíàáæåííîå íåêîòîðûì íàáîðîì ïàðàìåòðîâ, òàêèõ êàê âðåìÿ, îòâåäåííîå íà ïðîõîæäåíèå òåñòà, èëè êðèòåðèè îöåíèâàíèÿ ðåçóëüòàòîâ òåñòèðîâàíèÿ. Âñå ëþäè, âîâëå÷åííûå â ðàáîòó ñ ñèñòåìîé, â çàâèñèìîñòè îò ñòîÿùèõ ïåðåä íèìè çàäà÷ ìîãóò áûòü ðàçäåëåíû íà íåñêîëüêî ãðóïï: Ýêñïåðò, åäàêòîð, Ïðåïîäàâàòåëü, Ñòóäåíò, Àäìèíèñòðàòîð, óðó. Êàæäîìó ó÷àñòíèêó ñèñòåìû ïðåäîñòàâëÿåòñÿ íåêîòîðûé íàáîð óíêöèé äëÿ ðàáîòû ñ ñèñòåìîé (îáùàÿ ñõåìà ïîêàçàíà íà ðèñ. 1). Îñíîâíàÿ çàäà÷à ýòî ñîðìóëèðîâàòü âîïðîñ è ïðåäëîæèòü åãî äëÿ âêëþ÷åíèÿ â îñíîâíóþ áàçó çíàíèé. Ýêñïåðòîâ ìîæåò áûòü ìíîãî, ðàáîòàþò îíè íåçàâèñèìî äðóã îò äðóãà ÷åðåç Èíòåðíåò, è èìåííî íà äàííîì ýòàïå ðåàëèçóåòñÿ óêàçàííîå âûøå âàæíîå ñâîéñòâî ñèñòåìû, ïîçâîëÿþùåå êàæäîìó ïðîøåäøå-
Ýêñïåðòà
94
Âàä. Â. Âîåâîäèí, Ñ. È. Ñîáîëåâ, À. Â. Ôðîëîâ
èñ. 1.
Îáùàÿ ñõåìà ðàáîòû ñèñòåìû
ìó ðåãèñòðàöèþ ñïåöèàëèñòó äîáàâëÿòü âîïðîñû äëÿ òåñòîâ. Ýêñïåðò ñîñòàâëÿåò âîïðîñ, îïðåäåëÿåò åãî ïàðàìåòðû è îòïðàâëÿåò íà ðàññìîòðåíèå åäàêòîðó. ðàññìàòðèâàåò ýòîò âîïðîñ è ëèáî îòêàçûâàåò, ëèáî ðàçðåøàåò åãî çàíåñåíèå â îñíîâíóþ áàçó çíàíèé.  ïîñëåäíåì ñëó÷àå åäàêòîð èìååò âîçìîæíîñòü ïðåäâàðèòåëüíî èçìåíèòü ëþáîé àòðèáóò, áóäü òî îðìóëèðîâêà ñàìîãî âîïðîñà, êîëè÷åñòâî îòâåòîâ, ïîëîæåíèå â äåðåâå çíàíèé èëè ÷òî-òî èíîå. Ïî ðåçóëüòàòàì ðàáîòû åäàêòîðà Ýêñïåðò ïîëó÷àåò îòâåò, áûë ëè ïðèíÿò åãî âîïðîñ èëè íåò, è åñëè âîïðîñ áûë ïðèíÿò, òî âíîñèë ëè åäàêòîð â íåãî êàêèå-ëèáî êîððåêòèâû. Ïîìèìî ýòèõ óíêöèé, åäàêòîð çàíèìàåòñÿ ñîçäàíèåì ýòàëîííûõ òåñòîâ, òî åñòü òèïîâûõ òåñòîâ, äîñòóïíûõ âñåì. Òàêèå òåñòû îáÿçàíû áûòü àêêóðàòíî ñîñòàâëåíû, ïîýòîìó òîëüêî åäàêòîðû ìîãóò èõ ñîçäàâàòü, òàê êàê ýòà ãðóïïà äåéñòâóþùèõ ëèö ñèñòåìû ñîñòîèò èç íàèáîëåå êâàëèèöèðîâàííûõ ñïåöèàëèñòîâ â äàííîé îáëàñòè.
åäàêòîð
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
95
Ïîñëå òîãî, êàê âîïðîñ áûë ñîçäàí Ýêñïåðòîì, à çàòåì ïðèíÿò åäàêòîðîì è âêëþ÷åí â áàíê, åãî ìîæåò èñïîëüçîâàòü Ïðåïîäàâàòåëü. íàáèðàåò âîïðîñû äëÿ òåñòà èç îñíîâíîé áàçû çíàíèé èëè ñîçäàåò ñâîè, äîñòóïíûå òîëüêî åìó ëîêàëüíûå âîïðîñû, è îïðåäåëÿåò ïàðàìåòðû ïðîõîæäåíèÿ ýòîãî òåñòà. Òàêæå îí îïèñûâàåò è ðåãèñòðèðóåò â ñèñòåìå ãðóïïó Ñòóäåíòîâ, ïîñëå ÷åãî íàçíà÷àåò ýòîé ãðóïïå ïðîõîæäåíèå ñîçäàííîãî èì òåñòà. Äëÿ ñîçäàíèÿ ñâîèõ ëîêàëüíûõ âîïðîñîâ åìó ïðåäîñòàâëÿþòñÿ ïðàâà Ýêñïåðòà. Âñå ñîçäàííûå Ïðåïîäàâàòåëåì ñóùíîñòè âèäíû òîëüêî åìó, çà îäíèì èñêëþ÷åíèåì: ïîñêîëüêó îí ïîëüçóåòñÿ âîçìîæíîñòÿìè Ýêñïåðòà, òî èìååò âîçìîæíîñòü ïðåäëàãàòü âîïðîñû äëÿ çàíåñåíèÿ â îñíîâíóþ áàçó çíàíèé. Åãî ñîáñòâåííûå òåñòû ïðè ýòîì âñåãäà îñòàþòñÿ ëîêàëüíûìè è íå ìîãóò áûòü èñïîëüçîâàíû äðóãèìè.
Ïðåïîäàâàòåëü
Ñòóäåíò
Êàæäûé ïðèíàäëåæèò îäíîé è òîëüêî îäíîé ãðóïïå. Ïîñëå òîãî, êàê Ïðåïîäàâàòåëü íàçíà÷èë äàííîé ãðóïïå òåñò, Ñòóäåíòû â îòâåäåííîå äëÿ ýòîãî òåñòà âðåìÿ íà÷èíàþò åãî ïðîõîæäåíèå. Ïî çàâåðøåíèþ òåñòèðîâàíèÿ ââåäåííûå Ñòóäåíòîì îòâåòû ñîõðàíÿþòñÿ â õðàíèëèùå, è Ïðåïîäàâàòåëü ìîæåò ïðîñìîòðåòü ðåçóëüòàòû êàæäîãî ó÷àñòíèêà ïî ýòîìó òåñòó.
Àäìèíèñòðàòîð
âûïîëíÿåò ÷èñòî òåõíè÷åñêèå óíêöèè. Îñíîâíîé åãî çàäà÷åé ÿâëÿåòñÿ ïîääåðæàíèå ðàáîòîñïîñîáíîñòè áàíêà òåñòîâ è âñåõ ñîïóòñòâóþùèõ òåõíîëîãè÷åñêèõ êîìïîíåíò. Ïîñêîëüêó ïðåäïîëàãàåòñÿ, ÷òî ñîçäàâàåìàÿ ñèñòåìà áóäåò äîñòóïíà íå òîëüêî â Èíòåðíåòå, à áóäåò ïîääåðæèâàòü è âîçìîæíîñòü óñòàíîâêè â ëîêàëüíûõ ñåòÿõ, òî Àäìèíèñòðàòîð îòâå÷àåò è çà íà÷àëüíîå ðàçâåðòûâàíèå ñèñòåìû. Åñëè Àäìèíèñòðàòîð îòâå÷àåò çà òåõíè÷åñêóþ ñîñòàâëÿþùóþ ñèñòåìû, òî îïðåäåëÿåò åå ñîäåðæàòåëüíóþ ÷àñòü.  åãî êîìïåòåíöèè íàõîäÿòñÿ, ïðåæäå âñåãî, ðàáîòà ñ åäàêòîðàìè è îïèñàíèå ñòðóêòóðû ïðåäìåòíîé îáëàñòè. àáîòà ñ åäàêòîðàìè çàêëþ÷àåòñÿ â èõ íàçíà÷åíèè è êîíòðîëå íàä èõ äåÿòåëüíîñòüþ. Ñòðóêòóðà ïðåäìåòíîé îáëàñòè çàäàåòñÿ â âèäå îïèñàííîãî âûøå äåðåâà, ÷òî ïîçâîëÿåò êàæäûé çàíîñèìûé â áàíê âîïðîñ îäíîçíà÷íî ïðèïèñàòü ê îäíîé èç åãî âåðøèí. åãèñòðàöèþ óðó â ñèñòåìå îñóùåñòâëÿåò Àäìèíèñòðàòîð.
óðó
96
Âàä. Â. Âîåâîäèí, Ñ. È. Ñîáîëåâ, À. Â. Ôðîëîâ
Îïèñàííàÿ âûøå ñõåìà ðàáîòû ñèñòåìû ïðåäíàçíà÷åíà äëÿ òåñòèðîâàíèÿ ðåæèìà, â êîòîðîì èç çàäàííûõ âîïðîñîâ ñîçäàåòñÿ òåñò, èñïîëüçóåìûé â äàëüíåéøåì äëÿ îáó÷åíèÿ è îöåíêè çíàíèé Ñòóäåíòà. Îäíàêî ñèñòåìó ìîæíî òàêæå èñïîëüçîâàòü äëÿ òðåíèðîâêè: â ýòîì ðåæèìå ïîëüçîâàòåëþ ïðåäîñòàâëÿåòñÿ íàáîð âîïðîñîâ ïî âñåì òåìàì, íà êîòîðûå îí ìîæåò â ïðîèçâîëüíîì ïîðÿäêå îòâå÷àòü. Íà êàæäîì âîïðîñå, ïîñëå òîãî, êàê ïîëüçîâàòåëü ïðåäëîæèò ñâîé âàðèàíò, åìó ïîêàçûâàåòñÿ ïðàâèëüíûé îòâåò. åæèì òðåíàæåðà, â îòëè÷èå îò òåñòèðîâàíèÿ, äîñòóïåí ëþáîìó ïîëüçîâàòåëþ ñèñòåìû, â òîì ÷èñëå è íåçàðåãèñòðèðîâàííîìó.
3. Òåõíîëîãè÷åñêèå îñíîâû ïîñòðîåíèÿ ñèñòåìû
 îñíîâó ñèñòåìû ïîëîæåíà êëèåíò-ñåðâåðíàÿ òåõíîëîãèÿ: âñÿ ñèñòåìà öåëèêîì áóäåò óñòàíîâëåíà íà ñåðâåðå, íà êîòîðûé áóäóò ïîñòóïàòü çàïðîñû ñ êëèåíòñêîé ñòîðîíû. Îñíîâíîé ðåæèì ðàáîòû ýòî ðàñïðåäåëåííàÿ ðàáîòà ïîëüçîâàòåëåé ÷åðåç Èíòåðíåò ïî ñòàíäàðòíîìó ïðîòîêîëó HTTP, îäíàêî òàêæå ïðåäóñìàòðèâàåòñÿ óñòàíîâêà ñèñòåìû â ëîêàëüíûõ ñåòÿõ è ðàñïðîñòðàíåíèå íà CD-äèñêàõ äëÿ óñòàíîâêè ñèñòåìû íà îòäåëüíûé êîìïüþòåð.  ïîñëåäíåì ñëó÷àå áóäåò ïðåäîñòàâëÿòüñÿ íå âñÿ ñèñòåìà, à òîëüêî ÷àñòü, íåîáõîäèìàÿ äëÿ èñïîëüçîâàíèÿ ðåæèìà òðåíàæåðà. Èñõîäÿ èç âûøåñêàçàííîãî, áûëî ïîñòàâëåíî òðåáîâàíèå íåçàâèñèìîñòè ñèñòåìû îò ïëàòîðìû íà ñòîðîíå êëèåíòà, à òàêæå îòñóòñòâèÿ ïðåäâàðèòåëüíîé íàñòðîéêè è/èëè óñòàíîâêè ïðîãðàìì, ÷òî ïîñëóæèëî ïðè÷èíîé äëÿ èñïîëüçîâàíèÿ ñëåäóþùèõ ïðîãðàììíûõ òåõíîëîãèé è ïðîäóêòîâ: âåá-ñåðâåð Apa he; òåõíîëîãèè ïðîãðàììèðîâàíèÿ PHP è JavaS ript; ÑÓÁÄ MySQL. Ïðè èñïîëüçîâàíèè òàêèõ òåõíîëîãèé íà ñòîðîíå êëèåíòà äîëæåí áûòü óñòàíîâëåí òîëüêî áðàóçåð ñ ïîääåðæêîé JavaS ript, ïðè ýòîì íå íàêëàäûâàåòñÿ íèêàêèõ îãðàíè÷åíèé íà èñïîëüçóåìîå àïïàðàòíîå è ïðîãðàììíîå îáåñïå÷åíèå. Ñâÿçêà äàííûõ òåõíîëîãèé õîðîøî çàðåêîìåíäîâàëà ñåáÿ âî ìíîæåñòâå Èíòåðíåò-ïðîåêòîâ. Îíà îáëàäàåò
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
97
äîñòàòî÷íîé äëÿ ïðîåêòà óíêöèîíàëüíîñòüþ, õîðîøåé ïðîèçâîäèòåëüíîñòüþ è ìàñøòàáèðóåìîñòüþ. Âñå ïðîãðàììíûå êîìïîíåíòû, âõîäÿùèå â ïðåäëàãàåìûé íàáîð, ðàñïðîñòðàíÿþòñÿ ñâîáîäíî.
4. Çàêëþ÷åíèå
Íà äàííûé ìîìåíò ñèñòåìà íàõîäèòñÿ â ñòàäèè ðåàëèçàöèè. àçðàáîòàíà ñòðóêòóðà ïðåäìåòíîé îáëàñòè, ñîðìóëèðîâàíû ïåðâûå íàáîðû âîïðîñîâ, ïðîõîäèò îòëàäêà ïðîòîêîëîâ âçàèìîäåéñòâèÿ äåéñòâóþùèõ ëèö âíóòðè ñèñòåìû è îïðåäåëåíèå âíåøíèõ èíòåðåéñîâ äëÿ èõ ðàáîòû. Ýòà ñèñòåìà áóäåò äîñòóïíà â ñåòè Èíòåðíåò è ïåðâîé îáëàñòüþ, íà êîòîðîé áóäóò àïðîáèðîâàíû îïèñàííûå çäåñü èäåè, ñòàíóò ïàðàëëåëüíûå âû÷èñëåíèÿ.
Ñïèñîê ëèòåðàòóðû
[1℄ Online òåñòèðîâàíèå è http://tests.spe ialist.ru/.
ñåðòèèêàöèÿ.
Èíòåðíåò-ðåñóðñ
[2℄ Èíòåðíåò Óíèâåðñèòåò http://intuit.ru/
Èíîðìàöèîííûõ
Òåõíîëîãèé.
[3℄ Âîåâîäèí Â.Â., Âîåâîäèí Âë.Â. Ýíöèêëîïåäèÿ ëèíåéíîé àëãåáðû. Ýëåêòðîííàÿ ñèñòåìà ËÈÍÅÀË - ÑÏá.: ÁÕÂ-Ïåòåðáóðã, 2006. - 544 ñ. [4℄ Áàçîâàÿ ýëåêòðîííàÿ ýíöèêëîïåäèÿ ïî ëèíåéíîé àëãåáðå. Èíòåðíåò-ðåñóðñ. http://lineal.guru.ru.
Ñòðóêòóðà è ïðîèçâîäèòåëüíîñòü ïîäñèñòåì ïàìÿòè ñîâðåìåííûõ âû÷èñëèòåëüíûõ ïëàòîðì Ï. À. àâðèëóøêèí
⋆
 ñòàòüå îïèñûâàåòñÿ àðõèòåêòóðà ïîäñèñòåì ïàìÿòè ñîâðåìåííûõ âû÷èñëèòåëüíûõ ïëàòîðì. àññìàòðèâàåòñÿ âçàèìîñâÿçü ýåêòèâíîñòè âûïîëíåíèÿ ïðîãðàìì è îñîáåííîñòè îðãàíèçàöèè ðàáîòû ñ ïàìÿòüþ.
1. Ââåäåíèå
Ñêîðîñòü ðàáîòû ïðîöåññîðà íåñðàâíèìî âûøå ñêîðîñòè ðàáîòû ïîäñèñòåìû ïàìÿòè. Ýòà àññèìåòðè÷íîñòü îáÿçûâàåò ðàçðàáîò÷èêîâ ïðîãðàììíîãî îáåñïå÷åíèÿ î÷åíü òùàòåëüíî ïîäõîäèòü ê íàëàæèâàíèþ âçàèìîäåéñòâèÿ ìåæäó ïðîöåññîðîì è ïàìÿòüþ. Íà âñåõ ñîâðåìåííûõ êîìïüþòåðíûõ ïëàòîðìàõ âðåìÿ îæèäàíèÿ äàííûõ èç ïàìÿòè íà ïîðÿäîê áîëüøå âðåìåíè èñïîëíåíèÿ îïåðàöèè, ÷òî íå ìîæåò íå ñêàçàòüñÿ íà âðåìåíè èñïîëíåíèÿ ïðîãðàììû â öåëîì. Êàêèì æå îáðàçîì ìîæíî ïîâûñèòü ýåêòèâíîñòü ðàáîòû ñ ïîäñèñòåìîé ïàìÿòè? Âî-ïåðâûõ, ýòî âîçìîæíîñòü óñòàíîâêè áîëåå ìîùíîé àïïàðàòíîé áàçû: ïðîöåññîð ñ áîëåå áûñòðûì è áîëüøèì êýøåì, ìàòåðèíñêàÿ ïëàòà ñ áîëåå ïðîèçâîäèòåëüíûìè êàíàëàìè ñâÿçè è êîíòðîëëåðîì ïàìÿòè, âûñîêîñêîðîñòíûå ìîäóëè îïåðàòèâíîé ïàìÿòè è âíåøíèå èñòî÷íèêè äàííûõ. È âî-âòîðûõ, ýòî ñîîòâåòñòâèå àëãîðèòìà àðõèòåêòóðå ïàìÿòè.
2. Àðõèòåêòóðà ïàìÿòè
Çàïîìèíàþùèå óñòðîéñòâà ìîãóò áûòü ðàçäåëåíû êàê ïî íàçíà÷åíèþ, òàê è ïî èçè÷åñêèì ïðèíöèïàì ïîñòðîåíèÿ. Åñëè íå áðàòü â ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
100
Ï. À. àâðèëóøêèí
ðàññìîòðåíèå ñïåöèàëüíóþ ïàìÿòü, êàê òî: ïîñòîÿííóþ (ROM), ïåðåïðîãðàììèðóåìóþ (Flash), ýíåðãîíåçàâèñèìóþ ïàìÿòü, ïðèìåíÿåìóþ äëÿ õðàíåíèÿ óñòàíîâîê BIOS (CMOS RAM), âèäåîïàìÿòü, òî îñòàëüíàÿ ïàìÿòü êîìïüþòåðà ñîîòâåòñòâóåò èåðàðõè÷åñêîé ñòðóêòóðå (ðèñ. 1). È äëÿ íåå ñïðàâåäëèâî ñëåäóþùåå ïðàâèëî: ïðîöåññîð è êàæäûé èç óðîâíåé èåðàðõèè ìîæåò îáðàùàòüñÿ íà ÷òåíèå è çàïèñü òîëüêî ê áëèæàéøåìó ñíèçó óðîâíþ. Ïðè÷åì, áîëåå âûñîêèé óðîâåíü èìååò ìåíüøèé îáú¼ì, á îëüøóþ ñòîèìîñòü è îáëàäàåò á îëüøèì áûñòðîäåéñòâèåì.
èñ. 1. Èåðàðõèÿ ïàìÿòè àññìîòðèì îñíîâíûå ïàðàìåòðû ïîäñèñòåìû ïàìÿòè. Ó êàæäîãî çàïîìèíàþùåãî óñòðîéñòâà (ÇÓ) åñòü òàêèå ïàðàìåòðû, êàê: ëàòåíòíîñòü âðåìÿ îæèäàíèÿ (â ìñ. èëè òàêòàõ) ðåàêöèè ÇÓ íà ïîñòóïèâøèé çàïðîñ; îáú¼ì ìàêñèìàëüíîå êîëè÷åñòâî îäíîâðåìåííî õðàíèìîé èíîðìàöèè (áàéò) â ÇÓ; åäèíèöà äîñòóïà ìèíèìàëüíîå êîëè÷åñòâî áàéò, êîòîðîå ìîæíî ïîëó÷èòü çà îäíî îáðàùåíèå ê ÇÓ; àäðåñóåìîñòü âîçìîæíîñòü îáðàùåíèÿ ê äàííûõ â ÇÓ ïî àäðåñó;
Ïîäñèñòåìû ïàìÿòè ñîâðåìåííûõ ïëàòîðì
101
ïðîäîëæèòåëüíîñòü ñîõðàíåíèÿ ïîñòîÿííàÿ (ÏÇÓ) èëè âðåìåííàÿ (ÎÇÓ); ýíåðãîïîòðåáëåíèå êîëè÷åñòâî ïîòðåáëÿåìîé ÇÓ ýíåðãèè íà îïåðàöèè ÷òåíèÿ, õðàíåíèÿ è çàïèñè.  ïðîöåññå ðàçâèòèÿ àïïàðàòíîãî îáåñïå÷åíèÿ êîìïüþòåðîâ ëàòåíòíîñòü ïîñòåïåííî óìåíüøàåòñÿ, à îáú¼ì óâåëè÷èâàåòñÿ. Ñ òî÷êè çðåíèÿ ïðîãðàììíîãî îáåñïå÷åíèÿ, íåîáõîäèìî îòìåòèòü ñâîéñòâà ëîêàëüíîñòè èñïîëíÿåìûõ êîìàíä è èñïîëüçóåìûõ äàííûõ. Íà ïðàêòèêå, ýòî îçíà÷àåò ÷òî âûáîðêà î÷åðåäíîé êîìàíäû (ïîðöèÿ äàííûõ) èç âñåõ êîìàíä (äàííûõ) ïðîèñõîäèò íå ðàâíîâåðîÿòíî, à â çàâèñèìîñòè îò ïðåäûäóùåé. Áàëàíñèðîâêà ñîîòíîøåíèÿ ñòîèìîñòè/ïðîèçâîäèòåëüíîñòè è ïðèíöèï ëîêàëüíîñòè îáðàùåíèé ïðèâåëè ê èåðàðõèè ïàìÿòè (áûñòðàÿ ïàìÿòü ìàëåíüêîãî îáú¼ìà, à áîëåå ìåäëåííàÿ áîëüøîãî). àññìîòðèì ïîäðîáíåå êàæäûé èç óðîâíåé èåðàðõèè, íà÷èíàÿ ñ áëèæàéøåãî ê ïðîöåññîðó.
3. åãèñòðîâàÿ ïàìÿòü
Íà âåðøèíå èåðàðõèè ñòîèò ðåãèñòðîâàÿ ïàìÿòü. ×òåíèå è çàïèñü â íåå ïðîèñõîäèò íà ÷àñòîòå ïðîöåññîðà è ñ íóëåâîé ëàòåíòíîñòüþ. Êàæäîìó ðåãèñòðó ñîîòâåòñòâóåò óíèêàëüíîå èìÿ, ïî êîòîðîìó ìîæíî îáðàòèòüñÿ êàê ïî îáû÷íîìó àäðåñó. Êîëè÷åñòâî ðåãèñòðîâ è èõ ñòðóêòóðà îòëè÷àþòñÿ äëÿ ðàçíûõ àðõèòåêòóð ïðîöåññîðîâ: õ86, x86-64, PowerPC è äðóãèå. Ñîâðåìåííûå ïðîöåññîðû ñ àðõèòåêòóðîé x86-64 îáëàäàþò 64-áèòíûìè ðåãèñòðàìè äàííûõ, ðåãèñòðàìè óêàçàòåëåé, ñåãìåíòíûìè ðåãèñòðàìè, ðåãèñòðàìè ëàãîâ, à òàêæå ñëóæåáíûìè ðåãèñòðàìè. Îáùèé îáúåì ðåãèñòðîâîé ïàìÿòè èñ÷èñëÿåòñÿ ñîòíÿìè áàéò. Äëÿ ïîâûøåíèÿ ïðîèçâîäèòåëüíîñòè ïðîãðàìì èñïîëüçóþòñÿ ðàñøèðåííûå íàáîðû ðåãèñòðîâ, íàïðèìåð âîñåìü MMX-ðåãèñòðîâ ðàçìåðîì ïî 64 áèòà.
4. Êýø-ïàìÿòü
Ñëåäóþùèé óðîâåíü â èåðàðõèè çàíèìàåò êýø-ïàìÿòü èëè ïðîñòî êýø. Îí ìîæåò áûòü ïîäðàçäåë¼í íà óðîâíè (L1, L2, L3), òàêæå
102
Ï. À. àâðèëóøêèí
ñîñòîÿùèå â èåðàðõèè. L1-êýø ÿâëÿåòñÿ íåîòúåìëåìîé ÷àñòüþ ïðîöåññîðà, ðàáîòàåò ñ íèì íà îäíîé ÷àñòîòå (÷àñòîòå ÿäðà), îáëàäàåò íåáîëüøèì îáú¼ìîì (äî 128Êá) è ëàòåíòíîñòüþ â 2-4 òàêòà. Îáû÷íî îí ñîñòîèò èç êýøà äëÿ äàííûõ (L1D) è êýøà äëÿ èíñòðóêöèé (L1I). Èõ îáúåìû è ëàòåíòíîñòè ìîãóò ðàçëè÷àòüñÿ ìåæäó ñîáîé. Êýøè L2 è L3 èìåþò á îëüøèé ðàçìåð (îò ìåãàáàéòà), äîñòóï ê íèì õàðàêòåðèçóåòñÿ åù¼ á îëüøåé ëàòåíòíîñòüþ (äåñÿòêè òàêòîâ) è, â îòëè÷èå îò L1, ìîãóò áûòü îò÷óæäåíû îò ïðîöåññîðà (íå ïðèñóòñòâîâàòü âîîáùå, íå ïðèñóòñòâîâàòü íà êðèñòàëëå, èìåòü âîçìîæíîñòü ïðîãðàììíîãî îòêëþ÷åíèÿ). Êýø L3 èñïîëüçóåòñÿ, â îñíîâíîì, â ñåðâåðíîì ñåãìåíòå (ïðîöåññîðû ñåðèè Xeon, PowerPC, UltraSPARC T). Åñëè â îäíîì ïðîöåññîðå ïðèñóòñòâóåò íåñêîëüêî ÿäåð èëè â ñèñòåìå íåñêîëüêî ïðîöåññîðîâ, òî L1 âñåãäà ñâîé äëÿ êàæäîãî ÿäðà. Êýøè L2 òàêæå ìîãóò ïðèñóòñòâîâàòü ïî îäíîìó íà êàæäîå ÿäðî, à ìîãóò áûòü äèíàìè÷åñêè ðàçäåëÿåìûìè ìåæäó íåñêîëüêèìè ÿäðàìè. Êýø-ïàìÿòü îðìèðóåòñÿ èç ñòðîê (lines). Êàæäàÿ ñòðîêà, ñ ó÷åòîì ëîêàëüíîñòè èñïîëüçîâàíèÿ äàííûõ, ñîîòâåòñòâóåò ãðóïïå ñîñåäíèõ áàéò îñíîâíîé ïàìÿòè. Ýòî ñîîòâåòñâèå îïðåäåëÿåòñÿ àäðåñíûìè ïîëÿìè. Àäðåñíûå ïîëÿ õðàíÿòñÿ äëÿ ñòðîê öåëèêîì, à íå äëÿ îòäåëüíûõ áàéò, òåì ñàìûì äîñòèãàåòñÿ ýêîíîìèÿ ïî çàíèìàåìîìó èìè ìåñòó.  îòëè÷èå îò îñòàëüíûõ çàïîìèíàþùèõ óñòðîéñòâ, êýø íå ÿâëÿåòñÿ àäðåñóåìûì. Îáðàùåíèå ê äàííûì êýøà ïðîèñõîäèò íåÿâíî è íå ïî âíóòðåííåìó àäðåñó, à ïî àäðåñó â îïåðàòèâíîé ïàìÿòè. Äëÿ ÷òåíèÿ èç ÿ÷åéêè, èìåþùåé íåêîòîðûé àäðåñ â îïåðàòèâíîé ïàìÿòè, íåîáõîäèìî îñóùåñòâèòü ïîèñê ïî ñîîòâåòñòâóþùåìó àäðåñó è â êýøå. Óñïåøíûé ïîèñê íàçûâàåòñÿ ïîïàäàíèåì ( a he hit), à íåóñïåøíûé ïðîìàõîì ( a he miss). Ëàòåíòíîñòü ïðè ÷òåíèè äàííûõ, óæå íàõîäÿùèõñÿ â í¼ì, îòëè÷àåòñÿ íà ïîðÿäîê îò ëàòåíòíîñòè ÷òåíèÿ äàííûõ, òðåáóþùèõ ïðåäâàðèòåëüíîé ïîäêà÷êè èç êýøåé áîëåå íèçêèõ óðîâíåé èëè îñíîâíîé ïàìÿòè. Êîëè÷åñòâî íåóñïåøíûõ ïîèñêîâ íàïðÿìóþ âëèÿåò íà ýåêòèâíîñòü èñïîëíåíèÿ ïðîãðàììû, òàê êàê çà êàæäûé ïðîìàõ ïðèõîäèòñÿ ïëàòèòü óâåëè÷åíèåì ëàòåíòíîñòè (miss penalty). Ñóùåñòâóåò òðè òèïà [1℄ êýø-ïàìÿòè, îòëè÷àþùèõñÿ ïî ñïîñîáó
Ïîäñèñòåìû ïàìÿòè ñîâðåìåííûõ ïëàòîðì
103
ðàçìåùåíèÿ äàííûõ îñíîâíîé ïàìÿòè:
èñ. 2. Àññîöèàòèâíîñòü êýøà.  âåðõíåé ÷àñòè ðèñóíêà èçîáðàæåí ó÷àñòîê îñíîâíîé ïàìÿòè ðàçìåðîì â 32 áàéòà. À â íèæíåé ÷àñòè ðàçëè÷íûå âàðèàíòû îðãàíèçàöèè êýø-ïàìÿòè. Êýø ïðÿìîé àäðåñàöèè (Dire t Mapped Ca he). Êýø, â êîòîðîì êàæäîìó âîçìîæíîìó çíà÷åíèþ ïîëÿ âèðòóàëüíîãî àäðåñà ñîîòâåòñòâóåò ðîâíî îäíà ñòðîêà, îïðåäåëÿåìàÿ ïî çíà÷åíèþ ýòîãî ïîëÿ (âèðòóàëüíûé àäðåñ = ìëàäøèå áèòû àäðåñà â ïàìÿòè). Òàêàÿ îðãàíèçàöèÿ íåèçáåæíî âëå÷¼ò îòîáðàæåíèå ðàçëè÷íûõ ÿ÷ååê ïàìÿòè ñ îäèíàêîâûìè ìëàäøèìè ÷àñòÿìè àäðåñîâ â îäíó ñòðîêó êýøà, òî åñòü êîëëèçèÿ ( ollision). Ýòîò ïðèìåð èëëþñòðèðîâàí íà ðèñ.2à: àäðåñà 0õ9 è 0õ17 èìåþò òðè îäèíàêîâûõ ìëàäøèõ áèòà, è ïîýòîìó îáà îòîáðàçÿòñÿ â âèðòóàëüíûé àäðåñ 0õ1. Ïîëíîñòüþ àññîöèàòèâíûé êýø (Fully Asso iative Ca he). Ýòîò òèï êýø-ïàìÿòè ðåøàåò ïðîáëåìó êîëëèçèé, êîòîðàÿ õàðàêòåðíà äëÿ êýøà ïðÿìîé àäðåñàöèè.  ñëó÷àå ïîëíîñòüþ àññîöèàòèâíîãî êýøà áëîê äàííûõ èç ëþáîãî àäðåñà îïåðàòèâíîé
104
Ï. À. àâðèëóøêèí ïàìÿòè ìîæåò õðàíèòüñÿ â ëþáîé ñòðîêå êýøà, à ñàì àäðåñ èñïîëüçóåòñÿ êàê òåã êýøà; ïðè ïðîâåðêå íà ñîâïàäåíèå âñå òåãè äîëæíû îäíîâðåìåííî ñðàâíèâàòüñÿ ñ àäðåñîì çàïðîñà, ÷òî òðåáóåò äîïîëíèòåëüíîãî óñëîæíåíèÿ àïïàðàòóðû. Äëÿ óñòðàíåíèÿ ïðîáëåìû íåêîãåðåíòíîñòè èñïîëüçóåòñÿ åù¼ îäèí òåã òåã àêòóàëüíîñòè äàííûõ. Íà ðèñ.2â ñåðûì öâåòîì îòìå÷åíû ÿ÷åéêè, â êîòîðûå ìîæåò ïîïàñòü ÿ÷åéêà ñ àäðåñîì 0õ9 ïðè çàíåñåíèè. Äëÿ ïîëíîñòüþ àññîöèàòèâíîãî êýøà ýòî âñå äîñòóïíûå ÿ÷åéêè.
N-êàíàëüíî àññîöèàòèâíûé êýø (N-Way Set Asso iative Ca he). Ñòðîêè N-êàíàëüíî àññîöèàòèâíîãî êýøà äåëÿòñÿ íà ñåêòîðû, èëè ñåêöèè (sets). Èíîðìàöèÿ ïî íåêîòîðîìó àäðåñó îïåðàòèâíîé ïàìÿòè ìîæåò õðàíèòüñÿ â N ìåñòàõ êýø-ïàìÿòè. Ýòîò ñïîñîá àäðåñàöèè ïîçâîëÿåò ïîëó÷èòü çíà÷èòåëüíîå ïðåèìóùåñòâî ïî ñêîðîñòè ïåðåä êýøåì ïðÿìîé àäðåñàöèè, íî èìååò ãîðàçäî áîëåå ïðîñòóþ àïïàðàòíóþ ðåàëèçàöèþ, íåæåëè ÷åì ïîëíîñòüþ àññîöèàòèâíûé êýø. Íà ðèñ. 2á ñåðûì öâåòîì ïîêàçàíû äâà âîçìîæíûõ ìåñòà õðàíåíèÿ ÿ÷åéêè ñ àäðåñîì 0õ9 ïðè çàíåñåíè. Ýòî àäðåñà 0x1 è 0x5, îáëàäàþùèå ñìåùåíèåì 0x1 â êàæäîì èç êàíàëîâ êýøà. Çàïèñü ÿ÷åéêè â êýø, ïî ñâîåé ñóòè, íèêîãäà íå òðåáóåò ïîäêà÷êè äàííûõ èç îñíîâíîé ïàìÿòè èëè äðóãèõ óðîâíåé êýøà, ïîýòîìó âûïîëíÿåòñÿ çà ãàðàíòèðîâàííîå âðåìÿ. Íî è çäåñü åñòü ñâîè òîíêîñòè, à èìåííî: íåîáõîäèìîñòü ïîääåðæàíèÿ àêòóàëüíîñòè (êîãåðåíòíîñòè) äàííûõ êàê íà ðàçëè÷íûõ óðîâíÿõ êýøà, òàê è â îñíîâíîé ïàìÿòè. Îáåñïå÷åíèå êîãåðåíòíîñòè ðåøàåòñÿ àïïàðàòíî íà óðîâíå êîíòðîëëåðà êýøà. Ëèáî êîãåðåíòíîñòü ñîáëþäàåòñÿ âñåãäà, ëèáî ïðè âîçíèêíîâåíèè êîíëèêòà, âñ¼ çàâèñèò îò ïîëèòèêè çàïèñè ïðè êýøèðîâàíèè. Ñóùåñòâóþò äâå îñíîâíûå [2℄ ïîëèòèêè çàïèñè ïðè êýøèðîâàíèè: Ñêâîçíàÿ çàïèñü (write-through). Ïîäðàçóìåâàåò, ÷òî ïðè èçìåíåíèè ñîäåðæèìîãî ÿ÷åéêè ïàìÿòè, çàïèñü ïðîèñõîäèò ñèíõðîííî è â êýø, è â îñíîâíóþ ïàìÿòü. Òàêàÿ ïîëèòèêà èñïîëüçóåòñÿ â L1 êýøå ïðîöåññîðîâ Intel Pentium 4, Intel Pentium D.
Ïîäñèñòåìû ïàìÿòè ñîâðåìåííûõ ïëàòîðì
105
Îòëîæåííàÿ çàïèñü (write-ba k). Ïîäðàçóìåâàåò, ÷òî ìîæíî îòëîæèòü ìîìåíò çàïèñè öèðîâàííûõ äàííûõ â îñíîâíóþ ïàìÿòü, çàïèñàâ èõ òîëüêî â êýø. Ïðè ýòîì ìîäèèöèðîâàííûå äàííûå áóäóò âûãðóæåíû â îïåðàòèâíóþ ïàìÿòü òîëüêî â ñëó÷àå îáðàùåíèÿ ê íèì êàêîãî ëèáî äðóãîãî óñòðîéñòâà (äðóãîå ÿäðî ÖÏ, êîíòðîëëåð DMA) ëèáî íåõâàòêè ìåñòà â êýøå äëÿ ðàçìåùåíèÿ äðóãèõ äàííûõ. Òàêàÿ ïîëèòèêà èñïîëüçóåòñÿ â L1 êýøå ïðîöåññîðîâ ñåìåéñòâà Intel Core, AMD Athlon64. Ñîâðåìåííûå àëãîðèòû âûòåñíåíèÿ ìàëîèñïîëüçóåìûõ äàííûõ è ïðåäâûáîðêè ñëåäóþùèõ êîìàíä ïîçâîëÿþò äîñòè÷ü óðîâíÿ ïîïàäàíèé ïîðÿäêà 90% ïðè ñîáëþäåíèè ëîêàëüíîñòè îáðàùåíèé. Ïðèìåðîì ñíèæåíèÿ (ñèëüíîãî ñíèæåíèÿ) ïðîèçâîäèòåëüíîñòè ïðè îòñóòñòâèè ñâîéñòâ ëîêàëüíîñòè îáðàùåíèé ìîæåò ñëóæèòü ïîñëåäîâàòåëüíàÿ âûáîðêà (âûáîðêà ÷åðåç èíòåðâàë, íà åäèíèöó áîëüøèé äëèíû ñòðîêè) èç ïàìÿòè ýëåìåíòîâ ìàññèâà, öåëèêîì íå óìåùàþùåãîñÿ â êýø. Òèïè÷íûå õàðàêòåðèñòèêè êýøåé ïðîöåññîðîâ ñåðèè Intel Core 2 Duo: 32+32KÁ (êýø äàííûõ+êýø èíñòðóêöèé) 8êàíàëüíî àññîöèàòèâíîãî êýøà ïåðâîãî óðîâíÿ ñ ðàçìåðîì ñòðîêè ðàâíûì 64 áàéòà è ïîëèòèêîé ñêâîçíîé çàïèñè â ìåíåå ñêîðîñòíóþ ïàìÿòü, 4096KÁ 16-êàíàëüíî àññîöèàòèâíîãî êýøà âòîðîãî óðîâíÿ ñ ðàçìåðîì ñòðîêè ðàâíûì 64 áàéòà è ïîëèòèêîé îòëîæåííîé çàïèñè â ìåíåå ñêîðîñòíóþ ïàìÿòü, êýø òðåòüåãî óðîâíÿ íå ïîääåðæèâàåòñÿ.
5. Îïåðàòèâíàÿ ïàìÿòü
àññìîòðèì â õðîíîëîãè÷åñêîì ïîðÿäêå òåõíîëîãèè, ïðèìåíÿåìûå â ñîâðåìåííîé îïåðàòèâíîé ïàìÿòè DDR SDRAM (ñèíõðîííàÿ äèíàìè÷åñêàÿ ïàìÿòü ñ ïðîèçâîëüíûì äîñòóïîì è óäâîåííîé ñêîðîñòüþ ïåðåäà÷è äàííûõ). Ïàìÿòü ñ ïðîèçâîëüíûì äîñòóïîì (RAM). Îäèí èç âèäîâ ïàìÿòè, ïîçâîëÿþùèé îáðàùàòüñÿ ê äàííûì íà ÷òåíèå è çàïèñü, íå ó÷èòûâàÿ ïîðÿäîê èõ ðàñïîëîæåíèÿ. Äèíàìè÷åñêàÿ ïàìÿòü ñ ïðîèçâîëüíûì äîñòóïîì (DRAM) ýòî îäèí èç âèäîâ ïàìÿòè ñ ïðîèçâîëüíûì äîñòóïîì. Äèíàìè÷åñêàÿ ïàìÿòü ÿâëÿåòñÿ ýíåðãîçàâèñèìîé è íóæäàåòñÿ â ïåðèîäè÷åñêîé ðåãå-
106
Ï. À. àâðèëóøêèí
èñ. 3. àçáèåíèå íà áàíêè íåðàöèè äàííûõ. Ñòðóêòóðà äèíàìè÷åñêîé ïàìÿòè ñ ïðîèçâîëüíûì äîñòóïîì ñëåäóþùàÿ: ãðóïïû áèòîâûõ ÿ÷ååê îáðàçóþò ñòðîêè, ãðóïïû ñòðîê îáðàçóþò ñòðàíèöû, ãðóïïû ñòðàíèö îáðàçóþò áàíêè. Äëÿ óñêîðåíèÿ äîñòóïà ê äàííûì çàïîìèíàþùåãî óñòðîéñòâà ÿ÷åéêè ñ ñîñåäíèìè àäðåñàìè õðàíÿòñÿ â ðàçëè÷íûõ áàíêàõ, îáåñïå÷èâàÿ ñíèæåíèå âëèÿíèÿ çàäåðæåê ðåãåíåðàöèè. Îñíîâíûìè õàðàêòåðèñòèêàìè ïàìÿòè DRAM ÿâëÿþòñÿ òàéìèíãè (timings) è ðàáî÷àÿ ÷àñòîòà. Äëÿ îáðàùåíèÿ ê ÿ÷åéêå êîíòðîëëåð çàäà¼ò íîìåð áàíêà, íîìåð ñòðàíèöû â í¼ì, íîìåð ñòðîêè è íîìåð ñòîëáöà. Êàæäîå èç ýòèõ äåéñòâèé èñïîëíÿåòñÿ çà íåêîòîðîå âðåìÿ òàéìèíã. Îñíîâíûìè òàéìèíãàìè DRAM [3℄ ÿâëÿþòñÿ: 1. Çàäåðæêà ìåæäó ïîäà÷åé íîìåðà ñòîëáöà è ïîëó÷åíèåì ñîäåðæèìîãî ÿ÷åéêè, íàçûâàåìàÿ âðåìåíåì ðàáî÷åãî öèêëà (CAS). 2. Çàäåðæêà ìåæäó ïîäà÷åé íîìåðà ñòðîêè è íîìåðà ñòîëáöà, íàçûâàåìàÿ âðåìåíåì ïîëíîãî äîñòóïà (RAS to CAS). 3. Çàäåðæêà ìåæäó ÷òåíèåì ïîñëåäíåé ÿ÷åéêè è ïîäà÷åé íîìåðà íîâîé ñòðîêè (RAS pre harge).
àçìåð L2 (Ìá)
64 64 64 64 64 64 64 64
1+1 1+1 4 4 4 4+4 1 2
×àñòîòà øèíû ïàìÿòè (Ì ö)
àçìåð ñòðîêè L1
2 2 8 8 8 8 2 8
×àñòîòà ïàìÿòè (Ì ö)
Àññîöèàòèâíîñòü L1
64+64 64+64 32+32 32+32 32+32 32+32 64+64 16+16
àçìåð ñòðîêè L2
àçìåð L1 (Êá)
1 2 3 4 5 6 7 8
107
N-êàíàëüíàÿ àññîöèàòèâíîñòü L2
ñåðâåðà
Ïîäñèñòåìû ïàìÿòè ñîâðåìåííûõ ïëàòîðì
16 16 16 16 16 16 16 8
64 64 64 64 64 64 64 64
200 200 133 133 166 166 166 133
200 200 266 266 333 333 166 266
Òàáëèöà 1. Õàðàêòåðèñòèêè è ñòðóêòóðà ïàìÿòè ñîâðåìåííûõ ïëàòîðì
4. Çàäåðæêà äëÿ ðåãåíåðàöèè ñòðîêè ïàìÿòè (RAS A tive to Pre harge Delay, tRAS). Ýòè âåëè÷èíû èçìåðÿþòñÿ â òàêòàõ, è ÷åì îíè ìåíüøå, òåì áûñòðåå ðàáîòàåò îïåðàòèâíàÿ ïàìÿòü. Çàïèñûâàþòñÿ âñå ÷åòûðå çíà÷åíèÿ ÷åðåç äåèñ, íàïðèìåð 3-4-4-8. Ñèíõðîííàÿ äèíàìè÷åñêàÿ ïàìÿòü ñ ïðîèçâîëüíûì äîñòóïîì (SDRAM).  îòëè÷èå îò äðóãèõ òèïîâ DRAM, èñïîëüçîâàâøèõ àñèíõðîííûé îáìåí äàííûìè, îòâåò íà ïîñòóïèâøèé â óñòðîéñòâî óïðàâëÿþùèé ñèãíàë âîçâðàùàåòñÿ íå ñðàçó, à ëèøü ïðè ïîëó÷åíèè ñëåäóþùåãî òàêòîâîãî ñèãíàëà. Òàêòîâûå ñèãíàëû ïîçâîëÿþò îðãàíèçîâàòü ðàáîòó SDRAM â âèäå êîíå÷íîãî àâòîìàòà, èñïîëíÿþùåãî êîìàíäû. Ïðè ýòîì êîìàíäû ìîãóò ïîñòóïàòü â âèäå íåïðåðûâíîãî ïîòîêà, íå äîæèäàÿñü, ïîêà áóäåò çàâåðøåíî âûïîëíåíèå ïðåäû-
14 17 28,5
140 144 106
Ìàêñèìàëüíàÿ ïðîïóñêíàÿ ñïîñîáíîñòü ïàìÿòè ïðè ÷òåíèè ( Á/ñ)
Ëàòåíòíîñòü ïàìÿòè(òàêòû)
3 3 4
Ñðåäíÿÿ ïðîïóñêíàÿ
ïîñîáíîñòü ïàìÿòè ïðè ÷òåíèè ( Á/ñ)
Ëàòåíòíîñòü L2 (òàêòû)
6 7 8
Òàéìèíãè ïàìÿòè (CAS, RAS to CAS, RAS, tRAS)
Ëàòåíòíîñòü L1 (òàêòû)
Ï. À. àâðèëóøêèí
ñåðâåðà
108
5-5-5-15 2,5-3-3-7 4-3-3-8
5,27 3,03 5,06
6,47 5,03 6,37
Òàáëèöà 2. Âðåìåííûå õàðàêòåðèñòèêè ïàìÿòè è ðåàëüíàÿ ïðîïóñêíàÿ ñïîñîáíîñòü ïî ðåçóëüòàòàì òåñòîâ [4℄
äóùèõ èíñòðóêöèé (êîíâåéåðíàÿ îáðàáîòêà): ñðàçó ïîñëå êîìàíäû çàïèñè ìîæåò ïîñòóïèòü ñëåäóþùàÿ êîìàíäà, íå îæèäàÿ, êîãäà äàííûå îêàæóòñÿ çàïèñàíû. Ïîñòóïëåíèå êîìàíäû ÷òåíèÿ ïðèâåä¼ò ê òîìó, ÷òî íà âûõîäå äàííûå ïîÿâÿòñÿ ñ íåêîòîðîé çàäåðæêîé. Ñèíõðîííàÿ äèíàìè÷åñêàÿ ïàìÿòü ñ ïðîèçâîëüíûì äîñòóïîì è óäâîåííîé ñêîðîñòüþ ïåðåäà÷è äàííûõ (Double Data Rate SDRAM). Ïðè èñïîëüçîâàíèè DDR SDRAM äîñòèãàåòñÿ áîëüøàÿ ïîëîñà ïðîïóñêàíèÿ, íåæåëè â îáûêíîâåííîé SDRAM. Ïåðåäà÷à äàííûõ îñóùåñòâëÿåòñÿ ïî îáîèì ðîíòàì ñèíõðîñèãíàëà, çà ñ÷¼ò ýòîãî àêòè÷åñêè óäâàèâàåòñÿ ïðîèçâîäèòåëüíîñòü, íå óâåëè÷èâàÿ ïðè ýòîì ÷àñòîòû øèíû ïàìÿòè. Ñëåäóþùèå ïîêîëåíèÿ òåõíîëîãèè DDR, òàêèå êàê DDR2, DDR3, ïîçâîëÿþò ñíèçèòü ýíåðãîïîòðåáëåíèå íàðÿäó ñ óâåëè÷åíèåì ðàáî÷èõ ÷àñòîò, öåíîé óâåëè÷åíèÿ òàéìèíãîâ. Ïðè ýòîì íèêàêèõ ïðèíöèïèàëüíî íîâûõ ðåøåíèé îíè íå ïðèâíîñÿò.  ñâÿçè ñ ýòèì, íåëüçÿ îäíîçíà÷íî ïîêàçàòü ïðåâîñõîäñòâî ÷èïîâ ïà-
Ïîäñèñòåìû ïàìÿòè ñîâðåìåííûõ ïëàòîðì
109
ìÿòè DDR3, ðàáîòàþùèõ íà âûñîêèõ ÷àñòîòàõ íóæíî â êàæäîì êîíêðåòíîì ñëó÷àå ïðîèçâîäèòü òåñòîâûå çàìåðû ïðîèçâîäèòåëüíîñòè, ó÷èòûâàÿ çàäåðæêè è ðàáî÷èå ÷àñòîòû.
6. Õàðàêòåðèñòèêè ïîäñèñòåì ïàìÿòè ñîâðåìåííûõ ñåðâåðîâ
Ïðèâåäåì õàðàêòåðèñòèêè ïîäñèñòåì ïàìÿòè íåñêîëüêèõ ñåðâåðîâ, íàõîäÿùèõñÿ â ïðîöåññîðíîì ïîëèãîíå ÍÈÂÖ Ì Ó: 1. Ïðîöåññîð: AMD Opteron 265 1.8 ö (äâà ÿäðà, FSB 1000, 1ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Thunder K8SD Pro íà ÷èïñåòå AMD 8131; Ïàìÿòü: 2 á PC3200; 2. Ïðîöåññîð: AMD Opteron 280 2.4 ö (äâà ÿäðà, FSB 1000, 1ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Thunder K8SD Pro íà ÷èïñåòå AMD 8131; Ïàìÿòü: 4 á PC3200; 3. Ïðîöåññîð: Intel Xeon 5050 3.0 ö (äâà ÿäðà Dempsey, FSB 667, 4ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Intel ¾Al olu¿ 5000P; Ïàìÿòü: 4 á PC2-4200; 4. Ïðîöåññîð: Intel Xeon 5150 2.66 ö (äâà ÿäðà Wood rest, FSB 1333, 4ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Intel ¾Al olu¿ 5000P; Ïàìÿòü: 16 á PC2-4200; 5. Ïðîöåññîð: Intel Xeon 5355 2.66 ö (÷åòûðå ÿäðà Clowertown, FSB 1333, 8ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Intel ¾Al olu¿ 5000P; Ïàìÿòü: 6 á PC2-5300; Òàêæå ðàññìîòðèì òåñòû ïðîïóñêíîé ñïîñîáíîñòè ïîäñèñòåì ïàìÿòè ñëåäóþùèõ ñåðâåðîâ: 6. Ïðîöåññîð: Intel Xeon 2.0 ö (äâà ÿäðà Wood rest, FSB 1333, 4ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Intel ¾Al olu¿ 5000P; Ïàìÿòü: 8 á PC2-5300; 7. Ïðîöåññîð: AMD Opteron 244 (FSB 1800, 1ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: ASUS SK8N íà ÷èïñåòå nFor e3; Ïàìÿòü: 2 á PC2700;
110
Ï. À. àâðèëóøêèí
8. Ïðîöåññîð: Intel Pentium 4 3.6 ö (ÿäðî Pres ott, FSB 800, 2ÌÁ L2); Ìàòåðèíñêàÿ ïëàòà: Gigabyte 8AENXP-D íà ÷èïñåòå Intel 925XE; Ïàìÿòü: 1 á PC2-4200. Äëÿ òåñòèðîâàíèÿ èñïîëüçîâàëàñü ïðîãðàììà RightMark Memory Analyzer [5℄, îñóùåñòâëÿþùàÿ ÷òåíèå äàííûõ â äâóõ âàðèàíòàõ: èçìåðåíèå ïðåäåëüíîé ïðîïóñêíîé ñïîñîáíîñòè ïàìÿòè ñ èñïîëüçîâàíèåì îïòèìèçàöèé ÷òåíèÿ òèïà ïðåäâûáîðêè (ïîñëåäíèé ñòîëáåö) è èçìåðåíèå ñðåäíåé ðåàëüíîé ïðîïóñêíîé ñïîñîáíîñòè áåç îïòèìèçàöèé (ïðåäïîñëåäíèé ñòîëáåö). Êàê âèäíî èç ñðàâíèòåëüíîé òàáëèöû, îòëè÷èÿ ïî ñòðîêàì â ïðîïóñêíîé ñïîñîáíîñòè ïàìÿòè ïðè ÷òåíèè îáóñëàâëèâàþòñÿ ðàçëè÷èÿìè â àïïàðàòíûõ êîíèãóðàöèÿõ. Íî, ÷òî áîëåå âàæíî, îòëè÷èÿ â äâóõ ïîñëåäíèõ ñòîëáöàõ ÿâëÿåòñÿ ñëåäñòâèåì ïðîãðàììíîãî óëó÷øåíèÿ, êîòîðîå äà¼ò ñðàâíèìûé ïðèðîñò â ðàìêàõ îäíîé êîíèãóðàöèè!
Ñïèñîê ëèòåðàòóðû
[1℄ Ca he mapping and asso iativity, http://www.p guide. om/ref/mbsys/ a he/fun Mapping- .html.
[2℄ Ca he write poli y, http://www.p guide. om/ref/mbsys/ a he/fun Write- .html. [3℄ DDR SDRAM, http://en.wikipedia.org/wiki/DDR_SDRAM. [4℄ Äåòàëüíîå èññëåäîâàíèå ïëàòîðì ñ ïîìîùüþ òåñòîâîãî ïàêåòà RightMark Memory Analyzer, http://www.ixbt. om/ pu/rmma-k7-k8.shtml, http://www.ixbt. om/ pu/rmma-pres ott2.shtml. [5℄ RightMark Memory Analyzer, http:// pu.rightmark.org/produ ts/rmma_rus.shtml.
Îá îöåíêå ñõîäèìîñòè ìåòîäà áèäèàãîíàëèçàöèè Ñ. À. îðåéíîâ
$
Ïîëó÷åíà îöåíêà ïîãðåøíîñòè ìàòðè÷íîé áèëèíåéíîé àïïðîêñèìàöèè, ïîëó÷àåìîé ìåòîäîì áèäèàãîíàëèçàöèè â óñëîâèÿõ ðàáîòû â òî÷íîé àðèìåòèêå, ÿâëÿþùàÿñÿ áîëåå òî÷íîé, ÷åì ïðèìåíåíèå ê äàííîé çàäà÷å àïïðîêñèìàöèè èçâåñòíûõ ðåçóëüòàòîâ î ñõîäèìîñòè ìåòîäà Ëàíöîøà. Ïóñòü A ∈ Cm×n çàäàííàÿ ìàòðèöà. àññìîòðèì çàäà÷ó îòûñêàíèÿ minU,V k , ãäå U ∈ Cm×k , V ∈ Cn×k óäîâëåòâîðÿþò óñëîâèþ kA−UV ∗ kF 6 ε . Ìàòðè÷íûå ïðèáëèæåíèÿ òàêîãî ñîðòà, íàçûâàåìûå áèëèíåéíûìè âåñüìà ïîëåçíûé èíñòðóìåíò ïðè àïïðîêñèìàöèè áîëüøèõ ïëîòíûõ ìàòðèö, èìåþùèõ îòíîøåíèå ê òàê íàçûâàåìûì àñèìïòîòè÷åñêè ãëàäêèì óíêöèÿì è íåëîêàëüíûì (èíòåãðàëüíûì, èíòåãðî-äèåðåíöèàëüíûì) îïåðàòîðàì, âîçíèêàþùèì â çàäà÷àõ ìàòåìàòè÷åñêîé èçèêè [11, 3℄. Äëÿ õîðîøèõ\ ìàòðèö A ðàíã áè" ëèíåéíîé àïïðîêñèìàöèè k çíà÷èòåëüíî ìåíüøå m è n .  ñâÿçè ñ ýòèì áûëè ðàçâèòû ìåòîäû, ïîçâîëÿþùèå ïîëó÷àòü áèëèíåéíûå àïïðîêñèìàöèè òàêèõ ìàòðèö çà ëèíåéíîå ïî ñîâîêóïíîñòè m è n âðåìÿ [12, 9℄.  äàííîé ðàáîòå îáñóæäàåòñÿ ìåòîä áèäèàãîíàëèçàöèè [4℄, êîòîðûé ïðèìåíèì ê áîëåå øèðîêîìó êëàññó ìàòðèö, íî èìååò âðåìÿ ðàáîòû O(mn) . Îñíîâíîé ðåçóëüòàò îöåíêà ïîãðåøíîñòè $ àáîòà âûïîëíåíà ïðè ÷àñòè÷íîé èíàíñîâîé ïîääåðæêå îññèéñêîãî îíäà óíäàìåíòàëüíûõ èññëåäîâàíèé (ãðàíòû ÔÔÈ 05-01-00721 è 06-01-08052) è ïðîãðàììû óíäàìåíòàëüíûõ èññëåäîâàíèé îòäåëåíèÿ ìàòåìàòè÷åñêèõ íàóê ÀÍ ¾Âû÷èñëèòåëüíûå è èíîðìàöèîííûå ïðîáëåìû ðåøåíèÿ áîëüøèõ çàäà÷¿ ïî ïðîåêòó ¾Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè äëÿ çàäà÷ ñî ñâåðáîëüøèì ÷èñëîì íåèçâåñòíûõ¿. Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
112
Ñ. À. îðåéíîâ
ïîëó÷àåìîé àïïðîêñèìàöèè â óñëîâèÿõ ðàáîòû â òî÷íîé àðèìåòèêå, ÿâëÿþùàÿñÿ áîëåå òî÷íîé, ÷åì ïðèìåíåíèå èçâåñòíûõ ðåçóëüòàòîâ î ñõîäèìîñòè ìåòîäà Ëàíöîøà [7, 8℄ ê íàøåé çàäà÷å. Âîò ðåøåíèå íàøåé çàäà÷è â òåðìèíàõ ñèíãóëÿðíîãî ðàçëîæåíèÿ èñõîäíîé ìàòðèöû A .
Òåîðåìà 1 (Øìèäò, Ìèðñêèé [10℄). àññìîòðèì ñèíãóëÿðíîå ðàçëîæåíèå ìàòðèöû A ∈ Cm×n : A = UΣV ∗ ,
ãäå
U∗ U = V ∗ V = I,
Σ = diag(σ1 , . . . , σp ),
, U ∈ Cm×p , V ∈ Cn×p , è ñèíãóëÿðíûå ÷èñëà {σk } óïîðÿäî÷åíû ïî íåâîçðàñòàíèþ. Îáîçíà÷èì ñèìâîëàìè Uk , Vk ìàòðèöû, ñîñòàâëåííûå èç ïåðâûõ k ñòîëáöîâ U è V . Ïóñòü òàêæå Σk îáîçíà÷àåò âåäóùóþ ïîäìàòðèöó Σ ïîðÿäêà k . Òîãäà p = min(m, n)
min
B: rank B=k
kA − Bk2F = kA − Uk Σk Vk ∗ k2F = σ2k+1 + · · · + σ2p .
(1)
Òàêèì îáðàçîì, ïåðâûå k ñèíãóëÿðíûõ âåêòîðîâ è ÷èñåë, ãäå k ìèíèìàëüíûé èíäåêñ, îáåñïå÷èâàþùèé íåðàâåíñòâî σ2k+1 +· · ·+ σ2p 6 ε , îáðàçóþò èñêîìóþ áèëèíåéíóþ àïïðîêñèìàöèþ A . Îäèí èç èçâåñòíûõ ñïîñîáîâ (ïðèáëèæåííîãî) îòûñêàíèÿ íåñêîëüêèõ ñòàðøèõ ñîáñòâåííûõ âåêòîðîâ è ÷èñåë ýðìèòîâîé ìàòðèöû èòåðàöèîííûé àëãîðèòì Ëàíöîøà [2℄. Åñëè ïðèìåíèòü åãî ê ìàòðèöå A∗ A è ïðåîáðàçîâàòü ñ òåì, ÷òîáû â ðàñ÷åòíûõ îðìóëàõ âûðàæåíèå A∗ A íå âîçíèêàëî1, ïîëó÷èòñÿ àëãîðèòì áèäèàãîíàëèçàöèè, èñïîëüçóåìûé äëÿ (ïðèáëèæåííîãî) îòûñêàíèÿ íåñêîëüêèõ ñòàðøèõ ñèíãóëÿðíûõ âåêòîðîâ è ÷èñåë A . Âûïèøåì óïðàâëÿþùèå ñîîòíîøåíèÿ îáîèõ ìåòîäîâ. Ïóñòü q1 , q2 , . . . , qk , . . . âåêòîðû ïðîöåññà Ëàíöîøà, ïóñòü Qk îáîçíà÷àåò ìàòðèöó, ñîñòàâëåííóþ èç ïåðâûõ k ýòèõ âåêòîðîâ, 1 â ïðîòèâíîì ñëó÷àå èìååòñÿ íåæåëàòåëüíûé ýåêò ïðè ðåàëüíûõ ðàñ÷åòàõ, õàðàêòåðèçóåìûé ðàçàìè âîçâåäåíèå îáóñëîâëåííîñòè â êâàäðàò\ èëè " èçâëå÷åíèå êâàäðàòíîãî êîðíÿ èç ìàøèííîãî ε \. "
Îá îöåíêå ñõîäèìîñòè ìåòîäà áèäèàãîíàëèçàöèè è ïóñòü
ω1
t1 Tk =
t∗1 .. .
..
.
.. ..
. .
tk−1
113
t∗k−1 ωk
îáîçíà÷àåò ñîîòâåòñòâóþùóþ òðåõäèàãîíàëüíóþ ìàòðèöó. Òîãäà èìååò ìåñòî ñîîòíîøåíèå A∗ AQk = Qk Tk + qk+1 tk eTk ,
(2)
ïðè÷åì Q∗k Qk = I , Q∗k qk+1 = 0 . ×òîáû ïåðåéòè ê àëãîðèòìó áèäèàãîíàëèçàöèè, ââåäåì ðàçëîæåíèå Õîëåöêîãî Tk = R∗k Rk , ãäå ìàòðèöà
Rk =
ρ1
τ∗1 .. .
.. ..
. .
τ∗k−1 ρk
âåðõíÿÿ òðåóãîëüíàÿ (áèäèàãîíàëüíàÿ), è îáîçíà÷èì Pk = AQk R−1 k .  ñèëó (2) ìàòðèöà Pk èìååò îðòîíîðìèðîâàííûå ñòîëáöû. Ïîäñòàâëÿÿ Pk â (2) è óìíîæàÿ ïîëó÷åííîå ðàâåíñòâî íà R−1 k , ïîëó÷àåì ñîîòíîøåíèÿ àëãîðèòìà áèäèàãîíàëèçàöèè: AQk = Pk Rk , (3) A∗ Pk = Qk Rk ∗ + qk+1 τk ek ∗ , ãäå τk = tk ρ−1 k . Ñîîòíîøåíèÿ (3) íàðàùèâàþòñÿ\ òî÷íî òàê æå, êàê (2) : ñêà" ëÿðíûå âåëè÷èíû τk âìåñòå ñ qk+1 ìîæíî âû÷èñëÿòü íîðìàëèçàöèåé âåêòîðà A∗ pk − qk ρk ∗ , à ρk âìåñòå ñ pk ïîëó÷àþòñÿ íîðìàëèçàöèåé âåêòîðà Aqk − pk−1 τ∗k−1 . Çíà÷êè êîìïëåêñíîãî ìàòðè÷íîãî ñîïðÿæåíèÿ, ñòîÿùèå êîå-ãäå â íàøèõ îðìóëàõ ïðè ñêàëÿðíûõ âåëè÷èíàõ tk , τk , ρk , îçíà÷àþò, ÷òî îðìóëû âåðíû è äëÿ áëî÷íûõ âàðèàíòîâ ðàññìàòðèâàåìûõ ìåòîäîâ [13, 4℄.
114
Ñ. À. îðåéíîâ
Ñõîäèìîñòü ìåòîäà áèäèàãîíàëèçàöèè, èñïîëüçóåìîãî äëÿ íàõîæäåíèÿ áèëèíåéíîãî ïðèáëèæåíèÿ A , êîíòðîëèðóåòñÿ íà ïðàêòèêå âåñüìà ïðîñòî.
Ëåììà 1 ([5℄).
kA − Pk Rk Qk ∗ k2F = kAk2F − kRk k2F .
(4)
Äîêàçàòåëüñòâî. Â ñèëó ïåðâîé îðìóëû (3)
A − Pk Rk Qk ∗ = A − AQk Qk ∗ = AQkO Q∗kO ,
ãäå QkO äîïîëíåíèå Qk äî êâàäðàòíîé óíèòàðíîé ìàòðèöû Q ïîðÿäêà n . Äîïîëíèâ òàêèì æå îáðàçîì Pk , çàïèøåì Rk S A [ Qk QkO ] = [ Pk PkO ] , 0 T ∗ ãäå S = Pk∗ AQkO è T = PkO AQkO . Ïîýòîìó, â ñèëó óíèòàðíîé èíâàðèàíòíîñòè è àääèòèâíîñòè ïî ïîäìàòðèöàì ðîáåíèóñîâîé íîðìû,
kA − Pk Rk Qk ∗ k2F = kAQkO Q∗kO k2F = tr(AQkO Q∗kO QkO Q∗kO A∗ ) = kAQkO k2F = kPk S + PkO T k2F = tr(Pk S + PkO T )∗ (Pk S + PkO T ) =
Ñëåäñòâèå 1.
kSk2F
+
kT k2F
Rk =k 0
S 2 k − kRk k2F . T F
kA − Pk Rk Qk ∗ k2F = tr(A∗ A) − tr Tk .
(4 ′ )
Åñëè èçâåñòíû îöåíêè ÷èñåë èòöà (ñîáñòâåííûõ ÷èñåë ìàòðèöû Tk ), òî, ââèäó (4 ′ ) , ëåãêî ïîëó÷èòü è òåîðåòè÷åñêóþ îöåíêó ñõîäèìîñòè. Ñ ýòîé öåëüþ ïðèâåäåì çäåñü èçâåñòíûé ðåçóëüòàò.
Îá îöåíêå ñõîäèìîñòè ìåòîäà áèäèàãîíàëèçàöèè
115
Òåîðåìà 2 ([13℄, Theorem 2.6.1, p.37). Ïóñòü λ1 , λ2, . . . , λn ñîáñòâåííûå çíà÷åíèÿ ìàòðèöû A∗A , óïîðÿäî÷åííûå ïî íåâîçðàñòàíèþ. Ïóñòü µ1 , µ2 , . . . , µps òàê æå óïîðÿäî÷åííûå ñîáñòâåííûå çíà÷åíèÿ ìàòðèöû Ts ïðîöåññà Ëàíöîøà ñ ðàçìåðîì áëîêà p . Ïóñòü áëî÷íûé âåêòîð v1 ∈ Cn×p ñîäåðæèò ïåðâûå p ñîáñòâåííûõ âåêòîðîâ A∗A . Ïðåäïîëîæèì, ÷òî λp > λp+1 è ÷òî os θ := σmin(q∗1 v1 ) > 0 . Òîãäà äëÿ ñîáñòâåííûõ çíà÷åíèé ìàòðèöû Ts èìåþò ìåñòî íåðàâåíñòâà λk > µk > λk − εk 2 , ε2k
= (λk − λn )
k = 1, . . . , p,
tg2 θ 2 Ts−1
1+γk 1−γk
,
λk − λp+1 γk = . λk − λ n
(5)
Ñèìâîëîì Ts−1 çäåñü îáîçíà÷åí ìíîãî÷ëåí ×åáûøåâà ïåðâîãî ðîäà ñòåïåíè s − 1 . Îäíàêî íåïîñðåäñòâåííûå îöåíêè ñëåäîâ Tk ïðèâîäÿò ê áîëåå òî÷íîìó ðåçóëüòàòó; ïåðåõîäèì ê åãî èçëîæåíèþ. Íàðÿäó ñ ëàíöîøåâñêèìè âåêòîðàìè qk ââåäåì è ëàíöîøåâñêèå ìíîãî÷ëåíû pk : ïî èíäóêöèè ëåãêî ñëåäóåò, ÷òî qk = pk−1 (A∗ A)q1 . Äàëåå, îáîçíà÷èì ìàòðèöó ñîáñòâåííûõ âåêòîðîâ A∗ A ÷åðåç V , ìàòðèöó ñîáñòâåííûõ çíà÷åíèé ÷åðåç Λ , è ââåäåì âåêòîð ϕ = V ∗ q1 . Òîãäà Qk = V [ ϕ
p1 (Λ)ϕ
...
pk−1 (Λ)ϕ ] ,
îòêóäà ñëåäóåò, ÷òî n X
|ϕµ |2 pj (λµ ) pk (λµ ) = q∗j qk = δkj .
µ=1
Îïðåäåëåíèå 1 ([1℄). Àääèòèâíîå è îäíîðîäíîå îòîáðàæåíèå S ïðîñòðàíñòâà ìíîãî÷ëåíîâ {p(x)} , ðàññìàòðèâàåìûõ íà îòðåçêå K , íà ìíîæåñòâî âåùåñòâåííûõ ÷èñåë íàçîâåì ïîçèòèâíûì óíêöèîíàëîì, åñëè âñÿêèé ðàç èç p(x) > 0 , ∀x ∈ K , è p(x) 6≡ 0 ñëåäóåò, ÷òî S(p) > 0 .
116
Ñ. À. îðåéíîâ
Ïîñêîëüêó |ϕ1 |2 + · · · + |ϕn |2 = 1 , ÿñíî, ÷òî óíêöèîíàë S(p) ≡ Pn 2 µ=1 |ϕµ | p(λµ ) ïîçèòèâåí íà îòðåçêå [λn , λ1 ] äëÿ ìíîãî÷ëåíîâ ñòåïåíè ìåíüøåé 2n − 2 .
Òåîðåìà 3 ([1℄, ñ.80). Ôóíêöèÿ ρk (z) , îïðåäåëÿåìàÿ ïî ïîñëåäîâàòåëüíîñòè ìíîãî÷ëåíîâ {pk} , îðòîãîíàëüíûõ îòíîñèòåëüíî ïîçèòèâPk −1 íîãî óíêöèîíàëà S , ñëåäóþùèì îáðàçîì: ρk(z) = j=1 |pj(z)|2 , óäîâëåòâîðÿåò ñîîòíîøåíèþ ρk (z) =
min S(|Pk |2 ).
deg Pk 6k Pk (z)=1
Ñëåäñòâèå 2.
äëÿ âñÿêîãî ìíîãî÷ëåíà ñòåïåíè íå âûøå ñ âåùåñòâåííûìè êîýèöèåíòàìè, ïðèíèìàþùåãî çíà÷åíèå â òî÷êå λ . ρj (λ) 6 j 1
Pj
Pn
µ=1
|ϕµ |2 Pj2 (λµ )
Òàêèì îáðàçîì, tr Tk =
k X n X
|ϕj |2 λj |pµ−1 (λj )|2 =
µ=1 j=1
>
k X j=1
n X |ϕj |2 λj ρk−1 (λj ) j=1
2
|ϕj | λj > ρk−1 (λj )
k X j=1
|ϕj |2 λj , 2 2 µ=1 |ϕµ | Pk,j (λµ )
Pn
ãäå Pk,j (λ) , j = 1, . . . , k ìíîãî÷ëåí ñòåïåíè íå âûøå k − 1 , ïðèíèìàþùèé â òî÷êå λj çíà÷åíèå 1 . Äàëåå, ïðåîáðàçóåì çíàìåíàòåëü â ïîñëåäíåé ñóììå: n X
µ=1
2 |ϕµ |2 Pk,j (λµ ) 6 |ϕj |2 +
n X
µ=1, µ6=j
2 |ϕµ |2 max |Pk,j (λ)| , λ∈Kj
ãäå ìíîæåñòâî Kj = [λn , λj+1 ] ∪ [λj−1 , λ1 ] .  ñâÿçè ñ ïîñëåäíèì ìàêñèìóìîì âûáåðåì â êà÷åñòâå Pk,j ìíîãî÷ëåí ñòåïåíè íå âûøå k , ðàâíûé 1 â òî÷êå λj è íàèìåíåå óêëîíÿþùèéñÿ îò íóëÿ íà óêàçàííîì îáúåäèíåíèè îòðåçêîâ, à çíà÷åíèå ìàêñèìóìà äëÿ íåãî îáîçíà÷èì Zk,j,n .
Îá îöåíêå ñõîäèìîñòè ìåòîäà áèäèàãîíàëèçàöèè
117
Ýòè ìíîãî÷ëåíû áûëè èññëåäîâàíû Çîëîòàðåâûì, íîñÿò åãî èìÿ, è äîïóñêàþò ÿâíîå ïðåäñòàâëåíèå ÷åðåç òåòà-óíêöèè ßêîáè [6, Lemma 2.1, Problem BZ13℄. Íàêîíåö, èìååì tr Tk >
k X
λj
j=1
|ϕj |2 . 2 |ϕj |2 + (1 − |ϕj |2 )Zk,j,n
Pn Îáîçíà÷àÿ ÷åðåç ε⋆k = j=k+1 λj êâàäðàò ïîãðåøíîñòè íàèëó÷øåé k -ðàíãîâîé àïïðîêñèìàöèè A âî ðîáåíèóñîâîé íîðìå, èìååì kA − Pk Rk Qk ∗ k2F 6 ε⋆k +
k X j=1
λj
2 Zk,j,n . |ϕj |2
(6)
Ìû ïðèøëè ê ñëåäóþùåé òåîðåìå.
Òåîðåìà 4. Ïóñòü âñå ïðîåêöèè ñòàðòîâîãî âåêòîðà ïðîöåññà áèäèà-
ãîíàëèçàöèè q1 íà ïðàâûå ñèíãóëÿðíûå âåêòîðû ìàòðèöû A íåíóëåâûå è âñå ñèíãóëÿðíûå ÷èñëà A ðàçëè÷íû. Òîãäà ïîãðåøíîñòü k -ðàíãîâîé àïïðîêñèìàöèè ìàòðèöû A , ïîðîæäàåìîé ïðîöåññîì áèäèàãîíàëèçàöèè, îöåíèâàåòñÿ ïî îðìóëå (6) .
Ñïèñîê ëèòåðàòóðû
Êëàññè÷åñêàÿ ïðîáëåìà ìîìåíòîâ è íåêîòîðûå âîïðîñû àíàëèçà, ñâÿçàííûå ñ íåþ. Ì.: Ôèçìàòëèò, 1961. [2℄ Ñèììåòðè÷íàÿ ïðîáëåìà ñîáñòâåííûõ çíà÷åíèé. Ì.: Ìèð, 1983.
[1℄
Àõèåçåð Í. È.
Ïàðëåòò Á.
[3℄
Òåíçîðíûå àïïðîêñèìàöèè ìàòðèö, ïîðîæäåííûõ àñèìïòîòè÷åñêè ãëàäêèìè óíêöèÿìè. // 2003. Ò.194. 6. Ñ.147160.
Òûðòûøíèêîâ Å. Å.
ñá. [4℄
Ìàòåì.
A blo k Lan zos method for
omputing the singular values and orresponding singular ve tors 1981. V.7. 2. of a matrix. // P.149169. Golub G., Luk F., Overton M.
ACM Transa tions on Math. Soft.
118
Ñ. À. îðåéíîâ
[5℄
Matrixfree iterative solution strategies for large dense linear systems. Goreinov S. A., Tyrtyshnikov E. E., Yeremin A. Yu.
Numer. Linear Algebra Appl. 1997. V.4. 4. P.273294.
[6℄
Lebedev V. I.
Zolotarev polynomials and extremum problems.
Russian J. Numer. Anal. Math. Modelling. 1994. V.9. 3. P.
// 231263.
[7℄
The omputation of eigenvalues and eigenve tors of very large sparse matri es. Ph.D.thesis. The University of
Paige C. C.
London. 1971. [8℄ [9℄
Saad Y.
Numeri al methods for large eigenvalue problems.
Man hester University Press, 1992. Oseledets
I. V.,
Savostianov
D. V.,
Tyrtyshnikov
E. E.
Tu ker dimensionality redu tion of three-dimensional arrays in 2008. In press. linear time. //
SIAM J. Matr. Anal. Matrix Perturbation Theory. A ademi
[10℄
G. W. Stewart, J. Sun.
[11℄
E. E. Tyrtyshnikov.
[12℄
E. E. Tyrtyshnikov.
Press, 1990.
Mosai -skeleton approximations. // 1996. V.33. 12. P.4757.
Cal olo.
In omplete ross approximation in the mosai -skeleton method. // 2000. V.4. P.367380.
Computing. [13℄ An iterative blo k Lan zos method for the solution of large sparse symmetri eigenproblems. Ph.D.thesis. R. R. Underwood.
Stanford University. 1975.
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê äëÿ îáëàñòåé ñ çàäàííûìè ïîâåðõíîñòíûìè òðèàíãóëÿöèÿìè À. À. Äàíèëîâ
 ðàáîòå ðàññìîòðåíà çàäà÷à ïîñòðîåíèÿ òåòðàýäðàëüíîé ñåòêè äëÿ ïðîèçâîëüíîé îáëàñòè ñ çàäàííîé òðèàíãóëÿöèåé íà ãðàíèöå. Ïðåäëîæåí ìåòîä ðåøåíèÿ ýòîé çàäà÷è, îñíîâàííûé íà àëãîðèòìå ïðîäâèãàåìîãî ðîíòà è íàäåæíîì àëãîðèòìå ïîñòðîåíèÿ òåòðàýäðàëüíûõ ñåòîê äëÿ ìíîãîãðàííèêîâ.
1. Ââåäåíèå
Ïîñòðîåíèå ñåòîê ÿâëÿåòñÿ îäíèì èç øàãîâ ïðè ðåøåíèè çàäà÷ êîìïüþòåðíîãî ìîäåëèðîâàíèÿ.  ïðèëîæåíèÿõ ÷àñòî èñïîëüçóþò íåñòðóêòóðèðîâàííûå òåòðàýäðàëüíûå ñåòêè, òàê êàê ñ èõ ïîìîùüþ ïðîùå äèñêðåòèçèðîâàòü ñëîæíûå ãåîìåòðè÷åñêèå îáëàñòè. Îäíèì èç ñïîñîáîâ çàäàíèÿ ãåîìåòðèè îáëàñòè ìîæåò ñëóæèòü èñïîëüçîâàíèå äèñêðåòèçàöèè åå ãðàíèöû.  êà÷åñòâå äèñêðåòèçàöèè ãðàíèöû ìîæåò âûñòóïàòü ïîâåðõíîñòíàÿ òðèàíãóëÿöèÿ. Âî ìíîãèõ ïðèëîæåíèÿõ âàæíîé çàäà÷åé ÿâëÿåòñÿ ïîñòðîåíèå òåòðàýäðàëüíîé ñåòêè ñ çàäàííîé èêñèðîâàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèåé. Íàïðèìåð, ýòî ìîæåò áûòü ñâÿçàíî ñ îñîáåííîñòÿìè çàäàíèÿ ãðàíè÷íûõ óñëîâèé â ðàññìàòðèâàåìîé ìîäåëè, èëè ñ íåîáõîäèìîñòüþ èìåòü îäèíàêîâóþ äèñêðåòèçàöèþ íà èíòåðåéñå ìåæäó äâóìÿ îáëàñòÿìè.  äàííîé ñòàòüå ðàññìàòðèâàåòñÿ çàäà÷à ïîñòðîåíèÿ êîíîðìíîé òåòðàýäðàëüíîé ñåòêè äëÿ ïðîèçâîëüíîé îáëàñòè ñ çàäàííîé òðèàí Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
120
À. À. Äàíèëîâ 4 6
4
6
5
5
1
1
3
3
2
2
èñ. 1. Ïðèçìà S h onhardt'à. Äëÿ ïîñòðîåíèÿ òåòðàýäðàëüíîé ñåòêè ñ çàäàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèåé íåîáõîäèìî äîáàâèòü õîòÿ áû îäíó âåðøèíó âíóòðè ïðèçìû. (íà ðèñ. ñêðûòû ðåáðà 3-4)
ãóëÿöèåé íà ãðàíèöå. ðàíè÷íàÿ òðèàíãóëÿöèÿ ÿâëÿåòñÿ êîíîðìíîé, ò.å. ëþáûå äâà òðåóãîëüíèêà ëèáî íå ïåðåñåêàþòñÿ, ëèáî èìåþò ðîâíî îäíó îáùóþ âåðøèíó, ëèáî èìåþò öåëîå îáùåå ðåáðî. Ïîñòðîåííàÿ òåòðàýäðàëüíàÿ ñåòêà òàêæå äîëæíà áûòü êîíîðìíîé ëþáûå äâà òåòðàýäðà ëèáî íå ïåðåñåêàþòñÿ, ëèáî èìåþò ðîâíî îäíó îáùóþ âåðøèíó, ëèáî öåëîå îáùåå ðåáðî, ëèáî öåëóþ îáùóþ ãðàíü.  àíàëîãè÷íîé çàäà÷å äëÿ ïëîñêîñòè ïðîèçâîëüíûé ïðîñòîé ìíîãîóãîëüíèê ìîæåò áûòü ðàçáèò íà òðåóãîëüíèêè ñ ïîìîùüþ äèàãîíàëåé áåç äîáàâëåíèÿ äîïîëíèòåëüíûõ âíóòðåííèõ òî÷åê [1℄.  òðåõìåðíîì ïðîñòðàíñòâå äàæå äëÿ âûïóêëûõ ìíîãîãðàííèêîâ àíàëîãè÷íîå óòâåðæäåíèå íåâåðíî [2℄ (ñì. èñ. 1), îäíàêî íàëè÷èå õîòÿ áû îäíîé âíóòðåííåé òî÷êè ðåøàåò ïðîáëåìó äëÿ âûïóêëûõ ìíîãîãðàííèêîâ [3℄.  îáùåì ñëó÷àå äîêàçàíî ñóùåñòâîâàíèå òåòðàýäðàëüíîé ñåòêè ïðè óñëîâèè âîçìîæíîñòè äîáàâëåíèÿ íîâûõ âåðøèí âíóòðè îáëàñòè [4℄.  ïîñëåäíåå âðåìÿ áûëî ïðåäëîæåíî ìíîãî ìåòîäîâ äëÿ ïîñòðîåíèÿ íåñòðóêòóðèðîâàííûõ ñåòîê, îñíîâàííûõ íà òåòðàýäðàëüíîì ðàçáèåíèè Äåëîíå, è íà ìåòîäå ïðîäâèãàåìîãî ðîíòà. Àëãîðèòìû, îñíîâàííûå íà òåòðàýäðàëüíîì ðàçáèåíèè Äåëîíå, ãàðàíòèðóþò ñîõðàíåíèå çàäàííîé ãðàíèöû îáëàñòè òîëüêî â ÷àñòíûõ ñëó÷àÿõ. Åñëè íà ãðàíèöå âûïóêëîé îáëàñòè ëþáûå äâà ñîñåäíèõ òðåóãîëüíèêà ëåæàò â ðàçíûõ ïëîñêîñòÿõ, òî òåòðàýäðàëüíîå ðàçáèåíèå Äåëîíå
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê
121
áóäåò èìåòü çàäàííûé ñëåä íà ãðàíèöå îáëàñòè.  îáùåì ñëó÷àå äëÿ âîññòàíîâëåíèÿ òðèàíãóëÿöèè íà ãðàíèöå ìîãóò áûòü èñïîëüçîâàíû ëîêàëüíûå ïåðåñòðîåíèÿ ñåòêè [5℄. Ïðåäëîæåíû ñïîñîáû èçìåëü÷åíèÿ ñåòêè äëÿ âîññòàíîâëåíèÿ ãðàíèöû [6℄, à òàêæå ìåòîäû ïîñòðîåíèÿ òåòðàýäðàëüíûõ ðàçáèåíèé Äåëîíå ñ îãðàíè÷åíèÿìè [7℄. Ìåòîä ïðîäâèãàåìîãî ðîíòà [8℄, íàïðîòèâ, îòëè÷íî ðàáîòàåò îêîëî ïðîèçâîëüíîé ãðàíèöû îáëàñòè, íî ìîæåò ñòîëêíóòüñÿ ñ ïðîáëåìàìè âíóòðè îáëàñòè. Ïåðñïåêòèâíûì íàïðàâëåíèåì âèäèòñÿ êîìáèíàöèÿ ìåòîäîâ Äåëîíå è ïðîäâèãàåìîãî ðîíòà [9℄. Âî ìíîãèõ ïðàêòè÷åñêèõ ïðèëîæåíèÿõ âàæíà ðåãóëÿðíîñòü ïîñòðîåííîé ñåòêè, òî åñòü ìàëîå îòêëîíåíèå ïîñòðîåííûõ òåòðàýäðîâ îò ðàâíîñòîðîííèõ. Åñëè ïîâåðõíîñòíàÿ òðèàíãóëÿöèÿ îáëàñòè óæå ÿâëÿåòñÿ ñèëüíî íåðåãóëÿðíîé, òî ïîñòðîåíèå ðåãóëÿðíîé òåòðàýäðàëüíîé ñåòêè ñ çàäàííîé òðèàíãóëÿöèåé íà ãðàíèöå ÿâëÿåòñÿ íåðàçðåøèìîé çàäà÷åé.  ïîäîáíûõ ñëó÷àÿõ áîëåå ïðàêòè÷íûì ïîäõîäîì ìîæåò áûòü ïðåäâàðèòåëüíîå ïåðåñòðîåíèå è óëó÷øåíèå ïîâåðõíîñòíîé òðèàíãóëÿöèè [10℄.  äàííîé ñòàòüå ïðåäëàãàåòñÿ ìåòîä, ñîñòîÿùèé èç äâóõ ÷àñòåé. Ïåðâàÿ ÷àñòü îñíîâàíà íà àëãîðèòìå ïðîäâèãàåìîãî ðîíòà [10℄ è èñïîëüçóåòñÿ äëÿ ïîñòðîåíèÿ áîëüøåé ÷àñòè òåòðàýäðàëüíîé ñåòêè. Âòîðàÿ ÷àñòü ìåòîäà îñíîâàíà íà êîíñòðóêòèâíîì äîêàçàòåëüñòâå ñóùåñòâîâàíèÿ òåòðàýäðàëüíîé ñåòêè äëÿ ïðîèçâîëüíîãî ìíîãîãðàííèêà [4, 11℄. Âìåñòå ýòè äâà àëãîðèòìà ïðåäñòàâëÿþò íàäåæíûé ñïîñîá ïîñòðîåíèÿ òåòðàýäðàëüíûõ ñåòîê äëÿ îáëàñòåé ñ çàäàííûìè ïîâåðõíîñòíûìè òðèàíãóëÿöèÿìè.  ðàçäåëå 2 áóäåò êðàòêî îïèñàí àëãîðèòì ïðîäâèãàåìîãî ðîíòà.  ðàçäåëå 3 áóäåò îïèñàí âòîðîé, íàäåæíûé àëãîðèòì.  ðàçäåëå 4 îáñóæäàþòñÿ ñïîñîáû ïîëó÷åíèÿ ðåãóëÿðíûõ ñåòîê.
2. Àëãîðèòì ïðîäâèãàåìîãî ðîíòà
 êà÷åñòâå îñíîâíîãî àëãîðèòìà äëÿ ïîñòðîåíèÿ òåòðàýäðàëüíîé ñåòêè áûë âûáðàí àëãîðèòì ïðîäâèãàåìîãî ðîíòà [10℄. Ýòîò àëãîðèòì ïîäðàçóìåâàåò íàëè÷èå ïîâåðõíîñòíîé òðèàíãóëÿöèè, íàçûâàåìîé íà÷àëüíûì ðîíòîì. Ó òðåóãîëüíèêîâ ðîíòà èìååòñÿ îðèåíòàöèÿ, îíà îïðåäåëÿåò íàïðàâëåíèå äëÿ äàëüíåéøåãî ïðîäâè-
122
À. À. Äàíèëîâ
æåíèÿ ðîíòà. Àëãîðèòì ÿâëÿåòñÿ ìíîãîøàãîâûì. Íà êàæäîì åãî øàãå ñòðîèòñÿ îäèí òåòðàýäð íà ãðàíèöå ðîíòà, ïðè ýòîì ðîíò ñäâèãàåòñÿ âíóòðü îáëàñòè. Ïîñëå êàæäîãî øàãà òåêóùèé ðîíò îòäåëÿåò ïîñòðîåííóþ òåòðàýäðàëüíóþ ñåòêó îò îñòàâøåéñÿ îáëàñòè. Àëãîðèòì ïðîäâèãàåìîãî ðîíòà íå ãàðàíòèðóåò ïîñòðîåíèå òåòðàýäðàëüíîé ñåòêè äëÿ âñåé çàäàííîé îáëàñòè. Äëÿ ðàçáèåíèÿ îñòàâøåéñÿ ÷àñòè èñïîëüçóåòñÿ âòîðîé, áîëåå íàäåæíûé è ìåäëåííûé àëãîðèòì, ðàññìîòðåííûé â ñëåäóþùåì ðàçäåëå. Àëãîðèòì ïðîäâèãàåìîãî ðîíòà ñòðîèò ïî îäíîìó òåòðàýäðó íà êàæäîì øàãå. Èç ðîíòà âûáèðàåòñÿ òðåóãîëüíèê ñ ñàìîé ìàëåíüêîé ïëîùàäüþ. Èç åãî öåíòðà ìàññ ïðîâîäèòñÿ íîðìàëü âíóòðü îáëàñòè. Íà íîðìàëè âûáèðàåòñÿ ÷åòâåðòàÿ òî÷êà áóäóùåãî òåòðàýäðà â ñîîòâåòñòâèè ñ æåëàåìûì ðàçìåðîì ýëåìåíòîâ ñåòêè â äàííîé òî÷êå. Åñëè ïîñòðîåííûé òåòðàýäð ïåðåñåêàåò òåêóùèé ðîíò, òî íà÷èíàåòñÿ ïåðåáîð âîçìîæíîãî ïîëîæåíèÿ ÷åòâåðòîé âåðøèíû òåòðàýäðà ñðåäè ñîñåäíèõ âåðøèí ðîíòà. Åñëè ïîñëå ïåðåáîðà âñåõ âîçìîæíûõ êàíäèäàòîâ òåòðàýäð òàê è íå áóäåò ïîñòðîåí, òî âåñü øàã ïîâòîðÿåòñÿ ñ ñàìîãî íà÷àëà, ãäå èç ðîíòà âûáèðàåòñÿ ñëåäóþùèé òðåóãîëüíèê. Êîãäà âñå òðåóãîëüíèêè ðîíòà áóäóò ðàññìîòðåíû, è íè íà îäíîì èç íèõ íå ïîëó÷èòñÿ ïîñòðîèòü òåòðàýäð, àëãîðèòì îñòàíàâëèâàåòñÿ. Îñòàâøèéñÿ ðîíò áóäåò îãðàíè÷èâàòü íåðàçáèòóþ îáëàñòü. Òåòðàýäðàëüíàÿ ñåòêà âíóòðè ýòîé îáëàñòè áóäåò ïîñòðîåíà ñ ïîìîùüþ íàäåæíîãî àëãîðèòìà. Ïðè ïîñòðîåíèè íîâûõ âåðøèí ïîääåðæèâàåòñÿ ñëåäóþùåå äîïîëíèòåëüíîå óñëîâèå: äîáàâëåíèå íîâîé âåðøèíû íå äîëæíî óìåíüøàòü íàèìåíüøåå èç ïîïàðíûõ ðàññòîÿíèé ìåæäó âåðøèíàìè ðîíòà. Åñëè ýòî óñëîâèå áóäåò âûïîëíÿòüñÿ ïðè ïðîäâèæåíèè ðîíòà, òî ðàññòîÿíèå ìåæäó ëþáûìè äâóìÿ âåðøèíàìè ñåòêè áóäåò îãðàíè÷åíî ñíèçó íàèìåíüøèì ðàññòîÿíèåì ìåæäó âåðøèíàìè íà÷àëüíîãî ðîíòà.  êîíå÷íîé îáëàñòè, îãðàíè÷åííîé íà÷àëüíûì ðîíòîì, ìîæåò áûòü ðàñïîëîæåíî ëèøü êîíå÷íîå ÷èñëî âåðøèí ñåòêè. Ñëåäîâàòåëüíî, êîëè÷åñòâî òåòðàýäðîâ òàêæå áóäåò îãðàíè÷åíî, ÷òî ãàðàíòèðóåò êîíå÷íîñòü âðåìåíè ðàáîòû àëãîðèòìà.  ÷àñòíîñòè ïîääåðæèâàåìîå óñëîâèå íà ðàññòîÿíèå ìåæäó âåðøèíàìè íàêëàäûâàåò îãðàíè÷åíèå íà âîçìîæíûé ðàçìåð òåòðàýäðîâ â ñåòêå.
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê
123
Âûïîëíåíèå ýòîãî óñëîâèÿ ÿâëÿåòñÿ áîëåå ïðèîðèòåòíûì, ÷åì ïîääåðæàíèå æåëàåìîãî ðàçìåðà ýëåìåíòîâ â ñåòêå. Ïðåäëîæåííûé àëãîðèòì ìîæåò áûòü èñïîëüçîâàí äëÿ ïîñòðîåíèÿ ðàâíîìåðíûõ èëè ðàçãðóáëÿþùèõñÿ ñåòîê. Äëÿ ïîëó÷åíèÿ ñãóùàþùèõñÿ ñåòîê ìîæåò áûòü íåîáõîäèìî èñïîëüçîâàíèå äðóãèõ àëãîðèòìîâ äëÿ ïåðåñòðîåíèÿ ïîëó÷åííîé ñåòêè [14, 15℄.  êîíöå ðàáîòû àëãîðèòìà ïðîâîäèòñÿ ðàçãëàæèâàíèå ñåòêè. Äëÿ êàæäîé âíóòðåííåé âåðøèíû ñåòêè âû÷èñëÿåòñÿ öåíòð ìàññ åå ñîñåäåé, è âíóòðåííèå âåðøèíû ñäâèãàþòñÿ â íîâûå ïîñ÷èòàííûå ïîëîæåíèÿ. Ñäâèã âûïîëíÿåòñÿ, åñëè íå íàðóøàåòñÿ êîíîðìíîñòü ñåòêè. Îïåðàöèÿ ïîâòîðÿåòñÿ åùå ðàç, íî ïðè ýòîì âåðøèíû ñäâèãàþòñÿ ëèøü íà ïîëîâèíó âåêòîðà, çàòåì íà òðåòü, ÷åòâåðòü è ò.ä. Óìåíüøåíèå ìíîæèòåëåé ïîçâîëÿåò èçáåæàòü íàðóøåíèÿ êîíîðìíîñòè ñåòP1 êè ïðè ñäâèãå âåðøèí. Ñ äðóãîé ñòîðîíû, ðàñõîäèìîñòü ðÿäà n íå îãðàíè÷èâàåò ðàññòîÿíèå, íà êîòîðîå ìîæåò ñäâèíóòüñÿ âåðøèíà. Äåëàåòñÿ îò 5 äî 10 îïåðàöèé ðàçãëàæèâàíèÿ ñåòêè.
3. Íàäåæíûé àëãîðèòì ïîñòðîåíèÿ òåòðàýäðàëüíûõ ñåòîê
 ýòîì ðàçäåëå ðàññìàòðèâàåòñÿ âàðèàíò àëãîðèòìà [4, 11℄, ïðåäíàçíà÷åíîãî äëÿ ãàðàíòèðîâàííîãî ïîñòðîåíèÿ êîíîðìíîé òåòðàýäðàëüíîé ñåòêè âíóòðè ìíîãîãðàííèêà ñ çàäàííûì ñëåäîì íà ãðàíèöå. Àëãîðèòì ñîñòîèò èç òðåõ ÷àñòåé. Ñíà÷àëà íà ìíîæåñòâå íà÷àëüíûõ âåðøèí ñòðîèòñÿ òåòðàýäðàëüíîå ðàçáèåíèå Äåëîíå (ðàçäåë 3.1). Äàëåå ïðîâîäèòñÿ ïîèñê íåäîñòàþùèõ ãðàíåé â ïîñòðîåííîé ñåòêå, íà ãðàíèöå îáëàñòè ñòðîÿòñÿ òî÷êè ïåðåñå÷åíèÿ (ðàçäåë 3.2).  êîíöå ïîñòðîåííûå íîâûå âåðøèíû ñäâèãàþòñÿ âíóòðü îáëàñòè, âîññòàíàâëèâàÿ òðåáóåìóþ ãðàíè÷íóþ òðèàíãóëÿöèþ (ðàçäåë 3.3).
3.1. Òåòðàýäðàëüíîå ðàçáèåíèå Äåëîíå.
Îñíîâíàÿ öåëü ïåðâîé ÷àñòè àëãîðèòìà ñîñòîèò â ïîñòðîåíèè âñïîìîãàòåëüíîé òåòðàýäðàëüíîé ñåòêè íà íàáîðå âåðøèí èç çàäàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèè. Òåòðàýäðàëüíàÿ ñåòêà Äåëîíå äëÿ íàáîðà âåðøèí â ïðîñòðàíñòâå ýòî òàêîå ðàçáèåíèå, ÷òî íèêàêàÿ âåðøèíà íå ïîïàäàåò âíóòðü íè îäíîé èç ñåð, îïèñàííûõ âîêðóã òåòðàýäðîâ [12℄.
124
À. À. Äàíèëîâ
Äëÿ ïîñòðîåíèÿ òðèàíãóëÿöèè Äåëîíå ìîæåò áûòü ïðèìåíåí ïðîñòåéøèé ïîñëåäîâàòåëüíûé àëãîðèòì [13℄. Âíà÷àëå èñêóññòâåííî ââîäÿòñÿ äîïîëíèòåëüíûå 8 âåðøèí ïðÿìîóãîëüíîãî ïàðàëëåëåïèïåäà, ïîëíîñòüþ ïîêðûâàþùåãî èñõîäíûé íàáîð òî÷åê. Ýòîò ïàðàëëåëåïèïåä ñ 8 óçëàìè ðàçáèâàåòñÿ íà òåòðàýäðû, óäîâëåòâîðÿþùèå óñëîâèþ Äåëîíå. Äàëåå íà êàæäîì øàãå âûáèðàåòñÿ î÷åðåäíàÿ âåðøèíà èç èñõîäíîãî íàáîðà. Åñëè âåðøèíà ïîïàëà âíóòðü îäíîãî èç òåòðàýäðîâ, òî ýòîò òåòðàýäð äåëèòñÿ ýòîé âåðøèíîé íà ÷åòûðå ÷àñòè. Åñëè âåðøèíà ïîïàëà íà îáùóþ ãðàíü äëÿ äâóõ òåòðàýäðîâ, òî òåòðàýäðû äåëÿòñÿ íà òðîéêè. Åñëè âåðøèíà ïîïàëà íà îáùåå ðåáðî äëÿ íåñêîëüêèõ òåòðàýäðîâ, òî êàæäûé òåòðàýäð äåëèòñÿ ýòîé âåðøèíîé íà ïàðó òåòðàýäðîâ. Äàëåå ïðîâîäÿòñÿ ëîêàëüíûå ïðîâåðêè íà ñîîòâåòñòâèå óñëîâèþ Äåëîíå. Åñëè óñëîâèå íå âûïîëíÿåòñÿ, òî ïðîâîäèòñÿ ïåðåñòðîåíèå òåòðàýäðîâ [13℄.  ðåçóëüòàòå áóäåò ïîëó÷åíî òåòðàýäðàëüíîå ðàçáèåíèå ñ âåðøèíàìè èç èñõîäíîãî íàáîðà âåðøèí. Èç àëãîðèòìà ïîñòðîåíèÿ ñëåäóåò, ÷òî ïîëó÷åííàÿ ñåòêà áóäåò êîíîðìíîé, è áóäåò óäîâëåòâîðÿòü óñëîâèþ Äåëîíå. Íî àëãîðèòì íå ãàðàíòèðóåò ñîâïàäåíèå òðåáóåìîé ïîâåðõíîñòíîé òðèàíãóëÿöèè ñ ïîëó÷åííîé ñåòêîé. ×àñòü ðåáåð è òðåóãîëüíèêîâ èç èñõîäíîé ïîâåðõíîñòíîé òðèàíãóëÿöèè ìîæåò îòñóòñòâîâàòü â ïîñòðîåííîé òåòðàýäðàëüíîé ñåòêå Äåëîíå. Ýòè íåäîñòàþùèå ýëåìåíòû áóäóò äîáàâëåíû â ñëåäóþùåé ÷àñòè àëãîðèòìà.
3.2. àçáèåíèå ãðàíè÷íîé òðèàíãóëÿöèè.
Âî âòîðîé ÷àñòè àëãîðèòìà ïðîèçâîäèòñÿ ïîèñê íåäîñòàþùèõ ðåáåð è òðåóãîëüíèêîâ çàäàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèè.  ïåðâóþ î÷åðåäü ïîñëåäîâàòåëüíî ðàññìàòðèâàþòñÿ âñå íåäîñòàþùèå ðåáðà. Äëÿ òðåáóåìîãî ðåáðà AB è èìåþùèõñÿ òåòðàýäðîâ ñ âåðøèíîé A ñóùåñòâóþò ñëåäóþùèå âîçìîæíîñòè: 1. åáðî AB ÿâëÿåòñÿ îáùèì ðåáðîì, âûõîäÿùèì èç A , äëÿ íåñêîëüêèõ òåòðàýäðîâ âîêðóã A .  ýòîì ñëó÷àå AB óæå öåëèêîì ïðèñóòñòâóåò â ïîñòðîåííîé ñåòêå. 2. åáðî AB ïðîõîäèò ïî îäíîé èç ãðàíåé òåòðàýäðà ñ âåðøèíîé â A . Èíà÷å ãîâîðÿ, AB ïåðåñåêàåòñÿ ñ íåêîòîðûì ðåáðîì CD â ïîñòðîåííîé ñåòêå.  ýòîì ñëó÷àå äîáàâëÿåòñÿ íîâàÿ âåðøèíà
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê C
C
A
A P
P
B
B
D
à)
125
D
á)
èñ. 2. åáðî ïðîõîäèò ïî ãðàíè òåòðàýäðà: à) ðåáðî AB ïåðåñåêàåòñÿ ñ ðåáðîì CD â òî÷êå P ; á) òåòðàýäðû ðàçáèâàþòñÿ íà ïàðû òåòðàýäðîâ. P òî÷êà ïåðåñå÷åíèÿ AB è CD . Êàæäûé òåòðàýäð ñ ðåáðîì CD äåëèòñÿ íà ïàðó òåòðàýäðîâ ñ ðåáðàìè CP è PD .  ÷àñòíîñòè äåëÿòñÿ è òåòðàýäðû, ñ âåðøèíîé â A , òàêèì îáðàçîì îòðåçîê AP ïîïàäàåò â ñåòêó (ñì. èñ. 2). Äàëåå ðàññìàòðèâàåòñÿ îñòàâøàÿñÿ ÷àñòü PB è âåðøèíà P .
3. åáðî AB ïðîõîäèò ÷åðåç âíóòðåííîñòü îäíîãî òåòðàýäðà ñ âåðøèíîé A , è ïåðåñåêàåò ïðîòèâîïîëîæíóþ ãðàíü â íåêîòîðîé òî÷êå.  ýòîé òî÷êå ñîçäàåòñÿ íîâàÿ âåðøèíà P , äâà òåòðàýäðà, ãðàíè÷àùèå ïî ýòîé ãðàíè, äåëÿòñÿ êàæäûé íà òðè ÷àñòè. Ïîñëå ýòîé îïåðàöèè îòðåçîê AP ïîïàäàåò â ñåòêó, è äàëåå ðàññìàòðèâàåòñÿ îñòàâøàÿñÿ ÷àñòü PB è âåðøèíà P (ñì. èñ. 3). Îïèñàííûå îïåðàöèè ìîãóò èçìåëü÷àòü ðåáðà â òåòðàýäðàëüíîé ñåòêå, íî íå óäàëÿþò èõ èç íåå. Òàêèì îáðàçîì, ïðè äîáàâëåíèè â ñåòêó î÷åðåäíîãî ðåáðà èç çàäàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèè ãàðàíòèðóåòñÿ ñîõðàííîñòü óæå äîáàâëåííûõ ðåáåð. Ïîñëå äîáàâëåíèÿ âñåõ íåîáõîäèìûõ ðåáåð ïîëó÷åííàÿ ñåòêà ïî-ïðåæíåìó ÿâëÿåòñÿ êîíîðìíîé. Òåïåðü ðàññìàòðèâàþòñÿ òðåóãîëüíèêè èç èñõîäíîé ïîâåðõíîñòíîé òðèàíãóëÿöèè îäèí çà äðóãèì. Äëÿ êàæäîãî òðåóãîëüíèêà åãî ðåáðà èëè èõ ðàçáèåíèÿ óæå íàõîäÿòñÿ â ñåòêå. Îäíàêî âîçìîæíà ñèòóàöèÿ, â êîòîðîé ãðàíè èìåþùåéñÿ ñåòêè íå ïîêðûâàþò òðåáóåìûé òðåóãîëüíèê ïîëíîñòüþ, â
126
À. À. Äàíèëîâ
B A
B
P
A
à)
P
á)
B A
â)
B
P
P
ã)
èñ. 3. åáðî ïðîõîäèò ÷åðåç òåòðàýäð: à) ðåáðî AB ïåðåñåêàåò ãðàíü â òî÷êå P ; á) òåòðàýäð ðàçáèâàåòñÿ íà òðè òåòðàýäðà; â) ñîñåäíèé òåòðàýäð òàêæå ðàçáèâàåòñÿ; ã) ïåðåõîä ê îòðåçêó PB . ýòîì ñëó÷àå íàéäåòñÿ îäíî èëè íåñêîëüêî ðåáåð, ïåðåñåêàþùèõ ýòîò òðåóãîëüíèê. Êàæäîå èç òàêèõ ðåáåð äîëæíî áûòü ðàçäåëåíî íà äâà îòðåçêà ñ ïîìîùüþ íîâûõ âåðøèí íà ïåðåñå÷åíèè ðåáðà è ïëîñêîñòè òðåóãîëüíèêà. Ñîîòâåòñòâóþùèå òåòðàýäðû ïðè ýòîì òàêæå ðàçáèâàþòñÿ. Ýòà îïåðàöèÿ ìîæåò åùå áîëüøå èçìåëü÷èòü ðåáðà è òðåóãîëüíèêè â ïîâåðõíîñòíîé òðèàíãóëÿöèè, íî íå óäàëÿåò èõ èç òåòðàýäðàëüíîé ñåòêè. Òî åñòü ñîõðàííîñòü óæå ðàññìîòðåííûõ ðåáåð è òðåóãîëüíèêîâ ãàðàíòèðóåòñÿ.  ðåçóëüòàòå áóäåò ïîëó÷åíà áîëåå ìåëêàÿ êîíîðìíàÿ ñåòêà, ïðè÷åì âñå òðåóãîëüíèêè çàäàííîé ïîâåðõíîñòíîé òðèàíãóëÿöèè áóäóò â íåé ïðèñóòñòâîâàòü â âèäå ðàçáèåíèÿ. Íà ýòîì ýòàïå ìîæíî óäàëèòü èç òåòðàýäðàëüíîé ñåòêè òå òåòðàýäðû, êîòîðûå íå ëåæàò âíóòðè çàäàííîãî ìíîãîãðàííèêà. Ñëåäóþùèì øàãîì áóäåò ïåðåíîñ íîâûõ òî÷åê ïåðåñå÷åíèÿ âíóòðü îáëàñòè.
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê
127
3.3. Âîññòàíîâëåíèå ãðàíè÷íîé òðèàíãóëÿöèè.
 ïîñëåäíåé ÷àñòè àëãîðèòìà ïðîèçâîäèòñÿ ïåðåíîñ íîâûõ âåðøèí âíóòðü îáëàñòè. Ñíà÷àëà ïåðåíîñÿòñÿ âåðøèíû, ëåæàùèå âíóòðè ãðàíåé, çàòåì âåðøèíû, ëåæàùèå íà ðåáðàõ. Ïóñòü âåðøèíà P ëåæèò âíóòðè ãðàíè ïîâåðõíîñòíîé òðèàíãóëÿöèè. Òåòðàýäðû ñ âåðøèíîé â P îáðàçóþò íåêîòîðóþ îáîëî÷êó âîêðóã P , ãðàíèöà ýòîé îáîëî÷êè ñîñòîèò èç äâóõ ÷àñòåé. Îäíà ÷àñòü ñîñòîèò èç òðåóãîëüíèêîâ ñ âåðøèíîé P , ëåæàùèõ íà ïîâåðõíîñòè îáëàñòè, è îáðàçóþùèõ íåêîòîðûé ìíîãîóãîëüíèê, âòîðàÿ ÷àñòü ñîñòîèò èç îñòàëüíûõ òðåóãîëüíèêîâ. Òàê êàê â ðàññìîòðåííîé îáîëî÷êå êîíå÷íîå êîëè÷åñòâî òåòðàýäðîâ, è èõ îðèåíòèðîâàííûå îáúåìû ñòðîãî ïîëîæèòåëüíû, òî ñóùåñòâóåò íåêîòîðàÿ îòêðûòàÿ îêðåñòíîñòü òî÷êè P , âíóòðè êîòîðîé âîçìîæíî ïåðåìåùåíèå âåðøèíû P ñ ñîõðàíåíèåì ïîëîæèòåëüíîñòè îðèåíòèðîâàííûõ îáúåìîâ ó òåòðàýäðîâ. Ïîñëå ñäâèãà âåðøèíû âíóòðü îáëàñòè â ïðåäåëàõ ýòîé îêðåñòíîñòè îñòàíåòñÿ íåðàçáèòàÿ ÷àñòü îáëàñòè â âèäå ïèðàìèäû ñ âåðøèíîé P è îñíîâàíèåì â âèäå ìíîãîóãîëüíèêà íà ïîâåðõíîñòè îáëàñòè. Ìíîãîóãîëüíèê ìîæíî ðàçáèòü íà òðåóãîëüíèêè ñ ïîìîùüþ äèàãîíàëåé áåç äîáàâëåíèÿ íîâûõ âåðøèí [1℄, ñëåäîâàòåëüíî, ïèðàìèäó ìîæíî ðàçáèòü íà òåòðàýäðû áåç äîáàâëåíèÿ íîâûõ âåðøèí.  ðåçóëüòàòå áóäåò ïîëó÷åíà êîíîðìíàÿ òåòðàýäðàëüíàÿ ñåòêà äëÿ òîé æå îáëàñòè, ñ òåì æå êîëè÷åñòâîì âåðøèí, íî îäíà èç âåðøèí áóäåò ïåðåìåùåíà âíóòðü îáëàñòè (ñì. èñ 4). Ýòîò ïðîöåññ ïîâòîðÿåòñÿ äëÿ âñåõ âåðøèí, ëåæàùèõ âíóòðè òðåóãîëüíèêîâ ïîâåðõíîñòíîé òðèàíãóëÿöèè. Ïóñòü òåïåðü âåðøèíà P ïîïàëà íà ðåáðî ïîâåðõíîñòíîé òðèàíãóëÿöèè. Ýòîò ñëó÷àé àíàëîãè÷åí óæå ðàññìîòðåííîìó. ðàíèöà îáîëî÷êè èç òåòðàýäðîâ áóäåò ñîñòîÿòü èç òðåõ ÷àñòåé: äâóõ ïîâåðõíîñòíûõ è îäíîé âíóòðåííåé. Ñîîòâåòñòâåííî, ïîñëå ñäâèãà âíóòðü îáëàñòè îñòàíåòñÿ äâå ïèðàìèäû, êîòîðûå ìîãóò áûòü ðàçáèòû íà òåòðàýäðû áåç äîáàâëåíèÿ äîïîëíèòåëüíûõ âåðøèí. Ñäâèãàÿ ïî î÷åðåäè âñå âåðøèíû âíóòðü îáëàñòè, â êîíöå áóäåò ïîëó÷åíà êîíîðìíàÿ òåòðàýäðàëüíàÿ ñåòêà ñ çàäàííûì ñëåäîì íà ãðàíèöå îáëàñòè.
128
À. À. Äàíèëîâ
P
à)
P
á)
P
â)
P
ã)
èñ. 4. Óäàëåíèå âåðøèíû ñ ãðàíè: à) òðåóãîëüíèêè íà ãðàíèöå îáëàñòè; á) îáîëî÷êà èç òåòðàýäðîâ; â) ïåðåíîñ âåðøèíû âíóòðü îáëàñòè; ã) ðàçáèåíèå ïèðàìèäû.
4. åãóëÿðíîñòü ïîñòðîåííûõ ñåòîê  ïðåäëîæåííîì ìåòîäå â ïåðâóþ î÷åðåäü èñïîëüçóåòñÿ àëãîðèòì ïðîäâèãàåìîãî ðîíòà, êîòîðûé ñòðîèò á îëüøóþ ÷àñòü ñåòêè. Ýòîò àëãîðèòì ïîçâîëÿåò ñòðîèòü ðàçãðóáëÿþùèåñÿ è ðåãóëÿðíûå ñåòêè, îäíàêî íå ãàðàíòèðóåò èõ ïîëíîå ïîñòðîåíèå. Âòîðîé, íàäåæíûé àëãîðèòì ñòðîèò íåðåãóëÿðíûå ñåòêè. Òî åñòü ìåòîä íå ìîæåò ãàðàíòèðîâàòü ïîñòðîåíèå ðåãóëÿðíûõ ñåòîê. Äëÿ ïîëó÷åíèÿ ðåãóëÿðíûõ òåòðàýäðàëüíûõ ñåòîê ìîæíî èñïîëüçîâàòü äâà îñíîâíûõ ïîäõîäà: ïðåäâàðèòåëüíîå ïåðåñòðîåíèå è óëó÷øåíèå ïîâåðõíîñòíîé ñåòêè [10℄; è ïîñëåäóþùåå ïåðåñòðîåíèå ïîëó÷åííîé ñåòêè [14, 15℄. Åñëè äëÿ íåêîòîðîé çàäà÷è ñîõðàíåíèå ïîâåðõíîñòíîé òðèàíãóëÿöèè íå ÿâëÿåòñÿ íåîáõîäèìûì óñëîâèåì, òî ïåðåñòðîåíèå ñåòêè ïîçâîëèò ïîëó÷èòü ðåãóëÿðíóþ ïîâåðõíîñòíóþ ñåòêó. åãóëÿðíîñòü ïîâåðõíîñòíîé ñåòêè ïîçâîëÿåò àëãîðèòìó ïðîäâèãàåìîãî ðîíòà
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê
129
ñòðîèòü áîëåå ðåãóëÿðíûå òåòðàýäðàëüíûå ñåòêè. Íà ïðàêòèêå ïðèìåíåíèå ïîâåðõíîñòíîé ðåãóëÿðèçàöèè ïîçâîëÿåò èçáåæàòü èñïîëüçîâàíèÿ íàäåæíîãî àëãîðèòìà [10℄. Ïðåäëîæåííûé â ñòàòüå ìåòîä ðåøàåò çàäà÷ó ïîñòðîåíèÿ êîíîðìíîé òåòðàýäðàëüíîé ñåòêè. Âìåñòå ñ ìåòîäàìè ïðåäîáðàáîòêè ïîâåðõíîñòíûõ ñåòîê è ìåòîäàìè ïîñòîáðàáîòêè òåòðàýäðàëüíûõ ñåòîê îíè îáðàçóþò ïîëíûé êîìïëåêñ ïðîãðàìì äëÿ ïîñòðîåíèÿ ñåòîê. Ïðèìåðàìè òàêèõ êîìïëåêñîâ ìîãóò ñëóæèòü áèáëèîòåêè äëÿ ðàáîòû ñ àíèçîòðîïíûìè ñåòêàìè [16, 17℄.
Ñïèñîê ëèòåðàòóðû
[1℄ Ïðåïàðàòà Ô., Øåéìîñ Ì. Âû÷èñëèòåëüíàÿ ãåîìåòðèÿ: Ââåäåíèå. Ì.: Ìèð. 1989. Ñ. 285295.
[2℄ S h onhardt E. Uber die Zerlegung von Dreie kspolyedern in 1928. V. 98. P. 309312. Tetraeder. //
Mathematis he Annalen.
[3℄ Joe B. Three-dimensional boundary- onstrained triangulations. // 1992. P. 215222.
Pro . of 13th IMACS World Congress.
[4℄ George P.L., Borou haki H. Maillage simpli ial d'un polyedre Ser. I 338. 2004. P. 735740. arbitraire. //
C. R. A ad. S i. Paris.
[5℄ Borou haki H., He ht F., Saltel E., George P.L. Reasonably e ient Delaunay based mesh generator in 3 dimensions. // 1995. P. 314.
Pro . of 4th Int.
Meshing Roundtable.
[6℄ Du Q., Wang D. Re ent progress in robust and quality Delaunay 2006. V. 195. P. mesh generation. // 823.
J. of Comp. and App. Math.
[7℄ Shew huk J.R. Constrained Delaunay tetrahedralizations and provably good boundary re overy. // 2002. P. 193204.
Roundtable.
Pro . of 11th Int. Meshing
[8℄ George P.L. Automati mesh generation and nite element 1996. V. 4. P. 127148.
omputation. //
Handbook of Num.Anal.
130
À. À. Äàíèëîâ
[9℄ Yang Y.J., Yong J.H., Sun J.G. An algorithm for tetrahedral mesh generation based on onforming onstrained Delaunay 2005. V. 29(4). P. tetrahedralization. // 606615.
Computers & Graphi s.
[10℄ Âàñèëåâñêèé Þ., Âåðøèíèí À., Äàíèëîâ À., Ïëåíêèí À. Òåõíîëîãèÿ ïîñòðîåíèÿ òåòðàýäðàëüíûõ ñåòîê äëÿ îáëàñòåé, çàäàííûõ â ÑÀÏ. // Ì.: ÈÂÌ ÀÍ. 2005. Ñ. 2132.
Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè ðåøåíèÿ áîëüøèõ çàäà÷.
[11℄ George P.L., Borou haki H., Saltel E. 'Ultimate' robustness in meshing an arbitrary polyhedron. // 2003. V. 58. P. 10611089.
Int. J. Numer. Meth. Eng.
[12℄ Äåëîíå Á.Í. Î ïóñòîòå ñåðû. // 793800.
Èçâ. ÀÍ ÑÑÑ. 1934. Ò. 4, Ñ.
[13℄ Ñêâîðöîâ À.Â. Òðèàíãóëÿöèÿ Äåëîíå è å¼ ïðèìåíåíèå. Òîìñê: Èçä-âî Òîì. óí-òà. 2002. Ñ. 2243. [14℄ Zavattieri P.D., Dari E.A., Bus aglia G.C. Optimization strategies in unstru tured mesh generation. // 1996. V. 39. P. 20552071.
Int. J. Numer. Meth. Eng.
[15℄ Agouzal A., Lipnikov K, Vassilevski Yu. Adaptive generation of quasi-optimal tetrahedral meshes. // 1999. V. 7, No. 4. P. 223-244, 1999.
East-West J. Numer. Math.
[16℄ 2D Generator of Anisotropi Meshes. http://sour eforge.net/proje ts/ani2d/ [17℄ 3D Generator of Anisotropi Meshes. http://sour eforge.net/proje ts/ani3d/
Êîìïëåêñíûé ïîäõîä ê îáñëóæèâàíèþ âû÷èñëèòåëüíûõ êëàñòåðîâ Ñ. À. Æóìàòèé
⋆
 ñòàòüå ïðèâîäèòñÿ îïèñàíèå ïðîãðàììíîãî êîìïëåêñà ParCon, ïðåäíàçíà÷åííîãî äëÿ ïîìîùè ïîëüçîâàòåëÿì è àäìèíèñòðàòîðàì â ýåêòèâíîì èñïîëüçîâàíèè âû÷èñëèòåëüíûõ êëàñòåðîâ. Ïðèâåäåíû ïðèìåðû ÷àñòî âîçíèêàþùèõ çàäà÷, óñïåøíî ðåøàåìûõ ñ ïîìîùüþ ParCon.
1. Ââåäåíèå
Âû÷èñëèòåëüíûå êëàñòåðû ÿâëÿþòñÿ ìîùíûì èíñòðóìåíòîì äëÿ ïðîâåäåíèÿ ñëîæíûõ ðàñ÷¼òîâ, èñïîëüçîâàíèå êîòîðîãî ñîïðÿæåíî ñ ðÿäîì òðóäíîñòåé êàê äëÿ àäìèíèñòðàòîðîâ, òàê è äëÿ ñàìèõ ïîëüçîâàòåëåé. Âçÿòü õîòÿ áû ïîääåðæêó ðàáîòîñïîñîáíîñòè è ìîíèòîðèíã òåêóùåãî ñîñòîÿíèÿ áîëüøîãî êîëè÷åñòâà ïîñòîÿííî âêëþ÷åííîãî îáîðóäîâàíèÿ êðàéíå íåïðîñòàÿ çàäà÷à.  äàííîé ðàáîòå ìû îáñóäèì, ÷òî ìîæåò áûòü íåîáõîäèìî äëÿ îáåñïå÷åíèÿ ýåêòèâíîé ðàáîòû è ïîëüçîâàòåëåé, è èõ çàäà÷ íà êëàñòåðå. Ïîëüçîâàòåëüñêàÿ ïðîãðàììà ìîæåò îáëàäàòü ñïåöèè÷åñêèìè ñâîéñòâàìè, êîòîðûå çíà÷èòåëüíî ñíèçÿò å¼ ïðîèçâîäèòåëüíîñòü íà êëàñòåðå, ïðè÷åì êîìïèëÿòîð, áèáëèîòåêè âðÿä ëè ïîìîãóò èñïðàâèòü ñèòóàöèþ. ×òî ÿâëÿåòñÿ ïðè÷èíîé çàìåäëåíèÿ íåñîîòâåòñòâèå ðàçìåðà îïåðàòèâíîé ïàìÿòè óçëà äàííûì çàäà÷è, íåîáõîäèìîñòü ïîñòîÿííî ïîëüçîâàòüñÿ ìåäëåííûìè ñåòåâûìè äèñêàìè, íåñîãëàñîâàííîñòü ðàáîòû ïàðàëëåëüíûõ ïðîöåññîâ èëè ÷òî-òî åù¼? Óìåíèå íàéòè îòâåòû íà ïîäîáíûå âîïðîñû ìîæåò çíà÷èòåëüíî îáëåã÷èòü ðàáîòó ïîëüçîâàòåëÿ. ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
132
Ñ. À. Æóìàòèé
Àäìèíèñòðàòîðó êëàñòåðà òàêàÿ èíîðìàöèÿ òîæå áóäåò î÷åíü ïîëåçíà, òàê êàê îí äîëæåí èìåòü èíîðìàöèþ î õàðàêòåðå èñïîëüçîâàíèÿ êëàñòåðà.  äåòàëè ðàáîòû êàæäîé çàäà÷è åìó âíèêàòü, ìîæåò, è íå âñåãäà íàäî, íî èìåòü ñâîäíóþ ñòàòèñòèêó ïî çàäà÷àì, ïîëüçîâàòåëÿì è èñïîëüçîâàíèþ ðåñóðñîâ êëàñòåðà ïðîñòî íåîáõîäèìî. Ñóùåñòâóþò ðàçëè÷íûå ñðåäñòâà, ïîçâîëÿþùèå ïîìî÷ü â ðåøåíèè ïåðå÷èñëåííûõ âûøå âîïðîñîâ. Ê ïðèìåðó, ñèñòåìà Ganglia ïîçâîëÿåò ñîáèðàòü äàííûå î ðàáîòå ïðîöåññîðîâ, èñïîëüçîâàíèè ïàìÿòè è äðóãèå õàðàêòåðèñòèêè ðàáîòû âû÷èñëèòåëüíûõ óçëîâ. Îäíàêî, ïðèâÿçàòü ýòè äàííûå ê çàäà÷àì ïîëüçîâàòåëåé èëè ïîëó÷èòü êîìïëåêñíûå õàðàêòåðèñòèêè î ðàáîòå êëàñòåðà íåâîçìîæíî. Äðóãèå ïðîãðàììíûå êîìïëåêñû, íàñêîëüêî íàì èçâåñòíî, òàêæå ðåøàþò ëèøü î÷åíü óçêèå çàäà÷è è íå ñïîñîáíû ñëóæèòü ñåðü¼çíûì ïîäñïîðüåì íè ïîëüçîâàòåëþ, íè àäìèíèñòðàòîðó êëàñòåðà.
2. Ïîñòàíîâêà çàäà÷è
Òðåáóåòñÿ ñîçäàòü ïðîãðàììíóþ ñðåäó äëÿ ïîääåðæêè âûïîëíåíèÿ ïàðàëëåëüíûõ ïðèëîæåíèé íà êëàñòåðíûõ óñòàíîâêàõ, ïîçâîëÿþùóþ: óïðàâëÿòü ïðîõîæäåíèåì çàäà÷, àâòîìàòè÷åñêè ðàñïðåäåëÿòü ñâîáîäíûå ïðîöåññîðû ìåæäó çàäà÷àìè, ãèáêî óïðàâëÿòü ïîëèòèêîé èñïîëüçîâàíèÿ êëàñòåðà ðàçëè÷íûìè ïîëüçîâàòåëÿìè, ïðåäîñòàâëÿòü äåòàëüíóþ èíîðìàöèþ î ðàáîòå çàäà÷ è ïîëüçîâàòåëåé íà êëàñòåðå, ïðåäîñòàâëÿòü äåòàëüíóþ ñòàòèñòèêó èñïîëüçîâàíèÿ ðåñóðñîâ êëàñòåðà çàäà÷åé êàê âî âðåìÿ ðàáîòû çàäà÷è, òàê è ïîñëå å¼ çàâåðøåíèÿ, ïðåäîñòàâëÿòü ñóììàðíûå îò÷¼òû î ðàáîòå çàäà÷, ïîëüçîâàòåëåé, èñïîëüçîâàíèè ðåñóðñîâ êëàñòåðà,
Îáñëóæèâàíèå ñîâðåìåííûõ êëàñòåðîâ
133
îêàçûâàòü ìèíèìàëüíîå âëèÿíèå íà ðàáîòó ïîëüçîâàòåëüñêèõ çàäà÷.
3. Àðõèòåêòóðà ïðåäëîæåííîãî ðåøåíèÿ
Äëÿ ðåøåíèÿ ïîñòàâëåííîé çàäà÷è áûë ïðåäëîæåí ïîäõîä, ïðåäóñìàòðèâàþùèé ñîçäàíèå äâóõ ïðîãðàììíûõ êîìïîíåíòîâ, ñïîñîáíûõ ðàáîòàòü êàê íåçàâèñèìî äðóã îò äðóãà, òàê è â ðåæèìå âçàèìîäåéñòâèÿ. Îáà êîìïîíåíòà â êîìïëåêñå ïðåäñòàâëÿþò ñîáîé èíòåãðèðîâàííóþ ñðåäó, ïîëó÷èâøóþ íàçâàíèå ParCon. Ïåðâûé êîìïîíåíò ýòî ñèñòåìà óïðàâëåíèÿ çàäàíèÿìè Cleo. Îíà áûëà ðàçðàáîòàíà â ÍÈÂÖ Ì Ó ñïåöèàëüíî äëÿ óïðàâëåíèÿ èñïîëüçîâàíèåì ðåñóðñîâ âû÷èñëèòåëüíûõ êëàñòåðîâ. Ñèñòåìà îðèåíòèðîâàíà íà ðàáîòó ñ ïàðàëëåëüíûìè ïðèëîæåíèÿìè è ïîääåðæèâàåò ìíîãèå ïàðàëëåëüíûå ñðåäû. Ïîä å¼ óïðàâëåíèåì â òå÷åíèè 5 ëåò óñïåøíî ðàáîòàëè 4 ðàçíûõ êëàñòåðà ñóïåðêîìïüþòåðíîãî êîìïëåêñà ÍÈÂÖ Ì Ó, îáúåäèíÿâøèå â îáùåé ñëîæíîñòè 153 âû÷èñëèòåëüíûõ óçëà (306 ïðîöåññîðîâ). Êëþ÷åâûå îñîáåííîñòè Cleo: èçíà÷àëüíàÿ îðèåíòèðîâàííîñòü íà âû÷èñëèòåëüíûå êëàñòåðû, ãèáêîñòü ïîëèòèê óïðàâëåíèÿ ðåñóðñàìè, ïîääåðæêà áîëüøîãî ÷èñëà ïàðàëëåëüíûõ ñðåä, ðàñøèðÿåìîñòü çà ñ÷¼ò äîïîëíèòåëüíûõ ïëàíèðîâùèêîâ è ìîäóëåé. Äëÿ ðàáîòû ñ Cleo ïîëüçîâàòåëþ ïðàêòè÷åñêè íå íóæíî äîïîëíèòåëüíîé ïîäãîòîâêè, ïîñêîëüêó ïðîãðàììà mpirun àâòîìàòè÷åñêè ñòàâèò çàäà÷ó â î÷åðåäü. Äëÿ ïðîñìîòðà î÷åðåäè ìîæíî èñïîëüçîâàòü web-èíòåðåéñ èëè êîíñîëüíûå êîìàíäû. Îïèñàíèå ñèñòåìû Cleo äîñòóïíî ïî àäðåñó â èíòåðíåòå: http://par on.parallel.ru/ leo.html. Âòîðîé êîìïîíåíò ñðåäû ParCon ýòî êîìïëåêñ ìîíèòîðèíãà AntMon. Èìåííî îí ïîçâîëÿåò ñîáèðàòü äåòàëüíóþ èíîðìàöèþ î
134
Ñ. À. Æóìàòèé
ñîñòîÿíèè âû÷èñëèòåëüíûõ óçëîâ è ïåðåäàòü ýòó èíîðìàöèþ àäìèíèñòðàòîðó. AntMon èçíà÷àëüíî ðàçðàáàòûâàëñÿ òàêèì îáðàçîì, ÷òîáû ïðåäîñòàâèòü âîçìîæíîñòü ñáîðà ñòàòèñòèêè ñ áîëüøîãî ÷èñëà óçëîâ êëàñòåðà ñ âûñîêîé ñòåïåíüþ äåòàëèçàöèè è íèçêîé íàãðóçêîé íà óçëû. Ýòîò ïðîãðàììíûé ïàêåò ñïðîåêòèðîâàí ïî ìîäóëüíîìó ïðèíöèïó: â ëþáîé ìîìåíò ê íåìó ìîæíî äîáàâèòü ìîäóëü äëÿ ñáîðà òîé èíîðìàöèè, êîòîðàÿ ñóùåñòâåííà äëÿ äàííîãî êëàñòåðà. Ñàì AntMon ñïîñîáåí íå òîëüêî ñîáèðàòü äàííûå, íî è îïðåäåëÿòü êðèòè÷åñêèå ñèòóàöèè íà âû÷èñëèòåëüíûõ óçëàõ (åñëè ñîáðàííàÿ èíîðìàöèÿ ïîçâîëÿåò ýòî ñäåëàòü), îïîâåùàòü îá ýòîì àäìèíèñòðàòîðà è/èëè âûïîëíÿòü íàáîð ýêñòðåííûõ êîìàíä. Îäíàêî äëÿ òîãî, ÷òîáû äàòü âîçìîæíîñòü ïðîâåñòè ñîäåðæàòåëüíûé àíàëèç ðàáîòû êëàñòåðà èëè âû÷èñëèòåëüíûõ ïðîãðàìì, òðåáóåòñÿ èíîå ñðåäñòâî. Òàêèì ñðåäñòâîì ÿâëÿåòñÿ àíàëèòè÷åñêèé ìîäóëü ParCon, êîòîðûé ñîõðàíÿåò äàííûå î çàäà÷àõ è ïîëó÷åííóþ ñ óçëîâ èíîðìàöèþ â áàçå äàííûõ, ïðåäîñòàâëÿÿ âîçìîæíîñòü äëÿ èññëåäîâàíèÿ äèíàìè÷åñêèõ õàðàêòåðèñòèê çàäà÷ è óçëîâ. Íàïðèìåð, ñ åãî ïîìîùüþ ìîæíî ïîëó÷èòü îòâåò íà òàêèå âîïðîñû êàê ¾êàêîâà áûëà ñðåäíÿÿ çàãðóçêà ïðîöåññîðà âî âðåìÿ ðàáîòû çàäà÷è?¿ èëè ¾íàñêîëüêî ñîãëàñîâàíà ðàáîòà âû÷èñëèòåëüíûõ óçëîâ íà äàííîé çàäà÷å?¿. Îïèñàíèå êîìïëåêñà ParCon ïðåäñòàâëåíî íà ñòðàíèöå â èíòåðíåòå: http://par on.parallel.ru.
4. Ñèñòåìà óïðàâëåíèÿ çàäàíèÿìè Cleo ïðåäîñòàâëÿåò ïîëüçîâàòåëÿì ïðîçðà÷íóþ ñõåìó çàïóñêà ïðîãðàìì, äëÿ ÷åãî èñïîëüçóåòñÿ ïðèâû÷íûé ñêðèïò mpirun.  ïîñòàâêó ñèñòåìû âõîäÿò ïðîãðàììû äëÿ ïðîñìîòðà ñîñòîÿíèÿ î÷åðåäè, óäàëåíèÿ çàäà÷ è èçìåíåíèÿ ïðèîðèòåòà çàäà÷. àçðàáîòàí web-èíòåðåéñ, ïîçâîëÿþùèé ïðîñìàòðèâàòü ñîñòîÿíèå óçëîâ êëàñòåðà, çàäà÷ è î÷åðåäåé. Àäìèíèñòðàòîðó êëàñòåðà ïðåäîñòàâëåíû âîçìîæíîñòè ãèáêîãî óïðàâëåíèÿ ïîëèòèêîé çàïóñêà ïðîãðàìì ïîëüçîâàòåëåé. Ñðåäè òàêèõ âîçìîæíîñòåé ñòîèò îòìåòèòü:
Îáñëóæèâàíèå ñîâðåìåííûõ êëàñòåðîâ
135
âûäåëåíèå ïðîöåññîðíîãî âðåìåíè äëÿ îñîáûõ çàäà÷, âðåìåííàÿ áëîêèðîâêà óêàçàííûõ çàäà÷, îãðàíè÷åíèå êîëè÷åñòâà îäíîâðåìåííî çàíÿòûõ ïîëüçîâàòåëåì ïðîöåññîðîâ, îãðàíè÷åíèå êîëè÷åñòâà çàïóùåííûõ ïîëüçîâàòåëåì çàäà÷, îãðàíè÷åíèå êîëè÷åñòâà çàäà÷ ïîëüçîâàòåëÿ â î÷åðåäè, óïðàâëåíèå ïðèîðèòåòàìè ïîëüçîâàòåëåé. Ñèñòåìà àâòîìàòè÷åñêè îòñëåæèâàåò ñîñòîÿíèå âû÷èñëèòåëüíûõ óçëîâ êëàñòåðà è áëîêèðóåò èõ â ñëó÷àå íåïîëàäîê. Ñîñòîÿíèå çàäà÷ íà óçëàõ òàêæå êîíòðîëèðóåòñÿ, è â ñëó÷àå íåêîððåêòíîãî çàâåðøåíèÿ çàäàíèÿ åãî ïðîöåññû íà óçëàõ ïðèíóäèòåëüíî çàâåðøàþòñÿ.  ñèñòåìó âñòðîåíà âîçìîæíîñòü àâòîìàòè÷åñêîãî îïðåäåëåíèÿ ðàáîòîñïîñîáíîñòè óçëîâ, è â ñëó÷àå îñòàíîâêè ðàáîòû âû÷èñëèòåëüíîãî óçëà ñèñòåìà àâòîìàòè÷åñêè áëîêèðóåò åãî è ñíèìàåò âñå çàäà÷è, ðàáîòàâøèå íà í¼ì. Àäìèíèñòðàòîð ìîæåò â ëþáîå âðåìÿ áëîêèðîâàòü è ðàçáëîêèðîâàòü çàäà÷è è âû÷èñëèòåëüíûå óçëû. åàëèçîâàíà âîçìîæíîñòü ¾îòëîæåííîé¿ áëîêèðîâêè óçëîâ, êîãäà áëîêèðîâêà âñòóïàåò â ñèëó òîëüêî ïîñëå îêîí÷àíèÿ ðàáîòû çàäà÷, ðàñïðåäåë¼ííûõ íà ýòè óçëû.  ñèñòåìå ïîääåðæèâàåòñÿ èåðàðõè÷åñêàÿ îðãàíèçàöèÿ î÷åðåäåé, ÷òî ïîçâîëÿåò ñîçäàâàòü íåñêîëüêî ðàçäåëîâ â ðàìêàõ îäíîãî êëàñòåðà, ñîõðàíÿÿ âîçìîæíîñòü èñïîëüçîâàòü åãî ïîëíîñòüþ, èëè, íàîáîðîò, îáúåäèíÿòü íåñêîëüêî êëàñòåðîâ ïîä åäèíîé ñèñòåìîé óïðàâëåíèÿ. Cleo ñïðîåêòèðîâàíà ðàñøèðÿåìîé çà ñ÷¼ò äîïîëíèòåëüíûõ ïëàíèðîâùèêîâ è âíåøíèõ ìîäóëåé, âûïîëíÿþùèõñÿ ïî çàäàííûì óñëîâèÿì.  ñëó÷àå, åñëè ìîäóëü èëè ïëàíèðîâùèê ñîäåðæèò îøèáêó è âûçûâàåò ñáîé â ðàáîòå, òî Cleo ïðîñòî áëîêèðóåò åãî è ïðîäîëæàåò ðàáîòàòü áåç äàííîãî ìîäóëÿ èëè ñî âñòðîåííûì ñòàíäàðòíûì ïëàíèðîâùèêîì. Íåìàëîâàæíîé îñîáåííîñòüþ Cleo ÿâëÿåòñÿ ïîääåðæêà èåðàðõèè î÷åðåäåé â ðàìêàõ îäíîãî êëàñòåðà. Îíà ïîçâîëÿåò èñïîëüçîâàòü
136
Ñ. À. Æóìàòèé
÷àñòü ïðîöåññîðîâ äëÿ âûäåëåííûõ çàäà÷ (íàïðèìåð, äëÿ îòëàäêè). Ïðè ýòîì îñòà¼òñÿ âîçìîæíîñòü èñïîëüçîâàíèÿ âñåõ ïðîöåññîðîâ, êàê âûäåëåííûõ, òàê è îñòàëüíûõ, îäíîâðåìåííî äëÿ îäíîé çàäà÷è. Äëÿ òàêîãî èñïîëüçîâàíèÿ íå òðåáóåòñÿ ïåðåêîíèãóðàöèÿ èëè ïðèîñòàíîâêà ñèñòåìû î÷åðåäåé.
5. Ñèñòåìà ìîíèòîðèíãà
Ñèñòåìà AntMon áûëà ðàçðàáîòàíà äëÿ ñáîðà äàííûõ ñ áîëüøîãî ÷èñëà óçëîâ è ðåàãèðîâàíèÿ íà àíîìàëüíûå çíà÷åíèÿ ïîëó÷åííûõ äàííûõ. Îíà ñïðîåêòèðîâàíà òàêèì îáðàçîì, ÷òîáû ñáîð íåîáõîäèìûõ ñâåäåíèé ïðîâîäèëñÿ ñ ìèíèìàëüíîé íàãðóçêîé íà ñåòü è ïðîöåññîðû, à ñáîé ãîëîâíîãî ñåðâåðà íå ïðèâîäèë áû ê îòêàçó âñåé ñèñòåìû. Ñèñòåìà èìååò ðàñïðåäåë¼ííóþ ñòðóêòóðó. Íà óçëàõ, ãäå íåîáõîäèìî ñîáèðàòü äàííûå ìîíèòîðèíãà, ðàáîòàþò àãåíòû, à àíàëèç ñîáðàííîé èíîðìàöèè âûïîëíÿþò ãîëîâíûå ñåðâåðû. Èíîðìàöèÿ äëÿ ìîíèòîðèíãà ñîáèðàåòñÿ àãåíòàìè ïðè ïîìîùè ïîäêëþ÷àåìûõ ìîäóëåé. Ìîäóëè çàïóñêàþòñÿ îäèí ðàç ïðè ïîëó÷åíèè ïåðâîãî çàïðîñà íà èíîðìàöèþ îò íèõ. Ïîñëå çàïóñêà ìîäóëè îñòàþòñÿ â ðàáî÷åì ñîñòîÿíèè è àêòèâèðóþòñÿ ïðè î÷åðåäíîì çàïðîñå. Ñàìè çàïðîñû îáñëóæèâàþòñÿ àãåíòàìè ñèñòåìû, îíè æå îòâå÷àþò çà çàïóñê ìîäóëåé. Íà êàæäîì óçëå, ãäå íåîáõîäèìî ñîáèðàòü èíîðìàöèþ, çàïóñêàåòñÿ îäèí àãåíò. Ìîäóëüíûé ïðèíöèï ïîñòðîåíèÿ AntMon ïîçâîëÿåò îòñëåæèâàòü íå òîëüêî òå ïàðàìåòðû, êîòîðûå ïðåäóñìîòðåíû â ñèñòåìå èçíà÷àëüíî, íî è ëþáûå äðóãèå ïàðàìåòðû íåîáõîäèìûå ïîëüçîâàòåëþ, äëÿ ÷åãî äîñòàòî÷íî íàïèñàòü ìîäóëü, êîòîðûé áóäåò ïîëó÷àòü ýòè äàííûå è ïåðåäàâàòü â ñèñòåìó. Èíòåðåéñ ñèñòåìû ñ ìîäóëÿìè ïðîñò è ïîëíîñòüþ äîêóìåíòèðîâàí. Ìîäóëü ìîæåò áûòü íàïèñàí ïðàêòè÷åñêè íà ëþáîì ÿçûêå ïðîãðàììèðîâàíèÿ è äëÿ åãî íàïèñàíèÿ íå òðåáóåòñÿ âûñîêîé êâàëèèêàöèè ïðîãðàììèñòà. Äëÿ ïîâûøåíèÿ íàäåæíîñòè ñèñòåìû â àðõèòåêòóðå AntMon ïðåäóñìîòðåíî èñïîëüçîâàíèå íåñêîëüêèõ ãîëîâíûõ ñåðâåðîâ.  øòàòíîì ðåæèìå îíè ðàáîòàþò íåçàâèñèìî äðóã îò äðóãà è ìîãóò ðàñïðåäåëÿòü ìåæäó ñîáîé îáùóþ íàãðóçêó: êàæäûé ñåðâåð áóäåò
Îáñëóæèâàíèå ñîâðåìåííûõ êëàñòåðîâ
137
îáñëóæèâàòü ñâîé íàáîð àãåíòîâ èëè îòäåëüíûõ ïàðàìåòðîâ ñîñòàâíûõ ÷àñòåé êëàñòåðà. Äëÿ êàæäîãî ïàðàìåòðà óêàçûâàåòñÿ ñïèñîê ãîëîâíûõ ñåðâåðîâ, êîòîðûå ìîãóò åãî îáñëóæèâàòü. Ñíà÷àëà ïàðàìåòð îáñëóæèâàåòñÿ ïåðâûì â ñïèñêå ñåðâåðîì. Åñëè ñâÿçü ñ ýòèì ñåðâåðîì îáðûâàåòñÿ, òî ïàðàìåòð ïåðåõîäèò ïîä îïåêó ñëåäóþùåãî â ñïèñêå ñåðâåðà.  ñëó÷àå ñáîÿ îäíîãî èç ãîëîâíûõ ñåðâåðîâ, îñòàëüíûå ñåðâåðû ïåðåðàñïðåäåëÿþò îòâåòñòâåííîñòü çà ïðèïèñàííûå åìó ïàðàìåòðû è ïðîèçâîäÿò ðåàãèðîâàíèå íà ñáîé, çàïóñêàÿ ïîñëåäîâàòåëüíîñòü ïðåäîïðåäåëåííûõ êîìàíä. Êîãäà ñáîéíûé ãîëîâíîé ñåðâåð âîçâðàùàåòñÿ â ðàáî÷åå ñîñòîÿíèå, îñòàëüíûå ñåðâåðû ïîâòîðíî ïåðåðàñïðåäåëÿþò îòâåòñòâåííîñòü çà ïàðàìåòðû, à òàêæå âûïîëíÿþò ñîîòâåòñòâóþùèé íàáîð êîìàíä, íàïðèìåð óâåäîìëåíèå àäìèíèñòðàòîðó âû÷èñëèòåëüíîé ñèñòåìû.
6. Àíàëèòè÷åñêèé ìîäóëü
Ìîäóëü âûïîëíÿåò çàäà÷ó îáúåäèíåíèÿ äàííûõ îò Cleo è AntMon â åäèíóþ áàçó äàííûõ è ïðåäîñòàâëåíèÿ àíàëèòè÷åñêèõ äàííûõ ïîëüçîâàòåëþ è àäìèíèñòðàòîðó. Ñ åãî ïîìîùüþ îñóùåñòâëÿåòñÿ àíàëèç ñîáðàííûõ äàííûõ ñ ïðèâÿçêîé ê êîíêðåòíûì çàäà÷àì íà êëàñòåðå. Ñîõðàíåíèå èíîðìàöèè â áàçå äàííûõ ïîçâîëÿåò ïðîâîäèòü àíàëèç ðàçëè÷íîé ñòåïåíè ñëîæíîñòè. Íàïðèìåð, óçíàòü ñðåäíèé ïðîöåíò çàãðóçêè ïðîöåññîðà íà çàäà÷àõ îïðåäåë¼ííîãî ïîëüçîâàòåëÿ çà ïîñëåäíèå íåñêîëüêî ìåñÿöåâ.  êà÷åñòâå ïðèìåðà ïðèâåä¼ì íåáîëüøîå èññëåäîâàíèå ðàáîòû ïàðàëëåëüíûõ çàäà÷ íà êëàñòåðå Ant ÍÈÂÖ Ì Ó. Íà ðèñ. 1, 2, 3 è 4 ïðåäñòàâëåí ïðèìåð àíàëèçà âðåìåíè ñ÷¼òà çàäà÷ çà ìåñÿö. Ïî âåðòèêàëè îòëîæåíî ÷èñëî çàäà÷, ïî ãîðèçîíòàëè âðåìÿ ñ÷¼òà. Âèäíî, ÷òî áîëüøîå ÷èñëî çàäà÷ çàâåðøàåòñÿ, íå îòðàáîòàâ äàæå ñåêóíäû. Ýòî ãîâîðèò î òîì, ÷òî ïðîâîäèëîñü áîëüøîå ÷èñëî çàïóñêîâ íåîòëàæåííûõ ïðîãðàìì. Ñ ïîìîùüþ àíàëîãè÷íîãî àíàëèçà ñ ðàçáèâêîé ïî ïîëüçîâàòåëÿì óäàëîñü áûñòðî âûÿñíèòü ïîëüçîâàòåëÿ, ó êîòîðîãî ðåãóëÿðíî âîçíèêàëè òàêèå ïðîáëåìû. ßðêèå ¾ïèêè¿ â 30 è 6000 ìèíóò ñîîòâåòñòâóþò ëèìèòàì âðåìåíè ðàáîòû çàäà÷ â î÷åðåäÿõ. ¾Ïèê¿ â 4300 ìèíóò ñîîòâåòñòâóåò ëèìèòó âðåìåíè, óñòàíîâëåííîìó îäíèì èç ïîëüçîâàòåëåé êëàñòåðà.
138
Ñ. À. Æóìàòèé
èñ. 1. àñïðåäåëåíèå âðåì¼í ñ÷¼òà çàäà÷ ìåíåå 5 ìèíóò
èñ. 2. àñïðåäåëåíèå âðåì¼í ñ÷¼òà çàäà÷ ìåíåå ÷àñà Äðóãîé èíòåðåñíûé ïðèìåð àíàëèçà êîíêðåòíîé çàäà÷è ìîæíî óâèäåòü íà ðèñ 5. Çäåñü ïðèâåäåíû ãðàèêè ìèíèìàëüíîé, ìàêñèìàëüíîé è óñðåäí¼ííîé äîëè ïðîñòîÿ âñåõ ïðîöåññîðîâ, çàíÿòûõ çàäà÷åé. Âèäíî, ÷òî â íà÷àëüíûé ìîìåíò âðåìåíè ÷àñòü ïðîöåññîðîâ ïðîñòàèâàåò íà 70%. ×åðåç êàêîå-òî âðåìÿ äîëÿ ïðîñòîÿ ïðîöåññîðîâ ñâîäèòñÿ ê íóëþ.
Îáñëóæèâàíèå ñîâðåìåííûõ êëàñòåðîâ
139
èñ. 3. àñïðåäåëåíèå âðåì¼í ñ÷¼òà çàäà÷ äî äâóõ äíåé
èñ. 4. Àíàëèç âðåìåíè ñ÷¼òà çàäà÷ Åñëè ñîïîñòàâèòü ýòî ãðàèê ñ ãðàèêîì ñâîáîäíîé ïàìÿòè (ðèñ. 6), òî ñòàíîâèòñÿ âèäíà èõ êîððåëÿöèÿ. Îáóñëîâëåíà îíà òåì, ÷òî íà íåêîòîðûõ óçëîâ ïîä äàííûå çàäà÷è íå õâàòèëî ïàìÿòè è íà÷àëñÿ ïðîöåññ âûòåñíåíèÿ ñòðàíèö çàäà÷è íà äèñê.  ìîìåíò, êîãäà çàäà÷å âûäåëÿåòñÿ äîñòàòî÷íîå ìåñòî â ïàìÿòè è ïðîèñõîäèò ¾îáíóëåíèå¿ äîëè ïðîñòîÿ ïðîöåññîðà.
140
Ñ. À. Æóìàòèé
èñ. 5. Äîëÿ ïðîñòîÿ ïðîöåññîðà
èñ. 6. Óðîâåíü çàãðóçêè ïàìÿòè
7. Çàêëþ÷åíèå
Îáñëóæèâàíèå âû÷èñëèòåëüíûõ êëàñòåðîâ ýòî áîëüøàÿ è êîìïëåêñíàÿ çàäà÷à. Èñêëþ÷èòåëüíîå çíà÷åíèå â å¼ ðåøåíèè èìååò èíîðìàöèÿ î êëàñòåðå, ïîëüçîâàòåëÿõ è èõ çàäà÷àõ è èíñòðóìåíòàëüíûå ñðåäñòâà äëÿ âûïîëíåíèÿ òèïîâûõ äåéñòâèé. ×åì áîëüøå àäìèíèñòðàòîð êëàñòåðà çíàåò î ðàáîòå óñòàíîâêè, òåì ïðîäóêòèâíåå áó-
Îáñëóæèâàíèå ñîâðåìåííûõ êëàñòåðîâ
141
äåò å¼ ðàáîòà. ×åì ïîëíåå ïðåäñòàâëåíèå ïîëüçîâàòåëÿ î õàðàêòåðå ðàáîòû åãî ïðîãðàììû íà êëàñòåðå, òåì áîëüøå ó íåãî âîçìîæíîñòåé ïîâûñèòü ýåêòèâíîñòü ïðîãðàììû. ParCon ñïîñîáåí ïðåäîñòàâèòü ïîëüçîâàòåëþ è àäìèíèñòðàòîðó ñðåäñòâà äëÿ ïîëó÷åíèÿ èíîðìàöèè î ðàáîòå êàê êëàñòåðà â öåëîì, òàê è îòäåëüíûõ çàäà÷àõ, ïîëüçîâàòåëÿõ, èñïîëüçîâàíèè ðåñóðñîâ. ParCon ïðîäîëæàåò ðàçâèâàòüñÿ.  ïåðâîî÷åðåäíûå ïëàíû åãî ðàçâèòèÿ âõîäèò èññëåäîâàíèå ìàñøòàáèðóåìîñòè è ðàñøèðåíèå àíàëèòè÷åñêèõ âîçìîæíîñòåé.
Ñïèñîê ëèòåðàòóðû
[1℄ Æóìàòèé Ñ.À. Ñèñòåìà ParCon àññèñòåíò â ðàáîòå ïîëüçîâàòåëÿ è àäìèíèñòðàòîðà âû÷èñëèòåëüíîãî êëàñòåðà // Ìåòîäû è ñðåäñòâà îáðàáîòêè èíîðìàöèè. Òðóäû Âñåðîññèéñêîé íàó÷íîé êîíåðåíöèè. 2005. Èçä-âî îòä. àêóëüòåòà âû÷èñëèòåëüíîé ìàòåìàòèêè è êèáåðíåòèêè Ì Ó èì. Ì.Â.Ëîìîíîâîâà. Ñ. 252-255. [2℄ Âîåâîäèí Âë.Â., Æóìàòèé Ñ.À. Âû÷èñëèòåëüíîå äåëî è êëàñòåðíûå ñèñòåìû. Ì.: Èçä-âî Ì Ó, 2007. 150 ñ. [3℄ Æóìàòèé Ñ.À., Êíÿçåâ À.Ñ. Èññëåäîâàíèå õàðàêòåðèñòèê ïîòîêà çàäà÷ íà âû÷èñëèòåëüíîì êëàñòåðå // Íàó÷íûé ñåðâèñ â ñåòè Èíòåðíåò: ìíîãîÿäåðíûé ìèð. 15 ëåò ÔÔÈ: Òðóäû Âñåðîññèéñêîé íàó÷íîé êîíåðåíöèè. 2007. Ì.: Èçä-âî Ì Ó. Ñ. 139.
Îöåíêà çàãðóæåííîñòè êîìïüþòåðà â ðàçëè÷íûõ UNIX-ñèñòåìàõ $
Ñ. À. Æóìàòèé
⋆
, Ñ. È. Ñîáîëåâ
⋆
Ñòàòüÿ ïîñâÿùåíà èññëåäîâàíèþ ìåòîäîâ îïðåäåëåíèÿ çàãðóæåííîñòè êîìïüþòåðà, ðàáîòàþùåãî ïîä óïðàâëåíèåì ÎÑ UNIX/Linux. Äàííîå èññëåäîâàíèå áûëî ïðîâåäåíî ïðè ðåàëèçàöèè ìîäóëÿ ñèñòåìû ìåòàêîìïüþòèíãà, îòâå÷àþùåãî çà çàïóñê ðàñïðåäåëåííûõ çàäà÷ â ìîìåíòû ïðîñòîÿ äîñòóïíûõ êîìïüþòåðîâ.  ñòàòüå àíàëèçèðóþòñÿ ðàçëè÷íûå ñïîñîáû îïðåäåëåíèÿ çàãðóæåííîñòè âû÷èñëèòåëüíûõ ðåñóðñîâ, îáñóæäàþòñÿ èõ äîñòîèíñòâà è íåäîñòàòêè. Îïèñûâàåòñÿ ìåòîä, âûáðàííûé ïî ðåçóëüòàòàì àíàëèçà. Ìíîãèå â äåòñòâå èãðàëè â æìóðêè. Ñ çàâÿçàííûìè ãëàçàìè íàäî áûëî ïîéìàòü êîãî-íèáóäü èç èãðàþùèõ è îïðåäåëèòü, êòî ýòî. Äëÿ îïðåäåëåíèÿ ïðèõîäèëîñü ïîëàãàòüñÿ òîëüêî íà êîñâåííûå ïðèçíàêè ðîñò, ýëåìåíòû îäåæäû... Êàê ëåãêî áûëî îøèáèòüñÿ! Î÷åíü ïîõîæàÿ ñèòóàöèÿ âîçíèêëà ïðè ñîçäàíèè ñèñòåìû îðãàíèçàöèè ìåòàêîìïüþòåðíûõ ðàñ÷¼òîâ. Ñèñòåìà äîëæíà îòñëåæèâàòü ñîñòîÿíèå ðàñïðåäåë¼ííîé âû÷èñëèòåëüíîé ñðåäû, ñîñòîÿùåé èç ñàìûõ ðàçíûõ êîìïüþòåðîâ, ðàáîòàþùèõ â ñàìûõ ðàçíûõ ðåæèìàõ, ïðèíàäëåæàùèì ñàìûì ðàçíûì ëþäÿì è îðãàíèçàöèÿì. Íà ñâîáîäíûõ êîìïüþòåðàõ ìîæíî çàïóñêàòü ðàñ÷¼òû. Åñëè íà êîìïüþòåðå íà÷èíàåò ðàáîòàòü ïðèëîæåíèå õîçÿåâ, ðàñ÷¼ò íåîáõîäèìî ïðåêðàòèòü, ÷òîáû íå ìåøàòü øòàòíîé ðàáîòå êîìïüþòåðà. $ àáîòà âûïîëíåíà ïðè ïîääåðæêå ãðàíòà ÔÔÈ 05-07-90206
⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
144
Ñ. À. Æóìàòèé, Ñ. È. Ñîáîëåâ
Êàê êîððåêòíî îïðåäåëèòü ñòåïåíü çàãðóçêè êîìïüþòåðà ïðè òîì, ÷òî íèêàêèõ ïðèâèëåãèðîâàííûõ ïðàâ íà êîìïüþòåðàõ ó íàñ íåò? Çàäà÷à è â ñàìîì äåëå íàïîìèíàåò èãðó â æìóðêè, íî â îòëè÷èè îò èãðû, îøèáêà òóò ñòîèò äîðîæå. Èç äîñòóïíûõ èíñòðóìåíòîâ òîëüêî òå ñèñòåìíûå ïðîãðàììû, êîòîðûå óñòàíîâëåíû íà öåëåâîì êîìïüþòåðå. Îñíîâíîé ïëàòîðìîé áûëî èçáðàíî ñåìåéñòâî ÎÑ Linux, êàê íàèáîëåå ðàñïðîñòðàí¼ííîå â âû÷èñëèòåëüíîé ïðàêòèêå, äëÿ êîòîðîé ìû ïîïðîáóåì íàéòè ìåòîäû ðåøåíèÿ çàäà÷è ïî îïðåäåëåíèþ àêòà çàãðóæåííîñòè êîìïüþòåðà. Ïîëüçîâàòåëü Windows ìîã áû ñêàçàòü: ¾åøåíèå ýëåìåíòàðíî! Åñòü æå õðàíèòåëü ýêðàíà, êîòîðûé çàïóñêàåòñÿ âî âðåìÿ ïðîñòîÿ êîìïüþòåðà âîò åãî è íàäî èñïîëüçîâàòü. Ñèñòåìà ñàìà è çàïóñòèò, è çàâåðøèò åãî êîãäà íàäî. Êñòàòè, õðàíèòåëè ýêðàíà åñòü íå òîëüêî äëÿ Windows...¿. Âåðíî, íî åñòü íþàíñû. Õðàíèòåëü ýêðàíà çàïóñêàåòñÿ òîëüêî âî âðåìÿ áåçäåéñòâèÿ ïîëüçîâàòåëÿ, íî íå îáÿçàòåëüíî áåçäåéñòâèÿ ïðîöåññîðà. Ïðîöåññîð ìîæåò áûòü çàíÿò, íàïðèìåð, ïàêåòíîé îáðàáîòêîé îòîãðàèé â Photoshop èëè ïðåîáðàçîâàíèåì âèäåîçàïèñè èç îäíîãî îðìàòà â äðóãîé. À óæ âû÷èñëèòåëüíûé ñåðâåð âîîáùå ìîæåò íå èìåòü íè ìûøè, íè êëàâèàòóðû è íèêàêèõ õðàíèòåëåé ýêðàíà â ïðèíöèïå. Ïîýòîìó õðàíèòåëè ýêðàíà íàøåé ïðîáëåìû íå ðåøàþò. Íå îñòàâëÿåò ÷óâñòâî, ÷òî ðåøåíèå òàêîé çàäà÷è äîëæíî áûòü î÷åíü ïðîñòûì, ïîñêîëüêó åñòü ìíîæåñòâî ñòàíäàðòíûõ ïðîãðàìì, ñ ïîìîùüþ êîòîðûõ ìîæíî îïðåäåëèòü ñòåïåíü çàãðóæåííîñòè. Íî íå âñ¼ òàê ïðîñòî. Âàæíûì òðåáîâàíèåì ÿâëÿåòñÿ ïåðåíîñèìîñòü â ðàìêàõ UNIX-ñèñòåì. Îäíàêî, êàê ìû óâèäèì äàëåå, äàæå â ñåìåéñòâå Linux ïðîáëåìà íå ðåøàåòñÿ òðèâèàëüíî. åøåíèå äîïîëíèòåëüíî îñëîæíÿåòñÿ òåì, ÷òî íà âû÷èñëèòåëüíîì óçëå ó íàñ ìîæåò íå áûòü ïðàâ àäìèíèñòðàòîðà, à çíà÷èò, íàáîð ñðåäñòâ áóäåò îãðàíè÷åí. Ñàìûé ¾ïðàâèëüíûé¿ è ãàðàíòèðîâàííî ðàáîòàþùèé ìåòîä èñïîëüçîâàòü ïðîòîêîë è èíðàñòðóêòóðó SNMP. Íî äàëåêî íå íà êàæäîé ðàáî÷åé ñòàíöèè óñòàíîâëåíî ïðîãðàììíîå îáåñïå÷åíèå, ðåàëèçóþþùåå ñåðâåðíóþ ÷àñòü SNMP. Òàê êàê ðàáî÷àÿ ñòàíöèÿ èëè ñåðâåð ìîãóò áûòü ¾÷óæèìè¿ è ïðàâ ñóïåðïîëüçîâàòåëÿ ìû òàì ìî-
Îöåíêà çàãðóæåííîñòè CPU â UNIX-ñèñòåìàõ
145
æåì íå èìåòü, òî óñòàíàâëèâàòü ñâî¼ ñèñòåìíîå ïðîãðàììíîå îáåñïå÷åíèå àäìèíèñòðàòîð ìîæåò è íå ðàçðåøèòü. Àíàëîãè÷íàÿ ñèòóàöèÿ ñëîæèëàñü ñ èñïîëüçîâàíèåì ïðîãðàìì ïàêåòà SAR. Ïðåäñòàâëåíèå äàííûõ â ýòîì ïàêåòå èêñèðîâàíî, íî îí íå ÿâëÿåòñÿ ñòàíäàðòíûì è óñòàíîâëåí äàëåêî íå íà âñåõ ñèñòåìàõ. Íà êàæäîé ÎÑ ñóùåñòâóåò íåçàâèñèìàÿ ðåàëèçàöèÿ ýòîãî ïàêåòà, ïîýòîìó äàæå èñïîëüçîâàòü èñõîäíûå òåêñòû íå âñåãäà âîçìîæíî. Îñòà¼òñÿ èñïîëüçîâàíèå ñòàíäàðòíûõ ïðîãðàìì, âõîäÿùèõ â ñèñòåìíûå ïàêåòû, òàêèõ êàê ps, top, uptime. Ñàìûì ëîãè÷íûì ðåøåíèåì êàçàëîñü èñïîëüçîâàíèå ïðîãðàììû ps, âûäàþùåé çàãðóçêó ïðîöåññîðà îòäåëüíî ïî êàæäîìó ïðîöåññó. Ïðîãðàììà ps âûçûâàëàñü èç ñêðèïòà, çàïóñêàþùåãîñÿ ðàç â ìèíóòó ñ ïîìîùüþ ron. ż âûâîä àíàëèçèðîâàëñÿ, îòäåëüíî ñóììèðîâàëèñü ïðîöåíòû çàãðóçêè ïðîöåññîðà ¾ñâîèìè¿ è ÷óæèìè ïðîöåññàìè, è íà îñíîâàíèè ýòèõ äàííûõ äåëàëñÿ âûâîä î íåîáõîäèìîñòè çàïóñêà ëèáî ñíÿòèÿ ìåòàêîìïüþòåðíîé çàäà÷è.  õîäå ýêñïåðèìåíòîâ âûÿñíèëîñü, ÷òî ps äàëåêî íå âñåãäà êîððåêòíî âûäàåò ñâåäåíèÿ î ïîòðåáëåíèå ïðîöåññîðíûõ ðåñóðñîâ. Íàáëþäàëèñü ñëó÷àè, â êîòîðûõ íà êîìïüþòåðàõ ñ çàïóùåííîé ñ÷åòíîé ïðîãðàììîé ps äåìîíñòðèðîâàëà íóëåâîé ïðîöåíò çàãðóçêè àêòèâíûìè ïðîöåññàìè, ïðè ýòîì äðóãèå ñðåäñòâà ìîíèòîðèíãà (top) óêàçûâàëè, ÷òî çàãðóçêà êîìïüþòåðà ýòèìè ïðîöåññàìè áëèçêà ê 100%. Î÷åâèäíî, ýòî îøèáêà èëè íåêîððåêòíîñòü â ñàìîé ïðîãðàììå ps. Òàêèì îáðàçîì, äàííûå, ïðåäîñòàâëÿåìûå ïðîãðàììîé ps, íåâîçìîæíî èñïîëüçîâàòü äëÿ ðåøåíèÿ ïîñòàâëåííîé çàäà÷è. Ñëåäóþùèì âàðèàíòîì ðåàëèçàöèè îïðåäåëåíèÿ çàãðóçêè êîìïüþòåðà áûë ñêðèïò, àíàëèçèðóþùèé âûäà÷ó êîìàíäû top, äîñòóïíîé íà áîëüøèíñòâå UNIX-ïëàòîðì. Òðàäèöèîííî ýòà ïðîãðàììà èñïîëüçóåòñÿ â èíòåðàêòèâíîé îðìå äëÿ íåïîñðåäñòâåííîãî íàáëþäåíèÿ, îäíàêî â íåé ïðåäóñìîòðåí ðåæèì äëÿ ïàêåòíîãî çàïóñêà. Ìû çàïóñêàëè êîìàíäó â ñëåäóþùåì âèäå: top -b -n 1 (ïàêåòíûé ðåæèì, îäíà èòåðàöèÿ). Íî è îò ýòîãî âàðèàíòà ïðèøëîñü îòêàçàòüñÿ. Âî-ïåðâûõ, â íà÷àëå çàïóñêà ñàìà ïðîãðàììà top äîñòàòî÷íî ñèëüíî çàãðóæàåò ÎÑ, è äàííûå î çàãðóçêå îêàçûâàþòñÿ íåîáúåêòèâíûìè. Âî-âòîðûõ, îðìàò âûäà÷è ðåçóëüòàòîâ ñèëüíî çàâèñèò
146
Ñ. À. Æóìàòèé, Ñ. È. Ñîáîëåâ
îò âåðñèè êîìàíäû è äèñòðèáóòèâà.  äâóõ äèñòðèáóòèâàõ Linux (RedHat Linux 7.3 è SuSE Linux 10.0), óñòàíîâëåííûõ íà óçëàõ ñóïåðêîìïüþòåðíîãî êîìïëåêñà ÍÈÂÖ Ì Ó, âåðñèè, à òî÷íåå, âåòêè ðàçâèòèÿ êîìàíäû top îêàçàëèñü ïðèíöèïèàëüíî ðàçíûìè. Âîò ïðèìåð ÷àñòè ýêðàíà, ïîëó÷àåìîãî íà ðàçíûõ äèñòðèáóòèâàõ:
RedHat 7.3
4:59pm up 321 days, 6:43, 18 users, load average: 0.09, 0.23, 0.19 292 pro esses: 264 sleeping, 1 running, 27 zombie, 0 stopped CPU0 states: 50.0% user, 50.0% system, 50.0% ni e, 0.0% idle CPU1 states: 18.0% user, 81.0% system, 9.0% ni e, 0.0% idle Mem: 1033296K av, 1019892K used, 13404K free, 0K shrd, 51908K bu Swap: 530104K av, 127548K used, 402556K free 620732K a hed PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 22243 root 15 0 1156 1156 804 R 8.2 0.1 0:00 top 1 root 9 0 412 376 360 S 0.0 0.0 5:51 init
SuSE 10.0
top - 17:01:31 up 174 days, 5:21, 11 users, load average: 0.27, 0.27, 0.15 Tasks: 253 total, 2 running, 247 sleeping, 0 stopped, 4 zombie Cpu0 : 0.3% us, 2.3% sy, 0.0% ni, 96.0% id, 0.0% wa, 0.0% hi, 1.3% si Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 2050860k total, 1405736k used, 645124k free, 191172k buers Swap: 979176k total, 4056k used, 975120k free, 751500k a hed PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25171 root 15 0 57644 37m 2132 S 0.3 1.9 11:18.15 leo 23196 golovin 15 0 26644 2520 1940 S 0.3 0.1 3:05.63 ssh Âèäíî, ÷òî äëÿ ÷åëîâåêà ðàçíèöà íåáîëüøàÿ, íî ïðîãðàììû ðàçáîðà òàêîé âûäà÷è áóäóò çíà÷èòåëüíî îòëè÷àòüñÿ. È ÷òî ãîðàçäî õóæå íåò íèêàêîé ãàðàíòèè, ÷òî íå ïîòðåáóåòñÿ ðàçáîð è äðóãèõ
Îöåíêà çàãðóæåííîñòè CPU â UNIX-ñèñòåìàõ
147
âàðèàíòîâ âûäà÷è, î êîòîðûõ ìû ïîêà íå çíàåì, íî êîòîðûå ìîãóò âñòðåòèòüñÿ íà êîìïüþòåðàõ âû÷èñëèòåëüíîé ñðåäû. Àíàëîãè÷íàÿ ñèòóàöèÿ ñëîæèëàñü è ñ ïðîãðàììîé vmstat. Íà ðàçëè÷íûõ âåðñèÿõ ÎÑ îíà âûäà¼ò ðåçóëüòàòû â ðàçëè÷íîì îðìàòå.
RedHat 7.3
pro s memory swap io system pu r b w swpd free bu a he si so bi bo in s us sy id 0 0 0 130848 14292 148368 441620 0 0 2 2 1 2 0 3 2
SuSE 10.0
pro s memory- swap io- system - pur b swpd free bu a he si so bi bo in s us sy id wa 0 0 134204 62872 238056 232792 0 1 1 3 5 6 11 4 80 4 Ñàìîé ¾ñòàíäàðòíîé¿ ïðîãðàììîé îêàçàëàñü êîìàíäà uptime, êîòîðàÿ âûäà¼ò çíà÷åíèå loadaverage óçëà. ż âûâîä íà áîëüøèíñòâå UNIX-ïëàòîðì ïðàêòè÷åñêè åäèíîîáðàçåí è ïðèåìëåì äëÿ ïðîãðàììíîãî àíàëèçà. Âåëè÷èíà loadaverage ðàâíà ñðåäíåìó ÷èñëó ïðîöåññîâ, îæèäàþùèõ êâàíò ïðîöåññîðíîãî âðåìåíè â î÷åðåäè. Íàïðèìåð, åñëè â äàííûé ìîìåíò íà êîìïüþòåðå çàïóùåíî 5 ñ÷¼òíûõ çàäà÷, òî loadaverage áóäåò íå ìåíüøå 5. Êîìàíäà uptime ïðè çàïóñêå âûäàåò òðè çíà÷åíèÿ loadaverage: çà ïîñëåäíþþ ìèíóòó, 5 ìèíóò è 15 ìèíóò. Îäíàêî âûñîêîå çíà÷åíèå loadaverage, íà êîòîðîå ìîæíî áûëî áû îðèåíòèðîâàòüñÿ, íå îáÿçàòåëüíî îçíà÷àåò âûñîêóþ çàãðóçêó ïðîöåññîðà. Ê ïðèìåðó, çàäà÷à ìîæåò îæèäàòü çàâåðøåíèÿ ñèñòåìíîãî âûçîâà, òàêîãî êàê çàïèñü íà æ¼ñòêèé äèñê. Ïðè ýòîì îíà áóäåò íàõîäèòüñÿ â î÷åðåäè, è loadaverage óâåëè÷èòñÿ íà åäèíèöó, õîòÿ ðåàëüíàÿ çàãðóçêà ïðîöåññîðà ìîæåò áûòü î÷åíü íèçêîé. Âîçìîæíà ñèòóàöèÿ, êîãäà ñðåäíÿÿ çàãðóçêà âîçðàñòàåò òîëüêî çà ñ÷åò ñèñòåìíûõ çàäà÷, è â ýòîì ñëó÷àå ïðèêëàäíîå ñ÷åòíîå ïðèëîæåíèå òàêæå ñíèìàåòñÿ ñî ñ÷åòà. Îáðàòíàÿ ñèòóàöèÿ èñêëþ÷àåòñÿ, ò.å. íèçêèé óðîâåíü loadaverage ãàðàíòèðóåò, ÷òî ïðîöåññîð íå çàíÿò íèêàêèìè çàäà÷àìè. Ýìïèðè÷åñêèì ïóòåì áûëè óñòàíîâëåíû
148
Ñ. À. Æóìàòèé, Ñ. È. Ñîáîëåâ
ñëåäóþùèå ïîðîãè, ïî äîñòèæåíèþ êîòîðûõ óçåë ñ÷èòàåòñÿ ¾çàíÿòûì¿ èëè ¾ñâîáîäíûì¿ (N pu îáùåå ÷èñëî ïðîöåññîðîâ íà óçëå, loadaverage ñðåäíÿÿ çàãðóçêà óçëà çà ïîñëåäíþþ ìèíóòó). ¾ñâîáîäåí¿, loadaverage < N pu*0.25 (ïðåäïîëàãàåì, ÷òî 25% ïðîöåññîðíîãî âðåìåíè ìîæåò òðåáîâàòüñÿ ñèñòåìíûì ïðîöåññàì); ¾çàíÿò¿, loadaverage > N pu + 0.9 (çàïóñêàÿ ñòîëüêî ïðîöåññîâ ïðèêëàäíîé çàäà÷è, ñêîëüêî ïðîöåññîðîâ íà óçëå, ïðîâåðÿåì, íå ïîÿâèëñÿ ëè åùå õîòÿ áû îäèí àêòèâíûé ïðîöåññ). Òàê êàê çíà÷åíèå loadaverage íå ¾ìãíîâåííîå¿, à óñðåäí¼ííîå, òî âåðîÿòíîñòü çàïóñêà çàäà÷è â ìîìåíò êðàòêîâðåìåííîãî ïðîñòîÿ êîìïüþòåðà ñíèæàåòñÿ. Ïî ýòîé æå ïðè÷èíå îïðåäåëèòü àêò âîçìîæíîñòè çàïóñêà ñ÷¼òíîé çàäà÷è óäà¼òñÿ òîëüêî ïî ïðîøåñòâèè êàêîãî-òî âðåìåíè. Òàêèì îáðàçîì, ðåøåíèå ïîñòàâëåííîé çàäà÷è êðàéíå îñëîæíåíî òåì, ÷òî îáùåäîñòóïíûé íàáîð ñèñòåìíûõ ïðîãðàìì, âî-ïåðâûõ, íå âñåãäà ñîîòâåòñòâóåò ñòàíäàðòàì, è, âî-âòîðûõ, íå âñåãäà âûäà¼ò àäåêâàòíóþ èíîðìàöèþ. Åñëè ñòàâèòü çàäà÷ó äîñòàòî÷íî øèðîêî, à èìåííî îïðåäåëåíèå çàãðóæåííîñòè êîìïüþòåðà â ðàìêàõ íàèáîëåå ðàñïðîñòðàí¼ííûõ ÎÑ ñåìåéñòâà UNIX, òî, ñ íàøåé òî÷êè çðåíèÿ, å¼ ðåøåíèå ïðàêòè÷åñêè íåâîçìîæíî. Ýòî ñâÿçàíî ñ òåì, ÷òî íå óäà¼òñÿ íàéòèè ðàáîòàþùåãî îäèíàêîâî íà âñåõ UNIX-ïëàòîðìàõ øòàòíîãî ñðåäñòâà, ïîñðåäñòâîì êîòîðîãî ìîæíî áûëî áû îïðåäåëÿòü çàãðóçêó ïðîöåññîðà, äàæå åñëè ó íàñ åñòü ïðàâà ñóïåðïîëüçîâàòåëÿ. Åñëè îãðàíè÷èòü çàäà÷ó òîëüêî ÎÑ Linux, òî ðåøåíèå çàòðóäíåíî, íî âîçìîæíî. Âåðîÿòíîå ðåøåíèå èñïîëüçîâàòü äàííûå èç àéëîâîé ñèñòåìû /pro . Ýòè äàííûå çàâåäîìî àêòóàëüíû è îðìàò íåîáõîäèìûõ àéëîâ íå ìåíÿåòñÿ â çàâèñèìîñòè îò äèñòðèáóòèâà. Ïðåïÿòñòâèåì ìîæåò áûòü óñèëåííàÿ ñèñòåìà áåçîïàñíîñòè, íàïðèìåð gr-se urity èëè se-linux, íî â ýòîì ñëó÷àå ïîëó÷åíèå íåîáõîäèìûõ íàì äàííûõ áóäåò ïðàêòè÷åñêè íåâîçìîæíî. Ïðîáëåìà ñ ÷òåíèåì äàííûõ èç /pro ñîñòîèò â òîì, ÷òî îáú¼ì èíîðìàöèè äîâîëüíî âåëèê íàäî àíàëèçèðîâàòü ñòîëüêî àé-
Îöåíêà çàãðóæåííîñòè CPU â UNIX-ñèñòåìàõ
149
ëîâ, ñêîëüêî ñåé÷àñ ñóùåñòâóåò ïðîöåññîâ â ñèñòåìå. Ýòî äåñÿòêè, à èíîãäà è ñîòíè àéëîâ. Èõ àíàëèç â ñêðèïòå çàíèìàåò çíà÷èòåëüíîå âðåìÿ, à çíà÷èò, îáùàÿ êàðòèíà áóäåò ñèëüíî èñêàæàòüñÿ. Ìîæíî àíàëèçèðîâàòü ýòè äàííûå â ïðîãðàììå, íàïèñàííîé, íàïðèìåð, íà Ñè. Íî â ýòîì ñëó÷àå íåîáõîäèìî êîìïèëèðîâàòü ýòó ïðîãðàììó ïåðåä óñòàíîâêîé â ñèñòåìå, òàê êàê áèíàðíûé àéë ìîæåò íå ðàáîòàòü íà ðàçíûõ àðõèòåêòóðàõ, à èíîãäà è íà îäíîé è òîé æå àðõèòåêòóðå, íî ñ ðàçíûìè âåðñèÿìè ÎÑ. Êîìïèëÿöèÿ æå âñïîìîãàòåëüíîãî àéëà íåæåëàòåëüíà, âåäü íà êîìïüþòåðå âû÷èñëèòåëüíîé ñðåäû ìîæåò íå áûòü êîìïèëÿòîðà.  êîíå÷íîì èòîãå ìû îñòàíîâèëèñü íà âàðèàíòå èñïîëüçîâàíèÿ ïðîãðàììû uptime. Ýòî ðåøåíèå íå âñåãäà äà¼ò êîððåêòíûå ðåçóëüòàòû. Ìîæíî ïîëó÷èòü îòâåò ¾ñèñòåìà çàíÿòà¿ ïðè òîì, ÷òî ïðîöåññîð ïðîñòàèâàåò. Íî íåëüçÿ ïîëó÷èòü îòâåò ¾ñèñòåìà ñâîáîäíà¿, åñëè ïðîöåññîð ðåàëüíî çàíÿò ñ÷¼òíûìè çàäà÷àìè. Ýòî çíà÷èò, ÷òî èñïîëüçóÿ òàêîé ïîäõîä, ìîæíî ¾ïðîçåâàòü¿ âðåìÿ, êîãäà ïðîöåññîð ïðîñòàèâàåò, íî íåëüçÿ çàïóñòèòü çàäà÷ó, åñëè ïðîöåññîð çàíÿò. Èíòåíñèâíîå òåñòèðîâàíèå ñêðèïòà îïðåäåëåíèÿ çàíÿòîñòè ñåðâåðîâ íà óçëàõ ñóïåðêîìïüþòåðíîãî êîìïëåêñà ÍÈÂÖ Ì Ó (çàïóñê çàäàíèé ÷åðåç ñèñòåìó ìåòàêîìïüþòèíãà íà îíå ðàáîòàþùèõ øòàòíûõ ïðèëîæåíèé) ïîêàçàëî ïðèãîäíîñòü îïèñàííîãî àëãîðèòìà äëÿ ðåøåíèÿ ïîñòàâëåííîé çàäà÷è, ñ íåáîëüøîé îãîâîðêîé, ÷òî èíîãäà áóäåò âîçíèêàòü ¾èëëþçèÿ¿ çàíÿòîñòè ñèñòåìû. Ïðè òåñòèðîâàíèè áûëî çàäåéñòâîâàíî áîëåå 100 âû÷èñëèòåëüíûõ óçëîâ òð¼õ âû÷èñëèòåëüíûõ êëàñòåðîâ â òå÷åíèè íåñêîëüêèõ ìåñÿöåâ. Òåì íå ìåíåå, ïîèñêè îïòèìàëüíîãî ðåøåíèÿ ïðîäîëæàþòñÿ. Ìû ïðèãëàøàåì ê îáñóæäåíèþ ñïåöèàëèñòîâ, ñòàëêèâàþùèõñÿ ñ ïîäîáíûìè çàäà÷àìè, ïðèñîåäèíèòüñÿ ê äèñêóññèè ïî îïðåäåëåíèþ çàãðóçêè ñåðâåðîâ ìîæíî íà îðóìå ñàéòà PARALLEL.RU (http://parallel.ru/forum/).
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð Î. Ñ. Ëåáåäåâà
$
, Å. Å. Òûðòûøíèêîâ
àññìîòðåíà çàäà÷à ïîñòðîåíèÿ âåðõíèõ îöåíîê ðàçìåðíîñòåé ìàòðè÷íûõ êîììóòàòèâíûõ àëãåáð. Çàäà÷à äëÿ ïðîèçâîëüíûõ ìàòðè÷íûõ àëãåáð ñâîäèòñÿ ê çàäà÷å äëÿ àëãåáð èç ìàòðèö ñïåöèàëüíîãî âèäà. Ïîëó÷åíî íîâîå ïðîñòîå äîêàçàòåëüñòâî îáùåé òî÷íîé îöåíêè n2 /4 + 1; ïîñòðîåíû íîâûå îöåíêè, çàâèñÿùèå îò äîïîëíèòåëüíûõ õàðàêòåðèñòèê, ñâÿçàííûõ ñ äååêòàìè ìàòðèö.
1. Ââåäåíèå
Ïîä ìàòðè÷íîé àëãåáðîé áóäåì ïîíèìàòü ëèíåéíîå ïîäïðîñòðàíñòâî Ω ⊆ Cn×n , çàìêíóòîå îòíîñèòåëüíî îïåðàöèè óìíîæåíèÿ. Êîììóòàòèâíîñòü îçíà÷àåò, ÷òî âñå ìàòðèöû Ω ïîïàðíî ïåðåñòàíîâî÷íû: ∀ A, B ∈ Ω : AB = BA. Áóäåì ðàññìàòðèâàòü òîëüêî êîììóòàòèâíûå àëãåáðû. Ïðè ýòîì íå òðåáóåì, ÷òîáû â Ω ñîäåðæàëàñü åäèíè÷íàÿ ìàòðèöà I. Íàñ áóäóò èíòåðåñîâàòü ðàçëè÷íûå îöåíêè ðàçìåðíîñòè Ω, çàâèñÿùèå îò n è äðóãèõ âîçìîæíûõ âåëè÷èí, õàðàêòåðèçóþùèõ àëãåáðó Ω. Ñðàçó ìîæíî îòìåòèòü, ÷òî íèæíÿÿ îöåíêà ðàâíà 1 (ìíîæåñòâî ñêàëÿðíûõ ìàòðèö ÿâëÿåòñÿ àëãåáðîé). Ýëåìåíòàðíî ïîëó÷àåòñÿ âåðõíÿÿ îöåíêà dim(Ω) < n2 ïðè n > 2 (ïîñêîëüêó åñëè dim Ω = n2 , òî Ω = Cn×n , à â Cn×n ïðè n > 2 âñåãäà åñòü ïàðà íåêîììóòèðóþùèõ ìàòðèö). Ïîïûòàåìñÿ ïîñòðîèòü áîëåå òîíêèå âåðõíèå îöåíêè. $ àáîòà âûïîëíåíà ïðè ÷àñòè÷íîé èíàíñîâîé ïîääåðæêå îññèéñêîãî îíäà óíäàìåíòàëüíûõ èññëåäîâàíèé (ãðàíò ÔÔÈ 05-01-00721) Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
152
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
Èçâåñòíû àëãåáðû ðàçìåðíîñòè n2 /4 + 1. Íàïðèìåð, ìíîæåñòâî âñåõ ìàòðèö âèäà 0 A αI + (1) ∈ Cn×n , α ∈ C, A ∈ Cn/2×n/2 0 0
ÿâëÿåòñÿ êîììóòàòèâíîé ìàòðè÷íîé àëãåáðîé òàêîé ðàçìåðíîñòè.  ñëó÷àå ìàòðèö, ïîä÷èí¼ííûõ íåêîòîðûì óñëîâèÿì, äëÿ íàñ ïðåäñòàâëÿþò èíòåðåñ îöåíêè âèäà cn2 + O(n) ( c < 1 ). Äîâîëüíî ëåãêî ïîëó÷èòü îöåíêó n2 /2+1, íî îíà îêàçûâàåòñÿ ñèëüíî çàâûøåíà. Òî÷íàÿ âåðõíÿÿ îöåíêà n2 /4 + 1 áûëà óñòàíîâëåíà åù¼ Øóðîì. Äîêàçàòåëüñòâî ýòîãî àêòà â ðóññêîÿçû÷íîé ëèòåðàòóðå îïèðàåòñÿ íà òåîðèþ íîðìàëüíûõ îðì Êðàâ÷óêà. Ýòà òåîðèÿ ïðåäñòàâëåíà â [1℄ â âèäå ïîñëåäîâàòåëüíîñòè òð¼õ îñíîâíûõ òåîðåì Êðàâ÷óêà è ðàçëè÷íûõ âñïîìîãàòåëüíûõ óòâåðæäåíèé. Èçó÷àÿ äîêàçàòåëüñòâà, ìû çàìåòèëè, ÷òî â òåîðåìå 1 èç [1℄ ÷àñòè÷íî èñïîëüçóåòñÿ òåîðåìà 3, êîòîðàÿ, â ñâîþ î÷åðåäü, îïèðàåòñÿ íà òåîðåìó 1. Âñå óòâåðæäåíèÿ îñòàþòñÿ, êîíå÷íî, â ñèëå, à çàìå÷åííàÿ íåòî÷íîñòü ìîæåò áûòü èñïðàâëåíà.  äàííîé ðàáîòå ìû ïîêàæåì, ÷òî, îñòàâàÿñü â òîì æå êðóãå èäåé, ìîæíî äàòü ïðîñòîå ïðÿìîå äîêàçàòåëüñòâî òåîðåìû Øóðà, íå îïèðàþùååñÿ íà òåîðèþ Êðàâ÷óêà. Îñîáûé èíòåðåñ ïðåäñòàâëÿþò ñèòóàöèè, êîãäà êðîìå ðàçìåðîâ ìàòðèö àëãåáðû èçâåñòíû êàêèå-òî äîïîëíèòåëüíûå å¼ õàðàêòåðèñòèêè. Ìû ïîëó÷èì îöåíêè ðàçìåðíîñòåé ýòèõ àëãåáð ÷åðåç õàðàêòåðèñòèêè, ñâÿçàííûå ñ äååêòàìè ìàòðèö. Íî ñíà÷àëà ïîÿñíèì, êàê îò ñëó÷àÿ ïðîèçâîëüíîé ìàòðè÷íîé àëãåáðû ïåðåéòè ê ðàññìàòðåíèþ áîëåå óçêîãî êëàññà àëãåáð. Ïðè èçó÷åíèè êîììóòàòèâíûõ àëãåáð îñîáóþ ðîëü èãðàþò êëàññû àëãåáð, â êîòîðûõ êàæäàÿ ìàòðèöà èìååò åäèíñòâåííîå ñîáñòâåííîå çíà÷åíèå. Åñëè âñå ìàòðèöû àëãåáðû íèëüïîòåíòíû (òî åñòü âñå ñîáñòâåííûå çíà÷åíèÿ âñåõ ìàòðèö ðàâíû 0), òî àëãåáðà òàêæå íàçûâàåòñÿ . Î÷åâèäíî, â íèëüïîòåíòíîé àëãåáðå åäèíèöû íåò. Ìàòðèöû, îòëè÷àþùèåñÿ îò íèëüïîòåíòíûõ ñäâèãîì íà ñêàëÿðíóþ ìàòðèöó, áóäåì íàçûâàòü , êàê è àëãåáðû, ñîñòîÿùèå òîëüêî èç òàêèõ ìàòðèö. Êàæäîé êâàçèíèëüïîòåíòíîé àëãåáðå ñîîòâåòñòâóåò åäèíñòâåííàÿ íèëüïîòåíòíàÿ: Ω =
íèëüïîòåíòíîé
êâàçèíèëüïîòåíòíûìè
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
153
{αI + C | α ∈ C, C ∈ Ωnil }, ïðè ýòî èõ ðàçìåðíîñòè îòëè÷àþòñÿ íà åäèíèöó dim(Ω) = dim(Ωnil ) + 1 ). Ñóùåñòâóåò ñïîñîá ñâåñòè âîïðîñ îöåíêè ðàçìåðíîñòè ïðîèçâîëüíîé ìàòðè÷íîé àëãåáðû Ω ê âîïðîñó ïîñòðîåíèÿ îöåíîê äëÿ íàáîðà êâàçèíèëüïîòåíòíûõ è íèëüïîòåíòíûõ àëãåáð, ñîñòîÿùèõ èç ìàòðèö ìåíüøèõ ðàçìåðîâ. Ìû áóäåì ïîëüçîâàòüñÿ òåì, ÷òî îäèíàêîâîå ïðåîáðàçîâàíèå ïîäîáèÿ äëÿ âñåõ ìàòðèö êîììóòàòèâíîé àëãåáðû ïîðîæäàåò íîâóþ êîììóòàòèâíóþ àëãåáðó òîé æå ðàçìåðíîñòè (ýòî îáúÿñíÿåòñÿ òåì, ÷òî ìàòðèöû áàçèñîâ ïîïàðíî ïîäîáíû). Òàêèå àëãåáðû áóäåì íàçûâàòü ïîäîáíûìè. Âûáåðåì íåêîòîðûé ïðîèçâîëüíûé áàçèñ Ω : A0 , A1 , . . . , Am−1 . Ýòè ìàòðèöû ïîïàðíî êîììóòèðóþò, ïîýòîìó ñóùåñòâóåò òàêàÿ îáðàòèìàÿ ìàòðèöà C ∈ Cn×n , ÷òî C−1 Ai C = diag(Bi1 , Bi2 , . . . , Bip ) áëî÷íî-äèàãîíàëüíûå ìàòðèöû (äëÿ i = 0, . . . , m − 1 ), è êàæäûé äèàãîíàëüíûé áëîê Bij ∈ Cnj ×nj îáëàäàåò åäèíñòâåííûì ñîáñòâåííûì çíà÷åíèåì (òî åñòü íèëüïîòåíòåí ëèáî êâàçèíèëüïîòåíòåí).  ñèëó ðàçëîæèìîñòè îñòàëüíûõ ìàòðèö èç Ω ïî áàçèñó, ïðîñòðàíñòâî Ω ′ = span(C−1 A0 C, . . . , C−1 Am−1 C) ïîäîáíàÿ Ω êîììóòàòèâíàÿ ìàòðè÷íàÿ àëãåáðà áóäåò ñîäåðæàòü òîëüêî áëî÷íî-äèàãîíàëüíûå ìàòðèöû, è ðàçìåðíîñòü ïðè ýòîì ñîõðàíèòñÿ dim(Ω) = dim(Ω ′ ). Èç êîììóòàöèè ìàòðèö C−1 A0 C, . . . , C−1 Am−1 C ñëåäóåò, ÷òî áëîêè B1j , B2j , . . . , Bm j áóäóò òàêæå ïîïàðíî êîììóòèðîâàòü äëÿ j = 1, . . . , p. Ïîýòîìó ìíîæåñòâà Ωj = span(B0j , B2j , . . . , Bm−1 ) áóäóò j ìàòðè÷íûìè êîììóòàòèâíûìè àëãåáðàìè íèëüïîòåíòíûìè ëèáî êâàçèíèëüïîòåíòíûìè. àññìîòðèì ïðÿìóþ ñóììó àëãåáð Ωj : ΩP = Ω1 ⊕ . . . ⊕ Ωp = {diag(A1 , . . . , Ap )|Aj ∈ Ωj } ⊇ Ω ′ . Ýòî òàêæå ìàòðè÷íàÿ êîììóòàòèâíàÿ àëãåáðà, è Ω ′ âëîæåíà ëèáî P ðàâíà åé. Ïîëó÷àåì dim(Ω) = dim(Ω ′ ) 6 dim(ΩP ) = j dim(Ωj ). ×òîáû ñîêðàòèòü ïðîèçâîë â âûáîðå áëî÷íî-äèàãîíàëüíîãî ïðåäñòàâëåíèÿ è äîáèòüñÿ ñòðîãîãî ðàâåíñòâà: Ω = Ω ′ ∼ Ω1 ⊕ . . . ⊕ Ωp , ïîñòóïèì ñëåäóþùèì îáðàçîì. Ñðåäè âñåõ ìàòðèö Ω íàéä¼ì ìàòðèöó ñ íàèáîëüøèì ÷èñëîì ðàçëè÷íûõ íåíóëåâûõ ñîáñòâåííûõ çíà÷åíèé: ïðåäïîëîæèì ýòî ìàòðèöà, îáëàäàþùàÿ q ðàçëè÷íûìè ñîáñòâåííûìè çíà÷åíèÿìè. Òîãäà ñóùåñòâóåò ïðåîáðàçîâàíèå ïîäîáèÿ, ïåðåâîäÿùåå ìàòðèöû Ω â áëî÷íî-äèàãîíàëüíûå ìàòðèöû ñ q êâà-
154
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
çèíèëüïîòåíòíûìè áëîêàìè, ïðè ýòîì ðàçìåð êàæäîãî áëîêà áóäåò ðàâåí li àëãåáðàè÷åñêîé êðàòíîñòè ñîîòâåòñòâóþùåãî ñîáñòâåííîãî çíà÷åíèÿ λi âûáðàííîé ìàòðèöû (ýòó àëãåáðó, ïîäîáíóþ Ω îáîçíà÷èì Ω ′ ). Ïî ýòîìó ïðåîáðàçîâàíèþ îäíîçíà÷íî ñòðîÿòñÿ êâàçèíèëüïîòåíòíûå àëãåáðû Ω1 , . . . , Ωq (ñðåäè íèõ, âîçìîæíî, åñòü îäíà íèëüïîòåíòíàÿ, â òàêîì ñëó÷àå äîãîâîðèìñÿ ñ÷èòàòü, ÷òî ýòî Ωq ). Òîãäà áóäåò èìåòü ìåñòî ðàâåíñòâî: Ω = Ω ′ ∼ Ω1 ⊕ . . . ⊕ Ωq P (è, ñëåäîâàòåëüíî, dim(Ω) = i dim(Ωi ) ). Äîêàæåì ýòî.
 ñèëó âûáîðà àëãåáðû Ω ′ , â íåé áóäåò ñîäåðæàòüñÿ ìàòðèöà A ñ q ðàçëè÷íûìè ñîáñòâåííûìè çíà÷åíèÿìè, ïîäîáíàÿ âûáðàííîé íàìè ìàòðèöå. Ñ ïîìîùüþ ýòîé ìàòðèöû ìû ïîñòðîèì áàçèñ àëãåáðû q Ω ′ èç ìàòðèö X11 , · · · , X1dim(Ω1 ) , · · · · · · , Xq 1 , · · · , Xdim(Ωq ) , ãäå êàæäàÿ ìàòðèöà Xij ñîäåðæèò åäèíñòâåííûé íåíóëåâîé áëîê íà ãëàâíîé äèàãîíàëè â i -òîé ïîçèöèè, i = 1, · · · , q, j = 1, · · · , dim(Ωi ). Ïðè ýòîì i span(Xi1 , · · · , Xdim (Ωi ) ) = {0}⊕. . .⊕{0}⊕Ωi ⊕{0}⊕. . .⊕{0}. Èç ñóùåñòâîâàíèÿ òàêîãî áàçèñà íåïîñðåäñòâåííî áóäåò ñëåäîâàòü äîêàçûâàåìîå óòâåðæäåíèå.
Íåòðóäíî çàìåòèòü, ÷òî åñëè ìû íàéä¼ì q ìàòðèö Y1 , · · · , Yq èç Ω ′ , ñîäåðæàùèõ íà ãëàâíîé äèàãîíàëè ðîâíî ïî îäíîìó êâàçèíèëüïîòåíòíîìó áëîêó ðàçìåðà l1 , · · · , lq ñîîòâåòñòâåííî, òî òðåáóåìûé áàçèñ ìîæíî áóäåò âûáðàòü èç ìàòðèö ëþáîãî áàçèñà Ω ′ , óìíîæåííûõ íà Y1 , · · · , Yq . Åñëè æå îäèí èç äèàãîíàëüíûõ áëîêîâ íèëüïîòåíòåí, òî, îêàçûâàåòñÿ, òàêèõ ìàòðèö Yi ìîæíî âûáðàòü òîëüêî q − 1, ñ èõ ïîìîùüþ ñîñòàâëÿåòñÿ áàçèñ àëãåáðû (Ω1 ⊕ . . . ⊕ Ωq−1 ⊕ {0}) , êîòîðûé ìîæíî äîïîëíèòü äî áàçèñà Ω ′ ìàòðèöàìè ñ ïîñëåäíèì íèëüïîòåíòíûì áëîêîì. Ïîêàæåì, êàê èçáàâèòüñÿ îò âñåõ áëîêîâ ìàòðèöû A, êðîìå ïåðâîãî íåâûðîæäåííîãî (äðóãèìè ñëîâàìè, êàê ïîëó÷èòü Y1 ). Çàìåòèì, ÷òî ìàòðèöà λq A − A2 èìååò ðîâíî q ñîáñòâåííûõ çíà÷åíèé, ïîñëåäíåå èç êîòîðûõ 0 ñ àëãåáðàè÷åñêîé êðàòíîñòüþ lq . Îáíóëèì ïîñëåäíèé áëîê, âîçâåäÿ å¼ â ñòåïåíü lq − 1. Ïîëó÷åííóþ ìàòðèöó îáîçíà÷èì A1 . Îíà èìååò íà ãëàâíîé äèàãîíàëè q − 1 êâàçèíèëüïîòåíòíûé áëîê è îäèí íóëåâîé (ïîñëåäíèé). Ïðè ýòîì ñîáñòâåííûå çíà÷åíèÿ, ñîîòâåòñòâóþùèå ðàçíûì áëîêàì, ìîãóò ïîâòîðÿòüñÿ. Òåïåðü èçáàâèìñÿ îò (q − 1) -îãî áëîêà. Åñëè λ1 (A1 ) 6= λq−1 (A1 ), òî ó
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
155
l ìàòðèöû A2 = λq−1 A1 − (A1 )2 q−1 íà ãëàâíîé äèàãîíàëè ïðèáàâèòñÿ åù¼ õîòÿ áû îäèí íóëåâîé áëîê (ïðè ýòîì ïåðâûé áëîê îñòàíåòñÿ íåâûðîæäåííûì). Åñëè æå λ1 (A1 ) = λq−1 (A1 ), òî âìåñòî A1 âîçüì¼ì ìàòðèöó AA1 , è äëÿ íå¼ ïðîäåëàåì óêàçàííûå äåéñòâèÿ. È òàê äàëåå. Íå áîëåå, ÷åì çà q − 1 øàãîâ ïîëó÷èì ìàòðèöó ñ åäèíñòâåííûì áëîêîì ðàçìåðà l1 â ëåâîì âåðõíåì óãëó. Åñëè ñðåäè äèàãîíàëüíûõ áëîêîâ A íåò íèëüïîòåíòíûõ, òî âñå ìàòðèöû Y1 , · · · , Yq ñòðîÿòñÿ àíàëîãè÷íî â âèäå ìíîãî÷ëåíîâ îò A, â ïðîòèâíîì ñëó÷àå ñòðîèì òîëüêî Y1 , · · · , Yq−1 . Òàêèì îáðàçîì, ïðîèçâîëüíàÿ ìàòðè÷íàÿ êîììóòàòèâíàÿ àëãåáðà ïîäîáíà ïðÿìîé ñóììå ìàòðè÷íûõ êîììóòàòèâíûõ êâàçèíèëüïîòåíòíûõ è íèëüïîòåíòíûõ àëãåáð, ïîýòîìó â äàëüíåéøåì îãðàíè÷èìñÿ ïîèñêîì îöåíîê äëÿ íèõ. Ïîêàæåì, êàê ïîëó÷àåòñÿ ãðóáàÿ îöåíêà, çàâèñÿùàÿ òîëüêî îò n. Äëÿ ýòîãî, êàê è áûëî ïðåäëîæåíî, ñíà÷àëà îöåíèì ðàçìåðíîñòü êâàçèíèëüïîòåíòíîé àëãåáðû Ωj ∈ Cnj ×nj (â ïðåäïîëîæåíèè, ÷òî Ω ∼ Ω ′ ⊆ Ω1 ⊕ . . . ⊕ Ωp ). Èçâåñòíî, ÷òî íàáîð ïîïàðíî êîììóòèðóþùèõ ìàòðèö îäíîâðåìåííî ïðèâîäèòñÿ ê âåðõíåòðåóãîëüíîìó âèäó. Ïðîäåëàâ ýòó îïåðàöèþ ìàòðèöàìè áàçèñà Ωj , ïîëó÷èì íàáîð ëèíåéíî íåçàâèñèìûõ âåðõíåòðåóãîëüíûõ ìàòðèö ñ îäèíàêîâûìè çíà÷åíèÿìè íà ãëàâíîé äèàãîíàëè (ýòî ñëåäóåò èç êâàçèíèëüïîòåíòíîñòè). Òàêèõ ìàòðèö íå áîëåå nj (nj − 1)/2 + 1 = n2j /2 − nj /2 + 1. Îòñþäà ïîëó÷àåì
dim(Ω ′ ) 6
p X
(n2j /2 − nj /2 + 1) 6 n2 /2 − n/2 + 1.
j=1
Ýòà îöåíêà ÿâëÿåòñÿ òî÷íîé òîëüêî äëÿ n 6 2, ïîñêîëüêó ïðè n > 3 âñåãäà ñóùåñòâóåò ïàðà âåðõíåòðåóãîëüíûõ ìàòðèö, êîòîðûå íå áóäóò êîììóòèðîâàòü. Òåïåðü ïîïûòàåìñÿ èñïîëüçîâàòü äîïîëíèòåëüíóþ èíîðìàöèþ îá àëãåáðå. Äëÿ ýòîãî áóäåì ðàññìàòðèâàòü âåëè÷èíû, êîòîðûå ìîãóò å¼ õàðàêòåðèçîâàòü. Ìû ââîäèì äëÿ íèëüïîòåíòíûõ àëãåáð õàðàêòåðèñòèêè, ñâÿçàííûå ñ äååêòàìè ñîäåðæàùèõñÿ â íèõ ìàòðèö. Äëÿ îïðåäåëåíèÿ õàðàêòåðèñòèê êâàçèíèëüïîòåíòíûõ àëãåáð ìû
156
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
ïîëüçóåìñÿ òåì, ÷òî ëþáîé êâàçèíèëüïîòåíòíîé àëãåáðå ñîîòâåòñòâóåò åäèíñòâåííàÿ íèëüïîòåíòíàÿ. Äëÿ ïðîèçâîëüíîé æå àëãåáðû Ω õàðàêòåðèñòèêà çàäà¼òñÿ ñîâîêóïíîñòüþ õàðàêòåðèñòèê àëãåáðñëàãàåìûõ, âõîäÿùèõ â ðàçëîæåíèå Ω â âèäå ïðÿìîé ñóììû (â ÷àñòíîñòè, îíà ìîæåò ðàâíÿòüñÿ ìàêñèìàëüíîé èç õàðàêòåðèñòèê äëÿ àëãåáð-ñëàãàåìûõ). Ïåðâóþ èñïîëüçóåìóþ õàðàêòåðèñòèêó áóäåì íàçûâàòü (èëè ïðîñòî ) è îáîçíà÷àòü lΩ èëè ïðîñòî l. Äååêò íèëüïîòåíòíîé àëãåáðû Ω ðàâåí ðàçìåðíîñòè å¼ îáùåãî ÿäðà, òî åñòü: \ l = dim ker(C) = dim{x ∈ Cn | ∀ C ∈ Ω : Cx = 0} (2)
äååêòîì
äååêòîì
îáùèì
C∈Ω
Èç íèëüïîòåíòíîñòè ñëåäóåò l > 1 (òàê êàê ó íàáîðà êîììóòèðóþùèõ ìàòðèö âñåãäà åñòü îáùèé ñîáñòâåííûé âåêòîð, à ñîáñòâåííîå çíà÷åíèå ó ìàòðèö íèëüïîòåíòíîé àëãåáðû åäèíñòâåííî è ðàâíî íóëþ). Êðîìå òîãî, l < n, åñëè àëãåáðà ñîäåðæèò õîòÿ áû îäíó íåíóëåâóþ ìàòðèöó. Ìû âûâåäåì îöåíêó dim(Ω) 6 l(n − l) (ãäå Ω íèëüïîòåíòíàÿ àëãåáðà). Èç íå¼, â ÷àñòíîñòè, ñëåäóåò òî÷íàÿ îöåíêà â îáùåì ñëó÷àå, ðàâíàÿ n2 /4 + 1 (îíà ïîëó÷àåòñÿ ìàêñèìèçàöèåé îöåíêè ïî l ). Ìû ïðèâîäèì äîêàçàòåëüñòâî áåç èñïîëüçîâàíèÿ íîðìàëüíûõ îðì è òåîðåì Êðàâ÷óêà. Äðóãóþ õàðàêòåðèñòèêó àëãåáðû áóäåì íàçûâàòü è îáîçíà÷àòü k. Îíà îïðåäåëÿåòñÿ íåîäíîçíà÷íî: ìû áóäåì ãîâîðèòü, ÷òî íèëüïîòåíòíàÿ àëãåáðà Ω îáëàäàåò ëîêàëüíûì äååêòîì k, åñëè â íåé åñòü õîòÿ áû îäíà ìàòðèöà ñ äååêòîì k. Òàêèì îáðàçîì, äàæå ïî åäèíñòâåííîé èçâåñòíîé ìàòðèöå èç Ω ìû ñìîæåì ñòðîèòü îöåíêè ðàçìåðíîñòè Ω. Äëÿ ïîëó÷åíèÿ îöåíîê ñ k ìû áóäåì ïîëüçîâàòüñÿ èçâåñòíûìè îñîáåííîñòÿìè âèäà ìàòðèö, êîììóòèðóþùèõ ñ æîðäàíîâîé îðìîé. Âûâîäÿòñÿ îöåíêè dim(Ω) < n(k − 1/k) äëÿ k > 2, dim(Ω) = n − 1 äëÿ k = 1 è dim(Ω) 6 5/4n äëÿ k = 2 (äëÿ íèëüïîòåíòíûõ àëãåáð). Ïîñêîëüêó ïîëó÷åííûå îöåíêè ìîíîòîííî âîçðàñòàþò ïî k, äëÿ íàèëó÷øåé îöåíêè ââîäèòñÿ ñëåäóþùàÿ õàðàêòåðèñòèêà.
åêòîì
ëîêàëüíûì äå-
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
Ìèíèìàëüíûé äååêò ( k
èç ëîêàëüíûõ äååêòîâ:
min )
îïðåäåëÿåòñÿ êàê ìèíèìàëüíûé
kmin = min dim(ker(C)) = min dim{x ∈ Cn | Cx = 0} C∈Ω
157
C∈Ω
(3)
Ñ ïîìîùüþ kmin èç îöåíîê ïî ëîêàëüíîìó äååêòó k âûáèðàåòñÿ íàèëó÷øàÿ îöåíêà. Î÷åâèäíî, ÷òî l 6 kmin 6 k. Ýòèì òàêæå ìîæíî ïîëüçîâàòüñÿ äëÿ óëó÷øåíèÿ îöåíêè. Äëÿ ïðîèçâîëüíîé àëãåáðû Ω , ïîäîáíîé ïðÿìîé ñóììå êâàçèíèëüïîòåíòíûõ è íèëüïîòåíòíûõ àëãåáð ( Ω ∼ Ω1 ⊕ . . . ⊕ Ωq ), îäíîçíà÷íî ñ òî÷íîñòüþ äî ïåðåñòàíîâîê îïðåäåëÿþòñÿ íàáîðû õàðàêòåðèñòèê àëãåáð-ñëàãàåìûõ: {l1 , . . . , lq }, {kmin1 , . . . , kminq }, è óæå ïî íèì ñòðîÿòñÿ îöåíêè ðàçìåðíîñòè èñõîäíîé àëãåáðû Ω : dim(Ω) =
q X
dim(Ωj )
(4)
j=1
2. Îöåíêè ñ èñïîëüçîâàíèåì îáùåãî äååêòà
àññìîòðèì ïðîèçâîëüíóþ êîììóòàòèâíóþ íèëüïîòåíòíóþ àëãåáðó Ω. Ïîñêîëüêó âñå ìàòðèöû èç Ω îáëàäàþò åäèíñòâåííûì ñîáñòâåííûì çíà÷åíèåì 0, â îáùåì ÿäðå Ω \ L= ker(C) = {x ∈ Cn | ∀ C ∈ Ω : Cx = 0} (5) C∈Ω
áóäåò ñîäåðæàòüñÿ ïî ìåíüøåé ìåðå îäèí âåêòîð îáùèé ñîáñòâåííûé âåêòîð âñåõ ìàòðèö èç Ω (êàê èçâåñòíî, îí ñóùåñòâóåò ó ëþáîãî íàáîðà êîììóòàòèâíûõ ìàòðèö). Êàê óæå áûëî ñêàçàíî, îáùèé äååêò íèëüïîòåíòíîé àëãåáðû Ω ýòî ðàçìåðíîñòü å¼ îáùåãî ÿäðà L. Åñëè èçâåñòåí äååêò Ω, òî ñóùåñòâóåò ïðåîáðàçîâàíèå ïîäîáèÿ, ïåðåâîäÿùåå âñå ìàòðèöû Ω ê ñïåöèàëüíîìó âèäó.
Óòâåðæäåíèå 1. Íèëüïîòåíòíàÿ àëãåáðà Ω ñ äååêòîì l ïîäîáíà àëãåáðå, êàæäàÿ ìàòðèöà êîòîðîé ñîäåðæèò ðîâíî l íóëåâûõ ñòîëáöîâ â îäíèõ è òåõ æå ïîçèöèÿõ.  ÷àñòíîñòè, âñå ìàòðèöû Ω îäíî-
158
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
âðåìåííî ïðèâîäÿòñÿ ê âèäó
0l×l
al×(n−l)
0(n−l)×l
b(n−l)×(n−l)
(6)
Íå ñóùåñòâóåò àëãåáðû, ïîäîáíîé Ω, âñå ìàòðèöû êîòîðîé â îäíèõ è òåõ æå ïîçèöèÿõ ñîäåðæàò áîëåå l íóëåâûõ ñòîëáöîâ.
Äîêàçàòåëüñòâî. Â L ïîñòðîèì áàçèñ a , . . . , a
1 l è äîïîëíèì åãî äî áàçèñà Cn .  íîâîì áàçèñå Ω ïðèìåò âèä (6). Åñëè ïðåäïîëîæèòü, ÷òî â íåêîòîðîì áàçèñå âñå ìàòðèöû èç Ω ñîäåðæàò áîëåå l íóëåâûõ ñòîëáöîâ â îäíèõ è òåõ æå ïîçèöèÿõ, ýòî áóäåò îçíà÷àòü, ÷òî áîëåå l âåêòîðîâ íîâîãî áàçèñà ëåæàò â L. Ïîëó÷àåì ïðîòèâîðå÷èå òåì, ÷òî ðàçìåðíîñòü L ðàâíà l.
Òåïåðü ìû ìîæåì ðàññìàòðèâàòü òîëüêî àëãåáðû ñ ìàòðèöàìè â îðìå (6). Âûáåðåì áàçèñ A1 , . . . , As , ãäå s = dim(Ω). Äëÿ ïðàâûõ âåðõíèõ áëîêîâ ìàòðèö áàçèñà âåðíî ñëåäóþùåå óòâåðæäåíèå:
Óòâåðæäåíèå 2. Ïóñòü ìàòðèöû áàçèñà Ω èìåþò âèä Ai =
Òîãäà ìàòðèöà
"
0l×l
ail×(n−l)
0(n−l)×l
bi(n−l)×(n−l)
#
, i = 1, . . . , s.
(7)
a1 A = · · · ∈ C(ls)×(n−l) , as
ñîñòàâëåííàÿ èç áëîêîâ ai ìàòðèö áàçèñà Ai, èìååò ïîëíûé ñòîëáöîâûé ðàíã: rank(A) = n − l.
Äîêàçàòåëüñòâî. Äîêàæåì ýòî îò ïðîòèâíîãî. Ïðåäïîëîæèì, ÷òî
rank(A) = r < n − l. Èç ýòîãî ñëåäóåò, ÷òî ïåðâûå n − l − r ñòîëáöîâ ýòîé ìàòðèöû ìîæíî îáíóëèòü: 1 a ~ h i −1 e e ∃ F : F AF = 0(n−l)×(n−l−r) , A A = · · · ∈ C(ls)×r . a ~s
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
159
Ñîîòâåòñòâóþùåå ïðåîáðàçîâàíèå ïîäîáèÿ äëÿ ìàòðèö àëãåáðû Ω ïðèâåä¼ò ìàòðèöû áàçèñà ê ñëåäóþùåìó âèäó: I 0 I 0 ~ Ai = Ai = 0 F−1 0 F a ~il×r 0l×l 0l×(n−l−r) = 0(n−l−r)×l bi11(n−l−r)×(n−l−r) bi12(n−l−r)×r i i b22r×r 0r×l b21r×(n−l−r)
äëÿ i = 1, . . . , s. Âñå îñòàëüíûå ìàòðèöû àëãåáðû áóäóò èìåòü òó æå ~ s ). ~ 1, . . . , A ñòðóêòóðó (ïîñêîëüêó îíè ëèíåéíî âûðàæàþòñÿ ÷åðåç A Ïîñëå ýòîãî äëÿ ëþáîé ìàòðèöû èç óñëîâèÿ êîììóòàöèè ñ ~ 1, . . . , A ~ s ïîëó÷àåì, ÷òî a A ~i b21 = 0 äëÿ i = 1, . . . , s. Ýòî ðàâíîñèëüíî 1 a ~ · · · b21 = 0 a ~s Ìàòðèöà A èìååò ïîëíûé ñòîëáöîâûé ðàíã, ñëåäîâàòåëüíî b21 = 0. Òàêèì îáðàçîì, ìàòðèöû àëãåáðû èìåþò âèä 0 0 a ~i i 0 bi (8) 11 b12 0 0 bi22
Èç íèëüïîòåíòíîñòè âñåé ìàòðèöû ñëåäóåò íèëüïîòåíòíîñòü å¼ äèàãîíàëüíûõ áëîêîâ b11 , b22 . Ïîýòîìó, åñëè ïðèâåñòè ìàòðèöû àëãåáðû ê âåðõíåòðåóãîëüíîé îðìå, â áëîêå b11 ïîÿâèòñÿ íóëåâîé ïåðâûé ñòîëáåö. Ñëåäîâàòåëüíî, âî âñåõ ìàòðèöàõ ïîëó÷èâøåéñÿ àëãåáðû (ïîäîáíîé Ω ) íóëåâûõ ñòîëáöîâ íå ìåíåå l + 1, è âñå ýòè ñòîëáöû ñòîÿò â îäíèõ è òåõ æå ïîçèöèÿõ (â íà÷àëå). Òàêèì îáðàçîì ìû ïðèõîäèì ê ïðîòèâîðå÷èþ ñ òåì, ÷òî dim(L) = l. Çíà÷èò, äåéñòâèòåëüíî, rank(A) = n − l, ÷òî è òðåáîâàëîñü ïîêàçàòü. Òåïåðü äëÿ äîêàçàòåëüñòâà îñíîâíîé îöåíêè îñòà¼òñÿ òîëüêî ïîêàçàòü ñâÿçü ìåæäó áëîêàìè a è b äëÿ ìàòðèöû â îðìå (6).
Óòâåðæäåíèå 3. Åñëè âñå ìàòðèöû èç àëãåáðû Ω èìåþò âèä (6), òî èç òîãî, ÷òî áëîê a êàêîé-ëèáî ìàòðèöû íóëåâîé, ñëåäóåò, ÷òî å¼ áëîê b òàêæå îêàæåòñÿ íóëåâûì.
160
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
Äîêàçàòåëüñòâî. ×òîáû ïîêàçàòü ýòî, çàïèøåì óñëîâèå êîììóòàöèè òàêîé ìàòðèöû ñî âñåìè ìàòðèöàìè áàçèñà: 0 0 0 ai 0 ai 0 0 0 0 0 ai b = = = . 0 b 0 bi 0 bi 0 b 0 bbi 0 bi b Îòñþäà ai b = 0, i = 1, . . . , s. Ñëåäîâàòåëüíî, 1 a e =0 · · · b = Ab s a e èìååò ïîëíûé Êàê áûëî ïîêàçàíî â óòâåðæäåíèè 2, ìàòðèöà A ñòîëáöîâûé ðàíã, à çíà÷èò b = 0.
Óòâåðæäåíèå 3 îçíà÷àåò, ÷òî äëÿ ìàòðèöû â îðìå (6) ïî áëîêó a îäíîçíà÷íî îïðåäåëÿåòñÿ áëîê b.  ñàìîì äåëå, åñëè 0 a 0 a , ∈ Ω, 0 b1 0 b2 òî
0 0 a 0 a = − 0 0 b2 0 b1
0 ∈ Ω. b1 − b 2
Èç óòâåðæäåíèÿ 3 ïîëó÷àåì, ÷òî b1 − b2 = 0. Çíà÷èò, ëèíåéíî íåçàâèñèìûõ ìàòðèö â Ω íå áîëåå, ÷åì ëèíåéíî íåçàâèñèìûõ áëîêîâ a. Èç ýòîãî óæå íåïîñðåäñòâåííî ñëåäóåò î íîâíàÿ îöåíêà.
Òåîðåìà 1. Íèëüïîòåíòíàÿ àëãåáðà ñ äååêòîì íîñòü íå áîëåå l(n − l).
l
èìååò ðàçìåð-
Äîêàçàòåëüñòâî
. Èç óòâåðæäåíèÿ 1 ñëåäóåò, ÷òî Ω ïîäîáíà àëãåáðå ñ ìàòðèöàìè â îðìå 0 a . (9) 0 b
Èç óòâåðæäåíèÿ 3 ñëåäóåò, ÷òî áëîê b îäíîçíà÷íî îïðåäåëÿåòñÿ áëîêîì a. Áëîê a èìååò ðàçìåð l × (n − l), çíà÷èò ðàçëè÷íûõ ëèíåéíî íåçàâèñèìûõ áëîêîâ a íå áîëåå l(n − l).
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
161
Îöåíêà, äîêàçàííàÿ â òåîðåìå 1, íå ÿâëÿåòñÿ ìîíîòîííîé ïî l, à äîñòèãàåò ñâîåãî ìàêñèìàëüíîãî çíà÷åíèÿ [n2 /4] ïðè l = [n/2]. Äëÿ êâàçèíèëüïîòåíòíîé è ïðîèçâîëüíîé àëãåáðû îòñþäà ñëåäóåò îöåíêà Øóðà dim(Ω) 6 [n2 /4] + 1. (10) Êàê áûëî ïîêàçàíî â (1), ñóùåñòâóþò àëãåáðû òàêîé ðàçìåðíîñòè, à çíà÷èò, ïîëó÷åííàÿ îöåíêà (10) ÿâëÿåòñÿ òî÷íîé.
3. Îöåíêè ñ èñïîëüçîâàíèåì ëîêàëüíîãî äååêòà Äëÿ ïîñòðîåíèÿ îöåíîê ìû áóäåì ïîëüçîâàòüñÿ òåì, ÷òî åñëè àëãåáðà Ω âëîæåíà â íåêîòîðîå ëèíåéíîå ïîäïðîñòðàíñòâî X, òî dim(Ω) 6 dim(X). Åñëè âûáðàòü íåñêîëüêî ìàòðèö èç Ω è çàäàâàòü ïîäïðîñòðàíñòâî X êàê ìíîæåñòâî ìàòðèö, êîììóòèðóþùèõ ñ âûáðàííûìè, òî, î÷åâèäíî, Ω ⊆ X. Ïðè âûâîäå îöåíîê ìû áóäåì âûáèðàòü èç Ω äâå ìàòðèöû òàêèì îáðàçîì, ÷òîáû ìàêñèìàëüíî ñóçèòü X.
3.1.
.
k = 1 Ïóñòü â êâàçèíèëüïîòåíòíîé àëãåáðå Ω åñòü ìàòðèöà A, èìåþùàÿ ñîáñòâåííîå çíà÷åíèå λA ãåîìåòðè÷åñêîé êðàòíîñòè 1. Ïåðåéä¼ì ê ïîäîáíîé àëãåáðå Ω ′ , ïîëó÷àåìîé ñ ïîìîùüþ ïðåîáðàçîâàíèÿ, ïåðåâîäÿùåãî A â æîðäàíîâó îðìó. Â Ω ′ åñòü åäèíèöà, ñëåäîâàòåëüíî, A ′ − λA I = J æîðäàíîâà êëåòêà ðàçìåðà n e ìíîæåñòâà ìàòòàêæå ñîäåðæèòñÿ â Ω ′ . Íàéä¼ì ðàçìåðíîñòü Ω ′ e îäíàêî, ìîæíî ðèö, êîììóòèðóþùèõ ñ J. Î÷åâèäíî, ÷òî Ω ⊆ Ω, ′ e óòâåðæäàòü, ÷òî Ω = Ω. Æîðäàíîâà êëåòêà J, êàê èçâåñòíî, êîììóòèðóåò ñî âñåìè âåðõíåòðåóãîëüíûìè ò¼ïëèöåâûìè ìàòðèöàìè:
b0
0
b1 b0
··· ··· .. .
bt−1 bt−2 .. . b0
(11)
Ëèíåéíî íåçàâèñèìûõ âåðõíåòðåóãîëüíûõ ò¼ïëèöåâûõ ìàòðèö âñåãî n, è âñå îíè ëèíåéíî âûðàæàþòñÿ ÷åðåç I, J, J2 , . . . , Jn−1 (à âñå ýòè
162
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
ìàòðèöû îáÿçàòåëüíî ñîäåðæàòñÿ â Ω ′ , ïîñêîëüêó àëãåáðà ïî îïðåf′ ) = äåëåíèþ çàìêíóòà îòíîñèòåëüíî óìíîæåíèÿ). Ïîýòîìó dim(Ω n. Òàêèì îáðàçîì, ðàçìåðíîñòü êâàçèíèëüïîòåíòíîé àëãåáðû Ω ⊆ Rn×n , ñîäåðæàùåé ìàòðèöó ãåîìåòðè÷åñêîé êðàòíîñòè 1, â òî÷íîñòè ðàâíà n.
3.2.
.
k = 2 Ïóñòü â êâàçèíèëüïîòåíòíîé àëãåáðå Ω åñòü ìàòðèöà A ñ ñîáñòâåííûì çíà÷åíèåì λA = 0 ãåîìåòðè÷åñêîé êðàòíîñòè 2 (åäèíñòâåííîå ñîáñòâåííîå çíà÷åíèå A ). ż æîðäàíîâà îðìà J = D−1 AD áóäåò ñîñòîÿòü èç äâóõ æîðäàíîâûõ êëåòîê ðàçìåðîâ s è t : J = diag(Js , Jt ). Áóäåì ñ÷èòàòü, ÷òî s 6 t. Êàê è â ñëó÷àå k = 1, ïåðåéä¼ì ê ïîäîáíîé àëãåáðå Ω ′ = {D−1 CD|C ∈ Ω}. Òàêèì îáðàçîì J ∈ Ω′ Ïîñòðîèì áàçèñ Ω ′ : B0 , . . . , Bm−1 . Ìàòðèöû I, J, J2 , . . . , Jt−1 ñîäåðæàòñÿ â Ω ′ è ëèíåéíî íåçàâèñèìû (êðîìå òîãî, ïðè i > t Ji = 0 ). Ïîýòîìó èõ ìîæíî âçÿòü â êà÷åñòâå ïåðâûõ t ìàòðèö áàçèñà: Bi = Ji , i = 0, . . . , t − 1. Î÷åâèäíî, ÷òî ñ åäèíè÷íîé ìàòðèöåé B0 êîììóòèðóåò ëþáàÿ ìàòðèöà ñîîòâåòñòâóþùåãî ðàçìåðà. Åñëè íåêîòîðàÿ ìàòðèöà êîììóòèðóåò ñ B1 = J, òî îíà òàêæå áóäåò êîììóòèðîâàòü ñ B2 , . . . , Bt−1 . Òàêèì îáðàçîì, ïîëó÷èâ ðàçìåðíîñòü ïîäïðîñòðàíñòâà {C ∈ Cn×n |CJ−JC = 0}, ìû áóäåì èìåòü îöåíêó äëÿ dim(Ω ′ ). Íî ìû íå îãðàíè÷èìñÿ ýòèì, à âîçüì¼ì áîëåå óçêîå ïîäïðîñòðàíñòâî. Äëÿ ýòîãî íåêîòîðûì îïòèìàëüíûì îáðàçîì âûáåðåì ñðåäè ìàòðèö Ω ′ âòîðóþ ìàòðèöó K, íå âûðàæàþùóþñÿ ëèíåéíî ÷åðåç B0 , . . . , Bt−1 , e = {C ∈ Cn×n | CJ−JC = CK−KC = è áóäåì îöåíèâàòü ðàçìåðíîñòü Ω e îäíàêî, â íåêîòîðûõ ñëó÷àÿõ îêàçûâà0}. Î÷åâèäíî, ÷òî Ω ′ ⊆ Ω, ′ e åòñÿ, ÷òî Ω = Ω, òàêèì îáðàçîì ïîëó÷àåìûå îöåíêè áóäóò òî÷íû. Äàëüíåéøèå ðàññóæäåíèÿ çàâèñÿò îò òîãî, ðàâíû ëè ðàçìåðû æîðäàíîâûõ êëåòîê.
3.2.1. Ñëó÷àé îäèíàêîâûõ æîðäàíîâûõ áëîêîâ s = t = n/2. .
Èç óñëîâèÿ êîììóòàöèè ñ B1 = J ñëåäóåò, ÷òî ìàòðèöû Bt , . . . , Bm−1 èìåþò âèä B Bi2 , Bi = i1 (12) Bi3 Bi4
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
163
ãäå êàæäûé èç áëîêîâ Bij ( i = t, . . . , m − 1 ) ÿâëÿåòñÿ âåðõíåòðåóãîëüíîé ò¼ïëèöåâîé ìàòðèöåé. Îòíèìàÿ îò Bi ( i = t, . . . , m − 1 ) ëèíåéíûå êîìáèíàöèè I, J, . . . , Jt−1 ëåãêî ïîëó÷èòü Bi′ =
′ Bi1 ′ Bi3
′ Bi2 B − Bi4 = i1 0 Bi3
Bi2 , 0
(13)
′ ïðè ýòîì áëîêè Bij òàêæå áóäóò âåðõíåòðåóãîëüíûìè ò¼ïëèöåâûìè è, êðîìå òîãî, íèëüïîòåíòíûìè (ïîñêîëüêó ìàòðèöû Bi′ íèëüïîòåíòíû). Òåïåðü âûáåðåì ìàòðèöó K âòîðóþ ìàòðèöó, ñ êîòîðîé êîìe Äëÿ ýòîãî ñðåäè áëîêîâ B ′ ( i = t, . . . , m − ìóòèðóþò ýëåìåíòû Ω. ij 1; j = 1, 2, 3 ) íàéä¼ì òàêîé, ó êîòîðîãî íåíóëåâûå ýëåìåíòû ðàñïîëîæåíû áëèæå âñåãî ê äèàãîíàëè: ′ ′ ′ (Bij )0 = (Bij )1 = . . . = (Bij )h−1 = 0 äëÿ ∀i, j, è ∃i0 , j0 òàêèå, ÷òî ′ (Bi0 j0 )h 6= 0 ′ (ïîä (Bij )l ïîíèìàåì ýëåìåíò âåðõíåòðåóãîëüíîé ò¼ïëèöåâîé ìàò′ ðèöû Bij , ðàñïîëîæåííûé íà l -òîé äèàãîíàëè). Òàêèì îáðàçîì, ìû âûáèðàåì ìàòðèöó, ñîäåðæàùóþ âåðõíåòðåóãîëüíûé ò¼ïëèöåâ áëîê ìàêñèìàëüíîãî ðàíãà. Èç íèëüïîòåíòíîñòè ′ ñëåäóåò, ÷òî h > 1. Åñëè òàêèõ è âåðíåòðåóãîëüíîñòè áëîêîâ Bij áëîêîâ íåñêîëüêî, ìîæíî âçÿòü ëþáîé. Òåïåðü â êà÷åñòâå ìàòðèöû K âûáèðàåì Bi0 . Êàê áûëî ñêàçàíî, áóäåì îöåíèâàòü ðàçìåðíîñòü e = {C | CJ − JC = CK − KC = 0}. Ω Äëÿ ýòîãî ñðåäè ìàòðèö
C=
C1 C3
C2 0
(14)
ñ âåðõíåòðåóãîëüíûìè ò¼ïëèöåâûìè áëîêàìè íàéä¼ì âñå òàêèå, êîòîðûå êîììóòèðóþò ñ Bi′0 (êîììóòàöèÿ ñ J îáåñïå÷èâàåòñÿ ñïåöèàëüíûì âèäîì ìàòðèö C ). àñïèñàâ áëî÷íîå ïðîèçâåäåíèå Bi′0 C = CBi′0 è âîñïîëüçîâàâøèñü òåì, ÷òî âåðõíåòðåóãîëüíûå ò¼ïëèöåâû ìàòðèöû âñåãäà êîì-
164
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
ìóòèðóþò, ïîëó÷èì: Bi′0 3 C2 = Bi′0 2 C3 Bi′0 1 C3 = Bi′0 3 C1 Bi′0 2 C1
=
(15)
Bi′0 1 C2
Åñëè h > t/2, òî ñîîòíîøåíèÿ (15) âñåãäà áóäóò âûïîëíÿòüñÿ (ïîñêîëüêó êàæäîå èç ïðîèçâåäåíèé áóäåò â òî÷íîñòè ðàâíî 0). Òàêèõ ëèíåéíî íåçàâèñèìûõ ìàòðèö C áóäåò íå áîëåå 3(t − h), à çíà÷èò, è íå áîëåå 3/4n. Êðîìå òîãî, íóæíî ó÷åñòü ìàòðèöû I, J, J2 , . . . , Jt−1 , e 6 5/4n. êîòîðûõ ðîâíî n/2. Èòîãî ïîëó÷èòñÿ dim(Ω) Òåïåðü ðàññìîòðèì ñëó÷àé h < t/2. Èç ñîîòíîøåíèé (15) íåëüçÿ ïî÷åðïíóòü íèêàêóþ èíîðìàöèþ îá ýëåìåíòàõ c1t−h , . . . , c1t−1 , c2t−h , . . . , c2t−1 è c3t−h , . . . , c3t−1 (òàê êàê îíè ó÷àñòâóþò ñ íóëåâûìè ñîìíîæèòåëÿìè), è ïîýòîìó ýòè ýëåìåíòû çàäàþòñÿ ïðîèçâîëüíî. Îñòàëüíûå æå ýëåìåíòû ( c1h , . . . , c1t−h−1 , c2h , . . . , c2t−h−1 è c3h , . . . , c3t−h−1 ) îäíîçíà÷íî îïðåäåëÿþòñÿ èç (15) ïî èçâåñòíûì 0 cjh0 , . . . , cjt−h−1 . ×òîáû ïîêàçàòü ýòî, âûïèøåì ïîòåíöèàëüíî-íåíóëåâûå áëîêè ìàòðèö Bi′0 j ðàçìåðîâ (t − h) × (t − h) : Bi′0 j
"
# cj 0 B = 0 0
(16)
c1 , B c2 è B c3 , à ãäå j = 1, 2, 3 (ïðè ýòîì õîòÿ áû îäíà èç ìàòðèö B d èìåííî Bj0 , ãàðàíòèðîâàííî íåâûðîæäåííàÿ).
bjh 0 . c Bj = .. . . . 0
bjh+1 bjh ...
. . . bjt−2 . . . bjt−3 .. .. . .
... ...
... ...
bjh 0
bjt−1 bjt−2 .. . , j = 1, 2, 3 bjh+1 j bh
cj áóäóò óìíîæàòüñÿ íà áëîêè ìàòðèö Â ñîîòíîøåíèè (15) áëîêè B
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
165
Cj , ðàçìåðà (t − h) × (t − h) , ðàñïîëîæåííûå â ïðàâîì íèæíåì óãëó: # " ... ... Cj = cj , j = 1, 2, 3 0 C cj áóäóò èìåòü âèä: Ïðè ýòîì áëîêè C 0 . . . 0 cjh cjh+1 . . . cjt−h−1 0 . . . 0 0 cjh . . . cjt−h−2 . .. .. . . . . ... ... ... ... cj = C , j = 1, 2, 3 j 0 . . . . . . . . . . . . . . . ch .. .. . . . . . . . . . . . . . . . . . 0 ... ... ... ... ... 0
(17)
c1 è B c3 = B c3 C c3 , B c1 C c2 = B c2 C c1 = c3 C c2 C Òîãäà (15) ýêâèâàëåíòíî B c c B1 C2 . d d Òàê êàê ìàòðèöà B j0 íåâûðîæäåíà, ïî èçâåñòíîìó áëîêó Cj0 c îïðåäåëÿþòñÿ îñòàëüíûå áëîêè Cj . Èòîãî ïîëó÷àåì ((t − h − 1) − (h − 1)) + 3(t − 1 − (t − h − 1)) = t + h 6 3/4n
(18)
ñòåïåíåé ñâîáîäû äëÿ ìàòðèö C. Ñ ó÷¼òîì I, J, J2 , . . . , Jt−1 áóäåì e 6 5/4n. èìåòü dim(Ω)
3.2.2. Ñëó÷àé ðàçíûõ æîðäàíîâûõ áëîêîâ
.
s < t, s + t = n. Èç óñëîâèÿ êîììóòàöèè ñ B1 = J ñëåäóåò, ÷òî ìàòðèöû Bt , . . . , Bm−1 èìåþò âèä Bi1 Bi2 , Bi = (19) Bi3 Bi4
ãäå áëîêè Bi1 , Bi4 ( i = t, . . . , m − 1 ) âåðõíåòðåóãîëüíûå ò¼ïëèöåâû (ðàçìåðîâ s × s è t × t ñîîòâåòñòâåííî), à áëîêè Bi1 , Bi4 èìåþò âèä: " # h i g B i3 g Bi2 = 0 B , i2 , Bi3 = 0 g g ãäå áëîêè B i1 , Bi3 âåðõíåòðåóãîëüíûå ò¼ïëèöåâû ðàçìåðîâ s × s.
166
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
Îòíèìàÿ îò Bi ( i = t, . . . , m−1 ) ëèíåéíûå êîìáèíàöèè I, J, . . . , Jt−1 ìîæíî îáíóëèòü áëîêè Bi4 , ïðè ýòîì îñòàëüíûå áëîêè ñîõðàíÿò óêàçàííóþ ñòðóêòóðó. Ïîëó÷èì ′ ′ B Bi2 Bi′ = i1 (20) , ′ Bi3 0 " # " # i h i h ′ g g B ′ i3 = Bi3 ′ g g Bi2 = 0 B = 0 B (21) i2 , Bi3 = i2 0 0 Óñëîâèå êîììóòàöèè äëÿ äâóõ ìàòðèö Bi′ , Bj′ ( i è j ëþáûå îò t äî m − 1 ): ′ ′ ′ ′ Bi2 Bj3 = Bj2 Bi3
(22)
′ ′ Bi1 Bj2 ′ ′ Bi3 Bj1 ′ ′ Bi3 Bj2
(23)
= = =
′ ′ Bj1 Bi2 ′ ′ Bj3 Bi1 ′ ′ Bj3 Bi2
(24) (25)
 îòëè÷èå îò ñëó÷àÿ t = s, ãäå áëîêè ìàòðèö Bi′ , Bj′ êâàäðàòíûå ðàçìåðà t × t, ìû íå ìîæåì âîñïîëüçîâàòüñÿ êîììóòàòèâíîñòüþ ïðîèçâåäåíèÿ áëîêîâ (ïîñêîëüêó áëîêè Bi1 , Bi4 , Bj1 , Bj4 óæå íå êâàäðàòíûå). Çàòî, áëàãîäàðÿ ïðåäñòàâëåíèþ (21), ñîîòíîøåíèÿ (23), (24), (25) ýêâèâàëåíòíû ñëåäóþùèì ñîîòíîøåíèÿì äëÿ êâàäðàòíûõ áëîêîâ ðàçìåðà s × s : ′ g ′ = B′ B ′ g Bi1 Bj2 j1 i2
(26)
′ g ′ ′ g ′ g g B i3 Bj2 = Bj3 Bi2
(28)
′ ′ ′ ′ g g B i3 Bj1 = Bj3 Bi1
(27)
(î÷åâèäíî, îòêèíóâ óñëîâèå (22), ìû íå óìåíüøèëè êîëè÷åñòâî ìàòðèö, óäîâëåòâîðÿþùèõ óñëîâèÿì êîììóòàöèè). Òåïåðü ëåãêî çàìåòèòü, ÷òî ïîëó÷åííûå ñîîòíîøåíèÿ (26), (27), ci , c Bj ∈ C2s×2s ñ êâàäðàò(28) îáåñïå÷èâàþò êîììóòàöèþ ìàòðèö B íûìè âåðíåòðåóãîëüíûìè ò¼ïëèöåâûìè áëîêàìè: # # " " ′ ′ ′ g ′ g B B B B j1 j2 i1 i2 , B c′ = c′ = B j i ′ ′ g g Bj3 0 B 0 i3
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
167
Ìû ïîêàçàëè, ÷òî åñëè ìàòðèöû Bi′ , Bj′ êîììóòèðóþò, òî ìàòðèci , c öû B Bj òàêæå êîììóòèðóþò. Êðîìå òîãî, î÷åâèäíî, ÷òî ìàòðèöû
′ Bt′ , . . . , Bm−1 ëèíåéíî íåçàâèñèìû òîãäà è òîëüêî òîãäà, êîãäà ìàò′ c \ ëèíåéíî íåçàâèñèìû. ðèöû B , . . . , B ′ t
m−1
′ c′ , . . . , B \ b èç B Âîïðîñû âûáîðà ìàòðèöû K t m−1 è âûÿñíåíèÿ êîëè÷åñòâà ëèíåéíî íåçàâèñèìûõ ìàòðèö òðåáóåìîãî âèäà, êîììóòèðóþb ñâîäèòñÿ ê àíàëîãè÷íûì âîïðîñàì â ðàññìîòðåííîì ðàíåå ùèõ ñ K, b = 2s. Òàñëó÷àå æîðäàíîâûõ áëîêîâ îäèíàêîâîãî ðàçìåðà ïðè n n = 3/2s. Ñ ó÷¼òîì I, J, J2 , . . . , Jt−1 êèõ ìàòðèö (ñì. 18) íå áîëåå 3/4b e 6 3/2s + t = 3/4n − 1/4(t − s) < 5/4n Òàêèì îáðàïîëó÷èì: dim(Ω)
çîì, îöåíêà dim (Ω) 6 5/4n âåðíà âíå çàâèñèìîñòè îò ñîîòíîøåíèÿ ìåæäó ðàçìåðàìè æîðäàíîâûõ áëîêîâ. Ìîæíî ïîêàçàòü [2℄, ÷òî äëÿ íåêîòîðûõ àëãåáð ýòà îöåíêà òî÷íà.
3.3. k îäèíàêîâûõ æîðäàíîâûõ áëîêîâ.
Ïóñòü àëãåáðà Ω ñîäåðæèò ìàòðèöó A, ïîäîáíóþ æîðäàíîâîé îðìå G = diag(J, . . . , J) = | {z } k
DAD−1 , ãäå âñå æîðäàíîâû êëåòêè J ðàçìåðà t × t ( n = kt ). Òîãäà ìîæíî ïåðåéòè ê ïîäîáíîé àëãåáðå Ω ′ = C ′ |C ′ = DCD−1 , C ∈ Ω , ñîäåðæàùåé ìàòðèöó G (îïÿòü æå dim (Ω) = dim (Ω ′ ) ). Ïîñòðîèì áàçèñ Ω ′ . Ïîñêîëüêó ìàòðèöû I, G, . . . , Gt−1 ëèíåéíî íåçàâèñèìû, ñóùåñòâóåò áàçèñ Ω ′ : A0 , A1 , . . . , Am−1 , â êîòîðîì Ai = Ai , i = 0, . . . , t − 1.  ñèëó êîììóòàöèè ñ G âñå ìàòðèöû Al ( l = 0, . . . , m − 1 ) áóäóò ñîñòîÿòü èç k2 âåðõíåòðåóãîëüíûõ ò¼ïëèöåâûõ áëîêîâ ðàçìåðà t×t : l A11 Al12 . . . Al1k Al21 Al22 . . . Al2k Al = (29) ... ... ... ... Alk1 Alk2 . . . Alkk
Òåïåðü ïðåîáðàçóåì ìàòðèöû áàçèñà ñïåöèàëüíûì îáðàçîì (ñìûñë ýòîãî ïðåîáðàçîâàíèÿ ðàçúÿñíèòñÿ ïîçæå). Åñëè ó ò¼ïëèöåâûõ áëîêîâ ìàòðèöû Ai Ai11 , Ai22 , . . . , Aikk ñîâïàäàþò ïåðâûå hi ýëåìåíòîâ â ïåðâûõ ñòðîêàõ, òî â ñèëó âåðõíåòðåóãîëüíîé ò¼ïëèöåâîé ñòðóêòóðû áëîêîâ ìàòðèö Ai ïåðâûå hi äèàãîíàëåé êàæ-
168
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
äîãî èç ýòèõ áëîêîâ ìîæíî îáíóëèòü, îòíèìàÿ îò Al ëèíåéíûå êîìáèíàöèè I, J, . . . , Jt−1 (èç íèëüïîòåíòíîñòè ìàòðèö Ai ñëåäóåò, ÷òî hi > 1 ). Ïîëó÷àåì íîâûé áàçèñ B0 , . . . , Bt−1 , Bt , . . . , Bm−1 , B0 = A0 = I, B1 = A1 = G, . . . , Bt−1 = At−1 = Gt−1 (áëîêè ìàòðèö íîâîãî áàçèñà ïî-ïðåæíåìó âåðõíåòðåóãîëüíûå ò¼ïëèöåâû). Òåïåðü, êàê è â ñëó÷àå äâóõ îäèíàêîâûõ æîðäàíîâûõ áëîêîâ, îïðåäåëèì ÷èñëî h íîìåð ïåðâîé íåíóëåâîé äèàãîíàëè ñðåäè áëîêîâ ìàòðèö Bi ( i = t, . . . , m − 1; 1 6 h 6 t ). (Blij )|1s = 0 äëÿ ∀l, i, j, s 6 h è ∃l0 , i0 , j0 òàêèå, ÷òî (Bli00 j0 )1,h+1 6= 0. (äðóãèìè ñëîâàìè âûáèðàåì áëîê íàèáîëüøåãî ðàíãà r0 ñðåäè ò¼ïëèöåâûõ áëîêîâ ìàòðèö At , . . . , Am−1 , òîãäà h = t − r0 ) Ìàòðèöó Bl0 , êîòîðàÿ îáëàäàåò íàèáîëüøèì ÷èñëîì áëîêîâ ñ íåíóëåâîé h òîé äèàãîíàëüþ, îáîçíà÷èì K. Îòìåòèì, ÷òî åñëè áû ìû íå ïðîâåëè óêàçàííóþ ìàõèíàöèþ ñ ìàòðèöàìè áàçèñà, òî h ìîãëî áû îêàçàòüñÿ ðàâíûì 0 (ïîñêîëüêó ê ëþáîé ìàòðèöå áàçèñà ìîæíî ïðèáàâèòü I ), è h íå íåñëî áû íèêàêîé ïîëåçíîé äëÿ íàñ èíîðìàöèè (ñ òîé æå öåëüþ â ïðåäûäóùèõ ïàðàãðààõ ìû îáíóëÿëè îäèí èç äèàãîíàëüíûõ áëîêîâ). Âûÿñíèì òåïåðü óñëîâèÿ êîììóòàöèè îñòàëüíûõ ìàòðèö ñ K. Ïðè h > t/2 = n/2k ëþáàÿ ìàòðèöà óêàçàííîãî âèäà áóäåò êîììóòèðîâàòü ñ K (ïîñêîëüêó KBl = Bl K = 0 ). Ïðè ýòîì ñðåäè íèõ âñòðåòÿòñÿ Gh , . . . , Gt−1 . Ïîëó÷èì 1 t kn n ′ 2t (30) dim(Ω ) = t − h + k 6 + k+ = 2 2 2 2 k Äàëåå ñ÷èòàåì h < t/2. àñïèñàâ áëî÷íûå ïðîèçâåäåíèÿ KBl = Bl K è âîñïîëüçîâàâøèñü êîììóòàòèâíîñòüþ ïðîèçâåäåíèÿ âåðõíåòðåóãîëüíûõ ò¼ïëèöåâûõ ìàòðèö, ïîëó÷èì k2 ìàòðè÷íûõ óðàâíåíèé âèäà (K1i Blj1 + . . . + Kki Bljk ) − (Kj1 Bl1i + . . . + Kjk Blki ) = 0
(31)
äëÿ i, j = 1, . . . , k. Ïîñêîëüêó áëîêè Blij âåðõíåòðåóãîëüíûå ò¼ïëèöåâû, ýòè óðàâíåíèÿ ðàâíîñèëüíû óðàâíåíèÿì äëÿ èõ ïîñëåäíèõ ñòîëáöîâ. Îáîçíà÷èì ïîñëåäíèé ñòîëáåö áëîêà Blij êàê blij ∈ Ct (ïî íåìó áëîê Blij
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
169
îäíîçíà÷íî îïðåäåëÿåòñÿ). Òîãäà êàæäîå ìàòðè÷íîå óðàâíåíèå (31) ýêâèâàëåíòíî óðàâíåíåíèþ äëÿ âåêòîð-ñòîëáöîâ blij : (K1i blj1 + . . . + Kki bljk ) − (Kj1 bl1i + . . . + Kjk blki ) = 0
(32)
èõ òàêæå áóäåò k . Èç òîãî, êàê ìû çàäàëè h, ñëåäóåò, ÷òî íå ìåíåå h ïîñëåäíèõ ýëåìåíòîâ êàæäîãî èç âåêòîðîâ blij íóëåâûå. Âñåãî ïîëó÷àåì k2 h íóëåé. Ïîñêîëüêó â (32) ïðè ïåðâûõ h ýëåìåíòàõ blij ñòîÿò òîëüêî íóëåâûå ñîìíîæèòåëè (ñì. ñïîñîá âûáîðà K ), çàäàþòñÿ îíè ïðîèçâîëüíî. Èòîãî hk2 ñòåïåíåé ñâîáîäû. Îáðåæåì âåêòîðà blij , èñêëþ÷èâ ýòè ′ ïåðâûå h ýëåìåíòîâ. Ïîëó÷èì âåêòîðà blij ∈ Ct−h . Ïðè ýòîì ïî′ ñëåäíèå h − 1 êîîðäèíàò âåêòîðîâ blij ðàâíû 0 (ýòî ñëåäóåò èç ñïîñîáà îïðåäåëåíèÿ h ). Îáîçíà÷èì ïðàâûå âåðõíèå ïîòåíöèàëüíî-íåíóëåâûå ïîäáëîêè ′ áëîêîâ Kij êàê Kij ∈ C(t−h)×(t−h) . Îíè âåðõíåòðåóãîëüíûå ò¼ïëèöåâû, îäèí èç íèõ ãàðàíòèðîâàííî íåâûðîæäåííûé. Îáîçíà÷èì ìàòðèöó èç ïðåîáðàçîâàííûõ áëîêîâ â ïðåæíåì ïîðÿäêå K ′ . ′ ′ Äëÿ îáðåçàííûõ ìàòðèö Kij è îáðåçàííûõ âåêòîðîâ blij ñîîòíîøåíèÿ (32) ïåðåïèñûâàþòñÿ àíàëîãè÷íûì îáðàçîì: 2
′
′
′
′
′ ′ ′ ′ (K1i blj1 + . . . + Kki bljk ) − (Kj1 bl1i + . . . + Kjk blki ) = 0
(33)
Íåâûðîæäåííûé áëîê Ki0 j0 âñòðå÷àåòñÿ ñðåäè óðàâíåíèé (33) 2k ðàç, ïðè ÷¼ì ìîæíî âûäåëèòü 2k − 1 óðàâíåíèé, â êàæäîì èç êîòîðûõ îí âñòðå÷àåòñÿ â ïðîèçâåäåíèè ñ âåêòîðàìè, êîòîðûå íå èãóðèðóþò â îñòàâøèõñÿ 2k − 2 óðàâíåíèÿõ. Ýòî îçíà÷àåò, ÷òî ′ 2k − 1 âåêòîðîâ blki âûðàæàþòñÿ ÷åðåç îñòàëüíûå. Ìîæíî îáúÿñíèòü ýòî èíà÷å. ′ ′ ′ ′ Èç âåêòîðîâ bl11 , . . . , bl1k , bl21 , . . . . . . , blkk ñêëåèì âåêòîð bl ∈ k2 (t−h) C . Äëÿ íåãî íàáîð óðàâíåíèé (33) ïåðåïèñûâàåòñÿ â âèäå ñèñòåìû: Xbl = 0, ãäå X áëî÷íàÿ ìàòðèöà ñïåöèàëüíîãî âèäà: ′ ′ ′ ] diag[K12 ] ... diag[K1k ] −K ′BT + diag[K11 ′ ′ ′ diag[K21 ] −K ′BT + diag[K22 ] ... diag[K2k ] X= ... ... ... ... ′ diag[Kk1 ]
′ diag[Kk2 ]
′ . . . −K ′BT + diag[Kkk ]
170
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
K ′BT áëî÷íîå òðàíñïîíèðîâàíèå; ′ ′ ′ ) ∈ C(k(t−h))×(k(t−h)) = C(n−kh)×(n−kh) ] = diag(Kij , . . . , Kij diag[Kij | {z } k
áëî÷íî-äèàãîíàëüíàÿ ìàòðèöà. Èç ñïîñîáà âûáîðà ìàòðèöû K ñëåäóåò, ÷òî rank(X) > (2k−2)(t− h) 6 2n − 2kh + 2t − 2h. Òîãäà (2k − 1)(t − 2h + 1) ýëåìåíòîâ îïðåäåëÿþòñÿ ïî èçâåñòíûì îñòàëüíûì k2 (t − 2h) − (2k − 2)(t − 2h) = (k − 1)2 (t − 2h + 1) åãî ýëåìåíòàì. Ñ ó÷¼òîì hk2 ïðîèçâîëüíî çàäàâàåìûõ ýëåìåíòîâ è I, J, . . . , Jt−h ïîëó÷àåì dim(Ω ′ ) = hk2 + t − h + (k2 − 2k − 2)(t − 2h) 6 n (k − 1/k)
(34)
Òàêèì îáðàçîì, èç (30), (34) ñëåäóåò, ÷òî äëÿ àëãåáðû, ñîäåðæàùåé ìàòðèöó ñ k îäèíàêîâûìè æîðäàíîâûìè áëîêàìè, âåðíà îöåíêà 1 1 n dim(Ω) < max k+ ; n k− (35) 2 k k Ïîñêîëüêó ïîëó÷åííàÿ îöåíêà ÿâëÿåòñÿ âîçðàñòàþùåé óíêöèåé îò k, òî äëÿ ïîëó÷åíèÿ íàèëó÷øåé îöåíêè íóæíî âûáðàòü ìèíèìàëüíûé ëîêàëüíûé äååêò kmin : n 1 1 kmin + ; n kmin − dim(Ω) < max (36) 2 kmin kmin
(òàêèì îáðàçîì, ìû âûáèðàåì íàèëó÷øóþ èç ëîêàëüíûõ îöåíîê). Îäíàêî äàæå òåïåðü ïîëó÷åííàÿ îöåíêà (36) ìîæåò áûòü çàâûøåíà: âî-ïåðâûõ, ìû íå ó÷èòûâàåì, ÷òî ìàòðèöû èç Ω íå ìîãóò èìåòü ìåíüøèé äååêò (ïîñêîëüêó ìû âûáèðàåì G ñ äååêòîì kmin , ìèíèìàëüíûì â Ω ), è, âî-âòîðûõ, ñðåäè ìàòðèö, êîììóòèðóþùèõ ñ G è K, ìû ó÷èòûâàåì òàêæå ìàòðèöû, íå ÿâëÿþùèåñÿ íèëüïîòåíòíûìè (êîòîðûõ çàâåäîìî íå ìîæåò áûòü â Ω ). Îñîáåííî çíà÷èòåëüíà îøèáêà ïðè áîëüøèõ k. Ìàêñèìóì îöåíêè (36) äîñòèãàåòñÿ ïðè k = n è ðàâåí n2 −1, ÷òî çíà÷èòåëüíî ïðèâîñõîäèò òî÷íóþ âåðõíþþ îöåíêó n2 /4. Ìû íå äîêàçàëè, ÷òî äëÿ k áëîêîâ ðàçíûõ ðàçìåðîâ îöåíêà (36) ïî-ïðåæíåìó áóäåò âåðíà, íî, ïî àíàëîãèè ñî ñëó÷àåì k = 2, ýòî êàæåòñÿ âåðíûì. Îñòàâëÿåì ýòî óòâåðæäåíèå â êà÷åñòâå ãèïîòåçû.
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð
171
4. Ñâÿçü îöåíîê ñ l è k
Î÷åâèäíî, ïîëó÷åííûå îöåíêè è îò l, è îò k çàâûøåíû. Íàïðèìåð, äëÿ íèëüïîòåíòíîé àëãåáðû, ïîðîæä¼ííîé ìàòðèöåé G = diag(J, J) (ãäå J æîðäàíîâà êëåòêà ðàçìåðà n/2 ), Ω = span(G, G2 , . . . , Gn/2−1 ) îáùèé è ìèíèìàëüíûé äååêòû ðàâíû 2, è ìû ïîëó÷àåì îöåíêè 2n − 4 (îò l ) è 5/4n (îò kmin ), â òî âðåìÿ êàê íà ñàìîì äåëå dim(Ω) = n/2 − 1.  äàííîì ñëó÷àå îöåíêà îò l õóæå, ÷åì îò kmin. Îäíàêî, âîçìîæíû è îáðàòíûå ñèòóàöèè, êîãäà îöåíêà îò l ëó÷øå. Ïîñêîëüêó l 6 kmin 6 k è îöåíêà l(n − l) ìîíîòîííî âîçðàñòàåò ïðè l 6 n/2, â íå¼ ìîæíî ïîäñòàâëÿòü ëîêàëüíûå äååêòû k 6 n/2. Åñëè æå k > n/2, òî ýòî óæå íåâîçìîæíî: ìîæåò îêàçàòüñÿ, ÷òî l = n/2, è òîãäà l(n − l) > k(n − k). Íî â ýòîì ñëó÷àå ( k > n/2 ) ïî÷òè âñåãäà (à èìåííî ïðè n > 2 ) îöåíêà îò k áóäåò ïðåâîñõîäèòü òî÷íóþ âåðõíþþ îöåíêó n2 /4 : 1 n2 n 2 n2 k > n/2 => n k − >n = − −2> k 2 n 2 4
(37)
√ Îöåíêè ïî k(n − k) è n(k − 1/k) ñîâïàäóò ïðè k = 3 n, ïîýòîìó ëîêàëüíóþ îöåíêó ìîæíî ìîäèèöèðîâàòü ñëåäóþùèì îáðàçîì: n, 5/4n, dim(Ω) 6 f(k), f(k) = n (k − 1/k) , k (n − k) , 2 n /4,
k=1 k=2 √ 2 < k 6 [ 3 n] √ [ 3 n] < k < n/2 n/2 6 k
(38)
Ýòà îöåíêà óëó÷øàåòñÿ ïðè ïîäñòàíîâêå kmin . Äëÿ êàæäîãî èç èíòåðâàëîâ èçìåíåíèÿ k ñóùåñòâóþò àëãåáðû, äëÿ êîòîðûõ ïîëó÷åííàÿ îöåíêà áóäåò òî÷íîé.
Ñïèñîê ëèòåðàòóðû
[1℄ Ñóïðóíåíêî Ä. À., Òûøêåâè÷ . È. Ïåðåñòàíîâî÷íûå ìàòðèöû Ìîñêâà: Åäèòîðèàë ÓÑÑ, 2003.
172
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
[2℄ K. C. O'Meara, C. Vinsonhaler. On approximately simultaneously . diagonalizable matri es // 2006. 1. P. 39-74.
Linear algebra and its appli ations
Òîï50. åéòèíã íàèáîëåå ïðîèçâîäèòåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì ÑÍ Ä. À. Íèêèòåíêî
⋆
 ïîñëåäíèå ãîäû ñåðà âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé ïåðåæèâàåò íàñòîÿùèé áóì. Îãðîìíûìè òåìïàìè ðàñòåò ïðîèçâîäèòåëüíîñòü ñèñòåì, ðàñøèðÿåòñÿ êðóã îáëàñòåé ïðèìåíåíèÿ è ðàñòåò âîñòðåáîâàííîñòü òàêèõ òåõíîëîãèé â öåëîì.  òàêèõ óñëîâèÿõ äàæå ñïåöèàëèñòàì ñëîæíî áûòü â êóðñå âñåõ ïîñëåäíèõ èçìåíåíèé è òåíäåíöèé. Ïðîåêò Òîï50 [1℄ ñòàâèò ñâîåé öåëüþ, ïðåæäå âñåãî, ïðåäîñòàâèòü èñ÷åðïûâàþùóþ èíîðìàöèþ î íàèáîëåå ìîùíûõ âû÷èñëèòåëüíûõ ñèñòåìàõ ÑÍ , ïðåäîñòàâëÿÿ âîçìîæíîñòü êàê ïðîàíàëèçèðîâàòü òåêóùèå òåíäåíöèè, òàê è ïî÷åðïíóòü óñïåøíûé îïûò ñîçäàíèÿ òàêèõ ñèñòåì. Òàêàÿ èíîðìàöèÿ, áåçóñëîâíî, êðàéíå ïîëåçíà øèðîêîìó êðóãó ïðîåññèîíàëîâ è íà÷èíàþùèõ: ðàçðàáîò÷èêàì, ïîñòàâùèêàì, èññëåäîâàòåëÿì, ïîëüçîâàòåëÿì ñóïåðêîìïüþòåðîâ.
1. Î ïðîåêòå
Íà÷èíàÿ ñ ìîìåíòà ïîÿâëåíèÿ ïåðâûõ êîìïüþòåðîâ, èññëåäîâàòåëè ïîñòîÿííî ñòàëêèâàëèñü ñ çàäà÷àìè, äëÿ ðåøåíèÿ êîòîðûõ ñóùåñòâóþùèõ âû÷èñëèòåëüíûõ ìîùíîñòåé áûëî íåäîñòàòî÷íî. Òàêèå çàäà÷è âîçíèêàëè è âîçíèêàþò â ñàìûõ ðàçëè÷íûõ îáëàñòÿõ: àýðîäèíàìèêà è íåòåäîáû÷à, ïðîãíîç ïîãîäû è ìèêðîýëåêòðîíèêà, àðìàöåâòèêà è ïðîåêòèðîâàíèå íîâûõ ìàòåðèàëîâ, êðèïòîãðàèÿ è áèîèíæåíåðèÿ ýòî ëèøü íåáîëüøîé ñïèñîê îáëàñòåé, ãäå äëÿ ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
174
Ä. À. Íèêèòåíêî
óñïåøíîãî ïðîäâèæåíèÿ âïåðåä òðåáóþòñÿ êîìïüþòåðû ñ äåéñòâèòåëüíî çàïðåäåëüíîé ïðîèçâîäèòåëüíîñòüþ. ×òîáû ïîìî÷ü ïðàâèëüíî ñîðèåíòèðîâàòüñÿ â ìèðå âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì è èìåòü âîçìîæíîñòü îïåðàòèâíî îòñëåæèâàòü òåíäåíöèè ðàçâèòèÿ äàííîé îáëàñòè, Íàó÷íîèññëåäîâàòåëüñêèé âû÷èñëèòåëüíûé öåíòð Ì Ó èìåíè Ì.Â.Ëîìîíîñîâà è Ìåæâåäîìñòâåííûé ñóïåðêîìïüþòåðíûé öåíòð ÀÍ â ìàå 2004 ãîäà íà÷àëè ñîâìåñòíûé ïðîåêò ïî îðìèðîâàíèþ ñïèñêà 50 íàèáîëåå ìîùíûõ êîìïüþòåðîâ ÑÍ Òîï50 [1℄.  ñïèñîê âêëþ÷àþòñÿ 50 âû÷èñëèòåëüíûõ ñèñòåì, óñòàíîâëåííûõ íà òåððèòîðèè ÑÍ è ïîêàçûâàþùèõ ê ìîìåíòó âûõîäà ñïèñêà íàèáîëüøóþ ïðîèçâîäèòåëüíîñòü íà òåñòå Linpa k. åéòèíã îáíîâëÿåòñÿ äâà ðàçà â ãîä: â íà÷àëå âåñíû è îñåíè. Îñåííÿÿ ðåäàêöèÿ ðåéòèíãà îáúÿâëÿåòñÿ íà òðàäèöèîííîé ñåðèè Âñåðîññèéñêèõ íàó÷íûõ êîíåðåíöèé ¾Íàó÷íûé ñåðâèñ â ñåòè Èíòåðíåò¿. Ïî çàïðîñó çàÿâèòåëÿì âñåì ïîïàâøèõ â ñïèñîê ñèñòåì âûäàþòñÿ îèöèàëüíûå ñåðòèèêàòû óñòàíîâëåííîãî îáðàçöà. Çà âðåìÿ ñâîåãî ñóùåñòâîâàíèÿ, ñ êîíöà 2004 ãîäà, ïðîåêò çàñëóæèë ðåïóòàöèþ êà÷åñòâåííîãî è îáúåêòèâíîãî àíàëèòè÷åñêîãî èíñòðóìåíòà â îáëàñòè ïîñòðîåíèÿ âû÷èñëèòåëüíûõ ñèñòåì íà òåððèòîðèè ñòðàí ÑÍ .
2. Ïðåäîñòàâëÿåìûé ñåðâèñ
Ïîìèìî äàííûõ î ïèêîâîé è äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè, ïðè ïîäà÷å çàÿâêè íà ó÷àñòèå â ðåéòèíãå ìîæåò óêàçûâàòüñÿ, â äîñòàòî÷íîé ìåðå, èñ÷åðïûâàþùèé ïåðå÷åíü õàðàêòåðèñòèê è ïàðàìåòðîâ ñèñòåìû: îò ìåñòà óñòàíîâêè è ðàçðàáîò÷èêîâ, è äî ïîäðîáíîãî îïèñàíèÿ êîíèãóðàöèè îòäåëüíûõ óçëîâ êëàñòåðîâ, òèïàõ êîììóíèêàöèîííûõ ñðåä è ò.ï. Íàëè÷èå òàêîé îáøèðíîé èíîðìàöèè ïî ñèñòåìàì äàåò âîçìîæíîñòü íå òîëüêî âèäåòü êîíêðåòíûå ðåøåíèÿ â äåòàëÿõ, íî è îöåíèòü, êàêîé ïîäõîä â ïîñòðîåíèè âû÷èñëèòåëüíûõ êîìïëåêñîâ ïîêàçûâàåò ñåáÿ ýåêòèâíûì â êîíêðåòíûõ îáëàñòÿõ ïðèìåíåíèÿ. Íà ñàéòå ïðîåêòà ìîæíî ïîëó÷èòü êàê ëþáóþ âûøåäøóþ ðåäàêöèþ ðåéòèíãà â ñòàíäàðòíîé îðìå, òàê è ñîðìèðîâàòü òàáëèöó
Òîï50
175
ñ îòðàæåíèåì êîíêðåòíûõ èíòåðåñóþùèõ ïàðàìåòðîâ.  ñî÷åòàíèè ñ ðàçäåëîì ¾ñòàòèñòèêà¿, ãäå íàõîäÿòñÿ ñòàòèñòè÷åñêèå äàííûå ïî ðåéòèíãàì, êàê â âèäå òàáëèö, òàê è ãðàèêîâ, ïîëüçîâàòåëü ïîëó÷àåò âîçìîæíîñòü îòñëåäèòü âñå èçìåíåíèÿ è òåíäåíöèè çà èñòîðèþ âåäåíèÿ ðåéòèíãà, à çíà÷èò, è ïîëó÷àåò îñíîâó äëÿ òîãî, ÷òîáû ïîïûòàòüñÿ ïðåäóãàäàòü, ÷òî áóäåò ïðîèñõîäèòü â ýòîé ñåðå íà ñëåäóþùåì ýòàïå.
3. Ñîïîñòàâëåíèå ñ Òîð500
Ïðè ðàçðàáîòêå ïðîåêòà Òîï50, áåçóñëîâíî, áîëüøîå âíèìàíèå óäåëÿëîñü øèðîêî èçâåñòíîìó è, ìîæíî ñêàçàòü, ñòàâøåìó óæå ýòàëîííûì â ìèðîâîì ìàñøòàáå ïðîåêòó Top500 [2℄. Ïî÷åìó æå òîãäà íóæåí òàêîé ðåéòèíã, êàê Òîï50, åñëè åñòü îáùåïðèíÿòûé Top500? Ïðåæäå âñåãî, ýòî ñâÿçàíî ñ ìàñøòàáàìè. Òîð500 ðåéòèíã, â êîòîðîì ó÷àñòâóþò ñèñòåìû ñî âñåãî ìèðà. Ïðè íûíåøíèõ òåìïàõ ðàçâèòèÿ â ýòîé îáëàñòè, êîãäà êàæäûé ãîä ïîÿâëÿåòñÿ îãðîìíîå êîëè÷åñòâî íîâûõ ñèñòåì, ïðè÷åì, âñå áîëåå è áîëåå ìîùíûõ, î÷åâèäíî, ÷òî ñîñòîÿíèå îòðàñëè â îòäåëüíîé ñòðàíå íå ìîæåò áûòü â äîñòàòî÷íîé ìåðå îòðàæåíî òàêèì ñïèñêîì. Ïðîñòî ïîòîìó, ÷òî ðåéòèíã Òîð500 ïðåñëåäóåò äðóãèå öåëè è îòðàæàåò ñèòóàöèþ íà ìèðîâîì óðîâíå. Íî åñòü âîçìîæíîñòü îöåíèòü ëèäåðîâ, êàê âñåìèðíûõ, òàê è îòäåëüíî âçÿòûõ ðåãèîíîâ. Òàê, íàïðèìåð, â ðåäàêöèþ Top500 îò íîÿáðÿ 2007 ãîäà ïîïàëî âñåãî ëèøü ñåìü îòå÷åñòâåííûõ ñèñòåì. Êàêîé ïðîèçâîäèòåëüíîñòüþ äîëæíà îáëàäàòü ñèñòåìà, ÷òîáû ïîïàñòü â ñïèñêè Òîï50 è Òîð500? Íèæíÿÿ ãðàíèöà â 7-îé ðåäàêöèè ðåéòèíãà Òîï50 îò ñåíòÿáðÿ 2007ã. 253.6 GFlops, â 30-îé ðåäàêöèè Òîð500 îò íîÿáðÿ 2007ã 5930 GFlops.  ïðåäûäóùèõ ðåäàêöèÿõ ñïèñêîâ 196.1 è 4005 GFlops, ñîîòâåòñòâåííî. åéòèíã Òîï50 ñòàâèò ñâîåé öåëüþ îòðàçèòü ñîñòîÿíèå èìåííî îòå÷åñòâåííîé ñîñòàâëÿþùåé îáëàñòè âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé. Ïîìî÷ü ðàçîáðàòüñÿ â òåíäåíöèÿõ è ñêëàäûâàþùåéñÿ ñèòóàöèè, èìåííî â ðàìêàõ ÑÍ , ïðåäîñòàâëÿÿ áîëüøå èíîðìàöèè äëÿ ðàçìûøëåíèÿ, è, êàê ñëåäñòâèå, äëÿ äàëüíåéøåãî ðàçâèòèÿ ðàáîòû èññëåäîâàòåëåé, ðàçðàáîò÷èêîâ, ïîñòàâùèêîâ è ïîëüçîâàòåëåé ñóïåðêîìïüþòåðíûõ òåõíîëîãèé íà òåððèòîðèè Ô è ñòðàí ÑÍ
176
Ä. À. Íèêèòåíêî
â ýòîì îñíîâíàÿ çàäà÷à ïðîåêòà. Îáëàñòü îïðåäåëåíèÿ ðåéòèíãîâ îáóñëàâëèâàåò è òåìïû îáíîâëåíèÿ ñàìîãî ñîäåðæèìîãî ñïèñêà ëèäèðóþùèõ ñèñòåì. Òàê, çà ïîñëåäíèå ÷åòûðå ðåäàêöèè â ñïèñêå Òîð500 ïîÿâëÿëîñü, â ñðåäíåì, áîëåå 200 (à ýòî áîëåå 40%) íîâûõ ñèñòåì, ïðè÷åì, â ðåäàêöèè îò èþíÿ 2007 ãîäà 285 (57%).  ñïèñêå æå Òîï50 óñòîÿâøèìñÿ òåìïîì ìîæíî ñ÷èòàòü óðîâåíü â äåñÿòü íîâûõ ñèñòåì (èëè àïãðåéäîâ), òî åñòü 20%. Îäíàêî, è îá ýòîì áóäåò ñêàçàíî äàëåå áîëåå ïîäðîáíî, íåñìîòðÿ íà òàêóþ êîëè÷åñòâåííóþ ðàçíèöó, êà÷åñòâåííûå òåíäåíöèè â îòå÷åñòâåííîé îáëàñòè âûãëÿäÿò âïîëíå äîñòîéíî. ×åì áîëüøå ïàðàìåòðîâ ñèñòåì â ðåéòèíãå ìîæåò áûòü äîñòóïíî ïîëüçîâàòåëþ, òåì ãëóáæå è âñåñòîðîííåå ìîãóò áûòü ñäåëàòü âûâîäû, òåì âåðíåå ìîãóò áûòü ñäåëàíû ïîñëåäóþùèå ðåøåíèÿ. Èìåííî ïîýòîìó ðàçðàáîò÷èêè ðåéòèíãà ñòàðàþòñÿ ïðåäñòàâèòü âñþ äîñòóïíóþ èíîðìàöèþ î ñèñòåìàõ â ìàêñèìàëüíîì îáúåìå. È äåòàëüíîñòü èíîðìàöèè î ñèñòåìàõ, ïîæàëóé, âûãîäíî îòëè÷àåò Òîï50 îò Top500. àçâèòèå ñòàòèñòè÷åñêèõ ñåðâèñîâ ÿâëÿåòñÿ ïðèîðèòåòíûì íàïðàâëåíèåì ðàçâèòèÿ ïðîåêòà. Áóäó÷è ñòèìóëèðóåìîé âûñîêîé âîñòðåáîâàííîñòüþ âû÷èñëèòåëüíûõ ìîùíîñòåé, îáëàñòü âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé ðàçâèâàåòñÿ ÷ðåçâû÷àéíî èíòåíñèâíûìè òåìïàìè. Ñîîòâåòñòâåííî, ñ ïîÿâëåíèåì íîâûõ òåõíîëîãèé, ñî âðåìåíåì ìåíÿþòñÿ è ïîäõîäû ê èññëåäîâàíèþ, ìåíÿþòñÿ è ñàìè èññëåäóåìûå ïàðàìåòðû. Íàïðèìåð, åñëè åùå ãîä-äâà íàçàä êîëè÷åñòâî ïðîöåññîðîâ â ñóïåðêîìïüþòåðíîé ñèñòåìå ìîãëî äîñòàòî÷íî ïîëíî õàðàêòåðèçîâàòü ìàñøòàá ñèñòåìû, òî ñåé÷àñ, ñ ïîÿâëåíèåì, àêòèâíûì ðàçâèòèåì è øèðîêèì âíåäðåíèåì ìíîãîÿäåðíîñòè, óæå ÷èñëî ÿäåð â ïðîöåññîðàõ, íà óçëàõ è âî âñåé ñèñòåìå â öåëîì, ðàññìàòðèâàåòñÿ êàê îäèí èç îñíîâíûõ èñõîäíûõ ïàðàìåòðîâ ñèñòåìû. Âñå áîëüøå ïðåäïî÷òåíèé îòäàåòñÿ ñèñòåìàì íà áàçå ìíîãîÿäåðíûõ ïðîöåññîðîâ.  ÷àñòíîñòè, ýòî äàåò âîçìîæíîñòü ñîêðàùåíèÿ ÷èñëà óçëîâ ïðè òîé æå ïèêîâîé ïðîèçâîäèòåëüíîñòè, à çíà÷èò, óìåíüøåíèÿ äîëè îòíîñèòåëüíî ìåäëåííûõ ñîåäèíåíèé ìåæäó óçëàìè. Âïðî÷åì, ñóïåðêîìïüþòåðíàÿ ñèñòåìà ñòðîèòñÿ, èñõîäÿ èç îïðåäåëåííîãî êðóãà çàäà÷, êîòîðûå îíà ïðèçâàíà ðåøàòü, à ïîòîìó ïðèîðèòåòû è òðåáîâàíèÿ ìîãóò îòëè÷àòüñÿ
Òîï50
177
âåñüìà çíà÷èòåëüíî.  îñåííåé ðåäàêöèè Òîï50 äîëÿ ñèñòåì íà áàçå ìíîãîÿäåðíûõ ïðîöåññîðîâ ñîñòàâèëà 40%. Áîëåå òîãî, âñå óñòàíîâëåííûå â 2007 ãîäó ñèñòåìû â ðåéòèíãå ïîñòðîåíû íà ìíîãîÿäåðíûõ ïðîöåññîðàõ.
4. Ýòî èíòåðåñíî
àññìîòðèì äàëåå íåêîòîðûå èíòåðåñíûå àêòû è òåíäåíöèè, êîòîðûå ïðîñëåæèâàþòñÿ ïðè àíàëèçå ïîñëåäíèõ ðåäàêöèé ñïèñêîâ Òîï50 â ñðàâíåíèè ñ Òîð500. Òåìïû óâåëè÷åíèÿ ñóììàðíîé ïðîèçâîäèòåëüíîñòè ñèñòåì äîñòàòî÷íî íåïîñòîÿííû. Ýòî ñâÿçàíî ñ íå ñòîëü ÷àñòûì ââîäîì â ýêñïëóàòàöèþ ñèñòåì, çàíèìàþùèõ ëèäèðóþùèå ìåñòà â ðåéòèíãàõ. Ê ïðèìåðó, â ñïèñêå Òîð500 íàèáîëüøèì ðîñò ïèêîâîé è äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè áûë â ðåäàêöèè îò íîÿáðÿ 2007ã., è ñîñòàâèë ïðèìåðíî 46% è 40% ñîîòâåòñòâåííî, â èþíüñêîì ñïèñêå 40% è 37.8%, à â ïðåäûäóùèõ ðåäàêöèÿõ ðîñò áûë ïî÷òè âäâîå ìåíüøèì.  ñïèñêå Òîï50 ñèòóàöèÿ íåñêîëüêî èíàÿ. Ïðèíèìàÿ âî âíèìàíèå îòíîñèòåëüíî íåáîëüøîå êîëè÷åñòâî êàê íîâûõ ñèñòåì, òàê è èõ îáùåå êîëè÷åñòâî, ñêîðåå óìåñòíî ãîâîðèòü î ñðåäíåì ðîñòå. Ñðåäíèé æå ðîñò ïèêîâîé è äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè ñîñòàâëÿåò 43% è 42%, ñîîòâåòñòâåííî. Çäåñü âèäèòñÿ î÷åíü îáíàäåæèâàþùèì, ÷òî â ñðåäíåì ðîñò ýåêòèâíîñòè çíà÷èòåëüíî âûøå â Òîï50, ÷åì â Òîð500. Ýòî ïðîèñõîäèò, ïðåæäå âñåãî, ïî òîé ïðè÷èíå, ÷òî áîëüøèíñòâî íîâûõ, ýåêòèâíûõ ñèñòåì ðàñïîëàãàåòñÿ â ïåðâîé ïîëîâèíå ñïèñêà, ò.å. îíè è âåñüìà âûñîêîïðîèçâîäèòåëüíû (ðèñ. 1). À ýòî, çà ñ÷åò íåçíà÷èòåëüíîãî îáùåãî êîëè÷åñòâà ñèñòåì, äîñòàòî÷íî îùóòèìî âëèÿåò íà ñðåäíèå ïîêàçàòåëè. Ñâîåîáðàçíûì ïåðåëîìíûì ìîìåíòîì áûëà âåñíà 2007 ã. Ñóììàðíàÿ ïðîèçâîäèòåëüíîñòü ñïèñêà óâåëè÷èëàñü ïî÷òè âäâîå. Áîëåå òîãî, è â 7-îé ðåäàêöèè ðîñò ñîñòàâèë îêîëî òðåòè (ðèñ. 2). Ñ ðîñòîì ïðîèçâîäèòåëüíîñòè ñèñòåì âîïðîñ èõ ýåêòèâíîãî èñïîëüçîâàíèÿ âèäèòñÿ îñîáåííî âàæíûì. Áóäåì ïîíèìàòü ïîä ýåêòèâíîñòüþ îòíîøåíèå äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè íà òåñòå Linpa k ê ïèêîâîé ïðîèçâîäèòåëüíîñòè ñèñòåìû. Èíòåðåñíî, ÷òî ýòî ñîîòíîøåíèå äîñòàòî÷íî ïîñòîÿííî íå òîëüêî â ñïèñêå Òîð500, îòðà-
178
Ä. À. Íèêèòåíêî
èñ. 1. Ïðîèçâîäèòåëüíîñòü íà òåñòå Linpa k
èñ. 2. Ñóììàðíàÿ ïðîèçâîäèòåëüíîñòü ñèñòåì æàþùåì ïîëîæåíèå âåùåé âî âñåé îòðàñëè öåëèêîì, íî è â ñïèñêå Òîï50, íåñìîòðÿ íà òî, ÷òî êîëè÷åñòâî íîâûõ ñèñòåì â åãî íîâûõ ðåäàêöèÿõ íåñîïîñòàâèìî ìåíüøå. Òàê, â ïîñëåäíèå ÷åòûðå ðåäàêöèè (äâà ãîäà) â ñðåäíåì ïî ñïèñêàì ýåêòèâíîñòü â Òîð500 è Òîï50 êî-
Òîï50
179
ëåáëåòñÿ îò 66 äî 69 ïðîöåíòîâ. Ñëåäóåò òàêæå çàìåòèòü ÷òî íîâûå, ìîùíûå ñèñòåìû, â áîëüøåé ñâîåé ìàññå, îáëàäàþò ýåêòèâíîñòüþ íå íèæå ñðåäíåé. Ýòî ãîâîðèò î âñå áîëåå ðàöèîíàëüíîì ïîäõîäå ê èõ ïîñòðîåíèþ, î êà÷åñòâåííîì ðîñòå. Òàêèì îáðàçîì, åñòü îñíîâàíèÿ ãîâîðèòü î òîì, ÷òî îòå÷åñòâåííàÿ ñåðà âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé ðàçâèâàåòñÿ î÷åíü âûñîêèìè òåìïàìè, íå óñòóïàþùèìè ïî êà÷åñòâó, äàæå ïðåâîñõîäÿùèìè ñðåäíèå ïîêàçàòåëè ïî Òîð500. ×òî êàñàåòñÿ îáëàñòè ïðèìåíåíèÿ âû÷èñëèòåëüíûõ ñèñòåì, òî èíòåðåñíû ñëåäóþùèå òåíäåíöèè. Ëèøü â äâóõ ðåäàêöèÿõ Òîï50 2006 ãîäà ÷èñëî ñèñòåì, çàäåéñòâîâàííûõ â îáëàñòè èíàíñîâ, ïðåâûñèëî ÷èñëî ñèñòåì â ñåðå íàóêè è îáðàçîâàíèÿ, êîòîðîå ðàñòåò íà ïðîòÿæåíèè ïîñëåäíèõ òðåõ ðåäàêöèé (22%, 30%, 38%). Ïðè÷åì, â ïåðåñ÷åòå íà ïðîèçâîäèòåëüíîñòü, ñèñòåìû ñåðû íàóêè è îáðàçîâàíèÿ àáñîëþòíî äîìèíèðóþò, êîíöåíòðèðóÿ â ñåáå 44%, 58% è 59% ïèêîâîé ïðîèçâîäèòåëüíîñòè îò âñåãî ñïèñêà è 46%, 61% è 61%, ñîîòâåòñòâåííî, îò äîñòèãíóòîé íà òåñòå Linpa k. Íàðàâíå ñ ñèñòåìàìè, ïðèìåíÿåìûìè â îáëàñòè ïðèêëàäíûõ èññëåäîâàíèé, ðàñòóùèìè ÷èñëåííî (20%, 24% è 28%), íî êîíöåíòðèðóþùèìè íà ñåáå äîñòàòî÷íî ïîñòîÿííóþ ÷àñòü âû÷èñëèòåëüíîé ìîùíîñòè âñåãî ñïèñêà (15% ïèêîâîé è 16-17% äîñòèãíóòîé), óñòàíîâêè ñåðû íàóêè è îáðàçîâàíèÿ ÿâëÿþòñÿ íàèáîëåå ýåêòèâíûìè (ðèñ. 3). Äîëÿ æå ñèñòåì, ïðèìåíÿåìûõ â èíàíñîâîé îáëàñòè, óìåíüøàåòñÿ, êàê ÷èñëåííî, òàê è ïî ñîâîêóïíîé ìîùíîñòè, äîñòèãíóâ íèæíåãî ïîðîãà â îñåííåé ðåäàêöèè Òîï50 2007 ãîäà óðîâíÿ â 18% ñèñòåì, íî ëèøü 12% ïèêîâîé è 9% äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè. Àíàëîãè÷íàÿ ñèòóàöèÿ è ñ ïðîìûøëåííîñòüþ: 16% âñåõ ñèñòåì, è âñåãî 14% ïèêîâîé è 13% äîñòèãíóòîé ïðîèçâîäèòåëüíîñòè îò ñóììàðíîé ïî ñïèñêó. Íàãëÿäíî ýòî ïðîäåìîíñòðèðîâàíî íà äèàãðàììàõ (ðèñ. 3). Äàëåå, ïîïðîáóåì îöåíèòü èçìåíåíèÿ â õàðàêòåðèñòèêàõ ïîïàäàþùèõ â ðåéòèíã ñèñòåì. Ïðåæäå âñåãî, áðîñàåòñÿ â ãëàçà îòñóòñòâèå SMP ñèñòåì. Áîëåå ãîäà âñå ñèñòåìû â Òîï50 ÿâëÿþòñÿ êëàñòåðíûìè óñòàíîâêàìè. Âèäèìî, ãëàâíîé ïðè÷èíîé ÿâëÿåòñÿ îòíîñèòåëüíî âûñîêàÿ ñòîèìîñòü
180
Ä. À. Íèêèòåíêî
èñ. 3. Îáëàñòü ïðèìåíåíèÿ ñèñòåì è ðàñïðåäåëåíèå ïðîèçâîäèòåëüíîñòè áîëüøèõ ñèñòåì ñ îáùåé ïàìÿòüþ. Âñå áîëüøå ðàñòóò ìàñøòàáû ñàìèõ ñèñòåì. Òàê, ñðåäíåå ÷èñëî ïðîöåññîðîâ è ÿäåð â ñèñòåìå â îñåííåì ñïèñêå Òîï50 171 è 222, ñîîòâåòñòâåííî, ïðè ìèíèìóìå â 34 âû÷èñëèòåëüíûõ ÿäðà (43-å ìåñòî) è ìàêñèìóìå â 1312 ó ñèñòåìû ÑáåðÁàíêà (7-îå ìåñòî). Ïðèìå÷àòåëüíûì ÿâëÿåòñÿ ñîîòíîøåíèå îñíàùåííîñòè ïàìÿòüþ ê ÷èñëó âû÷èñëèòåëüíûõ ÿäåð è ïðîöåññîðîâ. Äî ïîÿâëåíèÿ ìíî-
Òîï50
181
ãîÿäåðíûõ ïðîöåññîðîâ ýòî ñîîòíîøåíèå ðîñëî â ïîëüçó óâåëè÷åíèÿ îáúåìà ïàìÿòè íà ïðîöåññîð è â ñðåäíåì èçìåíÿëîñü îò 1.2 äî 1.8 ãèãàáàéò íà ïðîöåññîð. Ñ ïîÿâëåíèåì æå ìíîãîÿäåðíûõ ïðîöåññîðîâ, ýòî îòíîøåíèå ñòàëî óìåíüøàòüñÿ, ñîñòàâèâ â ïîñëåäíåé ðåäàêöèè 1.4 ãèãàáàéò íà ÿäðî è îñòàâàÿñü ïîðÿäêà 1.8 ãèãàáàéò íà ïðîöåññîð. ßðêî âûðàæåííûì ëèäåðîì ïðîèçâîäèòåëåé ïðîöåññîðîâ ñ ñàìîé ïåðâîé ðåäàêöèè ðåéòèíãà ÿâëÿåòñÿ êîìïàíèÿ Intel. Èíòåðåñíî òàêæå, ÷òî äîëÿ Intel ñòàáèëüíî ðàñòåò è íà äàííûé ìîìåíò ñîñòàâëÿåò 62%. Ñðåäè íèõ, èç 31 ñèñòåìû 27 ïîñòðîåíû íà áàçå Intel Xeon è ëèøü ÷åòûðå íà ïðîöåññîðàõ ñåìåéñòâà Itanium. ×òî êàñàåòñÿ êîììóíèêàöèîííûõ ñðåä, òî ïðîñëåæèâàåòñÿ ÿâíàÿ òåíäåíöèÿ â èñïîëüçîâàíèè âûñîêîñêîðîñòíûõ è ñïåöèàëüíûõ ðåøåíèé. Äîëÿ Gigabit Ethernet, ñàìîãî áþäæåòíîãî ðåøåíèÿ, ïàäàåò è íà äàííûé ìîìåíò óæå ñîñòàâëÿåò 40%, ïðîäîëæàÿ îïóñêàòüñÿ ïîñëå ïèêîâûõ 60% â âåñåííåé ðåäàêöèè 2006 ã. Åñëè äîëÿ òàêèõ ñðåä êàê Myrinet è SCI îñòàåòñÿ ïðèìåðíî îäèíàêîâîé (â ñóììå îêîëî 10%), òî äîëÿ Inniband ïðîäîëæàåò ðàñòè è íà äàííûé ìîìåíò ñîñòàâëÿåò 40%. îâîðÿ î ðàçðàáîò÷èêàõ ñèñòåì, âèäÿòñÿ èíòåðåñíûìè ñëåäóþùèå òåíäåíöèè. Âî-ïåðâûõ, ñîêðàùàåòñÿ ÷èñëî ñèñòåì ñîáñòâåííîé ñáîðêè (íà äàííûé ìîìåíò âñåãî äâå ñèñòåìû), òàêèì îáðàçîì, âñå áîëüøåå ïðåäïî÷òåíèå îòäàåòñÿ ðàçðàáîòêå ñèñòåì ñïåöèàëèçèðóþùèìèñÿ îðãàíèçàöèÿìè. Âî-âòîðûõ, ñðåäè ýòèõ îðãàíèçàöèé âñå áîëüøèå îáîðîòû íàáèðàþò îòå÷åñòâåííûå êîëëåêòèâû. Òàê, êîìïàíèÿ Ò-Ïëàòîðìû â îñåííåì ñïèñêå Òîï50 ÿâëÿåòñÿ ðàçðàáîò÷èêîì 28% ïðîöåíòîâ ñèñòåì, ïðè ýòîì ÿâëÿÿñü ðàçðàáîò÷èêîì è ñèñòåìû ÑÊÈÔ Cyberia, çàíèìàþùåé ïåðâîå ìåñòî â ðåéòèíãå ñ ïèêîâîé ïðîèçâîäèòåëüíîñòüþ 12 TFlops è äîñòèãíóòîé - 9 TFlops. Ëèøü íà âòîðîì ìåñòå èäåò Hewlett-Pa kard ñ 26%, íà òðåòüåì IBM ñ 20%.  ñïèñîê âõîäèò óæå ÷åòûðå ñèñòåìû, ñîçäàííûå óêðàèíñêîé êîìïàíèåé ÏÍÂÏ ¾ÞÑÒÀ¿.
5. Çàêëþ÷åíèå
×òî æå íàñ æäåò â áëèæàéøåì áóäóùåì? Ïðåæäå âñåãî, ñëåäóåò ñêàçàòü, ÷òî óæå ê ñëåäóþùåìó, âåñåííåìó, âûõîäó ñïèñêà Òîï50
182
Ä. À. Íèêèòåíêî
ïëàíèðóåòñÿ çàïóñê öåëîãî ðÿäà ìîùíûõ âû÷èñëèòåëüíûõ ñèñòåì. Âîîáùå, íà÷àëî 2008 ãîäà îáåùàåò áûòü íàñûùåííûì íà ïîÿâëåíèå íîâûõ è ìîùíûõ ñóïåðêîìïüþòåðîâ.  ÷àñòíîñòè, â ÍÈÂÖ Ì Ó ïëàíèðóåòñÿ ââåäåíèå â ýêñïëóàòàöèþ íîâîé ñèñòåìû ïèêîâîé ïðîèçâîäèòåëüíîñòüþ 60 TFlops. Îæèäàåòñÿ óäâîåíèå ñóììàðíîé ïðîèçâîäèòåëüíîñòè ñèñòåì ïî ñïèñêó. Òàêèì îáðàçîì, âûñîêèå òåìïû ðîñòà ÷èñëà ìîùíûõ ñóïåðêîìïüþòåðîâ â Òîï50 íå òîëüêî ïîääåðæèâàþòñÿ, íî è ÿâíî ïðåâûñÿò ñðåäíèå çíà÷åíèÿ, êîòîðûå óæå ñåé÷àñ ïðåâûøàþò ñðåäíåìèðîâûå ïîêàçàòåëè.  çàêëþ÷åíèå, õî÷åòñÿ îáðàòèòü âíèìàíèå íà òî, ÷òî îäíîé èç ãëàâíûõ öåëåé ñîçäàíèÿ ðåéòèíãà ñòàâèëîñü ñîçäàíèå èíñòðóìåíòà, ïîìîãàþùåãî ðàçáèðàòüñÿ â âåêòîðàõ ðàçâèòèÿ îáëàñòè âûñîêîïðîèçâîäèòåëüíûõ âû÷èñëåíèé. À óäîáñòâî è ýåêòèâíîñòü èíñòðóìåíòà ïîäðàçóìåâàåò ïîä ñîáîé âîçìîæíîñòü àäàïòàöèè ê ïîòðåáíîñòÿì êîíêðåòíîãî ïîëüçîâàòåëÿ. ðóïïà ðàçðàáîò÷èêîâ ðåéòèíãà ñòàðàåòñÿ ñîçäàòü ìàêñèìàëüíî óäîáíûé èíñòðóìåíò äëÿ ðàáîòû, ïðîäîëæàÿ åãî ðàçâèòèå, äîáàâëÿÿ íîâûå óíêöèîíàëüíûå âîçìîæíîñòè, èñõîäÿ èç ïîòðåáíîñòåé ïîëüçîâàòåëåé, íàó÷íûõ ãðóïï è âû÷èñëèòåëüíîãî ñîîáùåñòâà â öåëîì.
Ñïèñîê ëèòåðàòóðû
[1℄ Òîï50: ñïèñîê ñàìûõ http://super omputers.ru.
ìîùíûõ
êîìïüþòåðîâ
ÑÍ ,
[2℄ Top500 Super omputing Sites, http://www.top500.org/. [3℄ Âîåâîäèí Âë.Â. Top500: ÷èñëîì èëè óìåíüåì// Îòêðûòûå ñèñòåìû, 10, 2005 ã. Ñ.1215. (http://www.osp.ru/os/2005/10/380430/_p1.html)
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé ñ èñïîëüçîâàíèåì äèíàìè÷åñêèõ ãåêñàýäðàëüíûõ ñåòîê. Ê. Ä. Íèêèòèí
 ñòàòüå ðàññìîòðåí àëãîðèòì ìîäåëèðîâàíèÿ òå÷åíèÿ íåñæèìàåìîé æèäêîñòè â îáëàñòè ñ ïîäâèæíîé ãðàíèöåé. Èñïîëüçóþòñÿ äèíàìè÷åñêè èçìåíÿþùèåñÿ ñãóùàþùèåñÿ ãåêñàýäðàëüíûå ñåòêè ñî ñòðóêòóðîé âîñüìèäåðåâà. Ñâîáîäíàÿ ïîâåðõíîñòü ðåàëèçóåòñÿ ïóòåì èñïîëüçîâàíèÿ óíêöèè óðîâíÿ è ÷àñòèö.
1. Ââåäåíèå
Òå÷åíèå íåñæèìàåìîé æèäêîñòè îïèñûâàåòñÿ óðàâíåíèÿìè ÍàâüåÑòîêñà. Îäíèì èç âîçìîæíûõ ïîäõîäîâ ê ïðèáëèæåííîìó ðåøåíèþ ñèñòåìû óðàâíåíèé Íàâüå-Ñòîêñà ÿâëÿåòñÿ ïðîåêöèîííûé ìåòîä [1, 2, 3℄. Îäíàêî, ýòîò ìåòîä, êàê è ìíîãèå äðóãèå, ïðåäïîëàãàåò íàëè÷èå ïîëíîñòüþ èêñèðîâàííîé ãðàíèöû ðàñ÷åòíîé îáëàñòè. Ïðè ðåøåíèè çàäà÷è ñî ñâîáîäíîé ãðàíèöåé ïðåäëàãàåòñÿ äèíàìè÷åñêè èçìåíÿòü ðàñ÷åòíóþ îáëàñòü. Äëÿ çàäàíèÿ ñâîáîäíîé ãðàíèöû ïðèìåíÿþòñÿ íåñêîëüêî ïîäõîäîâ. Âî-ïåðâûõ, ìîæíî îïèñûâàòü ïîëîæåíèå ñâîáîäíîé ïîâåðõíîñòè æèäêîñòè ïàðàìåòðè÷åñêîé óíêöèåé. Âî-âòîðûõ, ïàðàìåòðè÷åñêóþ óíêöèþ ìîæíî çàìåíèòü ïîëåì ðàññòîÿíèé, íàçûâàåìûì óíêöèåé óðîâíÿ [4℄. Íåäîñòàòêîì òàêîãî ïîäõîäà ÿâëÿåòñÿ òî, ÷òî óíêöèÿ óðîâíÿ íå â ñîñòîÿíèè îïèñàòü âñþ ïîëíîòó äâèæåíèé, ñîâåðøàåìûõ ïîâåðõíîñòüþ æèäêîñòè. Âòðåòüèõ, ïîëîæåíèå ãðàíèöû îáëàñòè ìîæíî çàäàâàòü ñ ïîìîùüþ Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
184
Ê. Ä. Íèêèòèí
÷àñòèö. Â-÷åòâåðòûõ, ñóùåñòâóåò ãèáðèäíûé ïîäõîä, îáúåäèíÿþùèé èñïîëüçîâàíèå ÷àñòèö è óíêöèè óðîâíÿ.  ýòîì ñëó÷àå ÷àñòèöû êîìïåíñèðóþò íåäîñòàòêè óíêöèè óðîâíÿ, à óíêöèÿ óðîâíÿ ïîìîãàåò ðàâíîìåðíî ðàñïðåäåëÿòü ÷àñòèöû âäîëü ãðàíèöû.  äàííîé ðàáîòå îïèñûâàåòñÿ ìåòîä ðåøåíèÿ óðàâíåíèé ÍàâüåÑòîêñà â îáëàñòè ñî ñâîáîäíîé ãðàíèöåé [5℄, îáúåäèíÿþùèé â ñåáå íåñêîëüêî ýåêòèâíûõ ïîäõîäîâ.  îñíîâå àëãîðèòìà ëåæèò ïðîåêöèîííûé ìåòîä. àñ÷åòíàÿ îáëàñòü äèíàìè÷åñêè èçìåíÿåòñÿ â ñîîòâåòñòâèè ñ èçìåíåíèåì óíêöèè óðîâíÿ, îïèñûâàþùåé ñâîáîäíóþ ãðàíèöó. Ôóíêöèÿ óðîâíÿ äîïîëíÿåòñÿ ÷àñòèöàìè, ñïîñîáíûìè îòñëåæèâàòü ìåëêèå ýëåìåíòû ïîâåðõíîñòè [6℄. Ïðè ðåøåíèè çàäà÷è èñïîëüçóþòñÿ ñãóùàþùèåñÿ ñåòêè, ïîñòðîåííûå ïî ïðèíöèïó âîñüìèäåðåâà [7℄. Ñãóùåíèå ñåòîê ïðîèñõîäèò ê ñâîáîäíîé ãðàíèöå è ïîääåðæèâàåòñÿ áëàãîäàðÿ äèíàìè÷åñêîìó ïåðåñòðîåíèþ. Òåõíîëîãèÿ, îáúåäèíÿþùàÿ îïèñàííûå âûøå ïîäõîäû, ïîçâîëÿåò ïðîèçâîäèòü êà÷åñòâåííîå ìîäåëèðîâàíèå ïðè íåâûñîêèõ âû÷èñëèòåëüíûõ çàòðàòàõ. Âî âòîðîì ðàçäåëå äàííîé ñòàòüè ïðåäñòàâëåí êëàññ ñåòîê, íà êîòîðûõ ïðåäëàãàåòñÿ ïðîâîäèòü ðàñ÷åòû, è îáúÿñíÿþòñÿ ïðè÷èíû âûáîðà òàêîãî êëàññà.  òðåòüåì ðàçäåëå ðàññìàòðèâàþòñÿ áàçîâûå óðàâíåíèÿ è ÷èñëåííûå ìåòîäû, èñïîëüçóåìûå äëÿ èõ ïðèáëèæåííîãî ðåøåíèÿ.  ðàçäåëàõ 4-7 äåëàåòñÿ àêöåíò íà îòäåëüíûõ ÷àñòÿõ àëãîðèòìà, îïèñûâàþòñÿ âîçìîæíûå òðóäíîñòè, âîçíèêàþùèå â ïðîöåññå ìîäåëèðîâàíèÿ, è ñïîñîáû èõ ïðåîäîëåíèÿ. Íàêîíåö, â ïîñëåäíåì ðàçäåëå ïðèâîäÿòñÿ ðåçóëüòàòû ÷èñëåííûõ ýêñïåðèìåíòîâ.
2. Êëàññ ðàñ÷åòíûõ ñåòîê
Äëÿ äèñêðåòèçàöèè óðàâíåíèé Íàâüå-Ñòîêñà ïðåäëàãàåòñÿ èñïîëüçîâàòü ðàçíåñåííûå ãåêñàýäðàëüíûå ñåòêè ïîñòðîåííûå ïî ïðèíöèïó âîñüìèäåðåâà. Èñêîìûìè óíêöèÿìè â çàäà÷å ÿâëÿþòñÿ ñêîðîñòü, äàâëåíèå è ñêàëÿðíàÿ óíêöèÿ óðîâíÿ, îïðåäåëÿþùàÿ ïîëîæåíèå ñâîáîäíîé ãðàíèöû. Èäåÿ ðàçíåñåííûõ ñåòîê çàêëþ÷àåòñÿ â òîì, ÷òî ðàññìàòðèâàåìûå âåëè÷èíû õðàíÿòñÿ â ðàçíûõ ÷àñòÿõ ñåòêè: êîìïîíåíòû âåêòîðà ñêîðîñòè â öåíòðàõ òåõ ãðàíåé, êîòîðûå îðòîãîíàëüíû ñî-
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
185
îòâåòñòâóþùåìó íàïðàâëåíèþ, äàâëåíèå â öåíòðå ÿ÷åéêè, óíêöèÿ óðîâíÿ â âåðøèíàõ ñåòêè. Êðîìå òîãî, êàæäîé ÿ÷åéêå ñîîòâåòñòâóåò ñïåöèàëüíàÿ ìåòêà, îïðåäåëÿþùàÿ çàïîëíåíèå ÿ÷åéêè æèäêîñòüþ. àçíåñåííûå ñåòêè ñ òàêèìè ìåòêàìè ÷àñòî íàçûâàþò MAC (Marker-And-Cell) ñåòêàìè. Âîñüìèäåðåâî ïðåäïîëàãàåò èåðàðõè÷åñêóþ ñòðóêòóðó ñåòêè, â îñíîâàíèè êîòîðîé ëåæèò êóá, à áîëåå ìåëêèå ÿ÷åéêè ïîëó÷àþòñÿ äåëåíèåì êðóïíûõ íà âîñåìü ÷àñòåé. Ïîèñê ýëåìåíòà ïî íîìåðó èëè ïî êîîðäèíàòå âûïîëíÿåòñÿ íå áîëåå ÷åì çà log8 N øàãîâ, ïîèñê ñîñåäíåãî íå áîëåå ÷åì çà 2 log8 N [7℄. Âûáîð ðàçíåñåííûõ ãåêñàýäðàëüíûõ ñåòîê ïîñòðîåííûõ ïî ïðèíöèïó âîñüìèäåðåâà îáóñëîâëåí íåñêîëüêèìè àêòîðàìè. Âî-ïåðâûõ, â çàäà÷å èãóðèðóþò âåêòîðíîå ïîëå ñêîðîñòåé è ñêàëÿðíîå ïîëå äàâëåíèé. Ïðè èñïîëüçîâàíèè ðàçíåñåííûõ ãåêñàýäðàëüíûõ ñåòîê íà êàæäóþ ÿ÷åéêó ïðèõîäèòñÿ îäíà ñòåïåíü ñâîáîäû äëÿ äàâëåíèÿ è ïðèìåðíî îäíà ñòåïåíü ñâîáîäû äëÿ êàæäîé êîìïîíåíòû ñêîðîñòè. Òàêîå ðàñïðåäåëåíèå ñòåïåíåé ñâîáîäû ïðåäñòàâëÿåòñÿ íàèáîëåå ýêîíîìè÷íûì. Âî-âòîðûõ, èñïîëüçîâàíèå ñãóùàþùèõñÿ ñåòîê áîëåå ýåêòèâíî ïî ñðàâíåíèþ ñ ðàâíîìåðíûìè.  ðàâíîìåðíîé ñåòêå çàâèñèìîñòü ÷èñëà ýëåìåíòîâ îò ìèíèìàëüíîãî øàãà ñåòêè hmin îáðàòíàÿ êóáè÷åñêàÿ, â ñãóùàþùåéñÿ ê ïîâåðõíîñòè îáðàòíàÿ êâàäðàòè÷íàÿ [7℄. Äîïóñòèì, ÷òî ñåòêà ñîäåðæèò 1 000 000 ÿ÷ååê. q  ñëó÷àå, åñëè èñïîëüçóþòñÿ ðàâíîìåðíûå ñåòêè, øàã hmin ≈ 3 1 0001 000 = 0.01 , â q 1 ñëó÷àå æå ñãóùàþùèõñÿ ñåòîê hmin ≈ 1 000 000 = 0.001 . Óìåíüøåíèå øàãà ñåòêè âáëèçè ñâîáîäíîé ãðàíèöû âàæíî, ïîñêîëüêó ýòî âëèÿåò íà óìåíüøåíèå ÷èñëåííîé âÿçêîñòè. Ïîêàæåì íà ïðèìåðå ñëåäóþùåé òàáëèöû, êàê ñîîòíîñÿòñÿ ÷èñëà ÿ÷ååê â ðàâíîìåðíîé è ñãóùàþùåéñÿ ñåòêå ïðè ðàâíîì ìèíèìàëüíîì øàãå: Èç òàáëèöû âèäíî, ÷òî äëÿ ñåòêè ñ ìèëëèîíîì ÿ÷ååê, â ðàâíîìåðíîì ñëó÷àå hmin = 128−1 , à â ñëó÷àå ñãóùàþùåéñÿ ê ïîâåðõíîñòè ñåòêè hmin = 512−1 . Ïðè ìîäåëèðîâàíèè æèäêîñòè ñî ñâîáîäíîé ãðàíèöåé íàèáîëü-
186
Ê. Ä. Íèêèòèí
hmin àâíîìåðíàÿ ñåòêà Ñãóùàþùàÿñÿ ñåòêà
32−1 15 208 5 180
64−1 84 720 14 268
128−1 505 768 55 924
256−1 205 740
512−1 742 836
Òàáëèöà 1. Ñîîòíîøåíèå ÷èñåë ÿ÷ååê â ðàâíîìåðíîé è ñãóùàþùåéñÿ ñåòêàõ äëÿ çàäà÷è ñ ïàäàþùåé êàïëåé (ñì. ðàçäåë 8).
øèé èíòåðåñ âûçûâàåò ïîëîæåíèå ñâîáîäíîé ïîâåðõíîñòè, ê êîòîðîé è ñëåäóåò ñãóùàòü ðàñ÷åòíóþ ñåòêó. Îäíàêî, ïîëîæåíèå ñâîáîäíîé ãðàíèöû èçìåíÿåòñÿ íà êàæäîì øàãå, à çíà÷èò ñåòêó íåîáõîäèìî óìåòü áûñòðî ïåðåñòðàèâàòü. Ñðåäè äèíàìè÷åñêè ïåðåñòðàèâàåìûõ ñåòîê âîñüìèäåðåâüÿ èìåþò êàê ðÿä ïðåèìóùåñòâ, òàê è ðÿä íåäîñòàòêîâ. Ê ïðåèìóùåñòâàì ñòîèò îòíåñòè áûñòðûé ïîèñê ýëåìåíòà ïî íîìåðó, ïî êîîðäèíàòå, ïîèñê ñîñåäíåãî ýëåìåíòà â ëþáîì íàïðàâëåíèè, à òàêæå êðàéíå ëåãêîå ïåðåñòðîåíèå: çà íåñêîëüêî îïåðàöèé ìîæíî ñãóñòèòü èëè ðàçãðóáèòü ëþáóþ ÷àñòü ñåòêè. Ñ äðóãîé ñòîðîíû, ñåòêè, ïîñòðîåííûå íà îñíîâå âîñüìèäåðåâà íå ÿâëÿþòñÿ êîíîðìíûìè, ÷òî íóæíî ó÷èòûâàòü ïðè äèñêðåòèçàöèè äèåðåíöèàëüíûõ îïåðàòîðîâ. Íàëîæåíèå óñëîâèÿ, ÷òî ñòîðîíû ñîñåäíèõ ÿ÷ååê ðàçëè÷àþòñÿ íå áîëåå, ÷åì â 2 ðàçà, îáëåã÷àåò ïîñòðîåíèå äèñêðåòèçàöèè.
3. Áàçîâûå óðàâíåíèÿ è ÷èñëåííûé ìåòîä
àññìàòðèâàåòñÿ ñèñòåìà óðàâíåíèé Íàâüå-Ñòîêñà, îïèñûâàþùàÿ äâèæåíèå íåñæèìàåìîé æèäêîñòè. Îíà ñîñòîèò èç óðàâíåíèé ìîìåíòà è íåñæèìàåìîñòè: ∂u − ν∆u + (u · ∇)u + ∇p = f , ∂t ∇ · u = 0,
(1) (2)
ãäå ν - êèíåìàòè÷åñêàÿ âÿçêîñòü, t âðåìÿ, u = (u, v, w) ïîëå ñêîðîñòåé, p äàâëåíèå, à f îáúåìíûå ñèëû, äåéñòâóþùèå íà æèäêîñòü (íàïðèìåð, ñèëà òÿæåñòè).
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
187
Ñòîèò îòìåòèòü, ÷òî ãðàíèöà îáëàñòè ñîñòîèò èç äâóõ ÷àñòåé: íåïîäâèæíîé ãðàíèöû (ñòåíîê ñîñóäà) è ïåðåìåùàþùåéñÿ ïî èíåðöèè ñâîáîäíîé ïîâåðõíîñòè. Íà íåïîäâèæíîé ãðàíèöå ðåàëèçóåòñÿ óñëîâèå ïðèëèïàíèÿ, à äëÿ ñâîáîäíîé ïîâåðõíîñòè ìîæåò áûòü çàäàíî ñîîòíîøåíèå ìåæäó äàâëåíèåì æèäêîñòè è ñèëàìè ïîâåðõíîñòíîãî íàòÿæåíèÿ. Äëÿ îïèñàíèÿ ïîëîæåíèÿ ñâîáîäíîé ãðàíèöû ââîäÿòñÿ óíêöèÿ óðîâíÿ è ÷àñòèöû. Ïîâåðõíîñòü îïðåäåëÿåòñÿ ìíîæåñòâîì òî÷åê, ãäå óíêöèÿ óðîâíÿ φ = 0 , à äëÿ îáëàñòè, çàïîëíåííîé æèäêîñòüþ âåðíî φ < 0 . Ïðîäâèæåíèå ñâîáîäíîé ïîâåðõíîñòè îïèñûâàåòñÿ óðàâíåíèåì ïåðåíîñà óíêöèè óðîâíÿ: φt + u · ∇φ = 0.
(3)
 ðÿäå ïðèëîæåíèé òðåáóåòñÿ èíèöèàëèçèðîâàòü óíêöèþ óðîâíÿ êàê ðàññòîÿíèå äî ïîâåðõíîñòè ñî çíàêîì è ïîääåðæèâàòü ýòî ñâîéñòâî íà ïðîòÿæåíèè ðàñ÷åòà. Ïîìèìî îïðåäåëåíèÿ ïîëîæåíèÿ ïîâåðõíîñòè, óíêöèÿ óðîâíÿ òàêæå íåñåò â ñåáå èíîðìàöèþ î åå ãåîìåòðèè: åäèíè÷íàÿ íîðìàëü ê ïîâåðõíîñòè îïðåäåëÿåòñÿ ïî îðìóëå N = ∇φ/|∇φ| , à ëîêàëüíàÿ êðèâèçíà åñòü k = ∇ · N . Äëÿ òîãî, ÷òîáû îòñëåæèâàòü ìåëêèå ýëåìåíòû, êîòîðûå íå ìîãóò áûòü îïèñàíû óíêöèåé óðîâíÿ, èñïîëüçóþòñÿ ñïåöèàëüíûå íåâåñîìûå ÷àñòèöû, ïåðåíîñèìûå ïîëåì ñêîðîñòåé. ×àñòèöû ïåðåìåùàþòñÿ ïî çàêîíó dxp /dt = u(xp ) è êîððåêòèðóþò óíêöèþ óðîâíÿ â ñëó÷àÿõ, êîãäà ýòî íåîáõîäèìî. Äëÿ ïðèáëèæåííîãî ðåøåíèÿ óðàâíåíèé Íàâüå-Ñòîêñà (1), (2) ñ ïîäâèæíîé ãðàíèöåé (3) ïðåäëîæåí ðÿä ïîäõîäîâ ðàçíîé ñòåïåíè ñëîæíîñòè: îò ìåòîäà äðîáíûõ øàãîâ [5℄ äî ïîëíîñòüþ íåÿâíûõ ñõåì [8℄.  äàííîé ðàáîòå áóäåò èñïîëüçîâàòüñÿ ìåòîä äðîáíûõ øàãîâ, êàê íàèìåíåå òðóäîåìêèé. Ìåòîä ñîñòîèò èç ñëåäóþùèõ øàãîâ: 1. Îáíîâëåíèå ïîëÿ ñêîðîñòåé (a) åøåíèå óðàâíåíèÿ ìîìåíòîâ (êîíâåêòèâíûé ïåðåíîñ, äåéñòâèå äèóçèè è îáúåìíûõ ñèë), (b) Ïðîåêöèÿ íà ïîäïðîñòðàíñòâî áåçäèâåðãåíòíûõ ñêîðîñòåé;
188
Ê. Ä. Íèêèòèí
2. Îáíîâëåíèå ïîëîæåíèÿ ñâîáîäíîé ïîâåðõíîñòè (a) Ïðîäâèæåíèå óíêöèè óðîâíÿ, (b) Ïðîäâèæåíèå ÷àñòèö, ( ) Âçàèìíàÿ êîððåêòèðîâêà ÷àñòèö è óíêöèè óðîâíÿ; 3. Ïðîäâèæåíèå îáëàñòè; 4. Ïåðåñòðîåíèå ñåòêè. Îòìåòèì, ÷òî ïåðâûé øàã ïðåäñòàâëÿåò ñîáîé âàðèàíò ïðîåêöèîííîãî ìåòîäà äëÿ çàäà÷è Íàâüå-Ñòîêñà ñ èêñèðîâàííîé ãðàíèöåé [1, 2, 3℄.  ñëåäóþùèõ ðàçäåëàõ îñòàíîâèìñÿ ïîäðîáíåå íà íåêîòîðûõ øàãàõ àëãîðèòìà.
4. åøåíèå óðàâíåíèÿ ìîìåíòîâ Óðàâíåíèå ìîìåíòîâ ðåøàåòñÿ çà äâà øàãà: ñíà÷àëà ó÷èòûâàåòñÿ êîíâåêòèâíûé ïåðåíîñ ( ut = −(u · ∇)u ), à çàòåì ó÷èòûâàåòñÿ äåéñòâèå äèóçèè è îáúåìíûõ ñèë ( ut = ν∆u − ∇p + f ).  ñëó÷àå äèóçèè è îáúåìíûõ ñèë ïðèìåíÿåòñÿ ñòàíäàðòíàÿ ÿâíàÿ ñõåìà, à â ñëó÷àå êîíâåêòèâíîãî ïåðåíîñà èñïîëüçóåòñÿ ïîëóëàãðàíæåâ ìåòîä. Ñóòü ïîëóëàãðàíæåâà ìåòîäà çàêëþ÷àåòñÿ â ñëåäóþùåì: äëÿ òîãî, ÷òîáû âû÷èñëèòü çíà÷åíèå íåêîòîðîé óíêöèè (ñêîðîñòè èëè óíêöèè óðîâíÿ) â íåêîòîðîé òî÷êå, íåîáõîäèìî îòñòóïèòü ïî òðàåêòîðèè ýòîé òî÷êè íà øàã íàçàä, òåì ñàìûì íàéäÿ òî÷êó, êîòîðàÿ ïåðåíîñèòñÿ â ðàññìàòðèâàåìóþ, è âçÿòü çíà÷åíèå ñêîðîñòè â íåé (ðèñ. 1). Ïîëóëàãðàíæåâ ìåòîä âûãîäíî îòëè÷àåòñÿ îò ÿâíîé ñõåìû òåì, ÷òî âíîñèò ìåíüøóþ ÷èñëåííóþ äèóçèþ. Ýòîò ìåòîä ïîçâîëÿåò èñïîëüçîâàòü áîëåå êðóïíûå øàãè ïî âðåìåíè áåç ïîòåðè óñòîé÷èâîñòè. Îäíàêî îãðàíè÷åíèå íà øàã ïî âðåìåíè âñå æå âîçíèêàåò èç-çà äðóãèõ ñîñòàâëÿþùèõ àëãîðèòìà, èñïîëüçóþùèõ ÿâíûå ñõåìû.
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
189
èñ. 1. Ïîëå ñêîðîñòåé (a). Ïîëóëàãðàíæåâ ìåòîä: âìåñòî ïðîäâèæåíèÿ âïåðåä ïî òðàåêòîðèè äâèæåíèÿ â ïîëå ñêîðîñòåé (b), îòñòóïàåì íà øàã íàçàä ( ).
5. Ïðîåêöèÿ íà ïðîñòðàíñòâî áåçäèâåðãåíòíûõ ñêîðîñòåé
Ïîëå ñêîðîñòåé, ïîëó÷åííîå ïðè ðåøåíèè óðàâíåíèÿ ìîìåíòà, íå ÿâëÿåòñÿ áåçäèâåðãåíòíûì, ò.å. íå óäîâëåòâîðÿåò óñëîâèþ íåñæèìàåìîñòè. Äëÿ òîãî, ÷òîáû ñïðîåêòèðîâàòü ïîëå ñêîðîñòåé íà áåçäèâåðãåíòíîå ïîäïðîñòðàíñòâî, âíîñèòñÿ ñïåöèàëüíàÿ ïîïðàâêà ê äàâëåíèþ ( δp ). Ïîäñòàâëÿÿ ïîïðàâêó ê äàâëåíèþ â óðàâíåíèå (2) è ó÷èòûâàÿ åå âêëàä â ïîëå ñêîðîñòåé, u = u∗ − ∆t∇(δp), p = p∗ + δp,
ïðèõîäèì ê ñëåäóþùåé ñèñòåìå óðàâíåíèé: −∇ · (∇δp) = −
1 (∇ · u∗ ). ∆t
(4)
Êðàåâûå óñëîâèÿ íå íàêëàäûâàþòñÿ, ïîñêîëüêó çàäà÷à ðàññìàòðèâàåòñÿ íà ñåòî÷íîì óðîâíå è îïåðàòîð çàäà÷è (4) åñòü ïðîèçâåäåíèå ñåòî÷íûõ îïåðàòîðîâ äèâåðãåíöèè è ãðàäèåíòà.  ñëó÷àå ðàâíîìåðíîé ñåòêè ìîæíî èñïîëüçîâàòü ñòàíäàðòíûå ðàçíîñòíûå àïïðîêñèìàöèè îïåðàòîðîâ äèâåðãåíöèè è ãðàäèåíòà, â ñëó÷àå æå ñãóùàþùèõñÿ ñåòîê ðåêîìåíäóåòñÿ èñïîëüçîâàòü äðóãèå, áîëåå ïîäõîäÿùèå ñõåìû.
190
Ê. Ä. Íèêèòèí
u3* u2* u1*
z
u4* u5
*
y x
èñ. 2. ðóáàÿ ÿ÷åéêà, ãðàíè÷àùàÿ ñ ÷åòûðüìÿ ìåëêèìè ÿ÷åéêàìè ïî îäíîé ãðàíè.
Äëÿ ïðèìåðà ðàññìîòðèì îïåðàòîð äèâåðãåíöèè. Ïóñòü èìååò ìåñòî ñëåäóþùàÿ ëîêàëüíàÿ ñòðóêòóðà ñåòêè (ðèñ. 2). Çàïèøåì òåîðåìó ðèíà â âåêòîðíîé îðìå äëÿ áîëüøîé ÿ÷åéêè: X Vcell ∇ · u∗ = (u∗i · n)Ai , i
ãäå n âåêòîð âíåøíåé åäèíè÷íîé íîðìàëè ê ãðàíèöå áîëüøîé ÿ÷åéêè, à Ai ïëîùàäü ñîîòâåòñòâóþùåé ãðàíè ÿ÷åéêè. Äëÿ x -êîìïîíåíòû äèâåðãåíöèè èìååò ìåñòî ïðåäñòàâëåíèå: ∆x∆y∆zδ u/δx = u∗2 A2 + u∗3 A3 + u∗4 A4 + u∗5 A5 − u∗1 A1 .
Ñëåäîâàòåëüíî, δu∗ /δx = ((u∗2 + u∗3 + u∗4 + u∗5 )/4 − u∗1 )/∆x.
Âûðàæåíèå äëÿ y - è z -êîìïîíåíò ïîëó÷àåòñÿ àíàëîãè÷íûì ñïîñîáîì. Óðàâíåíèå (4) ïðåäñòàâëÿåò èç ñåáÿ ñåòî÷íóþ äèñêðåòèçàöèþ óðàâíåíèÿ Ïóàññîíà. àññìîòðèì îïåðàòîð L = ∇ · (∇) . ×èñëî îáóñëîâëåííîñòè ìàòðèöû îïåðàòîðà L èìååò êâàäðàòè÷íóþ çàâèñèìîñòü îò ìèíèìàëüíîãî øàãà ñåòêè, êîòîðûé â ñâîþ î÷åðåäü ìîæåò 1 äîñòèãàòü h = 1000 , ò.å. ÷èñëî îáóñëîâëåííîñòè ìîæåò áûòü î÷åíü
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé Øàã ñåòêè ß÷ååê Èòåðàöèé Âðåìÿ (ñåê.)
64−1 14,268 6 0.12
128−1 55,924 7 0.76
191
256−1 205,740 8 2.98
Òàáëèöà 2. Ñðåäíåå ÷èñòî èòåðàöèé è âðåìÿ ðàáîòû ìåòîäà áèñîïðÿæåííûõ ãðàäèåíòîâ äëÿ çàäà÷è ñ ïàäàþùåé êàïëåé. Ïàðàìåòðû ïðåäîáóñëàâëèâàòåëÿ τ1 = 0.01 , τ2 = 0.001 . Êðèòåðèé îñòàíîâêè óìåíüøåíèå íåâÿçêè â 108 ðàç.
áîëüøèì.  çàâèñèìîñòè îò ñïîñîáà ïîñòðîåíèÿ ñåòî÷íîãî îïåðàòîðà ãðàäèåíòà, ìàòðèöà îïåðàòîðà L ìîæåò ïîëó÷àòüñÿ ñèììåòðè÷íîé èëè íåñèììåòðè÷íîé. Äëÿ ðåøåíèÿ óðàâíåíèÿ (4) èñïîëüçóþòñÿ èòåðàöèîííûå ìåòîäû ñ ïðåäîáóñëàâëèâàòåëåì, îñíîâàííûì íà íåïîëíîé àêòîðèçàöèè âòîðîãî ïîðÿäêà òî÷íîñòè [9℄: â ñèììåòðè÷íîì ñëó÷àå ìåòîä ñîïðÿæåííûõ ãðàäèåíòîâ, â íåñèììåòðè÷íîì ìåòîä áè-ñîïðÿæåííûõ ãðàäèåíòîâ [10℄.  êà÷åñòâå èëëþñòðàöèè ïîâåäåíèÿ ìåòîäà â òàáëèöå 2 ïðåäñòàâëåíû ñðåäíåå ÷èñëî èòåðàöèé è âðåìÿ ðàáîòû ìåòîäà áè-ñîïðÿæåííûõ ãðàäèåíòîâ äëÿ çàäà÷è ñ ïàäàþùåé êàïëåé (ñì. ðàçäåë 8). Åñëè ìèíèìàëüíûé øàã ñåòêè hmin óìåíüøèòñÿ â 2 ðàçà, òî ÷èñëî îáóñëîâëåííîñòè ìàòðèöû îïåðàòîðà L âûðàñòåò â 4 ðàçà. Èç òàáëèöû âèäíî, ÷òî ÷èñëî èòåðàöèé ïðè ýòîì ðàñòåò íåçíà÷èòåëüíî, à âðåìÿ ðåøåíèÿ ñèñòåìû ïðèìåðíî ïðîïîðöèîíàëüíî ÷èñëó ýëåìåíòîâ. Ýòè ðåçóëüòàòû ïîêàçûâàþò ýåêòèâíîñòü èñïîëüçîâàíèÿ äàííîãî ìåòîäà.
6. Ïðîäâèæåíèå óíêöèè óðîâíÿ
Ïî àíàëîãèè ñ ðåøåíèåì óðàâíåíèÿ êîíâåêöèè, äëÿ óðàâíåíèÿ (3), êîòîðîå ïðîäâèãàåò óíêöèþ óðîâíÿ, òîæå èñïîëüçóåòñÿ ïîëóëàãðàíæåâ ìåòîä. Êàê áûëî îòìå÷åíî, ìåòîä óíêöèè óðîâíÿ íå âñåãäà ýåêòèâåí ïðè îòîáðàæåíèè ìåëêèõ äåòàëåé (êàïëè, áðûçãè, ïèêè âîëí).
192
Ê. Ä. Íèêèòèí
Îäèí èç ïðåäëàãàåìûõ ñïîñîáîâ ïîâûøåíèÿ äåòàëèçàöèè ïîâåðõíîñòè çàêëþ÷àåòñÿ â èñïîëüçîâàíèè ÷àñòèö. ×àñòèöû íàíîñÿòñÿ âäîëü ñâîáîäíîé ïîâåðõíîñòè è ðàçäåëÿþòñÿ íà äâà òèïà: ïîëîæèòåëüíûå è îòðèöàòåëüíûå. Ïîëîæèòåëüíûå ÷àñòèöû èçíà÷àëüíî ðàñïîëàãàþòñÿ â îáëàñòè, ãäå φ > 0 , ò.å. â ñëîå âîçäóøíûõ ÿ÷ååê. Îòðèöàòåëüíûå ïîïàäàþò â îáëàñòü φ < 0 , ò.å. ðàñïîëàãàþòñÿ â æèäêîñòè. Äëÿ ïåðåíîñà ÷àñòèö â ïîëå ñêîðîñòåé èñïîëüçóþòñÿ òðèëèíåéíàÿ èíòåðïîëÿöèÿ äëÿ ñêîðîñòåé è ìåòîä óíãå-Êóòòà 2-ãî ïîðÿäêà: k1 = hf(xn , yn ), 1 1 k2 = hf(xn + h, yn + k1 ), 2 2 yn+1 = yn + k2 + O(h2 ).
Äëÿ ïðîäâèæåíèÿ ÷àñòèö â ïðèãðàíè÷íûõ ÿ÷åéêàõ, íå ïðèíàäëåæàùèõ ðàñ÷åòíîé îáëàñòè, ïîëå ñêîðîñòåé ýêñòðàïîëèðóåòñÿ ñ ïîâåðõíîñòè. Ïðè âîçíèêíîâåíèè íà ïîâåðõíîñòè æèäêîñòè ìåëêèõ äåòàëåé, êîòîðûå íå ìîãóò áûòü îòñëåæåíû óíêöèåé óðîâíÿ, ÷àñòèöû ïîçâîëÿþò âîññòàíîâèòü äåéñòâèòåëüíîå ïîëîæåíèå ñâîáîäíîé ãðàíèöû. Äëÿ ýòîãî êàæäîé ÷àñòèöå ïðèïèñûâàþòñÿ ñåðè÷åñêàÿ óíêöèÿ óðîâíÿ φp è äèíàìè÷åñêè èçìåíÿþùèéñÿ ïàðàìåòð ðàäèóñ rp : φp (x) = sp (rp − |x − xp |), åñëè sp φ(xp ) > rmax , rmax , rp = sp φ(xp ), åñëè rmin 6 sp φ(xp ) 6 rmax , åñëè sp φ(xp ) < rmin , rmin ,
ãäå sp çíàê ÷àñòèöû ( +1 , åñëè ÷àñòèöà ïåðâîíà÷àëüíî ðàñïîëàãàëàñü â âîçäóõå, è −1 , åñëè ÷àñòèöà ïîÿâèëàñü â æèäêîñòè). Êîððåêöèÿ óíêöèè óðîâíÿ φ îñóùåñòâëÿåòñÿ äëÿ âñåõ ïîëîæèòåëüíûõ ÷àñòèö, îêàçàâøèõñÿ â îáëàñòè φ < 0 äàëüøå ÷åì íà ñâîé ðàäèóñ è äëÿ âñåõ îòðèöàòåëüíûõ ÷àñòèö, ïîïàâøèõ â îáëàñòü φ > 0: φ+ = max(φp , φ+ ),
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
193
0.15 before reinitialization after reinitialization 0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25
-0.3 0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
èñ. 3. Ôóíêöèÿ óðîâíÿ äî è ïîñëå ðåèíèöèàëèçàöèè.
φ− = min(φp , φ− ),
φ=
φ+ , φ− ,
åñëè |φ+ | 6 |φ− |, åñëè |φ+ | > |φ− |.
Ïîñêîëüêó â äàííîé çàäà÷å â êà÷åñòâå óíêöèè óðîâíÿ èñïîëüçóåòñÿ ðàññòîÿíèå äî ïîâåðõíîñòè ñî çíàêîì, ýòî ñâîéñòâî íåîáõîäèìî ñîõðàíÿòü íà ïðîòÿæåíèè âñåãî ðàñ÷åòà. Ê ñîæàëåíèþ, ïîñëå îïåðàöèé ïðîäâèæåíèÿ è êîððåêöèè óíêöèÿ óðîâíÿ íå âñåãäà îïðåäåëÿåò ðàññòîÿíèå, ò.å. |∇φ| 6= 1 . Íà ðèñ. 3 ìîæíî âèäåòü, êàê îòêëîíÿåòñÿ óíêöèÿ óðîâíÿ â îäíîì èç òåñòîâûõ ïðèìåðîâ ïîñëå 150 øàãîâ. Äëÿ ïîääåðæàíèÿ ñâîéñòâà |∇φ| = 1 ïîñëå øàãîâ ïðîäâèæåíèÿ è êîððåêöèè óíêöèè óðîâíÿ ïðîâîäèòñÿ øàã ðåèíèöèàëèçàöèè óíêöèè φ0 , íà êîòîðîì ðåøàåòñÿ ñëåäóþùåå óðàâíåíèå: φτ + sgn(φ0 )(|∇φ| − 1) = 0,
ãäå sgn ñãëàæåííàÿ óíêöèÿ çíàêà: sgn(φ0 ) = √
φ0 2 φ2 0 +(∆x)
.
194
Ê. Ä. Íèêèòèí
èñ. 4. Ïîëîæåíèå ÷àñòèö íà ïåðâîì øàãå àëãîðèòìà è ÷åðåç 150 øàãîâ áåç ïåðåðàñïðåäåëåíèÿ.
Èçíà÷àëüíî ÷àñòèöû íàíîñÿòñÿ â ïðèãðàíè÷íûå ÿ÷åéêè ðàâíîìåðíî ïî âñåé ñâîáîäíîé ïîâåðõíîñòè, íî ñ òå÷åíèåì âðåìåíè ðàâíîìåðíîñòü èõ ðàñïðåäåëåíèÿ ìîæåò íàðóøàòüñÿ. Íà ðèñ. 4 ïîêàçàíî, ÷òî ïðîèñõîäèò ñ ðàâíîìåðíî ðàñïûëåííûì âäîëü ïîâåðõíîñòè ìíîæåñòâîì ÷àñòèö ÷åðåç íåêîòîðîå âðåìÿ ðàáîòû àëãîðèòìà. Îäíè ÷àñòèöû óõîäÿò èç ïîâåðõíîñòíûõ ÿ÷ååê â ãëóáèíó, äðóãèå ïåðåðàñïðåäåëÿþòñÿ, ñîñðåäîòà÷èâàÿñü íà íåêîòîðûõ ó÷àñòêàõ ïîâåðõíîñòè. Òàêîå ìíîæåñòâî ÷àñòèö ñòàíîâèòñÿ íåïðèãîäíûì äëÿ òî÷íîãî îòîáðàæåíèÿ ìåëêèõ äåòàëåé ïîâåðõíîñòè.  ñâÿçè ñ ýòèì ñëåäóåò ïåðèîäè÷åñêè âîññòàíàâëèâàòü ðàâíîìåðíîå ðàñïðåäåëåíèå ÷àñòèö íà ïîâåðõíîñòè.
7. Ïðîäâèæåíèå îáëàñòè è ïåðåñòðîåíèå ñåòêè
Íåñìîòðÿ íà òî, ÷òî ñâîáîäíàÿ ãðàíèöà îïðåäåëÿåòñÿ ïîâåðõíîñòüþ φ = 0 , ãðàíèöà ðàñ÷åòíîé îáëàñòè ïðîõîäèò ïî ãðàíÿì ÿ÷ååê, ÷åðåç êîòîðûå ýòà ïîâåðõíîñòü ïðîõîäèò. Ïîñêîëüêó óíêöèÿ óðîâíÿ ïîñòîÿííî ìåíÿåòñÿ, òî ìåíÿåòñÿ è ðàñ÷åòíàÿ îáëàñòü, ò.å.
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
195
èñ. 5. Îïåðàöèè ðàçãðóáëåíèÿ è ñãóùåíèÿ.
íà êàæäîì øàãå íåîáõîäèìî îïðåäåëÿòü, êàêèå ÿ÷åéêè ïðèíàäëåæàò îáëàñòè (çàïîëíåíû æèäêîñòüþ), à êàêèå íåò. Äëÿ ýòîãî èñïîëüçóþòñÿ ÷àñòèöû è óíêöèÿ óðîâíÿ: ïîñëå ïðîäâèæåíèÿ ÷àñòèö äëÿ êàæäîé ïîâåðõíîñòíîé ÿ÷åéêè ïðîâåðÿåòñÿ çíà÷åíèå óíêöèè óðîâíÿ è àêò íàëè÷èÿ â íåé ÷àñòèö. Åñëè ÿ÷åéêà áûëà çàïîëíåíà æèäêîñòüþ, íî çíà÷åíèå óíêöèè óðîâíÿ âî âñåõ åå âåðøèíàõ ñòàëî ïîëîæèòåëüíûì, è â òî æå âðåìÿ â íåé íå îñòàëîñü îòðèöàòåëüíûõ ÷àñòèö, òàêàÿ ÿ÷åéêà ïîìå÷àåòñÿ êàê ïóñòàÿ. Åñëè æå â âîçäóøíóþ ÿ÷åéêó ïîïàëè îòðèöàòåëüíûå ÷àñòèöû, à çíà÷åíèå óíêöèè óðîâíÿ õîòÿ áû â îäíîé âåðøèíå íåïîëîæèòåëüíî, òàêàÿ ÿ÷åéêà ñ÷èòàåòñÿ çàïîëíåííîé æèäêîñòüþ. Ïîñêîëüêó ðàñ÷åòíàÿ ñåòêà ñãóùàåòñÿ ê ïîâåðõíîñòè, òî íà êàæäîì øàãå ïî âðåìåíè ñåòêè íåîáõîäèìî ïåðåñòðàèâàòü, ñãóùàÿ â îäíèõ ìåñòàõ, ðàçãðóáëÿÿ â äðóãèõ. Ïðè ïåðåñòðîåíèè ñåòêè êàæäûé ðàç ïðîèñõîäèò ïåðåèíòåðïîëÿöèÿ ñ ãðóáûõ ÿ÷ååê íà ìåëêèå è íàîáîðîò. Îñóùåñòâëÿåòñÿ ýòî ïîñðåäñòâîì îïåðàöèé ðàçãðóáëåíèÿ è ñãóùåíèÿ (ðèñ. 5). àçãðóáëåíèå ïåðåâîäèò ìåëêèå ÿ÷åéêè â êðóïíûå. Çíà÷åíèÿ óíêöèè óðîâíÿ, ïîïàâøèå â óçëû áîëüøîé ÿ÷åéêè, ñîõðàíÿþòñÿ, îñòàëüíûå îòáðàñûâàþòñÿ. Äëÿ ñêîðîñòåé áåðåòñÿ ñðåäíåå ïî ÷åòûðåì ãðàíÿì, âûõîäÿùèì íà ñîîòâåòñòâóþùóþ ãðàíü áîëüøîé ÿ÷åéêè, à äëÿ äàâëåíèé ñðåäíåå ïî âîñüìè öåíòðàì ìåëêèõ ÿ÷ååê. Ñãóùåíèå äåëèò ãðóáóþ ÿ÷åéêó íà âîñåìü ìåëêèõ. Çíà÷åíèÿ â
196
Ê. Ä. Íèêèòèí
à)
á)
â)
ã)
èñ. 6. Ñå÷åíèå èçîîáúåìà óíêöèè óðîâíÿ −0.01 6 φ(x) 6 0 è ïîëå ñêîðîñòåé â ìîìåíò âðåìåíè à) t = 5 , á) t = 100 , â) t = 260 è ã) t = 425 .
íîâûõ óçëàõ, îáðàçîâàííûõ íà ñåðåäèíàõ ðåáåð, ïîëó÷àþòñÿ âû÷èñëåíèåì ñðåäíèõ àðèìåòè÷åñêèõ äëÿ çíà÷åíèé íà êîíöàõ ðåáðà, äëÿ öåíòðîâ ãðàíåé ñðåäíèõ àðèìåòè÷åñêèõ ïî ÷åòûðåì âåðøèíàì ãðàíè. Äëÿ ñêîðîñòåé è äàâëåíèÿ ñíà÷àëà âû÷èñëÿþòñÿ çíà÷åíèÿ â óçëàõ, äëÿ ÷åãî èñïîëüçóþòñÿ äàííûå ñ ñîñåäíèõ ÿ÷ååê, ïîñëå ÷åãî óçëîâûå ñêîðîñòè èíòåðïîëèðóþòñÿ â öåíòðû ãðàíåé ìåëêèõ ÿ÷ååê, à äàâëåíèÿ â öåíòðû ñàìèõ ÿ÷ååê. Îòìåòèì, ÷òî äëÿ ïðåäëîæåííûõ îïåðàöèé ïåðåèíòåðïîëÿöèè âûïîëíÿþòñÿ íåîáõîäèìûå çàêîíû ñîõðàíåíèÿ: ñîõðàíåíèå ñðåäíåãî äàâëåíèÿ â ÿ÷åéêå è ñðåäíåé ñêîðîñòè íà ãðàíè.
8. ×èñëåííûé ýêñïåðèìåíò
 êà÷åñòâå ïðèìåðà ðàáîòû àëãîðèòìà ðàññìàòðèâàåòñÿ çàäà÷à ìîäåëèðîâàíèÿ ïàäåíèÿ êàïëè íà ïîâåðõíîñòü æèäêîñòè.  ýòîì
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé
à)
á)
â)
ã)
197
èñ. 7. Èçîîáúåì óíêöèè óðîâíÿ −0.01 6 φ(x) 6 0 â ìîìåíò âðåìåíè à) t = 5 , á) t = 100 , â) t = 260 è ã) t = 425 .
ñëó÷àå åäèíñòâåííàÿ ñèëà, äåéñòâóþùàÿ íà æèäêîñòü ñèëà òÿæåñòè: â óðàâíåíèè (1) f = (0, 0, −1) . Êîýèöèåíò âÿçêîñòè ν = 0.0001 . Ìèíèìàëüíûé øàã ñåòêè hmin = 32−1 , øàã âðåìåíè ∆t = 0.005 . Íà ðèñ. 6 ïðåäñòàâëåíî ñå÷åíèå îáúåìà æèäêîñòè â ìîìåíòû âðåìåíè t = 5 , t = 100 , t = 260 è t = 425 . Ñòðåëêàìè ïîêàçàíî ïîëå ñêîðîñòåé. Íà ðèñ. 7 ïîêàçàí èçîîáúåì óíêöèè óðîâíÿ −0.01 6 φ(x) 6 0 ,
198
Ê. Ä. Íèêèòèí
ïîêàçûâàþùèé ïîëîæåíèå ñâîáîäíîé ïîâåðõíîñòè æèäêîñòè.
Ñïèñîê ëèòåðàòóðû
[1℄ Chorin A. Numeri al solution of the Navier-Stokes equations. // 1968, V.22, p.745-762.
Math. Comp.
[2℄ ßíåíêî Í.Í. Ìåòîä äðîáíûõ øàãîâ ðåøåíèÿ ìíîãîìåðíûõ çàäà÷ ìàòåìàòè÷åñêîé èçèêè. Íîâîñèáèðñê: Íàóêà, 1967. [3℄ Temam R. Sur l'approximation des equations de Navier-Stokes. // , Serie A, 1966, V.262, 219-221.
C.R.A ad.S i. Paris
[4℄ Kass M., Miller, G., Rapid, Stable Fluid Dynami s for Referen es Computer Graphi s. // , 1990, 49-57.
ACM SIGGRAPH 90
[5℄ Osher S., Fedkiw R. Level Set Methods and Dynami Impli it Surfa es. Springer-Verlag, 2002. [6℄ Enright D., Fwdkiw R., Ferziger J., Mit hell I. A hybrid parti le level set method for improved interfa e apturing. // , 2002, V.183, p.83-116.
J. Comp.
Phys.
[7℄ Samet H. The Design and Analysis of Spatial Data Stru tures. New York, Addison-Wesley, 1989. [8℄ Grob S., Rei helt V., Reusken A. A Finite Element Based Level Set Method for Two-Phase In ompressible Flows. // , 2006.
Visualization in S ien e
Computing and
[9℄ Kaporin I. High quality pre onditioning of a general symmetri positive denite matrix based on its UT U + UT R + RT U de omposition. // , 1998, V.5, p.483509.
Numer.Linear Algebra Appl.
[10℄ Saad Y. Iterative methods for sparse linear systems, Se ond Edition. Philadelphia, PA: SIAM, 2003.
Àëãîðèòìû ñëåïîãî ðàçäåëåíèÿ èñòî÷íèêîâ â ïàêåòíîì ðåæèìå $
Ä. Â. Ñàâîñòüÿíîâ
Ïðè àíàëèçå ÷èñëîâûõ äàííûõ, èçìåíÿþùèõñÿ âî âðåìåíè, ÷àñòî åñòü îñíîâàíèÿ ñ÷èòàòü, ÷òî íàáëþäàåìûå ïîñëåäîâàòåëüíîñòè ñ äîñòàòî÷íîé òî÷íîñòüþ ìîãóò áûòü âûðàæåíû ëèíåéíûìè êîìáèíàöèè íåñêîëüêèõ íåçàâèñèìûõ êîìïîíåíò. Çàäà÷à îòûñêàíèÿ íåçàâèñèìûõ êîìïîíåíò ïî çàäàííîé ñìåñè íàçûâàåòñÿ ñëåïûì ðàçäåëåíèåì ñèãíàëîâ. Äëÿ åå ðåøåíèÿ ðàçðàáîòàíî ìíîæåñòâî ìåòîäîâ, êîòîðûå ìîæíî îòíåñòè ê îäíîìó èç äâóõ êëàññîâ ìåòîäû, èñïîëüçóþùèå â ïðîöåññå ðàñ÷åòà âåñü ìàññèâ äàííûõ öåëèêîì, è ìåòîäû, îñíîâàííûå íà äèàãîíàëèçàöèè ñòàòèñòèê, ïîëó÷åííûõ ïî èñõîäíûì äàííûì.  ýòîé ñòàòüå ìû ïîêàçûâàåì, ÷òî òîëüêî ìåòîäû âòîðîãî òèïà äîïóñêàþò ¾ïàêåòíûé¿ ðåæèì îáðàáîòêè äàííûõ, òî åñòü ìîãóò ýåêòèâíî ïðèìåíÿòüñÿ â ñëó÷àå, êîãäà ñèãíàëû íå ìîãóò õðàíèòüñÿ â äîñòóïíîé îïåðàòèâíîé ïàìÿòè âî âðåìÿ ïðîâåäåíèÿ ðàñ÷åòà.
1. Ââåäåíèå
1.1. Èñòîðèÿ çàäà÷è.
Âîçìîæíî, íàèáîëåå êëàññè÷åñêèì ïðèìåðîì çàäà÷è, äëÿ ðåøåíèÿ êîòîðîé òðåáóåòñÿ ðàçäåëèòü íàáëþäàåìûå ÷èñëîâûå ïîñëåäîâàòåëüíîñòè íà íàáîð íåçàâèñèìûõ èñòî÷íè$ àáîòà âûïîëíåíà ïðè ïîääåðæêå ãðàíòîâ ÔÔÈ 05-1-00721, 06-01-08052 è
Ïðîãðàììû ïðèîðèòåòíûõ óíäàìåíòàëüíûõ èññëåäîâàíèé Îòäåëåíèÿ ìàòåìàòè÷åñêèõ íàóê ÀÍ ¾Âû÷èñëèòåëüíûå è èíîðìàöèîííûå ïðîáëåìû ðåøåíèÿ áîëüøèõ çàäà÷¿ ïî ïðîåêòó ¾Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè äëÿ çàäà÷ ñî ñâåðáîëüøèì ÷èñëîì íåèçâåñòíûõ¿. Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
200
Ä. Â. Ñàâîñòüÿíîâ
êîâ, ÿâëÿåòñÿ ¾çàäà÷à î âå÷åðèíêå¿. Íà øóìíîé âå÷åðèíêå, ãäå îäíîâðåìåííî ðàçãîâàðèâàåò ìíîæåñòâî ëþäåé, ÷åëîâåê ìîæåò êîíöåíòðèðîâàòü âíèìàíèå íà áåñåäå ñ òîâàðèùåì è èãíîðèðîâàòü ðå÷ü âñåõ îñòàëüíûõ; îäíàêî óñëûøàâ èç äàëüíåãî êîíöà çàëà ñâîå èìÿ, îí ðàñïîçíàåò åãî è ðåàãèðóåò íà ïðèçûâ. Ýòà ïñèõîèçè÷åñêàÿ ñïîñîáíîñòü áûëà âïåðâûå îïèñàíà â 1953 ãîäó Êîëèíîì ×åððè [1℄, èçó÷àâøèì ïðîáëåìû, âñòàþùèå ïåðåä äèñïåò÷åðàìè êðóïíûõ àýðîïîðòîâ, êîãäà ïðèõîäÿùèå ñîîáùåíèÿ îò íåñêîëüêèõ ïèëîòîâ ñìåøèâàþòñÿ â äèíàìèêå.  ñâîåé ñòàòüå ×åððè çàêëþ÷èë, ÷òî ¾ñïîñîáíîñòü ðàçäåëÿòü çâóêè è èãíîðèðîâàòü ïîñòîðîííèå øóìû îñíîâàíà íà õàðàêòåðèñòèêàõ çâóêà, òàêèõ êàê òîí ãîâîðÿùåãî, íàïðàâëåíèå, ñ êîòîðîãî ïðèõîäèò çâóê, âûñîòà çâóêà, ÷àñòîòà ðå÷è¿. Òàêèì îáðàçîì áûëî ñîðìóëèðîâàíî ïðåäïîëîæåíèå î òîì, ÷òî ìîçã ðàçäåëÿåò ïîñòóïàþùóþ ñìåñü çâóêîâûõ ñèãíàëîâ, îñíîâûâàÿñü íà ðàçëè÷èè â ñòðóêòóðå èñõîäíûõ êîìïîíåíò. Ìåõàíèçì ðàçäåëåíèÿ ñèãíàëîâ â ÷åëîâå÷åñêîì ìîçãå äî ñèõ ïîð íå èçó÷åí ïîëíîñòüþ, îäíàêî àëãîðèòìû ðåøåíèÿ ðîäñòâåííûõ çàäà÷ ñ ïîìîùüþ êîìïüþòåðîâ íàøëè øèðîêîå ïðèìåíåíèå â îáëàñòè öèðîâîé îáðàáîòêè ñèãíàëîâ, ãäå è ïîëó÷èëè íàçâàíèå ìåòîäîâ (ñëåïîãî) ðàçäåëåíèÿ ñèãíàëîâ. Íà èõ îñíîâå ðåøàåòñÿ ìíîæåñòâî ïðàêòè÷åñêèõ çàäà÷ â ñàìûõ ðàçëè÷íûõ îáëàñòÿõ: ìåäèöèíñêîå èññëåäîâàíèå óíêöèé ìîçãà íà îñíîâå äàííûõ ìàãíèòíîé ýíöåàëîãðàèè, ìàãíèòíî-ðåçîíàíñíîé òîìîãðàèè èëè ñïåêòðîñêîïèè (ñì., íàïð. [2, 3, 4, 5, 6℄); ðàçâèòèå ìåòîäîâ ïåðåäà÷è èíîðìàöèè ÷åðåç MIMO (multiinput multi-output) êàíàëû (ñì., íàïð. [7, 8, 9℄); àíàëèç ñìåñåé â õèìèè è ñïåêòðîãðàèè (ñì. îáçîð [10℄); èññëåäîâàíèå ÷èñëîâûõ ðÿäîâ â èíàíñîâîé ìàòåìàòèêå [11, 12℄, ñîöèîëîãèè, ñòàòèñòèêå, ïðè àíàëèçå ñïðîñà; êîíòðîëü òðàíñïîðòíûõ è ïðîèçâîäñòâåííûõ ïðîöåññîâ; ìóëüòèìåäèéíûå ïðèëîæåíèÿ, ðàñïîçíàâàíèå òåêñòîâ è èçîáðàæåíèé [13, 14℄.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
201
Ìàòåìàòè÷åñêàÿ ïîñòàíîâêà çàäà÷è âî âñåõ ýòèõ ïðèëîæåíèÿõ âåñüìà ñõîæà è äîâîëüíî ïðîñòà: ïðåäïîëàãàåòñÿ, ÷òî íàáëþäàåìûå yi (t), i = 1, . . . m, ëèíåéíî âûðàæàþòñÿ ÷åðåç xj (t), j = 1, . . . , n. Íå îãðàíè÷èâàÿ îáùíîñòè, ìîæíî ñ÷èòàòü, ÷òî è òå, è äðóãèå èìåþò íóëåâîå ñðåäíåå.  ìàòðè÷íî-âåêòîðíîé çàïèñè
íåçà-
èñòî÷íèêè âèñèìûå êîìïîíåíòû
y(t) = Ax(t) + ξ(t),
(∗)
âåêòîðû y(t) è x(t) íàçûâàþòñÿ ñîîòâåòñòâåííî âåêòîðàìè ñèãíàëîâ è ïðåäïîëàãàè èñòî÷íèêîâ, ìàòðèöà A íàçûâàåòñÿ åòñÿ íå çàâèñÿùåé îò ïàðàìåòðà t (äèñêðåòíîãî èëè íåïðåðûâíîãî), íàçûâàåìîãî âðåìåíåì.  íàèáîëåå îáùåì ñëó÷àå íèêàêîé àïðèîðíîé èíîðìàöèè î ìàòðèöå A è õàðàêòåðèñòèêàõ èñòî÷íèêîâ xi (t) íå èìååòñÿ òîãäà ãîâîðÿò î ìåòîäàõ ðàçäåëåíèÿ ñèãíàëîâ (blind sour e separation, BSS ), êîòîðûì è ïîñâÿùåíà íàøà ñòàòüÿ. ξi (t) ïîëàãàþòñÿ íåçàâèñèìûìè è, êàê Êîìïîíåíòû âåêòîðà ïðàâèëî, íîðìàëüíî ðàñïðåäåëåííûìè. Èñòî÷íèêè xi (t) ïðåäïîëàãàþòñÿ îäíàêî ïðè ðåøåíèè çàäà÷è î ðàçäåëåíèè ñèãíàëîâ ýòî óñëîâèå ìîæåò áûòü ïî-ðàçíîìó èñïîëüçîâàíî è îòîáðàæåíî íà àëãîðèòì.
ñìåøèâàþùåé ñëåïîãî
øóìà íåçàâèñèìûìè,
1.2. Êëàññèèêàöèÿ ñóùåñòâóþùèõ ìåòîäîâ ðåøåíèÿ.
 ïðîñòåéøåì ñëó÷àå íåçàâèñèìîñòü ñèãíàëîâ îðìóëèðóåòñÿ êàê èõ íåêîððåëèðîâàííîñòü, òî åñòü äèàãîíàëüíîñòü ìàòðèöû E[x(t)x∗ (t)], ãäå E[ · ] îñðåäíåíèå ïî âðåìåíè. Òîãäà ìîæíî çàïèñàòü (äëÿ ïðîñòîòû èçëîæåíèÿ ïîëàãàåì, ÷òî øóìîâ íåò) Φy = E[y(t)y∗ (t)] = E[Ax(t)x∗ (t)A∗ ] = AE[x(t)x∗ (t)]A∗ = ADA∗ ,
ó÷èòûâàÿ, ÷òî A íå çàâèñèò îò âðåìåíè. Òàêèì îáðàçîì, A ìîæíî îïðåäåëèòü ÷åðåç ðåøåíèå çàäà÷è äèàãîíàëèçàöèè ìàòðèöû êîâàðèàöèè. Îäèí îòâåò î÷åâèäåí ïîñòðîèòü ñîáñòâåííîå ðàçëîæåíèå Φy = UΛU∗ è èñïîëüçîâàòü â êà÷åñòâå A ìàòðèöó ñîáñòâåííûõ âåêòîðîâ, à â êà÷åñòâå D ñîáñòâåííûå çíà÷åíèÿ Λ. Ýòî ðåøåíèå íå åäèíñòâåííî (â êà÷åñòâå A ìîæåò áûòü âçÿòà ìàòðèöà âèäà A = UΛ1/2 WΛ†/2 ,
(1)
202
Ä. Â. Ñàâîñòüÿíîâ
ãäå W ïðîèçâîëüíàÿ óíèòàðíàÿ).  ñàìîì äåëå, ìàòðèöà U óíèòàðíà, à ñìåøèâàþùàÿ ìàòðèöà A íå îáÿçàòåëüíî. Âïðî÷åì, îïèñàííûé íàìè ñåé÷àñ ìåòîä (prin ipal omponent analysis, PCA ), íåñìîòðÿ íà ñâîþ ïðîñòîòó, øèðîêî ïðèìåíÿåòñÿ äëÿ ïîíèæåíèÿ ðàçìåðíîñòè ïðè ñòàòèñòè÷åñêîé îáðàáîòêå áîëüøèõ ìàññèâîâ äàííûõ (ñì. íàïð., [15, 16, 17℄) è ïî ñåé äåíü èñïîëüçóåòñÿ äëÿ ïðåäîáðàáîòêè (òàê íàçûâàåìîãî ¾îáåëåíèÿ¿) âõîäíûõ äàííûõ â áîëüøèíñòâå ìåòîäîâ ñëåïîãî ðàçäåëåíèÿ ñèãíàëîâ. Ìû ïîíÿëè, ÷òî îäíîé íåêîððåëèðîâàííîñòè èñòî÷íèêîâ äëÿ ðàçäåëåíèÿ èñòî÷íèêîâ íåäîñòàòî÷íî, è òðåáóåòñÿ èñïîëüçîâàòü êàêèåòî äîïîëíèòåëüíûå ñðåäñòâà îïèñàíèÿ èõ íåçàâèñèìîñòè.  çàâèñèìîñòè îò âûáîðà ýòèõ ñðåäñòâ, èòîãîâûé àëãîðèòì ìîæíî îòíåñòè ê îäíîìó èç ñëåäóþùèõ ñåìåéñòâ.
ãëàâíûõ êîìíîíåíò
Àëãîðèòìû, â êîòîðûõ íåçàâèñèìûå êîìïîíåíòû âûáèðàþòñÿ â íàïðàâëåíèÿõ, ìàêñèìèçèðóþùèõ ñòåïåíü èõ ìèíèìèçèðóþùèõ ìåðó èëè æå ìàêñèìèçèðóþùèõ â ëèíåéíîì ïðîñòðàíñòâå äàííûõ, âîçìîæíî ñ äîïîëíèòåëüíûìè îãðàíè÷åíèÿìè. Ê ýòîìó ñåìåéñòâó îòíîñÿòñÿ àëãîðèòìû FastICA [18℄, MILCA [22℄, SNICA . Îáçîðû ìîæíî íàéòè â [20, 21℄.
âîñòè,
íåãàóññîâçàèìíîé èíîðìàöèè êðèòåðèé ïðàâäîïîäîáèÿ
Àëãîðèòìû, â êîòîðûõ äîïîëíèòåëüíàÿ èíîðìàöèÿ î íåçàâèñèìîñòè èçâëåêàåòñÿ çà ñ÷åò îäíîâðåìåííîé äèàãîíàëèçàöèè ñòàòèñòèê è/èëè èñïîëüçîâàíèè êóìóëÿíòîâ âûñîêîãî ïîðÿäêà [23, 25℄. Ïðè ýòîì ïåðûâìè âû÷èñëÿþòñÿ íå íåçàâèñèìûå êîìïîíåíòû, à ñìåøèâàþùàÿ ìàòðèöà. Ê ýòîìó ñåìåéñòâó îòíîñèòñÿ, íàïðèìåð, ìåòîä JADE.
íåñêîëüêèõ
Ñ âû÷èñëèòåëüíîé òî÷êè çðåíèÿ ðàçëè÷èå ñîñòîèò â ñëåäóþùåì. Àëãîðèòìû ïåðâîé ãðóïïû âû÷èñëÿþò íåïîñðåäñòâåííî íåçàw âèñèìûå êîìïîíåíòû, èòåðàöèîííî àäàïòèðóÿ (èëè âñþ W ) òàê, ÷òîáû óíêöèè xi (t) = (wi , y(t)) äàâàëè ýêñòðåìóì óíêöèîíàëà, âûáðàííîãî â êà÷åñòâå ñòàòèñòè÷åñêîãî îïèñàíèÿ íåçàâèñèìîñòè. Òàêèì îáðàçîì, â õîäå èòåðàöèîííîãî ïðîöåññà òðåáóåòñÿ õðàíèòü â ïàìÿòè âåñü
ðàçìåøèâàþùóþ ìàòðèöó
âåñîâîé âåêòîð
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
203
öåëèêîì
âåêòîð äàííûõ è íà êàæäîì øàãå âû÷èñëÿòü íà åãî îñíîâå ãðàäèåíò öåëåâîé óíêöèè. Ýòî ìîæåò áûòü çàòðóäíèòåëüíî â òîì ñëó÷àå, åñëè îáúåì äàííûõ ñëèøêîì âåëèê, è îíè íå ìîãóò îäíîâðåìåííî ïðèñóòñòâîâàòü â îïåðàòèâíîé ïàìÿòè (íàïðèìåð, åñëè ðå÷ü èäåò î âû÷èñëåíèÿõ â ðåàëüíîì âðåìåíè íà íåáîëüøîì âû÷èñëèòåëüíîì óçëå).  ýòîì ñëó÷àå ðàçäåëåíèå ñèãíàëîâ äîëæíî ïðîèñõîäèò ïîðöèÿìè, ïîìåùàþùèìèñÿ â îïåðàòèâíóþ ïàìÿòü, à óìåíüøåíèå ðàçìåðà òàêîé ïîðöèè ñêàçûâàåòñÿ íà ñòàòèñòè÷åñêèõ ñâîéñòâàõ âûáîðêè è èòîãîâîé òî÷íîñòè ðàçäåëåíèÿ. Àëãîðèòìû âòîðîé ãðóïïû ðàáîòàþò íå ñ ñàìèìè ñèãíàëàìè, à òîëüêî ëèøü ñ èõ ñòàòèñòèêàìè. Öåíòðàëüíàÿ ñîñòàâëÿþùàÿ ýòèõ ìåòîäîâ îäíîâðåìåííàÿ äèàãîíàëèçàöèÿ íåñêîëüêèõ ìàòðèö ñòàòèñòèê, ïðè÷åì èõ ÷èñëî ìîæåò áûòü è äîñòàòî÷íî áîëüøèì. Àëãîðèòìû ðåøåíèÿ ýòîé çàäà÷è ïðåäëàãàëèñü â ðàáîòàõ [24, 26, 27, 28℄; êðîìå òîãî, ïîñêîëüêó çàäà÷à îäíîâðåìåííîé äèàãîíàëèçàöèè ìàòðèö ýêâèâàëåíòíà çàäà÷å î òðèëèíåéíîì ðàçëîæåíèè òåíçîðà (òðåõìåðíîãî ìàññèâà), äëÿ ðåøåíèÿ ìîæåò áûòü èñïîëüçîâàí ëþáîé àëãîðèòì âû÷èñëåíèÿ òðèëèíåéíîé àïïðîêñèìàöèè òåíçîðà, ñî ìíîãèìè èç êîòîðûõ ìîæíî ïîçíàêîìèòüñÿ â [29℄[36℄. Îäíàêî ïîïóëÿðíîñòü ýòîé ãðóïïû ìåòîäîâ ó èíæåíåðîâ-âû÷èñëèòåëåé, ïî âñåé âèäèìîñòè, íèæå, ÷åì ìåòîäîâ òèïà FastICA . Îá ýòîì ãîâîðèò êàê ñðàâíèòåëüíî íåáîëüøîå êîëè÷åñòâî îò÷åòîâ îá óñïåøíîì èñïîëüçîâàíèè ìåòîäîâ îäíîâðåìåííîé äèàãîíàëèçàöèè äëÿ ðåøåíèÿ çàäà÷è BSS , òàê è îòñóòñòâèå ïîäîáíûõ àëãîðèòìîâ â äîñòóïíûõ ïàêåòàõ áèáëèîòå÷íûõ ïðîãðàìì. Âåðîÿòíî, ýòî ñâÿçàíî ñ îïðåäåëåííûìè òðóäíîñòÿìè ïðè ïåðåõîäå ñ òåîðåòèêîâåðîÿòíîñòíîãî èëè ñòàòèñòè÷åñêîãî ÿçûêà îïèñàíèÿ íà ÿçûê ëèíåéíîé àëãåáðû è ìàòðè÷íîé è òåíçîðíîé àðèìåòèêè. Îäíàêî ýòè ìåòîäû êàæóòñÿ íàì î÷åíü ïåðñïåêòèâíûìè, â ÷àñòíîñòè ïðè ðàçäåëåíèè ñèãíàëîâ â ¾ïàêåòíîì¿ ðåæèìå, òî åñòü â ñèòóàöèè, êîãäà íåâîçìîæíî ðàçìåñòèòü âåñü èìåþùèéñÿ ìàññèâ äàííûõ öåëèêîì â îïåðàòèâíîé ïàìÿòè.  ýòîé ñòàòüå ìû ðàññìîòðèì âîïðîñû ðåàëèçàöèè àëãîðèòìîâ ñëåïîãî ðàçäåëåíèÿ ñèãíàëîâ â ïàêåòíîì ðåæèìå.  öåëÿõ ñâÿçíîñòè èçëîæåíèÿ ìû êðàòíî èçëîæèì ñõåìû òèïîâûõ àëãîðèòìîâ èç ïåðâîé è âòîðîé ãðóïïû, íî äëÿ óïðîùåíèÿ èçëîæåíèÿ áóäåì ïðå-
204
Ä. Â. Ñàâîñòüÿíîâ
íåáðåãàòü íàëè÷èåì øóìîâ â ìîäåëè (∗).
2. Ìåòîä FastICA
Àëãîðèòì èçëîæåí ïî ñòàòüå [19℄.
2.1. Ïðîåöèðîâàíèå íà áàçèñ ãëàâíûõ êîìïîíåíò.
Êàê ïîêàçàíî â ïåðâîì ðàçäåëå, òðåáîâàíèå íåêîððåëèðîâàííîñòè èñòî÷íèêîâ ïîçâîëÿåò îïðåäåëèòü ÷àñòü èíîðìàöèè î ñìåøèâàþùåé ìàòðèöå, çàïèñàâ åå â âèäå (1) è ïðåîáðàçîâàâ ìîäåëü (∗) ê âèäó UΛ1/2 WΛ†/2 x(t) = y(t),
ãäå Λ è U ñîáñòâåííûå çíà÷åíèÿ è ñîáñòâåííûå âåêòîðà ìàòðèöû êîððåëëÿöèè Φy , Λ† ïñåâäîîáðàòíàÿ ìàòðèöà, W íåèçâåñòíàÿ óíèòàðíàÿ ìàòðèöà. Îáðàòèâ ïåðâûå äâà ñîìíîæèòåëÿ è ïåðåîáîçíà÷èâ x(t) := Λ†/2 x(t) (èñòî÷íèêè îïðåäåëåíû ñ òî÷íîñòüþ äî ìíîæèòåëÿ è ïîðÿäêà), ïîëó÷àåì ëèíåéíóþ ìîäåëü ñ ñìåøèâàþùåé ìàòðèöåé
óíèòàðíîé
Wx(t) = z(t),
ãäå z(t) = Λ†/2 U∗ y(t).
(2)
 ìåòîäå FastICA óíèòàðíîñòü ñìåøèâàþùåé ìàòðèöû ñòðîãî íåîáõîäèìà, òàê êàê îíà ïîçâîëÿåò íàõîäèòü íåçàâèñèìûå êîìïîíåíòû ïî-îäíîé. Ïðåäâàðèòåëüíîå ¾îáåëåíèå¿ ñèãíàëîâ ïî îðìóëå (2) ÷àñòî ïðèìåíÿåòñÿ è â äðóãèõ àëãîðèòìàõ BSS , òàê êàê îíî óâåëè÷èâàåò óñòîé÷èâîñòü ðåøàåìîé çàäà÷è ê øóìàì è îøèáêàì îêðóãëåíèÿ. Îòìåòèì, ÷òî ïðè âû÷èñëåíèè ïñåâäîîáðàòíîé ìàòðèöû ìîæíî ñ÷èòàòü íóëåâûìè âñå äèàãîíàëüíûå ýëåìåíòû, ìåíüøèå íåêîòîðîãî ïîðîãîâîãî çíà÷åíèÿ, ñóçèâ òåì ñàìûì çàäà÷ó ñ ïðîñòðàíñòâà, îáðàçîâàííîå ëèíåéíîé îáîëî÷êîé ñèãíàëîâ, íà ïîäïðîñòðàíñòâî, îáðàçîâàííîå ëèíåéíîé îáîëî÷êîé ñòàðøèõ êîìïîíåíò (ñèãíàëüíîå ïîäïðîñòðàíñòâî), è îòèëüòðîâàâ ïîäïðîñòðàíñòâî ìëàäøèõ êîìïîíåíò (øóìîâîå). Âî ìíîãèõ ïðèëîæåíèÿõ, íàïðèìåð, ïðè àíàëèçå áîëüøèõ ìàññèâîâ ñõîæèõ èçîáðàæåíèé (ðàñïîçíàâàíèå ïîðòðåòíûõ îòîãðàèé, îòïå÷àòêîâ ïàëüöåâ) ýòî ñóæåíèå ïðèâîäèò ê çíà÷èòåëüíîé ýêîíîìèè ïàìÿòè, òðåáóåìîé äëÿ õðàíåíèÿ èíîðìàöèè. Â
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
205
èíàíñîâîé ìàòåìàòèêå ïðè àíàëèçå äèíàìèêè êóðñîâ àêöèé ìåòîä PCA òîæå ïîçâîëÿåò ñæàòü ìàññèâ äàííûõ, íî ÷òî åùå âàæíåå îïðåäåëèòü êîëè÷åñòâî íåçàâèñèìûõ àêòîðîâ, äåéñòâóþùèõ íà ðûíîê. Íà ðèñ. 1 ïîêàçàí ïðèìåð çàäà÷è, â êîòîðîé äàííûå î êóðñàõ 33 àêöèé áûëè ñ îòíîñèòåëüíîé òî÷íîñòüþ îêîëî îäíîãî ïðîöåíòà ïðèáëèæåíû ëèíåéíîé êîìáèíàöèåé òðåõ ãëàâíûõ êîìïîíåíò.
2.2. Êðèòåðèé íåçàâèñèìîñòè è ìåðû íåãàóññîâîñòè.
Íåêîððåëèðîâàíîñòü èñòî÷íèêîâ òåïåðü âûïîëíåíà àâòîìàòè÷åñêè, è íàì òðåáóåòñÿ íåêîòîðîå äîïîëíèòåëüíîå îïèñàíèå íåçàâèñèìîñòè äëÿ îïðåäåëåíèÿ W. Îòìåòèì, ÷òî ïåðåõîä â áàçèñ ãëàâíûõ êîìïîíåíò ïîçâîëÿåò îïðåäåëÿòü íåçàâèñèìûå êîìïîíåíòû ïî-îòäåëüíîñòè. x(t) = W ∗ z(t),
xi (t) =
m X
w ji zj (t) = (wi , z(t)),
i = 1, . . . , n,
j=1
ãäå âåñîâîé âåêòîð wi îïðåäåëÿåò i -é ñòîëáåö ìàòðèöû W. Ïîëó÷åííàÿ îðìóëà îïðåäåëÿåò íåçàâèñèìóþ êîìïîíåíòó xi (t) êàê ëèíåéíóþ êîìáèíàöèþ ãëàâíûõ êîìïîíåíò, êîòîðûå â ñâîþ î÷åðåäü ÿâëÿþòñÿ ëèíåéíîé êîìáèíàöèåé íàáëþäàåìûõ ñèãíàëîâ. Áóäåì ðàññìàòðèâàòü êîìïîíåíòû xi (t) êàê ðåàëèçàöèè âî âðåìåíè íåêîòîðûõ ñëó÷àéíûõ âåëè÷èí, à yi (t) è zi (t) êàê ëèíåéíóþ êîìáèíàöèþ (ñìåñü) ýòèõ ñëó÷àéíûõ âåëè÷èí. Êëàññè÷åñêèé ðåçóëüòàò òåîðèè âåðîÿòíîñòè öåíòðàëüíàÿ ïðåäåëüíàÿ òåîðåìà ãîâîðèò, ÷òî óíêöèÿ ðàñïðåäåëåíèÿ ñóììû äâóõ ñëó÷àéíûõ âåëè÷èí âñåãäà áëèæå (ñòðîãî ãîâîðÿ, íå äàëüøå) ê íîðìàëüíîìó ðàñïðåäåëåíèþ, ÷åì óíêöèè ðàñïðåäåëåíèÿ ñëàãàåìûõ. Îòìåòèì, ÷òî ëèíåéíàÿ êîìáèíàöèÿ ãëàâíûõ êîìïîíåíò ñ ïðîèçâîëüíûìè âåñàìè w ìîæåò áûòü ïðåäñòàâëåíà â âèäå ξ = w∗ z = w∗ Wx = q∗ x,
q = W ∗ w.
ìåðà íåãàóññîâîñòè
Ïóñòü M(ξ) íåêîòîðàÿ ñëó÷àéíîé âåëè÷èíû ξ (ïîêà íàì íå âàæíî, êàê èìåííî âûáèðàòü ýòó ìåðó). Ìàêñèìóì ! n X ∗ q i xi M(ξ) = M(q x) = M i=1
206
Ä. Â. Ñàâîñòüÿíîâ
èñ. 1. Ïðèìåíåíèå ìåòîäà ãëàâíûõ êîìïîíåíò äëÿ ïîíèæåíèÿ ðàçìåðíîñòè ïðè îïèñàíèè êóðñîâ àêöèé
Êóðñû ðàçëè÷íûõ àêöèé (âñåãî 33, íà ðèñóíêàõ 6) Lsig1 (t)
0.08
Bsig1 (t)
0.055
0.07
0.045 0.04
0.06 0.04
0.05
M sig1 (t)
0.05
0.05 0.045
0.035
0.035 0.03
0.04
0.03
0.03
0.025
0.025 0.02
0.02
0.02
0.015
0.015
0.01 0
0.01
0.01
0
200
400
600
800
1000
1200
1400
1600
0.005
0
200
400
600
Lsig2 (t)
0.08
800
1000
1200
1400
1600
Bsig2 (t)
0.05
0.06
0
200
400
600
800
1000
1200
1400
1600
1000
1200
1400
1600
M sig2 (t)
0.05
0.045
0.07
0.005
0.045
0.04
0.04
0.035
0.035
0.05 0.03
0.03
0.025
0.025
0.04 0.03
0.02
0.02
0.02
0.015
0.015
0.01
0.01
0
200
400
600
800
1000
1200
1400
1600
0
200
400
600
800
1000
1200
1400
1600
0.01
0
200
400
600
800
Ñòàðøèå ãëàâíûå êîìïîíåíòû (ñèãíàëüíîå ïðîñòðàíñòâî) P ca01 (t) [bss 0.98]
2.5
P ca02 (t) [bss 0.98]
3
2
2 1.5
1
1 0.5
1
0
0.5
0
0
-1
-0.5 -1
-0.5
-2
-1
-1.5
-3
-2 -2.5
P ca03 (t) [bss 0.98]
2.5
2
1.5
ica 0
200
400
600
800
1000
1200
1400
-1.5
ica 1600
-4
0
200
400
600
800
1000
1200
1400
1600
-2
ica 0
200
400
600
800
1000
1200
1400
1600
Ïðîåêöèè ñèãíàëîâ íà ñèãíàëüíîå ïðîñòðàíñòâî Sig11 (t) [bss 0.98]
0.08
0.04 0.035
0.035
0.04
0.03
0.03
0.025
0.03 0.025 0.02
0.02
0.02
0.015
0.015
0.01
0.01
0.01
0
200
400
600
800
1000
1200
1400
1600
Sig12 (t) [bss 0.98]
0.08
0
200
400
600
800
1000
1200
1400
1600
Sig113 (t) [bss 0.98]
0.05
true from ica
0.07
0.005
true from ica
0.01
400
600
800
1000
1200
1400
1600
0.01
1000
1200
1400
1600
true from ica
0.02 0.015
0.015
200
800
Sig124 (t) [bss 0.98]
0.025
0.02
0
600
0.03
0.03
0.02
400
0.04
0.025
0.03
200
0.035
0.035
0.04
0
0.045
0.04
0.05
0.005
0.05
0.045
0.06
true from ica
0.045
0.04
0.05
Sig123 (t) [bss 0.98]
0.05 true from ica
0.05 0.045
0.06
0
Sig112 (t) [bss 0.98]
0.055
true from ica
0.07
0.01 0
200
400
600
800
1000
1200
1400
1600
0.005
0
200
400
600
800
1000
1200
1400
1600
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
207
äîñòèãàåòñÿ, êîãäà â ïðàâîé ÷àñòè ðàâåíñòâà ñòîèò âñåãî ëèøü îäíî ñëàãàåìîå xi . Ïðè ýòîì âåñîâîé âåêòîð êàê-òî íîðìèðîâàí, íàïðèìåð kwk = 1, à â ñèëó óíèòàðíîñòè ìàòðèöû W ýòî îçíà÷àåò, ÷òî è âåêòîð q èìååò íîðìèðîâêó kqk = kW ∗ wk = kwk = 1. Òàêèì îáðàçîì, ìàêñèìóì ìåðû íåãàóññîâîñòü äëÿ ξ äîñòèãàåòñÿ íà âåêòîðå q, êîòîðûé èìååò òîëüêî îäèí íåíóëåâîé (à ñëåäîâàòåëüíî åäèíè÷íûé) ýëåìåíò. Îòñþäà ïîëó÷àåì arg max M (w∗ z) = W arg max M (q∗ x) = Wei = wi , w
(3)
q
òî åñòü âåñîâîé âåêòîð w, äîñòàâëÿþùèé ìàêñèìóì ìåðû íåãàóññîâîñòè ëèíåéíîé êîìáèíàöèè ãëàâíûõ êîìïîíåíò, ÿâëÿåòñÿ îäíèì èç ñòîëáöîâ ìàòðèöû W. Èòàê, ìåòîäà ÿâëÿåòñÿ ïîèñê òàêîé ëèíåéíîé êîìáèíàöèè ãëàâíûõ êîìïîíåíò z(t), äëÿ êîòîðîé ñòåïåíü íåãàóññîâîñòè ñóììû ìàêñèìàëüíà. Êîýèöèåíòû ýòîé ñóììû îïðåäåëÿþò ñòîëáåö ìåøèâàþùåé ìàòðèöû W.  êà÷åñòâå ìåðû íåãàóñîâîñòè ðàññìàòðèâàþò óíêöèè âèäà
êëþ÷åâîé èäååé
∗ ∗ 2 M(ξ) = M(w z) = E[G(|w z| )],
ãäå óíêöèÿ G( · ) ìîæåò ïîäáèðàòüñÿ èñõîäÿ èç îñîáåííîñòåé êîíêðåòíîé çàäà÷è. Åñëè G(ξ) = ξ2 , òî ìåðîé íåãàóññîâîñòè ÿâëÿåòñÿ êîýèöèåíò ýêñöåññà (kurtosis). Òàê íàçûâàþò ñòàòèñòèêó ÷åòâåðòîãî ïîðÿäêà, çàäàííóþ îðìóëîé kurt(y) = E[|y|4 ] − E[yy∗ ]E[yy∗ ] − E[yy]E[y∗ y∗ ] − E[yy∗ ]E[y∗ y], ÷òî âìåñòå ñ óñëîâèåì íåçàâèñèìîñòè äåéñòâèòåëüíîé è ìíèìîé ÷àñòåé y ∈ C îçíà÷àåò 2 2 kurt(y) = E[|y|4 ] − 2 E[|y|2 − E[y2 ] = E[|y|4 ] − 2.
Êóðòîçèñ îáðàùàåòñÿ â íîëü äëÿ âåëè÷èí, èìåþùèõ íîðìàëüíîå ðàñïðåäåëåíèå. Ýìïèðè÷åñêè íàéäåíû è äðóãèå, ÷àñòî áîëåå ýåêòèâíûå, âûðàæåíèÿ äëÿ óíêöèè G (åå íàçûâàþò óíêöåé êîíòðàñòà èëè ). Êîãäà ìåðà íåãàóññîâîñòè âûáðàíà, ñòðîÿò àëãîðèòì åå ìàêñèìèçàöèè ïðè îãðàíè÷åíèÿõ íà w.
òðàñòíîé óíêöèåé
êîí-
208
Ä. Â. Ñàâîñòüÿíîâ
2.3. Ìàêñèìèçàöèÿ êîíòðàñòíîé óíêöèè. ∗ ∗ 2 M(w z) = E[G(|w z| )]
Ìàêñèìèçèðóåì
ïðè E[|w∗ z|2 ] = kwk2 = 1.
Ýêñòðåìóì äîñòèãàåòñÿ â òî÷êå, ãäå ∇E[G(|w∗ z|2 )] − β∇E[|w∗ z|2 ] = 0.
ðàäèåíò âû÷èñëÿåòñÿ îòäåëüíî ïî äåéñòâèòåëüíûì è ìíèìûì ÷àñòÿì w. ∂ E[ℜ(z1 ξ∗ )g(|ξ|2 ) ∂w 1r ∂ ∂w E[ℑ(z1 ξ∗ )g(|ξ|2 ) 1i .. .. ∗ 2 2 , ∇E[G(|ξ| )] = . E[G(|w z| )] = 2 . ∂ ∗ 2 E[ℜ(z ξ )g(|ξ| ) n
∂w nr ∂ ∂w ni
E[ℑ(zn ξ∗ )g(|ξ|2 )
ãäå, íàïîìíèì, ξ = w∗ z. Âòîðîå ñëàãàåìîå ðàñêðûâàåòñÿ êàê ℜ(w1 )
ℑ(w1 ) .. ∇E[|w∗ z|2 ] = 2 . ℜ(w ) n ℑ(wn )
â ñèëó îðòîãîíàëüíîñòè ãëàâíûõ êîìïîíåíò E[zz∗ ] = I. Äëÿ ïîèñêà òî÷êè ýêñòðåìóìà ìû ïðèìåíÿåì ìåòîä Íüþòîíà. Ìàòðèöà ßêîáè äëÿ ∇E G(|w∗ z|2 ) ïðèáëèæåííî ðàâíà ∇2 E G(|w∗ z|2 ) = 2E (∇2 |w∗ z|2 )g(|w∗ z|2 )+ + 2(∇|w∗ z|2 )(∇|w∗ z|2 )⊤ g ′ (|w∗ z|2 ) ≈ ≈ 2E g(|w∗ z|2 ) + |w∗ z|2 g ′ (|w∗ z|2 ) I,
ãäå g = G ′ , à ïðèáëèæåííîå ðàâåíñòâî ïîëó÷åíî ðàçäåëåíèåì ñðåäíèõ â ïðåäïîëîæåíèè, ÷òî ñëó÷àéíàÿ âåëè÷èíà è åå ïðîèçâîäíàÿ íå êîððåëèðóþò. Êðîìå òîãî, ìû âîñïîëüçîâàëèñü ðàâåíñòâîì E[zz⊤ ] = 0, êîòîðîå ñëåäóåò èç íåêîððåëèðîâàííîñòè äåéñòâèòåëüíîé è ìíèìîé ÷àñòè èñõîäíûõ èñòî÷íèêîâ. Ìàòðèöà ßêîáè äëÿ âòîðîãî ñëàãàåìîãî ðàâíà β∇2 E[|w∗ z|2 ] = 2βI.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
209
Àïïðîêñèìàöèÿ âñåãî ÿêîáèàíà èìååò âèä J = 2(E g(|w∗ z|2 ) + |w∗ z|2 g ′ (|w∗ z|2 ) − β)I.
Îòìåòèì, ÷òî ÿêîáèàí äèàãîíàëåí è àíàëèòè÷åñêè îáðàòèì. Òàêèì îáðàçîì, âûðàùåíèå äëÿ îäíîé èòåðàöèè Íüþòîíà E z(w∗ z)∗ g(|w∗ z|2 ) − βw + w =w− E [g(|w∗ z|2 ) + |w∗ z|2 g ′ (|w∗ z|2 )] − β wnew = w+ /kw+ k.
Äîìíîæàÿ îáå ÷àñòè ïîëó÷èâøåãîñÿ óðàâíåíèÿ íà çíàìåíàòåëü, ìû ïîëó÷àåì áîëåå ïðîñòîå âûðàæåíèå w+ = E[z(w∗ z)∗ g(|w∗ z|2 )] − E[g(|w∗ z|2 ) + |w∗ z|2 g ′ (|w∗ z|2 )]w; wnew = w+ /kw+ k.
2.4. Àëãîðèòì FastICA . (0) Âîçüìåì ñëó÷àéíûé âåêòîð w
{0}
åäèíè÷íîé íîðìû. Ïîëîæèì
k = 0.
(1) Âû÷èñëèì wnew := E[z(w∗ z)∗ g(|w∗ z|2 )] − E[g(|w∗ z|2 ) + |w∗ z|2 g ′ (|w∗ z|2 )]w;
Îòíîðìèðóåì wnew íà åäèíèöó.
(3) Åñëè wnew äîñòàòî÷íî áëèçîê ê w çàâåðøèì àëãîðèòì; èíà÷å ïîëîæèì w = wnew è âåðíåìñÿ íà øàã 1.  êà÷åñòâå ìåðû áëèçîñòè âåñîâûõ âåêòîðîâ èñïîëüçóåì óãîë ìåæäó íèìè.
210
Ä. Â. Ñàâîñòüÿíîâ
Ïî çàâåðøåíèè àëãîðèòìà w äàåò íàì îäèí èç ñòîëáöîâ îðòîãîíàëüíîé ñìåøèâàþùåé ìàòðèöû W. òåì ñàìûì ìû îïðåäåëÿåì îäíó íåçàâèñèìóþ êîìïîíåíòó x(t) êàê ñêàëÿðíîå ïðîèçâåäåíèå x(t) = w∗ z(t).
×òîáû íàéòè äðóãèå ñòîëáöû ñìåøèâàþùåé ìàòðèöû è ñîîòâåòñòâóþùèå íåçàâèñèìûå êîìïîíåíòû, âîñïîëüçóåìñÿ óíèòàðíîñòüþ W. Íîâûå ñòîëáöû ëåæàò â îðòîãîíàëüíîì äîïîëíåíèè ê ïîäïðîñòðàíñòâó íàéäåííûõ, ïîýòîìó äîñòàòî÷íî âíåäðèòü â àëãîðèòì øàã wnew ê ïðîñòðàíñòâó óæå íàéäåííûõ ñòîëáöîâ W.
îðòîãîíàëèçàöèè
(2) Îðòîãîíàëèçóåì íàéäåííûé âåêòîð ê ïðîñòðàíñòâó, çàäàííîìó ñòîëáöàìè W
wnew := (I − WW ∗ ) wnew .
Îòíîðìèðóåì wnew íà åäèíèöó. Ïîñëå çàâåðøåíèÿ àëãîðèòìà W åñòü ñìåøèâàþùàÿ ìàòðèöà, à íåçàâèñèìûå êîìïîíåíòû îïðåäåëÿþòñÿ êàê x(t) = W ∗ z(t), ãäå z(t) ãëàâíûå êîìïîíåíòû.
2.5. Ïðèìåð.
 çàêëþ÷åíèè ãëàâû ïðèâåäåì êëàññè÷åñêèé ïðèìåð çàäà÷è, ñ êîòîðîé ICA ñïðàâëÿåòñÿ ëó÷øå, ÷åì PCA . àññìîòðèì ñìåñè äâóõ íåçàâèñèìûõ ñèãíàëîâ: ñèíóñîèäû è ïðÿìîóãîëüíîãî ìåàíäðà è ïîïûòàåìñÿ èõ ðàçäåëèòü. åçóëüòàòû ýêñïåðèìåíòà ïðåäñòàâëåíû íà ðèñ. 2 áåç äîïîëíèòåëüíûõ êîììåíòàðèåâ ÿñíî, ÷òî ãëàâíûå êîìïîíåíòû â ïðèíöèïå íå âîññòàíàâëèâàþò èñòî÷íèêè, òîãäà êàê íåçàâèñèìûå êîìïîíåíòû âîññòàíàâëèâàþò èõ ñ òî÷íîñòüþ äî ìàñøòàáà è ïîðÿäêà.
3. Îäíîâðåìåííàÿ äèàãîíàëèçàöèÿ ìíîãèõ ñòàòèñòèê Èçëîæåíèå ýòîé ãëàâû ñëåäóåò ëîãèêå [25℄.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
211
èñ. 2. Êëàññè÷åñêèé ïðèìåð ðàçäåëåíèÿ ñèíóñîèäû è ìåàíäðà
Èñòî÷íèêè x1 (t)
1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-1
-1.5
-1.5
0π
1π
2π
x2 (t)
1.5
3π
4π
0π
1π
2π
3π
4π
3π
4π
3π
4π
3π
4π
Ñèãíàëû (ñìåñè èñòî÷íèêîâ) y1 (t)
2
3
1
2
0.5
1
0
0
-0.5
-1
-1
-2 -3
-1.5 -2
0π
y2 (t)
4
1.5
1π
2π
3π
4π
-4
0π
1π
2π
ëàâíûå êîìïîíåíòû z1 (t)
2
1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-1
-1.5
-1.5
-2
0π
z2 (t)
2
1.5
1π
2π
3π
4π
-2
0π
1π
Íåçàâèñèìûå êîìïîíåíòû s1 (t)
1.5
1
1
0.5
0
0
-0.5
-0.5
-1
-1
-1.5
0π
1π
2π
3π
4π
-1.5
0π
FastICA s2 (t)
1.5
0.5
2π
1π
2π
212
Ä. Â. Ñàâîñòüÿíîâ
3.1. Ïî÷åìó äâå ñòàòèñòèêè ëó÷øå, ÷åì îäíà, à áîëüøå äâóõ åùå ëó÷øå. Èñïîëüçîâàíèÿ òîëüêî êîððåëÿöèîííîé ñòà-
òèñòèêè íåäîñòàòî÷íî, ïîñêîëüêó çàäà÷à äèàãîíàëèçàöèè îäíîé ìàòðèöû èìååò íå åäèíñòâåííîå ðåøåíèå. Îäíàêî çàäà÷à îäíîâðåìåííîé äèàãîíàëèçàöèè äâóõ ìàòðèö èìååò â îáùåì ñëó÷àå èìååò åäèíñòâåííîå ðåøåíèå è, ÷òî òàêæå î÷åíü âàæíî, ðàçðàáîòàíû ñòàíäàðòíûå àëãîðèòìû ðåøåíèÿ ýòîé çàäà÷è îáîáùåííîé çàäà÷è íà ñîáñòâåííûå çíà÷åíèÿ. Âîçíèêàåò èäåÿ èñïîëüçîâàòü äîïîëíèòåëüíî ê ñòàòèñòèêó Qy , äèàãîíàêîððåëÿöèîííîé ñòàòèñòèêå Φy ëèçóåìóþ òåì æå ïðåîáðàçîâàíèåì. Òîãäà çàäà÷à îïðåäåëåíèÿ ñìåøèâàþùåé ìàòðèöû A èç ñèñòåìû óðàâíåíèé
äðóãóþ
Φy = ADΦ A∗ ,
Qy = ADQ A∗
èìååò åäèíñòâåííîå ðåøåíèå. Êàçàëîñü áû, ïðîáëåìà çàêðûòà. Òåì íå ìåíåå, âûáðàòü äâå ñòàòèñòèêè îêàçûâàåòñÿ íå òàêèì óæ ïðîñòûì äåëîì. Åñëè Φ è Q ¾ïîõîæè¿, òî òî÷íîñòü ðåøåíèÿ îáîáùåííîé çàäà÷è íà ñîáñòâåííûå çíà÷åíèÿ çíà÷èòåëüíî óõóäøàåòñÿ íîâàÿ ñòàòèñòèêà íà äåëå íå ïðèíîñèò íîâîé èíîðìàöèè. Íî êàê âûáðàòü êðîñññòàòèñòèêó òàê, ÷òîáû îíà îêàçàëàñü íåçàâèñèìà îò ïåðâîé? Àïðèîðíîãî îòâåòà, ïîäõîäÿùåãî äëÿ âñåõ ñëó÷àåâ, ïî âñåé âèäèìîñòè, íåò. Âîçìîæíûé â áîëüøèíñòâå ñëó÷àåâ îòâåò âçÿòü áîëüøîå ÷èñëî òàêèõ ñòàòèñòèê è ñðåäè íèõ îáÿçàòåëüíî îêàæåòñÿ ïàðà íåçàâèñèìûõ.  ýòîì ñëó÷àå îñíîâíûì âû÷èñëèòåëüíûì ÿäðîì ìåòîäà ñòàíåò çàäà÷à îäíîâðåìåííîãî ïðèâåäåíèÿ ê äèàãîíàëüíîìó âèäó âñåõ èìåþùèõñÿ êðîññ-ñòàòèñòèê. Ïðè ÷èñëå ìàòðèö áîëåå äâóõ ýòà çàäà÷à, âîîáùå ãîâîðÿ, íåðàçðåøèìà. Îäíàêî â íàøåì ñëó÷àå ñóùåñòâîâàíèå ðåøåíèÿ ãàðàíòèðóåòñÿ ìîäåëüþ (∗). àññìîòðèì çàäà÷ó îá îäíîâðåìåííîé äèàãîíàëèçàöèè p ìàòðèö (ñóïåð-îáîáùåííóþ çàäà÷ó íà ÑÇ) Ak = UΛk V ⊤ ,
ðàç-
ëè÷íûå
Ïåðåïèøåì åå â ñìûñëå ìèíèìèçàöèè íîðìû îòêëîíåíèÿ kAk − UΛk V ⊤ k → min
ïî âñåì íåèçâåñòíûì ìàòðèöàì U, V è Λk .
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
213
Çàïèñàâ ýòó çàäà÷ó â ïîýëåìåíòíîì âèäå X akij = uiα λkα vjα , α
âèäèì, ÷òî îíà ðàâíîñèëüíà çàäà÷å ïðåäñòàâëåíèÿ òðåõìåðíîãî ìàññèâà A = [aijk ] â âèäå X aijk = uia vja wka , α
ãäå ñòîëáöû ìàòðèöû W ñîäåðæàò ýëåìåíòû äèàãîíàëüíûõ ìàòðèö Λk . Âîçíèêëà çàäà÷à òðåõìåðíîãî ìàññèâà äàííûõ (òåíçîðà). Âîçìîæíûå ïîäõîäû ê åå ðåøåíèþ îïèñàíû â [23, 24, 25℄ è [29℄-[36℄. åêîìåíäóåìûé ìåòîä âûáîðà Q çàâèñèò îò õàðàêòåðèñòèê ðàññìàòðèâàåìûõ ñèãíàëîâ. Åñëè ñèãíàë íåñòàöèîíàðåí, òî åãî îñðåäíåíèå ïî ðàçëè÷íûì îòðåçêàì (îêíàì) âðåìåíè ïðèâîäèò ê ðàçëè÷íûì ñòàòèñòèêàì
òðèëèíåéíîãî ðàçëîæåíèÿ
3.2. Êàêèå êðîññ-ñòàòèñòèêè ìîæíî èñïîëüçîâàòü. 3.2.1. Íåñòàöèîíàðíûå ñèãíàëû.
Qy (t) = E(t:t+∆t) [y(t)y∗ (t)] = AE(t:t+∆t) [x(t)x∗ (t)]A∗ = AQx (t)A∗ .
Âûáðàâ Qy = Qy (t) äëÿ êàêîãî-òî êîíêðåòíîãî t, èëè âçÿâ â êà÷åñòâå Qy ñëó÷àéíóþ ëèíåéíóþ êîìáèíàöèþ Qy (t) äëÿ ðàçëè÷íûõ ìîìåíòîâ t, ìû ïîëó÷àåì íîâóþ ñòàòèñòèêó. Âîîáùå ãîâîðÿ, åñëè îíà îêàçûâàåòñÿ áëèçêà ê èñõîäíîé ñòàòèñòèêå Φy , òî åå èñïîëüçîâàíèå íå äàåò íàì íîâîé èíîðìàöèè, è çàäà÷à ïîèñêà îáîáùåííîãî ñîáñòâåííîãî ðàçëîæåíèÿ ñòàíîâèòñÿ ïëîõî îïðåäåëåííîé.  ýòîì ñëó÷àå ìîæíî èñïîëüçîâàòü íàáîð ìàòðèö Qky = Qy (tk ) äëÿ öåïî÷êè ìîìåíòîâ tk è ñâåñòè çàäà÷ó ê ïîñòðîåíèþ îäíîâðåìåííîé äèàãîíàëèçàöèè äëÿ ìàòðèö Qky . Åñëè ñèãíàë íå ÿâëÿåòñÿ áåëûì, òî âîçìîæíî èñïîëüçîâàíèå ñëåäóþùåé êðîññ-êîððåëÿöèåé
âñåõ 3.2.2. Öâåòíûå ñèãíàëû.
Qy (τ) = E[y(t)y∗ (t + τ)] = AE[y(t)y∗ (t + τ)]A∗ = AQx (τ)A∗ .
Åñëè ýòà àâòîêîððåëÿöèÿ äëÿ èñòî÷íèêà íå ðàâíà íóëþ, òî ýòà ñòàòèñòèêà ïðåäîñòàâëÿåò íîâóþ èíîðìàöèþ ïðè âûáîðå îäíîãî èëè íåñêîëüêèõ ðàçëè÷íûõ ñäâèãîâ τ.
214
Ä. Â. Ñàâîñòüÿíîâ
3.2.3. Íå- àóññîâû ñèãíàëû.
Åñëè ñèãíàë ÿâëÿåòñÿ ñòàöèîíàðíûì è íå îáëàäàåò àâòîêîððåëÿöèåé, òî ñòàòèñòèêè äëÿ ðàçëè÷íûõ t è τ íå äàþò íîâîé èíîðìàöèè.  ýòîì ñëó÷àå ìîæíî âîñïîëüçîâàòüñÿ ñòàòèñòèêîé ÷åòâåðòîãî ïîðÿäêà, íàçûâàåìîé
êóìóëÿíòîì
(Cy )ijkl = E[yi y j yk y l ]−E[yi y j ]E[yk y l ]−E[yi yk ]E[y j y l ]−E[yi y l ]E[y j yk ].
Êóìóëÿíò ñóììû íåçàâèñèìûõ âåëè÷èí ðàâåí ñóììå êóìóëÿíòîâ. Äëÿ ñèãíàëà, èìåþùåãî íîðìàëüíîå ðàñïðåäåëåíèå, êóìóëÿíò ðàâåí íóëþ. Ïîýòîìó ïðè ïðèìåíåíèè ñòàòèñòèêè ÷åòâåðòîãî ïîðÿäêà ïðîèñõîäèò àâòîìàòè÷åñêàÿ èëüòðàöèÿ øóìîâ, âîçíèêàþùèõ â ïðèíèìàþùèõ óñòðîéñòâàõ, èëè ñëó÷àéíûõ ïîãðåøíîñòåé èçìåðåíèÿ, åñëè îíè èìåþò íîðìàëüíîå ðàñïðåäåëåíèå. Ñòàòèñòèêè âòîðîãî è ÷åòâåðòîãî ïîðÿäêà Φy è Cy , îòâå÷àþùèå íàáëþäàåìûì ñèãíàëàì y(t), ñâÿçàíû ñî ñòàòèñòèêàìè èñòî÷íèêîâ ñëåäóþùèìè ñîîòíîøåíèÿìèdef ) Φy = AΦx A∗ ,
×3 A ×4 A. Cy = Cx × 1 A × 2 A
(4)
Èç íåçàâèñèìîñòè èñòî÷íèêîâ ñëåäóåò äèàãîíàëüíîñòü ñòàòèñòèê Φx è Cx , ïðè÷åì âòîðîå óñëîâèå îçíà÷àåò, ÷òî òåíçîð èìååò íåíóëåâûå ýëåìåíòû òîëüêî ïðè i = j = k = l, è, î÷åâèäíî, ïðåäîñòàâëÿåò ñóùåñòâåííî áîëüøå èíîðìàöèè äëÿ îïðåäåëåíèÿ A. Áîëåå òîãî, â îáùåì ñëó÷àå âòîðîå óðàâíåíèå ñèñòåìû (4) íå èìååò òî÷íîãî ðåøåíèÿ è ðàññìàòðèâàåòñÿ â ñìûñëå ìèíèìèçàöèè íîðìû îòêëîíåíèÿ öåëåâîãî òåíçîðà îò áëèæàéøåãî äèàãîíàëüíîãî.
×3 B ×4 Bk A = arg min Cy − D ×1 B ×2 B (diag) B,D
ñâåðõ-
åøèâ çàäà÷ó â ýòîé îðìóëèðîâêå, ìîæíî äàæå ïîëó÷èòü òî åñòü âûäåëèòü èç n íàáëþäàåìûõ ñìåñåé m èñõîä-
ðàçðåøåíèå,
def ) Òóò ñèìâîëîì ¾ × ¿ îáîçíà÷åíî óìíîæåíèå òåíçîðà íà ìàòðèöó âäîëü pãî p èíäåêñà. Íàïðèìåð äëÿ òåíçîðà A = [aijkl ] ðàçìåðà n× n× n× n è ìàòðèöû B ðàçìåðà m×n ðåçóëüòàòîì îïåðàöèè ¾ ×2 ¿ ÿâëÿåòñÿ òåíçîð C = [cijkl ] ðàçìåðà n × m × n × n, ïîèíäåêñíî îïðåäåëåííûé ðàâåíñòâîì
cijkl =
n X
j ′ =1
aij ′ kl bjj ′ .
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
215
íûõ íåçàâèñèìûõ êîìïîíåíò ïðè m > n. Îäíàêî àëãîðèòì ðåøåíèÿ îêàçûâàåòñÿ â íåñêîëüêî ðàç ñëîæíåå, ÷åì ìåòîä îäíîâðåìåííîé äèàãîíàëèçàöèè ìàòðèö. Åñòü âîçìîæíîñòü ïîæåðòâîâàòü ñâåðõðàçðåøåíèåì è ñâåñòè çàäà÷ó ê áîëåå ïðîñòîé. Äëÿ ýòîãî ðàññìîòðèì òåíçîð Cz ðàçìåðà m × m × m × m, êàê ñåìåéñòâî èç m2 ìàòðèö, îáúåäèíèâ ïîñëåäíèå äâà èíäåêñà â îäèí C~ = [(cij )α ] = (Cz )ij(kl) ,
(kl) ↔ α.
Çàìåíèì çàäà÷ó ñóïåðñèììåòðè÷íîé äèàãîíàëèçàöèè ÷åòûðåõìåðíîãî òåíçîðà C áîëåå ïðîñòîé çàäà÷åé îäíîâðåìåííîé äèàãîíàëèçàöèè ñåìåéñòâà m2 ìàòðèö Cα . Íà ÿçûêå òåíçîðíûõ îïåðàöèé ýòî îçíà÷àåò, ÷òî âìåñòî çàäà÷è (diag) ìû ðàññìàòðèâàåì
×3 Qk A = arg min C~ − D ×1 B ×2 B (diag ′ ) B,Q,D
î÷åâèäíî, íàêëàäûâàþùóþ îñëàáëåííûå òðåáîâàííèÿ íà A, ïîñêîëüêó ìû ïðåíåáðåãàåì ñòðóêòóðîé ìàòðèöû Q è ¾çàáûâàåì¿ î åå ñâÿçè ñ B. Íîâàÿ çàäà÷à èìååò åäèíñòâåííîå ðåøåíèå, îäíàêî òîëüêî ïðè ÷èñëå èñòî÷íèêîâ íå áîëüøå ÷èñëà ïðèåìíèêîâ.
4. åàëèçàöèÿ àëãîðèòìîâ BSS â ïàêåòíîì ðåæèìå 4.1. Òðåáîâàíèÿ ê ïàêåòíîé âåðñèè àëãîðèòìîâ.
Ïîä ðàáîòîé àëãîðèòìîâ â ïàêåòíîì ðåæèìå ìû ïîíèìàåì ñëåäóùåå. Ïóñòü îáùàÿ ïðîòÿæåííîñòü ïðèíÿòûõ ñèãíàëîâ Tfull íî â âû÷èñëèòåëüíóþ ñèñòåìó äëÿ îáðàáîòêè îíè ïîñòóïàþò N ïàêåòàìè äëèíû T (äëÿ ïðîñòîòû èçëîæåíèÿ áóäåì ïîëàãàòü, ÷òî äëèíû âñåõ ïàêåòîâ îäèíàêîâû äàæå åñëè ýòî íå òàê, ñóòü ìåòîäà íå ìåíÿåòñÿ). Ýòà ìîäåëü ðàáîòû ñ äàííûìè ìîæåò ïîòðåáîâàòüñÿ ïî îäíîé èç ñëåäóþùèõ ïðè÷èí. Íåò âîçìîæíîñòè æäàòü äîñòàòî÷íî äîëãî, ïîêà âåñü ñèãíàë äëèíû Tfull áóäåò ïðèíÿò. Íàïðîòèâ, òðåáóåòñÿ ïîëó÷èòü ïðåäâàðèòåëüíûå äàííûå î ñèãíàëàõ êàê ìîæíî áûñòðåå (ïóñòü è ñî çíà÷èòåëüíîé ïîãðåøíîñòüþ, âûçâàííîé ìàëîé äëèíîé íàêîïëåííîé èíîðìàöèè), è çàòåì òîëüêî óòî÷íÿòü èõ ïî íîâûì ðàãìåíòàì ïîëó÷åííûõ ñèãíàëîâ.
216
Ä. Â. Ñàâîñòüÿíîâ
Îïåðàòèâíîé ïàìÿòè âû÷èñëèòåëüíîãî óñòðîéñòâà è/èëè åãî âû÷èñëèòåëüíîé ìîùíîñòè ìîæåò áûòü íåäîñòàòî÷íî äëÿ çàïóñêà àëãîòèòìà ðàçäåëåíèÿ ñèãíàëîâ äëèíû Tfull. Ïðè ýòîì òðåáóåòñÿ ïðèíóäèòåëüíî ðàñùåïèòü ðàññìàòðèâàåìûé ñèãíàë íà íåñêîëüêî ìåíüøèõ ÷àñòåé, êîòîðûå ìîãóò áûòü îáðàáîòàíû íà èìåþùåìñÿ âû÷èñëèòåëüíîì óñòðîéñòâå, è ðàáîòàòü ñ íèìè ïîñëåäîâàòåëüíî.  óñëîâèÿõ ðåàëüíûõ âû÷èñëåíèé ïîëîæåíèå èñòî÷íèêîâ è/èëè ïðèåìíèêîâ è/èëè ñîñòîÿíèå ñðåäû, â êîòîðîé ðàñïðîñòðàíÿåòñÿ ñèãíàë, ìîãóò ìåíÿòüñÿ. Äàæå åñëè ýòè èçìåíåíèÿ äîñòàòî÷íî ìåäëåííûå, îíè îêàçûâàþò âëèÿíèå íà ñìåøèâàþùóþ ìàòðèöó è òî÷íîñòü âûïîëíåíèÿ îñíîâíîé ëèíåéíîé ìîäåëè (∗).  ýòîì ñëó÷àå íåò ñìûñëà èñïîëüçîâàòü âñþ èíîðìàöèþ î ñèãíàëå äëèíû Tfull, òàê êàê íàðóøåíèå ëèíåéíîé ìîäåëè âíîñèò íåóñòðàíèìóþ ïîãðåøíîñòü â ðåçóëüòàò ðàáîòû àëãîðèòìà. Íåîáõîäèìî îïåðèðîâàòü îòðåçêàìè ñèãíàëà äëèíû T, òàêèìè ÷òî íà ïðîòÿæåíèè ýòîãî âðåìåíè ñîñòîÿíèå ñèñòåìû è ñëåäîâàòåëüíî ýëåìåíòû ñìåøèâàþùåé ìàòðèöû A ìîãóò ñ óäîâëåòâîðèòåëüíîé òî÷íîñòüþ ñ÷èòàòüñÿ ïîñòîÿííûìè. Ïðè ðåàëèçàöèè àëãîðèòìîâ ñëåïîãî ðàçäåëåíèÿ ñèãíàëîâ â ïàêåòíîì ðåæèìå (áóäåì íàçûâàòü èõ ïàêåòíûìè âåðñèÿìè àëãîðèòìîâ èëè êðàòêî ) ìû õîòåëè áû ïî âîçìîæíîñòè äîáèòüñÿ âûïîëíåíèÿ ñëåäóþùèõ óñëîâèé.
ïàêåòíûìè àëãîðèòìàìè
Íàêîïëåíèå èíîðìàöèè. Ïîñëå òîãî, êàê ïàêåòíûé àëãî-
Ñîõðàíåíèå óñòîé÷èâîñòè. Åñëè ïðè îáðàáîòêå êàêîãî-òî èç
ðèòì ïîëó÷èë N ïàêåòîâ äàííûõ äëèíû T, òî÷íîñòü ðàçäåëåíèÿ ñèãíàëîâ äîëæíà áûòü òàêîé æå, êàê è ó èñõîäíîãî àëãîðèòìà, îáðàáîòàâøåãî ñèíãàë äëèíîé Tfull = NT. ïîëó÷åííûõ ïàêåòîâ ïàêåòíûé àëãîðèòì íå äîñòèãàåò ñõîäèìîñòè (èëè íå çàâåðøàåòñÿ êîððåêòíî ïî ëþáîé èíîé ïðè÷èíå), ýòî íå äîëæíî îñòàíàâëèâàòü àëãîðèòì â öåëîì. Òåêóùèé ïàêåò äàííûõ äîëæåí áûòü ðàçäåëåí ñ èñïîëüçîâàíèåì ðàçìåøèâàþùåé ìàòðèöû W ñ ïðîøëîãî øàãà, è àëãîðèòì äîëæåí áûòü ïðîäîëæåí.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
217
Ñâÿçíîñòü ðåçóëüòàòà. Ïîñêîëüêó èñòî÷íèêè îïðåäåëÿþòñÿ
ñ òî÷íîñòüþ äî ìíîæèòåëÿ è ïîðÿäêà, àëãîðèòì â ïàêåòíîé âåðñèè äîëæåí ïîçàáîòèòüñÿ î òîì, ÷òîáû ðàçäåëåííûå ñèãíàëû â äâóõ ñîñåäíèõ ïàêåòàõ áûëè òî åñòü íà ãðàíèöå ðàçäåëà ïàêåòîâ íå íàáëþäàëîñü ñêà÷êà àìïëèòóäû, àçû èñòî÷íèêîâ èëè ïåðåñòàíîâêè âûäàâàåìûõ ðàãìåíòîâ èñòî÷íèêîâ ìåñòàìè.
ñøèòû,
 ñëåäóþùèõ ðàçäåëàõ ìû ïîêàæåì, äëÿ êàêèõ ìåòîäîâ ìîæíî äîáèòüñÿ âûïîëíåíèÿ óêàçàííûõ òðåáîâàíèé. FastICA Àëãîðèòì FastICA (è ðîäñòâåííûå åìó) âû÷èñëÿåò ðàçìåøèâàþùóþ ìàòðèöó W, ðåøàÿ ýêñòðåìàëüíóþ çàäà÷ó îòíîñèòåëüíî ìåðû M(w∗ z(t)). Ïðåäïîëîæèì, ÷òî ïåðåäà÷à âåäåòñÿ äâóìÿ ïàêåòàìè ïî T ýëåìåíòîâ â êàæäîì. Ïîëó÷èâ ïåðâûé ïàêåò y[1] (t), ìû ïåðåõîäèì â áàçèñ ãëàâíûõ êîìïîíåíò z[1] (t) è ïðèìåíÿÿ àëãîðèòì FastICA , íàõîäèì òåêóùåå ïðèáëèæåíèå ê ñìåøèâàþùåé ìàòðèöå W (1) . Îäíàêî ïîñëå ïîëó÷åíèÿ âòîðîãî ïàêåòà y[2] (è ÷òî âàæíî, ïîòåðÿâ âåêòîðà y[1] (t) è z[1] (t) ), ìû íå ìîæåì ìàêñèìèçèðîâàòü
4.2. Ïî÷åìó àëãîðèòì
íå íàêàïëèâàåò èíîðìàöèþ.
∗ ∗ [1] ∗ [2] M(w z(t)) = M(w z (t)) + M(w z (t)),
ïîñêîëüêó íå ìîæåì âû÷èñëèòü ïåðâîå ñëàãàåìîå äëÿ ïðîèçâîëüíîãî w. Åñëè îòäåëüíî ìàêñèìèçèðîâàòü òîëüêî âòîðîå ñëàãàåìîå, òî÷íîñòü îïðåäåëåíèÿ ìàòðèöû W (2) íà âòîðîì ýòàïå ïàêåòíîãî àëãîðèòìà îêàæåòñÿ íå âûøå, ÷åì íà ïåðâîì øàãå ïîñòóïèâøàÿ íîâàÿ èíîðìàöèÿ íå ïîçâîëÿåò óòî÷íèòü ýëåìåíòû ñìåøèâàþùåé ìàòðèöû.  ýòîì ñìûñëå ìû ãîâîðèì, ÷òî íå ñóùåñòâóåò ïàêåòíîé âåðñèè àëãîðèòìà FastICA , íàêàïëèâàþùåé èíîðìàöèþ â õîäå ðàáîòû. Òåì íå ìåíåå, ìåòîä FastICA ìîæåò áûòü ïîëåçåí, îñîáåííî â ñëó÷àå, êîãäà èñïîëüçóåìûé ðàçìåð ïàêåòîâ äîñòàòî÷íî âåëèê, à ñòàáèëüíîñòü ìàòðèöû A ïðè ïåðåõîäå îò ïàêåòà ê ïàêåòó âûçûâàåò ñîìíåíèÿ.  ñëåäóþùèõ ðàçäåëàõ ìû ïîêàæåì, ÷òî ìåòîäû, îñíîâàííûå íà äèàãîíàëèçàöèè ðàçëè÷íûõ ñòàòèñòèê ïðèíÿòûõ ñèãíàëîâ, îáëàäàþò ïðèÿòíûì ñâîéñòâîì íàêîïëåíèÿ èíîðìàöèè, è ïîñòðîèì ñîîòâåòñòâóþùèå ïàêåòíûå àëãîðèòìû.
218
Ä. Â. Ñàâîñòüÿíîâ
4.3. Ïàêåòíàÿ âåðñèÿ ìåòîäà ãëàâíûõ êîìïîíåíò.
 îòëè÷èå îò ìåòîäîâ òèïà FastICA , àëãîðèòì PCA äîïóñêàåò ïàêåòíóþ ðåàëèçàöèþ. Ïðèíöèïèàëüíûì ÿâëÿåòñÿ òîò àêò, ÷òî ñòàòèñòèêè, â îòëè÷èå îò ìåðû M(w∗ z(t)), íå çàâèñÿò îò îïðåäåëÿåìûõ âåëè÷èí è ìîãóò àääèòèâíî îáíîâëÿòüñÿ â õîäå ðàáîòû ïàêåòíîãî ìåòîäà. Äëÿ âû÷èñëåíèÿ ñòàòèñòèêè íà ¾áîëüøîì¿ îòðåçêå âðåìåíè (íàïðèìåð íà ïîëíîé äëèíå ïðèåìà Tfull ) íàì äîñòàòî÷íî ïðîñóììèðîâàòü ñ íåêîòîðûìè êîýèöèåíòàìè ñòàòèñòèêè ñ ¾ìàëûõ¿ ðàãìåíòîâ âðåìåíè (íàïðèìåð ñòàòèñòèêè ïî ïàêåòàì äëèíû T. ) Ïðè ýòîì êîýèöèåíòû çàâèñÿò, åñòåñòâåííî, îò äëèí ñîîòâåòñòâóþùèõ ñòàòèñòèê è îò íîìåðà ïðèíÿòîãî ïàêåòà. Íàïðèìåð, åñëè óæå íàñ÷èòàíà ñòàòèñòèêà ∗ Φ(k) y := E[y(t)y (t)][0:kT ] , (k+1)
òî ñòàòèñòèêà Φy îïðåäåëèòñÿ êàê (k+1)
Φy
íà ñëåäóþùåì øàãå ïàêåòíîãî àëãîðèòìà
:=
(k) k k+1 Φy
+
1 ∗ k+1 E[y(t)y (t)][kT :kT +T ]
=
(k) k k+1 Φy
+
1 [k+1] (t)y[k+1] (t)∗ ]. k+1 E[y
=
4.4. Îáíîâëåíèå ñòàòèñòèê äëÿ ñèãíàëîâ.
Ïðîñòîé ïî ñóùåñòâó ìåòîä îáíîâëåíèÿ ñòàòèñòèêè, ïðåäëîæåííûé äëÿ PCA , ìîæíî îáîáùèòü, ñîðìóëèðîâàâ ïðîöåäóðó ñëåäóþøèì îáðàçîì.
Àëãîðèòì 1. (Îáíîâëåíèå ñòàòèñòèêè Ψ
y
= E[G(y)]
).
(1)
1. Ïîëó÷èòü y[1] . Âû÷èñëèòü Ψy .
... k. Ïîëó÷èòü y[k] . Âû÷èñëèòü ñòàòèñòèêó E[G(y[ k])] íà òåêóùåì (k) îòðåçêå âðåìåíè. Âû÷èñëèòü Ψy ïî îðìóëå (k−1) Ψ(k) + (1 − αk )E[G(y[ k])]. y = αk Ψy
(5)
 çàâèñèìîñòè îò ñõåìû âûáîðà αk àëãîðèòì îáíîâëåíèÿ ìîæåò òðàêòîâàòüñÿ ðàçëè÷íûì îáðàçîì.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
219
αk = 0 ìîäåëü àáñîëþòíî íåóñòîé÷èâîé ñðåäû. Äàííûå ñ ïðîøëûõ øàãîâ íå èñïîëüçóþòñÿ, ðàçäåëåíèå âåäåòñÿ ïî êàæäîìó íîâîìó ïàêåòó íåçàâèñèìî îò èíîðìàöèè î ïðåäûäóùèõ. ìîäåëü óñòîé÷èâîé ñðåäû, óòî÷íåíèå ðàçìåøè αk = k−1 k âàþùåé ìàòðèöû íà êàæäîì øàãå. Ïðîèñõîäèò òî÷íîå îáíîâëåíèå ñòàòèñòèê, ïîëó÷åííàÿ Ψ(k) ñîâïàäàåò ñ óñðåäíåíèåì çà ïåðèîä [0 : kT ]. Çà ñ÷åò ýòîãî íà êàæäîì øàãå óìåíüøàåòñÿ ñòàòèñòè÷åñêàÿ ïîãðåøíîñòü, âíîñèìàÿ êîíå÷íûì ðàçìåðîì âûáîðêè, è ïîâûøàåòñÿ òî÷íîñòü âû÷èñëåíèé ñìåøèâàþùåé ìàòðèöû êîíå÷íî, åñëè èñêîìàÿ ñìåøèâàþùàÿ íå ìåíÿåòñÿ íà ïðîòÿæåíèè k ïîëó÷åííûõ ïàêåòîâ. αk = 1 ìîäåëü óñòîé÷èâîé ñðåäû, áûñòðîå ðàçìåøèâàíèå. Íîâàÿ èîðìàöèÿ íå èñïîëüçóåòñÿ, ñòàòèñòèêè (à âìåñòå ñ íèìè è ðàçìåøèâàþùàÿ ìàòðèöà) êîïèðóþòñÿ ñ ïåðâîãî ýòàïà. Ïðåäïîëàãàåòñÿ, ÷òî ñìåøèâàþùàÿ ìàòðèöà íå ìåíÿåòñÿ, è ðàçìåðà ñòàòèñòèêè íà ïåðâîé âûáîðêå äëèíû T äîñòàòî÷íî äëÿ âîññòàíîâëåíèÿ ðàçìåøèâàþùåé ìàòðèöû ñ íåîáõîäèìîé òî÷íîñòüþ. Äîñòîèíñòâî ýòîé ìîäåëè â î÷åíü áûñòðîì âûïîëíåíèè àëãîðèòìà íà âòîðîì è ïîñëåäóþùèõ ýòàïàõ ïî ñóòè, ïðîèñõîäèò òîëüêî ëèøü óìíîæåíèå íîâîãî ïàêåòà ñèãíàëîâ íà ðàçìåøèâàþùóþ ìàòðèöó, âçÿòóþ ñ ïåðâîãî ýòàïà. Âñå òðè ñõåìû âûáîðà αk õîðîøè â ðàìêàõ ñâîåé ìîäåëè è èìåþò ñâîè äîñòîèíñòâà. Áåçóñëîâíî, âîçìîæíû è äðóãèå ñõåìû âûáîðà ïàðàìåòðà αk , îòâå÷àþùèå èíûì ïðåäïîëîæåíèÿì îá ñêîðîñòè èçìåíåíèÿ ýëåìåíòîâ ñìåøèâàþùåé ìàòðèöû. Êàê âèäíî èç ðàññìîòðåíûõ ïðèìåðîâ, âûáîð αk îêàçûâàåò îãðîìíîå âëèÿíèå íà ðàáîòó è ðåçóëüòàòû àëãîðèòìà; òåì íå ìåíåå, ìû íå ìîæåì ïðåäëîæèòü êàêîé-òî îäíîé, ¾äåéñòâèòåëüíî íàèëó÷øåé¿ ñòðàòåãèè âûáîðà αk . Ìû ïîëàãàåì, ÷òî ýòîò âîïðîñ ìîæåò ðåøàòüñÿ ñëåäóþùèìè ñïîñîáàìè: àíàëèòè÷åñêè ïðè èçâåñòíîé ñòåïåíè íåóñòîé÷èâîñòè ñìåøèâàþùåé ìàòðèöû, êîãäà õîðîøî èçâåñòíû õàðàêòåðèñòèêè ïðèíèìàåìûõ ñèãíàëîâ;
220
Ä. Â. Ñàâîñòüÿíîâ
ýìïèðè÷åñêè ïðè ðàáîòå â ðåæèìå ¾ëàáîðàòîðèè¿, êîãäà ìû èìååì äåëî ñ çàïèñàííûìè ñèãíàëàìè, íå çíàåì ñòåïåíü óñòîé÷èâîñòè ñðåäû âî âðåìÿ èõ ïîëó÷åíèÿ, íî ìîæåì ïðîâåñòè ñåðèþ âîñïðîèçâîäèìûõ ýêñïåðèìåíòîâ ñ ðàçíûìè ïàðàìåòðàìè αk , èìåÿ íà íèõ ïðîâåäåíèå äîñòàòî÷íî áîëüøîå âðåìÿ; ðåøåíèåì îïåðàòîðà êîãäà õàðàêòåðèñòèêè óñòîé÷èâîñòè ñðåäû è ïðèíèìàåìûõ ñèãíàëîâ íåÿñíû, à ïðèíèìàåìûé ñèãíàë äîëæåí îáðàáàòûâàòüñÿ ïðàêòè÷åñêè â ðåæèìå ðåàëüíîãî âðåìåíè.  ýòîì ñëó÷àå èìååò ñìûñë ïðèäåðæèâàòüñÿ ñòðàòåãèè íàêîïëåíèÿ èíîðìàöèè αk = (k − 1)/k ñòîëü äîëãî, ïîêà êà÷åñòâî ðàçäåëåíèÿ èñòî÷íèêîâ âûãëÿäèò óäîâëåòâîðèòåëüíûì è íå óõóäøàåòñÿ ñ êàæäûì íîâûì ïàêåòîì äàííûõ. Åñëè êà÷åñòâî ðàçäåëåíèÿ óõóäøàåòñÿ (ðàçäåëåííûå èñòî÷íèêè õóæå äåêîäèðóþòñÿ èëè ïðîñëóøèâàþòñÿ), ñëåäóåò ¾î÷èñòèòü èñòîðèþ¿, óñòàíîâèâ αk = 0 è íà÷àòü íàêîïëåíèå äàííûõ çàíîâî.
4.5. Àëãîðèòìû â ïàêåòíîì ðåæèìå.
Âñå âûøåñêàçàííîå ïîäãîòîâèëî ïî÷âó äëÿ òîãî, ÷òîáû èçëîæèòü ïàêåòíûå âåðñèè àëãîðèòìîâ, èñïîëüçóþùèõ ñòàòèñòèêè ñèãíàëîâ, â åäèíîîáðàçíîì âèäå.
âñåõ
Àëãîðèòì 2. (Ïðîòîòèï ïàêåòíîãî àëãîðèòìà)
Âõîä: ïàêåòû ñèãíàëîâ y[k] , k = 1, . . . , N. Âûõîä: ïàêåòû èñòî÷íèêîâ x[k] è ñìåøèâàþùàÿ ìàòðèöà. Ïàðàìåòðû: ñòàòèñòèêè Ψy = E[Gp (y)], p = 1, . . . , np , ñõåìà âûáîðà ïàðàìåòðîâ αk . [Îïèñàí k òûé øàã àëãîðèòìà℄ Ïîëó÷èòü y[k] . Âû÷èñëèòü ñòàòèñòèêè E[Gp (y[ k])] íà òåêóùåì îòðåçêå âðåìåíè. Îáíîâèòü èõ ïî îðìóëå (5) ñ ïîìîùüþ âûáðàííûõ αk . Çàïóñòèòü àëãîðèòì ñëåïîãî ðàçäåëåíèÿ ñèãíàëîâ ïî ñòàòèñòè(k) êå Ψy . Íàéòè ðàçìåøèâàþùóþ ìàòðèöó W (k−1)
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
221
àçäåëèòü èñòî÷íèêè x[k] = W (k) y(k) . ¾Ñêëåèòü¿ èñòî÷íèêè x[k] ñ ïðåäûäóùèìè ïàêåòàìè x[k−1] . Ïîñëåäíèé ýòàï íàìè ïîêà íå îáñóæäàëñÿ, à ìåæäó òåì èìåííî îí îáåñïå÷èâàåò âûïîëíåíèå òðåòüåãî òðåáîâàíèÿ ê ïàêåòíîé âåðñèè àëãîðèòìîâ ñâÿçíîñòè ðåçóëüòàòà. Ïîñâÿòèì åìó îòäåëüíûé ðàçäåë.
4.6. Ïîääåðæàíèå ñâÿçíîñòè.
äâóì ïðè÷èíàì:
¾àçðûâ¿ ìîæåò âîçíèêàòü ïî
ïîñëå ïîëó÷åíèÿ íîâîãî ïàêåòà äàííûõ àêòèâíàÿ ñìåøèâàùàÿ ìàòðèöà èçìåíèëàñü òàê, ÷òî èñòî÷íèêè ïîìåíÿëèñü ìåñòàìè; ïîñëå ïîëó÷åíèÿ íîâîãî ïàêåòà äàííûõ àìïëèòóäà è àçà èñòî÷íèêîâ ïîìåíÿëàñü òàê, ÷òî íàáëþäàåòñÿ ñêà÷îê íà ãðàíèöå ðàçäåëà ïàêåòîâ. Äëÿ ðåøåíèÿ ïåðâîé ïðîáëåìû ïåðåñòàíîâêè ñèãíàëîâ ìîæíî ïðåäëîæèòü äâà ñïîñîáà. Ïåðâûé ñîñòîèò â òîì, ÷òî ðàññìàòðèâàþòñÿ äâå ìàòðèöû: ðàçìåøèâàþùàÿ ñ ïðîøëîãî øàãà è ñìåøèâàþùàÿ ñ òåêóùåãî. Èõ ïðîèçâåäåíèå W [k−1] A[k] = Pk
äîëæíî áûòü áëèçêî ê ìàñøòàáèðîâàííîé ìàòðèöå ïåðåñòàíîâêè, åñëè òîëüêî ñìåøèâàþùàÿ ìàòðèöà íå ìåíÿåòñÿ ñëèøêîì ñèëüíî íà îòðåçêå âðåìåíè ïîðÿäêà ðàçìåðà ïàêåòà. Ýòà ìàòðèöà è óêàçûâàåò, êàê íóæíî óïîðÿäî÷èòü íîâûå ïàêåòû èñòî÷íèêîâ ïî îòíîøåíèþ ê èìåþùèìñÿ. Åñòü è äðóãîé ïîäõîä, âîçìîæíî, áîëåå òî÷íûé, êîòîðûé ñîñòîèò â òîì, ÷òîáû ðàññìàòðèâàòü ïàêåòû äàííûõ ñ íåêîòîðûì íåáîëüøèì íàëîæåíèåì. Ñîõðàíèâ ýòî íåáîëüøîå êîëè÷åñòâî ýëåìåíòîâ èç ïðîøëîãî ïàêåòà èñòî÷íèêîâ, ìû ìîæåì ïîäîáðàòü êîýèöèåíòû ìàñøòàáèðîâàíèÿ òàê, ÷òîáû ïîëó÷èòü íàèëó÷øåå ñîâïàäåíèå ðàãìåòà èñòî÷íèêîâ èç ïðîøëîãî è òåêóùåãî ïàêåòîâ â èõ îáëàñòè íàëîæåíèÿ. Îäíàêî ýòîò ìåòîä â èçâåñòíîì ñìûñëå óñëîæíÿåò ëîãèêó ïðîãðàììû.
222
Ä. Â. Ñàâîñòüÿíîâ èñ. 3. Äâà ñèãíàëà è ñèëüíûé øóìîâîé èñòî÷íèê
Ñìåøèâàåì ñèíóñîèäàëüíûé ñèãíàë åäèíè÷íîé íîðìû, ïðÿìîóãîëüíûé ìåàíäð è øóì ïîðÿäêà 10 . àçìåð âûáîðêè áîëüøîé l = 10 îòñ÷åòîâ 3
4
x1 (t)
1.5
x2 (t)
1
x3 (t)
1000 800
1 600
0.5
400
0.5
200
0
0
0 -200
-0.5
-400
-0.5 -600
-1
-800
-1.5 0π
1π
2π
3π
-1 0π
4π
1π
2π
3π
4π
-1000 0π
1π
2π
3π
4π
3π
4π
Êîìïîíåíòû ñìåñè âûãëÿäÿò, êàê øóì y1 (t)
600
y2 (t)
150
y3 (t)
50 40
400
100
200
50
0
0
30 20 10 0 -10
-200
-50
-400
-100
-600 0π
-150 0π
-20 -30 -40
1π
2π
3π
4π
1π
2π
y4 (t)
1000
3π
4π -500π
1π
2π
y5 (t)
300
800
200
600 400
100
200
0
0 -200
-100
-400 -600
-200
-800 -1000 0π
1π
2π
3π
Òåì íå ìåíåå, ìåòîä bss1 (t)
1.5
-300 0π
4π
BSS
1π
2π
3π
4π
ïîçâîëÿåò âûäåëèòü èñòî÷íèêè èç ñìåñè bss2 (t)
1.5
bss3 (t)
2 1.5
1
1
0.5
0.5
1 0.5 0
0
-0.5
-0.5
0 -0.5 -1
-1
-1 -1.5
-1.5 0π
1π
2π
3π
Íà âûáîðêå
4π
l = 100
bss1 (t)
1.5
-1.5 0π
1π
2π
3π
4π
-2 0π
1π
2π
3π
4π
3π
4π
òî÷íîñòü âû÷èñëåíèé íèæå bss2 (t)
2
bss3 (t)
2
1.5
1.5
1 1
1
0.5
0.5
0.5 0
0
0
-0.5
-0.5
-1
-1
-0.5 -1 -1.5 -1.5 0π
1π
2π
3π
4π
-2 0π
-1.5 1π
2π
3π
4π
-2 0π
1π
2π
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
223
èñ. 4. Òðè ñèãíàëà ñ ìîäóëÿöèåé òèïà qpsk
Ñìåøèâàåì òðè äèñêðåòíûõ ÷åòûðåõïîçèöèîííûõ ñèãíàëà. àçìåð âûáîðêè áîëüøîé l = 10 îòñ÷åòîâ 4
x1 (t)
1
x2 (t)
1 0.8
0.8
0.6
0.6
0.6
0.4
0.4
0.4
0.2
0.2
0
0
0
-0.2
-0.2
-0.2
-0.4
-0.4
-0.4
-0.6
0.2
-0.6
-0.8
-0.6
-0.8
-1 0
0.2
0.4
0.6
0.8
1
x3 (t)
1
0.8
-0.8
-1 0
0.2
0.4
0.6
0.8
1
-1 0
0.2
0.4
0.6
0.8
1
0.8
1
0.8
1
Êîìïîíåíòû ñìåñè âûãëÿäÿò äîñòàòî÷íî ñëîæíî y1 (t)
0.8
y2 (t)
0.6
0.6 0.4
y3 (t)
0.8
0.4
0.6
0.2
0.4 0.2
0 0.2
0 -0.2
0
-0.2 -0.4 -0.4
-0.2 -0.6
-0.6
-0.4
-0.8
-0.6
-1
-0.8
0
0.2
0.4
0.6
0.8 y4 (t)
0.6
1
-1.2
-0.8 -1
0
0.2
0.4
0.6
0.8
1
0.2
0.5
0
0
-0.2
-0.5
-0.4
-1
-0.6
-1.5 0
0.2
0.4
-1.2
0
0.6
0.8
-2 0
1
0.2
0.4
0.6
0.6
0.8
1
y5 (t)
1.5
0.4
-0.8
1
0.2
0.4
Òåì íå ìåíåå, ðàçäåëåíèå ñèãíàëîâ ïðîèñõîäèò óäà÷íî bss2 (t)
1.5
bss3 (t)
1.5 1
1
0.5
0.5
0.5
0
0
0
-0.5
-0.5
-0.5
-1 -1.5
0
-1
0.2
0.4
0.6
0.8
1
-1.5
0
bss1 (t)
1.5
1
-1
0.2
0.4
0.6
0.8
1
-1.5
0
0.2
0.4
0.6
224
Ä. Â. Ñàâîñòüÿíîâ
5. Ïðèìåðû
àññìîòðèì íåñêîëüêî ïðîñòûõ ïðèìåðîâ ðàçäåëåíèÿ ñèãíàëîâ äëÿ èëëþñòðàöèè âîçìîæíîñòåé ìåòîäà BSS . Íà ðèñóíêå 3 ïîêàçàí ýêñïåðèìåíò ïî âûäåëåíèþ ñèãíàëîâ èç-ïîä ñèëüíîãî øóìîâîãî èñòî÷íèêà.  êà÷åñòâå ñèãíàëîâ âçÿòû òðàäèöèîííûå ñèíóñîèäà è ïðÿìîóãîëüíûé ìåàíäð. Îáðàòèòå âíèìàíèå, ÷òî ïðè ðàçäåëåíèè ñèãíàëîâ íà ìàëîé âûáîðêå òî÷íîñòü îïðåäåëåíèÿ êîìïîíåíò çíà÷èòåëüíî ñíèæàåòñÿ. Íà ðèñóíêå 4 ïîêàçàíî ðàçäåëåíèå íåñêîëüêèõ ñèãíàëîâ â ìîäóëÿöèåé òèïà QPSK. Ìîäóëÿöèÿ QPSK êîäèðóåò èíîðìàöèþ, óñòàíàâëèâàÿ àçó ïåðåäàâàåìîãî ñèãíàëà â îäíó èç ÷åòûðåõ ïîçèöèé. Íà ðèñóíêàõ àíàëîã ýòèõ ñèãíàëîâ â äåéñòâèòåëüíîé àðèìåòèêå, áîëåå óäîáíûé äëÿ ãðàè÷åñêîãî îòîáîðàæåíèÿ. Âèäèì, ÷òî çàäà÷à î ðàçäåëåíèè ñìåñè òðåõ êîäèðîâàííûõ ñèãíàëîâ ìîæåò áûòü ñ óñïåõîì ðåøåíà îïèñàííûìè ìåòîäàìè BSS . Íà ïðàêòèêå îíà âîçíèêàåò ïðè ïåðåäà÷è èíîðìàöèè â MIMO êàíàëàõ, íàïðèìåð, â íîâûõ ñòàíäàðòàõ ñîòîâîé ñâÿçè.
Ñïèñîê ëèòåðàòóðû
[1℄ Cherry E. C. Some experiments on the re ognition of spee h, with one and with two ears // 1953. V 25(5). P. 975979.
Ameri a.
Journal of A ousti al So iety of
[2℄ Hamalainen M., Hari R., Ilmoniemi R., Knuutila J. and Lounasmaa O.V. Magnetoen ephalography theory, instrumentation, and appli ations to noninvasive studies of signal pro essing in the human 1993. V. 65. P. 413497. brain //
Reviews of Modern Physi s.
[3℄ De Lathauwer L., De Moor B., Vandewalle J. Fetal ele tro ardiogram extra tion by sour e subspa e separation ss Girona, Spain. 1995. P. 134-138.
Pro . of IEEE Signal Pro essing / Athos Workshop on Higher-Order Statisti s,
[4℄ Vigario R. N. Extra tion of o ular artifa ts from EEG using independent omponent analysis // 1997. V. 103. P. 395404.
Neurophysiol.
Ele troen eph. lin.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
225
[5℄ Vigario R., Sarela J., and Oja E. Independent omponent analysis in wave de omposition of auditory evoked elds // 1998. P. 287292.
on Arti ial Neural Networks (ICANN'98)
Pro . Int. Conf.
[6℄ Lei Xie, Jun Wu. Global optimal ICA and its appli ation in MEG . 2006. V. 69. P. 24382442. data analysis. //
Neuro omputing
[7℄ B. Chen and A. P. Petropulu. Frequen y domain MIMO system identi ation based on se ond and higher-order statisti s // 2001. V. 49, 8. P. 16771688.
IEEE
Trans. Signal Pro essing.
[8℄ De Lathauwer L., Comon P., De Moor B., Vandewalle J. ICA algorithms for 3 sour es and 2 sensors //
Pro . of the IEEE Signal Pro essing Workshop on Higher-Order Statisti s (HOS'99),
Caesarea, Israel. 1999. P. 116120.
[9℄ De Lathauwer L., De Moor B., Vandewalle J. An algebrai approa h to blind MIMO identi ation //
Pro . of the 2nd Int. Workshop on independent omponent analysis and blind sour e separation (ICA 2000), Helsinki, Finland. 2000. P. 211214.
[10℄ R. Bro. Review on Multiway Analysis in Chemistry 20002005. // . 2006. V. 36. P. 279.
Analyti al Chemistry
[11℄ Ba k A. D., Weigend, A.S. What drives sto k returns? An independent omponent analysis //
Pro . of the IEEE/IAFE/INFORMS Conf. on Comp. Intelligen e for Finan ial Engineering (CIFEr). 1998. P. 141156.
[12℄ Moody J., Howard, Y. Term stru ture of intera tions of foreign 6 ex hange rates // 1999. P. 2435.
Int'l Conf.
Computational Finan e Pro . of the th
[13℄ Draper B. A., Baek K., Bartlett M. S., Beveridge J. R. Re ognizing fa es with PCA and ICA // 2003. 1-2. P. 115-137.
CVIU(91),
[14℄ Jongsun Kim, Jongmoo Choi, Yuneho Yi. Biometri Authenti ation Springer Berlin, 2004.
226
Ä. Â. Ñàâîñòüÿíîâ
[15℄ Hotelling H. Analysis of a Complex of Statisti al Variables with Prin ipal Components // 1933. V. 24. P. 417441.
Journal of Edu ational Psy hology.
[16℄ Tetsuo Sato. Appli ation of prin ipal- omponent analysis on nearinfrared spe tros opi data of vegetable oils for their lassi ation // 1994. V. 71, 3. P. 293298.
Journal of the Ameri an Oil Chemists' So iety.
[17℄ Aiyi Liu, Ying Zhang, Gehan E., Clarke R. Blo k prin ipal
omponent analysis with appli ation to gene mi roarray data 2002. V. 21. P. 34653474.
lassi ation //
Statisti s in Medi ine.
[18℄ Hyvarinen A. Fast and robust xed-point algorithm for independent
omponent analysis // 1999. V. 10, 3. P. 626-634.
IEEE Trans. on Neural Network.
[19℄ E. Bingham and A. Hyvarinen. A fast xed-point algorithm for independent omponent analysis of omplex-valued signals. // 2000. V. 10, 1. P. 18.
Int.
J. of Neural Systems.
[20℄ Comon P. Independent Component Analysis, a new on ept? // 1994. V. 36, 3. P. 287314.
Signal Pro essing, Elsevier.
[21℄ Hyvarinen A., Erkki Oja. Independent Component Analysis: Algorithms and Appli ations // 2000. V. 13, 45. P. 411-430.
NEural Networks.
[22℄ St ogbauer H., Kraskov A., Astakhov S. A., Grassberger P. Least Dependent Component Analysis Based on Mutual Information // 2004. E 70, 066123.
Phys. Rev.
[23℄ Cardoso J.-F., Souloumati A. Blind beamforming for non Gaussian signals // 1993. V. 140, 6. P. 362370.
IEE Pro .-F.
[24℄ Cardoso J.-F., Souloumati A. Ja obi angles for simultaneous 1996. V. 17 1. P. diagonalisation // 161164.
SIAM J. Mat. Anal. Appl.
Àëãîðèòìû BSS â ïàêåòíîì ðåæèìå
227
[25℄ Parra L., Sajda P. Blind Sourse Separation via Generalized Eigenvalue De omposition // 2003. V. 4. P. 12611269.
J. of Ma hine Learning Resear h.
[26℄ De Lathauwer L., De Moor B., Vanderwalle J. Computation of the
anoni al de omposition by means of a simultaneous generalized S hur de omposition // 2004. V. 26. P. 295-227.
SIAM J. Matrix Anal. Appl.
[27℄ Ziehe A., Laskov P., M uller K.-R., Nolte G. A linear least-squares 4 algorithm for joint diagonalization //
Pro . th Intern. Symp. on Independent Component Analysis and Blind Signal Separation (ICA2003). 2003. P. 469474.
[28℄ Ziehe A., Kawanabe M., Hamerling S., M uller K.-R. A fast algorithm for joint diagonalization with non-orthogonal transformations and its appli ation to blind sour e separation // 2004. V. 5. P. 801-818.
Journal of Ma hine Learning Resear h.
[29℄ Îñåëåäåö È.Â., Ñàâîñòüÿíîâ Ä.Â. Ìåòîäû ðàçëîæåíèÿ òåíçîðà // Ñ. 5164.
Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè ðåøåíèÿ áîëüøèõ çàäà÷ Ñá. ïîä ðåä. Å. Å. Òûðòûøíèêîâà
[30℄ Îñåëåäåö È.Â., Ñàâîñòüÿíîâ Ä.Â. Òðåõìåðíûé àíàëîã àëãîðèòìà êðåñòîâîé àïïðîêñèìàöèè è åãî ýåêòèâíàÿ ðåàëèçàöèÿ // ÈÂÌ ÀÍ, 2005. Ñ. 6599.
Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè ðåøåíèÿ áîëüøèõ çàäà÷ Ñá. ïîä ðåä. Å. Å. Òûðòûøíèêîâà
[31℄ Îñåëåäåö È.Â., Ñàâîñòüÿíîâ Ä.Â. Áûñòðûé àëãîðèòì äëÿ îäíîâðåìåííîãî ïðèâåäåíèÿ ìàòðèö ê òðåóãîëüíîìó âèäó è àïïðîêñèìàöèè òåíçîðîâ //
Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè ðåøåíèÿ áîëüøèõ çàäà÷ Ñá. ïîä ðåä. Å. Å. Òûðòûøíèêîâà ÈÂÌ ÀÍ, 2005. Ñ. 101116.
[32℄ Îñåëåäåö È.Â., Ñàâîñòüÿíîâ Ä.Â. Îá îäíîì àëãîðèòìå ïîñòðîåíèÿ òðèëèíåéíîãî ðàçëîæåíèÿ //
Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè ðåøåíèÿ áîëüøèõ çàäà÷ Ñá. ïîä ðåä. Å. Å. Òûðòûøíèêîâà ÈÂÌ ÀÍ, 2005. Ñ. 117130.
228
Ä. Â. Ñàâîñòüÿíîâ
[33℄ Îñåëåäåö È.Â., Ñàâîñòüÿíîâ Ä.Â. Ìèíèìèçàöèîííûå ìåòîäû àï2006. Ò. 46, ïðîêñèìàöèè òåíçîðîâ è èõ ñðàâíåíèå // 10. Ñ. 1641-1650.
ÆÂÌèÌÔ.
[34℄ Oseledets I. V., Savostianov D. V., Tyrtyshnikov E. E. Tu ker dimensionality redu tion of three-dimensional arrays in linear time // ïðèíÿòî ê ïóáëèêàöèè.
SIMAX,
[35℄ Oseledets I. V., Savostianov D. V., Tyrtyshnikov E. E. Fast simultaneous ortogonal redu tion to triangular matri es. // ïðèíÿòî ê ïóáëèêàöèè.
SIMAX,
[36℄ Ñàâîñòüÿíîâ Ä. Â. Áûñòðàÿ ïîëèëèíåéíàÿ àïïðîêñèìàöèÿ ìàòðèö è èíòåãðàëüíûå óðàâíåíèÿ Äèññ. íà ñòåï. ê..-ì.í. ÈÂÌ ÀÍ, Ìîñêâà, 2006.
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé ïðè ðåøåíèè ãèïåðñèíãóëÿðíûõ èíòåãðàëüíûõ óðàâíåíèé $
Ä. Â. Ñàâîñòüÿíîâ
, Ñ. Ë. Ñòàâöåâ , Å. Å. Òûðòûøíèêîâ
1. Ââåäåíèå
Ïðè ðåøåíèè çàäà÷ äèðàêöèè çâóêîâûõ âîëí íà ïîâåðõíîñòè ñëîæíîé îðìû âîëíîâûìè ìåòîäàìè âîçíèêàåò ïðîáëåìà íàõîæäåíèÿ ðåøåíèÿ ñ óâåëè÷åíèåì ÷àñòîòû èçëó÷åíèÿ.  ñòàòüå äëÿ ïîëó÷åíèÿ ðåøåíèÿ êðàåâîé çàäà÷è Íåéìàíà äëÿ ñêàëÿðíîãî óðàâíåíèÿ åëüìãîëüöà ñ ïîìîùüþ òåîðèè ïîòåíöèàëà çàäà÷à ñâîäèòñÿ ê ðåøåíèþ èíòåãðàëüíûõ óðàâíåíèé. Äëÿ ïîëó÷åíèÿ ÷èñëåííîãî ðåøåíèÿ èíòåãðàëüíîãî óðàâíåíèÿ òðåáóåòñÿ çàïîëíÿòü ìàòðèöû áîëüøîãî îáúåìà è ðåøàòü ñîîòâåòñòâóþùèå ÑËÀÓ.  ñòàòüå ïîêàçàíû ðåçóëüòàòû ïðèìåíåíèÿ ìîçàè÷íî-ñêåëåòîííîãî ìåòîäà ê àïïðîêñèìàöèè òàêèõ ìàòðèö.  òîì ÷èñëå ïîêàçàíà ýåêòèâíîñòü ïðåäëàãàåìûõ ìåòîäîâ, äàíû ÷èñëåííûå îöåíêè ðîñòà ìîçàè÷íîãî ðàíãà ñ óâåëè÷åíèåì ÷àñòîòû èçëó÷åíèÿ. Ïðèìåíåíèå ìîçàè÷íî-ñêåëåòîííûõ ìåòîäîâ ïîçâîëèëî ïðîâåñòè áîëåå äåòàëüíûé àíàëèç ðåøåíèÿ èíòåãðàëüíûõ óðàâíåíèé. Íàïðèìåð, ïîëó÷èòü ðåøåíèå, êîãäà èñòî÷íèê ðàñïîëîæåí áëèçêî ê ïîâåðõíîñòè äèðàãèðóåìîãî òåëà. Çàäà÷à ñ èñòî÷íèêîì, ðàñïîëîæåííûì áëèçêî ê ïîâåðõíîñòè, âîçíèêàåò ïðè ìîäåëèðîâàíèè ðàñïðîñòðàíåíèÿ çâóêà îò âåíòèëÿöèîí$ àáîòà âûïîëíåíà ïðè ÷àñòè÷íîé èíàíñîâîé ïîääåðæêå îññèéñêîãî îíäà óíäàìåíòàëüíûõ èññëåäîâàíèé (ãðàíò ÔÔÈ 05-01-00721a) è ïðîãðàììû óíäàìåíòàëüíûõ èññëåäîâàíèé îòäåëåíèÿ ìàòåìàòè÷åñêèõ íàóê ÀÍ ¾Âû÷èñëèòåëüíûå è èíîðìàöèîííûå ïðîáëåìû ðåøåíèÿ áîëüøèõ çàäà÷¿ ïî ïðîåêòó ¾Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè äëÿ çàäà÷ ñî ñâåðáîëüøèì ÷èñëîì íåèçâåñòíûõ¿ Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
230
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
íîãî îáîðóäîâàíèÿ, êîòîðûå îáû÷íî ðàñïîëàãàåòñÿ íà êðûøå çäàíèé. Ïîýòîìó â ñòàòüå áîëåå ïîäðîáíî ïîêàçàíî ðåøåíèå çàäà÷è ñ èñòî÷íèêîì, ðàñïîëîæåííûì áëèçêî ê ïîâåðõíîñòè.  òîì ÷èñëå äëÿ âîçìîæíîñòè ïîâòîðåíèÿ ñäåëàííûõ ïðåîáðàçîâàíèé ïîêàçàíî áîëåå äåòàëüíîå âû÷èñëåíèå ãèïåðñèíãóëÿðíîãî èíòåãðàëà ñ âåñîâîé óíêöèåé. Äëÿ ïðèìåíåíèÿ ïîëó÷àåìûõ îðìóë òàêæå èñïîëüçîâàëèñü ìîçàè÷íî-ñêåëåòîííûå àïïðîêñèìàöèè.
2. Ïîñòàíîâêà çàäà÷è
àññìîòðèì ðåøåíèå âíåøíåé êðàåâîé çàäà÷è Íåéìàíà íà ïîâåðõíîñòè σ ∂ϕ(M) ∂ϕ0 (M) =− , ∂nM ∂nM
M∈σ
(1)
äëÿ ñêàëÿðíîãî óðàâíåíèÿ åëüìãîëüöà: ∆ϕ(M) + κ2 ϕ(M) = 0,
M ∈ D,
(2)
~M ãäå κ = 2πν âîëíîâîå ÷èñëî, ν ÷àñòîòà èñòî÷íèêà.  (1) n c åäèíè÷íûé âåêòîð íîðìàëè ê ïîâåðõíîñòè σ, íàïðàâëåííûé â îáëàñòü D. Îáëàñòü D ÿâëÿåòñÿ íåîãðàíè÷åííîé. Ïîâåðõíîñòü σ çàäàåòñÿ óðàâíåíèåì ψ = ψ(u, v), (u, v) ∈ R2 , ψ ∈ C1 .
(3)
àññìîòðèì ñëó÷àé, êîãäà ïîòåíöèàë ϕ0 (M) ïðåäñòàâèì â âèäå: ϕ0 (M) =
m X Qi exp (iκrMMi ) , Mi ∈ D, i = 1, . . . , m 4π rMMi
(4)
i=1
Òàêèì îáðàçîì, ïî îðìóëå (4) ðàñ÷èòûâàåòñÿ ïîòåíöèàë îò ñèñòåìû òî÷å÷íûõ èñòî÷íèêîâ ìîùíîñòüþ Qi ðàñïîëîæåíûõ â òî÷êàõ Mi îáëàñòè D. Òàê êàê îáëàñòü D íåîãðàíè÷åííà, òî çàäàäèì óñëîâèÿ èçëó÷åíèÿ íà áåñêîíå÷íîñòè óñëîâèÿ Çîììåðåëüäà: ~rM 1 (5) , , ∇ϕ(M) − iκϕ(M) = O rM RMM0
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
231
ãäå RMM0 ðàññòîÿíèå îò òî÷êè M äîqM0 ∈ σ, rM = |~rM | = |xM~i+ +yM~j + zM~k| = x2M + y2M + z2M , ~i,~j, ~k îðòû êîîðäèíàòíûõ îñåé.
3. ×èñëåííûé ìåòîä ðåøåíèÿ
Òàêæå êàê â ðàáîòå [6℄ ðåøåíèå çàäà÷è (1) (5) áóäåì èñêàòü â âèäå ïîòåíöèàëà äâîéíîãî ñëîÿ, ðàñïðåäåëåííîãî ïî ïîâåðõíîñòè σ Z (6) ϕ(M) = g(N)G(M, N)dσN , M ∈ D, M 6∈ σ, σ
ãäå g(N), N ∈ σ ïëîòíîñòü ïîòåíöèàëà äâîéíîãî ñëîÿ. ßäðî èíòåãðàëüíîãî îïåðàòîðà (6) èìååò âèä: G(M, N) =
1 ∂ exp(iκrMN ) . 4π ∂nN rMN
(7)
Ïîòåíöèàë äâîéíîãî ñëîÿ (6) ÿâëÿåòñÿ ðåøåíèåì çàäà÷è (1) (5), åñëè åãî ïëîòíîñòü g(M) M ∈ σ óäîâëåòâîðÿåò èíòåãðàëüíîìó óðàâíåíèþ Z ∂ϕ0 (M) ∂G(M, N) (8) dσN = − , M ∈ σ. g(N) ∂nM ∂nM σ
 ðàáîòå [7℄ ïîêàçàíî, ÷òî åñëè ïîâåðõíîñòü σ ÿâëÿåòñÿ ïëîñêîñòüþ z = 0, òî ðåøåíèåì èíòåãðàëüíîãî óðàâíåíèÿ (6) ÿâëÿåòñÿ óíêöèÿ g(N) = 2ϕ0 (N), N ∈ σ.
(9)
Èç îðìóë (4) è (9) âèäíî, ÷òî ðåøåíèå èíòåãðàëüíîãî óðàâíåíèÿ (6) ÿâëÿåòñÿ îñöèëëèðóþùåé óíêöèåé. ×àñòîòà îñöèëëÿöèé îïðåäåëÿåòñÿ âîëíîâûì ÷èñëîì κ. Ïðè ðåøåíèè òðåõìåðíûõ çàäà÷ ïðàêòèêè, íàïðèìåð, äèðàêöèè çâóêîâûõ âîëí (ñì. [6℄, [7℄), äèðàêöèè H-ïîëÿðèçîâàííûõ ýëåêòðîìàãíèòíûõ âîëí (ñì. [3℄) âîçíèêàåò íåîáõîäèìîñòü ðåøàòü èíòåãðàëüíûå óðàâíåíèÿ äëÿ κ ∼ 0,1 . . . 10.
232
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
Åñëè ïîâåðõíîñòü σ íå ÿâëÿåòñÿ ïëîñêîñòüþ, òî äëÿ ðåøåíèÿ óðàâíåíèÿ (6) áóäåì èñïîëüçîâàòü ÷èñëåííûé ìåòîä äèñêðåòíûõ îñîáåííîñòåé, îïèñàííûé â ðàáîòàõ [5℄, [4℄. Ñîãëàñíî ýòîìó ìåòîäó ïîâåðõíîñòü σ ðàâíîìåðíî ðàçáèâàåòñÿ ïî ïàðàìåòðàì u, v. Äëÿ êàæäîé ÿ÷åéêè σij , i, j = 1 . . . n óíêöèÿ g(N) ñ÷èòàåòñÿ ïîñòîÿííîé. Çàòåì èíòåãðàëüíîå óðàâíåíèå (6) çàïèñûâàåòñÿ â ðàñ÷åòíûõ òî÷êàõ (òî÷êàõ êîëëîêàöèè).  ðåçóëüòàòå çàäà÷à ñâîäèòñÿ ê ðåøåíèþ ñèñòåìû ëèíåéíûõ èíòåãðàëüíûõ óðàâíåíèé (ÑËÀÓ) Ag = b.
(10)
Ñîãëàñíî ìåòîäó äèñêðåòíûõ îñîáåííîñòåé ýëåìåíòû ìàòðèöû A âû÷èñëÿþòñÿ ïî îðìóëå: Z − → ~ M · dl × ∇N F(M, N) + aij (M) = − n +k2
Z
Lσij
(11)
~ N dσ, i, j = 1 . . . n, F(M, N)~ nM · n
σij
ãäå Lσij ãðàíèöà ÿ÷åéêè σij , F(M, N) =
1 exp (iκrMN ) . 4π rMN
(12)
Î÷åâèäíî, ÷òî òî÷íîñòü ðåøåíèÿ èíòåãðàëüíîãî óðàâíåíèÿ îïðåäåëÿåòñÿ øàãàìè ðàçáèåíèÿ. Ñ äðóãîé ñòîðîíû èñêîìàÿ óíêöèÿ g(N) ÿâëÿåòñÿ îñöèëëèðóþùåé è äëÿ åå ðàñ÷åòà ïðè á îëüøèõ κ òðåáóåòñÿ ìåíüøèé øàã ðàçáèåíèÿ. Íî ñ óìåíüøåíèåì øàãîâ ðàçáèåíèÿ óâåëè÷èâàåòñÿ ðàçìåð ðåøàåìîé ñèñòåìû (10). Òàêèì îáðàçîì, ïðè áîëüøèõ κ âîçíèêàåò íåîáõîäèìîñòü ðåøàòü ÑËÀÓ (10) áîëüøèõ ðàçìåðíîñòåé. Ìàòðèöà A ÿâëÿåòñÿ ïëîòíîé è ïðè n > 2·104 åå íåâîçìîæíî ñîõðàíèòü â îïåðàòèâíîé ïàìÿòè. Áóäåì èñïîëüçîâàòü ìåòîä äëÿ òîãî, ÷òîáû ïðèáëèçèòü èñõîäíóþ ìàòðèöó A ìàòðèöåé ìàëîãî ðàíãà (ñì. [8℄, [9℄). Ñîãëàñíî ýòîìó ìåòîäó èñõîäíàÿ ìàòðèöà ðàçáèâàåòñÿ íà áëîêè è äëÿ çàäàííîé òî÷íîñòè àïïðîêñèìàöèè ε êàæäûé áëîê çàìåíÿåòñÿ
êðåñòîâîé àïïðîêñèìàöèè
íåïîëíîé
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
233
Òàáëèöà 1. h 10/4 10/8
n 512 2048
Tms 26 åê. 2ìèí. 26ñåê.
Ire 100 44
Iim 85,7 26,2
10/16
8192
13ìèí.25ñåê.
14,4
7,34
10/32
32768
1÷. 10 ìèí. 27ñåê.
4,63
2,19
Tst 36ñåê. 10ìèí. 16ñåê. 2÷àñ. 38ìèí. 56ñåê. 1ä. 17÷àñ. 31ìèí. 44ñåê.
ìàòðèöåé ðàíãà k.  ðåçóëüòàòå äëÿ õðàíåíèÿ áëîêà l1 × l2 òðåáóåòñÿ íå l1 · l2 , à k(l1 + l2 ) ÷èñåë. Îòìåòèì, ÷òî ïðè èñïîëüçîâàíèè ìåòîäà íåïîëíîé êðåñòîâîé àïïðîêñèìàöèè äëÿ êàæäîãî áëîêà íåîáõîäèìî âû÷èñëèòü òîëüêî O(k(l1 + l2 )) âìåñòî l1 · l2 ýëåìåíòîâ ìàòðèöû. Òàê êàê ïðè âû÷èñëåíèè ýëåìåíòîâ ìàòðèöû ïî îðìóëàì (11) èíòåãðàëû áåðóòñÿ ÷èñëåííî, òî óìåíüøåíèå êîëè÷åñòâà âû÷èñëÿåìûõ ýëåìåíòîâ çíà÷èòåëüíî óñêîðÿåò ðàñ÷åò àïïðîêñèìèðóþùåé ìàòðèöû.
4. åçóëüòàòû ðàñ÷åòîâ ÷åðåç ìîçàè÷íî-ñêåëåòíûå àïïðîêñèìàöèè
Èññëåäóåì ýåêòèâíîñòü ýòîãî ìåòîäà ñ ïîìîùüþ ÷èñëåííûõ ýêñïåðèìåíòîâ. Èññëåäîâàíèå ïðîâåäåì äëÿ ðåøåíèÿ èíòåãðàëüíîãî óðàâíåíèÿ (6), êîãäà ïîâåðõíîñòü σ ÿâëÿåòñÿ ïðÿìîóãîëüíûì ïàðàëëåëåïèïåäîì 20 × 30 × 40 . Ïðè ðàñ÷åòå ϕ0 (M) ïî îðìóëå (4) ïîëîæèì m = 1; Q1 = 1; M1 (20; 0; 0) (ñì. ðèñóíîê 1). Ñðàâíèì âðåìåííûå çàòðàòû ïî çàïîëíåíèþ ìàòðèö ðàçëè÷íîé ðàçìåðíîñòè ïðÿìûì ìåòîäîì è ìåòîäîì, îñíîâàííîì íà ìîçàè÷íîñêåëåòîííûõ àïïðîêñèìàöèÿõ. åçóëüòàòû ñðàâíåíèÿ ïðåäñòàâëåíû â òàáëèöå 1. ãäå h øàã ñåòêè; n ðàçìåð ìàòðèöû; Tms âðåìÿ ðàñ÷åòà ìàòðèöû ñ ïîìîùüþ ìîçàè÷íî-ñêåëåòîííîãî ìåòîäà; Ire êîýè-
234
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
èñ. 1. Ïðèìåð ãåîìåòðèè öèåíò ñæàòèÿ äåéñòâèòåëüíîé ÷àñòè ìàòðèöû; Iim êîýèöèåíò ñæàòèÿ ìíèìîé ÷àñòè ìàòðèöû; Tms âðåìÿ ðàñ÷åòà ìàòðèöû ñ ïîìîùüþ ïðÿìîãî ìåòîäà.  ðàñ÷åòàõ âîëíîâîå ÷èñëî κ ïîëàãàëîñü ðàâíûì 0,2. Ïóñòü mem(A) îáúåì ïàìÿòè, íåîáõîäèìûé äëÿ õðàíåíèÿ âñåõ áëîêîâ ñàïïðîêñèìèðîâàííîé ìàòðèöû, mem(A) îáúåì ïàìÿòè, íåîáõîäèìûé äëÿ õðàíåíèÿ íåñàïïðîêñèìèðîâàííîé ìàòðèöû, òîãäà êîýèöèåíò ñæàòèÿ I=
mem(A) · 100 mem(A)
(13)
îïðåäåëÿåò ýåêòèâíîñòü ìåòîäà ïî èñïîëüçóåìîé äëÿ õðàíåíèÿ ïàìÿòè. Íà êîýèöèåíò ñæàòèÿ I âëèÿþò ïàðàìåòðû ðåøàåìîé çàäà÷è, â òîì ÷èñëå âîëíîâîå ÷èñëî κ. Èññëåäóåì çàâèñèìîñòü ìîçàè÷íîãî
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
235
ðàíãà R = 2nI 100 (ñì. [8℄)îò âîëíîâîãî ÷èñëà κ äëÿ çàäà÷è, ïðîèëëþñòðèðîâàííîé íà ðèñóíêå 1, n = 8192. åçóëüòàòû ðàñ÷åòîâ ïðåäñòàâëåíû â òàáëèöå 2.  ðàáîòå [2℄ áûëè äàíû îöåíêè çàâèñèìîñòè ìîçàè÷íîãî ðàíãà R ìàòðèöû, ïîðîæäåííîãî èíòåãðàëüíûì îïåðàòîðîì ñ ÿäðîì exp iκr/r îò âîëíîâîãî ÷èñëà, à èìåííî R < onst (κa − log2 ε)α log2 n, α = 2,
(14)
ãäå a äèàìåòð ìíîæåñòâà, íà êîòîðîì ñòðîèëèñü àïïðîêñèìàöèè (â íàøåé çàäà÷å ýòî ìàêñèìàëüíûé ðàçìåð ïàðàëëåëåïèïåäà), ε òî÷íîñòü àïïðîêñèìàöèè ìàòðèöû ( ε = 10−4 ). Ïîëàãàÿ, ÷òî äëÿ ÿäðà (7) çàâèñèìîñòü R(κ) àíàëîãè÷íà (14), ðàññ÷èòàåì α. Èñïîëüçóÿ îðìóëó α=
< xy > − < x >< y > , < x2 > −(< x >)2
ãäå x = lg(κa − log2 ε), y = lg(R), ñèìâîë < · > îçíà÷àåò ñðåäíåå çíà÷åíèå, ïîëó÷àåì αRe ≈ 0,69, αIm ≈ 1,32. Òàêèì îáðàçîì, â îöåíêå (14) çíà÷åíèå α çàâûøåíî, òî åñòü ÷èñëåííûé ýêñïåðèìåíò äàåò ëó÷øèé ðåçóëüòàò, ÷åì òåîðåòè÷åñêèå îöåíêè. Ñ óâåëè÷åíèåì ÷àñòîòû, à çíà÷èò è âîëíîâîãî ÷èñëà κ óâåëè÷èâàåòñÿ ÷èñëî îñöèëëÿöèé â ðàññ÷èòûâàåìîé ïëîòíîñòè g . Äëÿ ñîõðàíåíèÿ òî÷íîñòè âû÷èñëåíèé áóäåì ñ óâåëè÷åíèåì κ ïðîïîðöèîíàëüíî óâåëè÷èâàòü ÷èñëî òî÷åê ðàçáèåíèÿ íà åäèíèöó äëèíû (ðàçìåð ìàòðèöû óâåëè÷èâàåòñÿ ïðîïîðöèîíàëüíî êâàäðàòó). Áóäåì
Òàáëèöà 2. κ RRe RIm
0,1 880 368
0,2 940 501
0,3 1000 651
0,4 1080 785
0,5 1170 908
0,6 1250 1040
κ RRe RIm
0,8 1450 1280
0,9 1540 1410
1,0 1650 1510
1,1 1740 1620
1,2 1830 1730
1,3 1940 1820
0,7 1350 1160
236
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
ñ÷èòàòü, ÷òî íà äëèíó âîëíû λ ïðèõîäèòñÿ 2π êîíòðîëüíûõ òî÷åê. åçóëüòàòû ïðåäñòàâëåíû â òàáëèöå 3.  òàáëèöå 3 T ýòî âðåìÿ ðàñ÷åòà ìàòðèöû. Èç òàáëèöû âèäíî, ÷òî ñ ðîñòîì âîëíîâîãî ÷èñëà κ (ò.å. ñ óâåëè÷åíèåì ÷àñòîòû) èíäåêñ ñæàòèÿ êàê äëÿ äåéñòâèòåëüíîé òàê è äëÿ ìíèìîé ÷àñòåé ìàòðèöû óìåíüøàåòñÿ, ÷òî ïðèâîäèò ê óìåíüøåíèþ ñòåïåíè ðîñòà âðåìåíè ðàñ÷åòà ìàòðèöû ñ óâåëè÷åíèåì ÷àñòîòû. Ìîçàè÷íî-ñêåëåòîííûå àïïðîêñèìàöèè ïîçâîëÿþò áîëåå ïîäðîáíî èññëåäîâàòü çàäà÷è äèðàöèè âîëí êîãäà èñòî÷íèê ðàñïîëîæåí áëèçêî ê ïîâåðõíîñòè.  çàäà÷å, èçîáðàæåííîé íà ðèñóíêå 1, áóäåì ïðèáëèæàòü èñòî÷íèê ê ïîâåðõíîñòè è ðàññìîòðèì êàê áóäåò èçìåíÿòüñÿ ðåøåíèå (8). Ïóñòü d êðàò÷àéøåå ðàññòîÿíèå îò èñòî÷íèêà äî ïîâåðõíîñòè. Íà ðèñóíêå 2 èçîáðàæåíû èçìåíåíèÿ âäîëü îñè OZ äåéñòâèòåëüíîé (a) è ìíèìîé (b) ÷àñòåé ðåøåíèÿ â òî÷êàõ ïåðåñå÷åíèÿ ïëîñêîñòè OXZ ñ ÷àñòüþ ïîâåðõíîñòè σ x = 10 ïðè d = 5ì, d = 1ì è d = 0, 5ì. Âèäèì, ÷òî ñ óìåíüøåíèåì d óñèëèâàåòñÿ îñòðîòà ïèêà óíêöèè g â òî÷êå (òî÷êàõ) N∗ ∈ σ áëèçêèõ ê èñòî÷íèêó. Ïîýòîìó ïðè ïîëó÷åíèÿ ðåøåíèÿ g(N) èíòåãðàëüíîãî óðàâíåíèÿ (8) òðåáóåòñÿ ëèáî ìåëêàÿ ñåòêà, ëèáî íåðàâíîìåðíàÿ ñåòêà, ñãóùàþùàÿñÿ âáëèçè òî÷åê N∗ . Ýòî ïðîèëëþñòðèðîâàíî íà ðèñ. 2. Îäíàêî, åñëè ðåøàòü ñèñòåìó îòíîñèòåëüíî óíêöèè (15)
h(N) = g(N) − pQ (N), N ∈ σ,
Òàáëèöà 3. κ h n IRe IIm
0,4 10/4 512 100 100
0,6 10/6 1152 100 94,9
0,8 10/8 2048 75,9 72,7
1,2 10/12 4608 49,8 47,9
T
41ñ.
3ìèí. 13ñ.
7ìèí. 14ñ.
24 ìèí. 21ñ.
1,6 10/16 8192 37,0 35,4 1÷. 10ìèí. 52ñ.
2,4 10/24 18432 24,3 23,3 3÷. 43ìèí. 45ñ.
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
0.3 0.25 0.2 0.15 0.1 0.05 0 −0.05 −15
Re(g) d=5 d=1 d = 0.5
−10
−5
0
5
10
0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 −0.01 −0.02 −15 15
237
Im(g) d=5 d=1 d = 0.5
−10
−5
0
5
10
15
èñ. 2. Èçìåíåíèå óíêöèè g ïðè ïðèáëèæåíèè èñòî÷íèêà ê ïîâåðõíîñòè êîòîðàÿ íå ñîäåðæèò îñòðûõ ïèêîâ, òî ðåøåíèå ìîæíî èñêàòü íà ðàâíîìåðíîé è äîñòàòî÷íî ãðóáîé ñåòêå.  ðåçóëüòàòå èç îðìóë (15) è (8) ïîëó÷àåì ñëåäóþùåå èíòåãðàëüíîå óðàâíåíèå: Z ∂ϕ0 (M) ∂G(M, N) dσN = − − h(N) ∂nM ∂nM σ Z ∂G(M, N) − pQ (N) (16) dσN , M ∈ σ. ∂nM σ
Êàê âûáðàòü óíêöèþ pQ (N) !? Íàïîìíèì, ÷òî îðìóëà (9) ÿâëÿåòñÿ ðåøåíèåì èíòåãðàëüíîãî óðàâíåíèÿ (8), êîãäà ïîâåðõíîñòü σ ïëîñêîñòü z = 0. Ïîýòîìó â êà÷åñòâå óíêöèè pQ (N) ìîæíî âûáðàòü pQ (N) = 2ϕ0 (N), N ∈ σ.
(17)
Îáðàòèì âíèìàíèå íà òî, ÷òî îñòðûé ïèê ñóùåñòâóåò òîëüêî äëÿ äåéñòâèòåëüíîé ÷àñòè ðåøåíèÿ g(N). Åñëè â óíêöèè ϕ0 (N), âû÷èñëÿåìîé ïî îðìóëå (4), ðàçëîæèì exp(iκrNMi ), i = 1, . . . , m â ñòåïåííîé ðÿä, òî î÷åâèäíî, ÷òî ñóùåñòâîâàíèå ïèêà îïðåäåëÿåòñÿ ïåðâûìè ÷ëåíàìè ðÿäà, òî åñòü ϕR (N) =
m X Qi i=1
1 , 4π rNMi
(18)
238
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
0.018 0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0 −0.002 −0.004 −15
Re(h) d=5 d=1 d = 0.5
−10
−5
0
5
10
15
0.01 0 −0.01 −0.02 −0.03 −0.04 −0.05 −0.06 −15
Im(h) d=5 d=1 d = 0.5
−10
−5
0
5
10
15
èñ. 3. ðàèêè óíêöèè h(N) â òî÷êàõ ïåðåäíåé ãðàíè êóáà ïîýòîìó â êà÷åñòâå pQ (M) ìîæíî âçÿòü âåëè÷èíó pQ (N) = 2ϕR (N), N ∈ σ.
(19)
Íà ðèñóíêå 3 ïðèâåäåíû ãðàèêè óíêöèè h(N) â òî÷êàõ ïåðåäíåé ãðàíè êóáà: íà ðèñóíêå (a), åñëè pQ (N) ðàññ÷èòûâàåòñÿ ïî îðìóëå (17), íà ðèñóíêå (b) ïðè ðàñ÷åòå pQ (N) ïî (19). Íà ðèñóíêå 3 ïðèâåäåíû ðåçóëüòàòû ðàñ÷åòà ñ èñïîëüçîâàíèåì óíêöèè g(N), êîòîðàÿ ðàñ÷èòûâàëàñü ÷èñëåííî, â õîäå èíòåãðàëüíîãî óðàâíåíèÿ. Èç-çà ñóùåñòâîâàíèÿ ïèêà ïîãðåøíîñòü âû÷èñëåíèé óíêöèè g(N), à çíà÷èò è h(N), âáëèçè îñè OZ ïîëó÷èëàñü áîëüøîé.
5. Âû÷èñëåíèå ãèïåðñèíãóëÿðíîãî èíòåãðàëà ñ âåñîì
 ïðàâîé ÷àñòè èíòåãðàëüíîãî óðàâíåíèÿ (16) ñòîèò ãèïåðñèíãóëÿðíûé èíòåãðàë Z 1 ∂ ∂F(M, N) I(M) = (20) dσN , pQ (N) 4π ∂nM ∂nN σ
ãäå F(M, N, ðàññ÷èòûâàåìîå ïî îðìóëå (12), ÿâëÿåòñÿ óíäàìåíòàëüíûì ðåøåíèåì óðàâíåíèÿ åëüìãîëüöà (2). Ïðåäñòàâèì èíòåãðàë (20) â âèäå ~ I(M) = ~nM · Φ(M),
(21)
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
239
~ = Φx (M)~i + Φy (M)~j + Φz (M)~k, ~nM = os αM~i + os βM~j+ ãäå Φ(M) + os γM~k. Çäåñü os αM , os βM , os γM íàïðàâëÿþùèå êîñèíóñû âåêòîðà ~nM , à òàêæå ââåäåíû îáîçíà÷åíèÿ Φx (M) = Φy (M) = Φz (M) =
Z
σ Z
Zσ
pQ (N)
∂2 F(M, N) dσN ; ∂xM ∂nN
pQ (N)
∂2 F(M, N) dσN ; ∂yM ∂nN
pQ (N)
∂2 F(M, N) dσN . ∂zM ∂nN
σ
(22)
~ N = os α~i + os β~j + os γ~k, ãäå os α, os β, os γ Ïóñòü n íàïðàâëÿþùèå êîñèíóñû âåêòîðà ~nN . Èç îïðåäåëåíèÿ Róíêöèè F(M, N) èìååì ∇M F(M, N) = −∇N F(M, N) Φx (M) = − pQ (N)× σ R R ∂2 ∂2 ∂2 p (N) p (N) dσ − dσ −
os β
os γ × os α ∂x Q Q N N 2 ∂xN ∂yN ∂xN ∂zN dσN . N
σ
Ïðåäñòàâèì Φx (M) â ñëåäóþùåì âèäå
σ
Φx (M) = −I1 (M) − I2 (M) − I3 (M),
(23)
ãäå ÷åðåç I1 (M), I2 (M), I3 (M) îáîçíà÷èì ñëåäóþùèå èíòåãðàëû I1 (M) = I2 (M) = I3 (M) =
Z
σ Z
σ Z
σ
pQ (N)
∂2 F(M, N)
os αdσN ; ∂x2N
pQ (N)
∂2 F(M, N)
os βdσN ; ∂xN ∂yN
pQ (N)
∂2 F(M, N)
os γdσN . ∂xN ∂zN
(24)
Òàê êàê F(M, N) óíäàìåíòàëüíîå ðåøåíèå óðàâíåíèÿ åëüìãîëüöà (2), òî ïðè N 6= M ñïðàâåäëèâî ñëåäóþùåå ñîîòíîøåíèå ∂2 F(M, N) ∂2 F(M, N) ∂2 F(M, N) =− − − κ2 F(M, N) 2 ∂xN ∂y2N ∂z2N
240
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
èëè ïîñëå óìíîæåíèÿ ïðàâîé è ëåâîé ÷àñòåé íà pQ (N), ïðèõîäèì ê pQ (N)
∂2 F(M, N) ∂2 F(M, N) = −p (N) − Q ∂x2N ∂y2N 2 ∂ F(M, N) −pQ (N) − κ2 pQ (N)F(M, N). ∂z2N
(25)
Òàê êàê äëÿ äâàæäû äèåðåíöèðóåìûõ óíêöèé A(x, y) è B(x, y) ñïðàâåäëèâû ñîîòíîøåíèÿ ∂B(x, y) ∂B(x, y) ∂A(x, y) ∂B(x, y) ∂ A(x, y) A(x, y) − = ; 2 ∂x ∂x ∂x ∂x ∂x (26) ∂ ∂B(x, y) ∂A(x, y) ∂B(x, y) ∂B(x, y) = . A(x, y) − A(x, y) ∂x∂y ∂x ∂y ∂x ∂y
Ïðèìåíÿÿ ïåðâîå ðàâåíñòâî (26) äëÿ A(x, y) = pQ (N) è B(x, y) = ∂ , ïðèõîäèì ê = F(M, N), è çàìåíÿÿ ∂yN ∂2 F(M, N) ∂F(M, N) ∂ pQ (N) p (N) − = Q ∂yN ∂yN ∂y2N (27) ∂pQ (N) ∂F(M, N) − , ∂yN ∂yN à åñëè çàìåíèòü pQ (N)
∂ ∂ íà , òî ∂x ∂zN
∂2 F(M, N) ∂ = 2 ∂zN ∂zN
∂F(M, N) pQ (N) − ∂zN ∂pQ (N) ∂F(M, N) − . ∂zN ∂zN
(28)
Ïîäñòàâèì (27) è (28) â (25) è òîãäà äëÿ èíòåãðàëà I1 (M) èç (24) áóäåò ñïðàâåäëèâî ñëåäóþùåå ñîîòíîøåíèå Z ∂pQ (N) ∂F(M, N) ∂pQ (N) ∂F(M, N) I1 (M) = + − ∂yN ∂yN ∂zN ∂zN σ Z ∂ ∂F(M, N) 2 −pQ (N) − − κ pQ (N)F(M, N) os αdσ − ∂yN ∂yN σ ∂ ∂F(M, N)
os αdσ. − pQ (N) ∂zN ∂zN
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
241
∂2 F(M, N) , ïîëàãàÿ ∂xN ∂yN ∂ ∂ ∂ A(x, y) = pQ (N) è B(x, y) = F(M, N), è çàìåíÿÿ íà , ∂x ∂xN ∂y ∂ íà ïðèõîäèì ê ∂yN
Ïðèìåíèì âòîðóþ îðìóëó èç (26) ê pQ
∂2 F(M, N) ∂ pQ (N) = ∂xN ∂yN ∂xN
∂F(M, N) pQ (N) − ∂yN ∂pQ (N) ∂F(M, N) . − ∂xN ∂yN
(29)
àññóæäàÿ àíàëîãè÷íûì îáðàçîì è çàìåíÿÿ âî âòîðîé îðìóëå (26) ∂ ∂ ∂ ∂ íà íà ïðèõîäèì ê , ∂x ∂xN ∂y ∂zN ∂ ∂2 F(M, N) = pQ (N) ∂xN ∂zN ∂xN
∂F(M, N) pQ (N) − ∂zN ∂pQ (N) ∂F(M, N) − . ∂xN ∂zN
(30)
Òàêèì îáðàçîì, èñïîëüçóÿ îðìóëû (29) è (30) ïåðåïèøåì èíòåãðàëû I2 (M) è I3 (M) : Z
∂pQ (N) ∂F(M, N)
os βdσN + ∂xN ∂yN σ Z ∂ ∂F(M, N) + os β − −pQ (N) dσN , ∂xN ∂yN
I2 (M) = −
σ
Z
∂pQ (N) ∂F(M, N)
os γdσN + ∂xN ∂zN Z σ ∂F(M, N) ∂ −pQ (N) dσN . + os γ − ∂xN ∂zN
I3 (M) = −
σ
Ïðèìåíÿÿ ïîëó÷åííûå âûðàæåíèÿ äëÿ I1 (M), I2 (M) è I3 (M), à
242
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
òàêæå (23) çàïèøåì Φx (M) â âèäå Z ∂ ∂F(M, N) Φx (M) = −
os α −pQ (N) − ∂yN ∂yN σ ∂ ∂F(M, N) ∂ ∂F(M, N) − pQ (N) + − −pQ (N) × ∂zN ∂xN ∂zN Z ∂yN ∂ ∂pQ (N) ∂F(M, N) × os β+ os γ pQ (N) dσ− × ∂xN ∂zN ∂yN σ ∂F(M, N) ∂pQ (N) ∂F(M, N) 2 × + − κ pQ (N)F(M, N) os α− ∂yN ∂zN ∂zN
∂pQ (N) ∂F(M, N) ∂pQ (N) ∂F(M, N) − os β dσ. − os γ ∂xN ∂yN ∂xN ∂zN
(31)
Äëÿ äàëüíåéøèõ ðàññóæäåíèé âîñïîëüçóåìñÿ îðìóëîé Ñòîêñà [1℄: Z
σ
∂P ∂R ∂R ∂Q
os α +
os β+ − − ∂y ∂z ∂y ∂x Z ∂Q ∂P +
os γ dσ = Pdx + Qdy + Rdz, − ∂x ∂y
(32)
Lσ
ãäå Lσ ãðàíèöà ïîâåðõíîñòè σ. Ïîëàãàÿ â îðìóëå (32) P = 0, ∂F(M, N) ∂F(M, N) Q = pQ (N) è R = −pQ (N) ïîëó÷àåì ñëåäóþùåå ∂zN ∂yN ñîîòíîøåíèå ∂F(M, N) ∂ ∂F(M, N) ∂ −pQ (N) − pQ (N) + ∂yN ∂yN ∂zN ∂zN σ ∂F(M, N) ∂ ∂ + os β − −pQ (N) + os γ pQ (N) × ∂x ∂y ∂xN N N Z ∂F(M, N) ∂F(M, N) ∂F(M, N) × dσ = pQ (N) dyN − dzN . ∂yN ∂zN ∂yN Z
os α
Lσ
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé Ïîäñòàâëÿÿ ýòî ñîîòíîøåíèå â âûðàæåíèå (31), ïîëó÷àåì Z ∂F(M, N) ∂F(M, N) dyN − dzN − Φx (M) = − pQ (N) ∂zN ∂yN Lσ Z ∂pQ (N) ∂F(M, N) ∂pQ (N) ∂F(M, N) − + − ∂yN ∂yN ∂zN ∂zN σ ∂pQ (N) ∂F(M, N)
os β− − κ2 pQ (N)F(M, N) os α − ∂xN ∂yN
∂pQ (N) ∂F(M, N) −
os γ dσ. ∂xN ∂zN
243
(33)
àññìîòðèì âû÷èñëåíèå Φx (M) ïî çàìêíóòîé ïîâåðõíîñòè. àçîáüåì ïîâåðõíîñòü σ íà σ1 è σ2 , òî Zåñòü σ = σ1 ∪ σ2 . Ïðè èíòåãðè-
ðîâàíèè ïî σ1 Φx (M) ñîäåðæèò âàíèè ïî σ2
Z
f1 (N)dlN1 , à ïðè èíòåãðèðî-
Lσ1
f2 (N)dlN2 . Â ñèëó íàøèõ ïîñòðîåíèé Lσ1 = Lσ2 ,
Lσ2
f1 (N) = f2Z(N), dlN1 ïîâåðõíîñòè = −dlN2 . Ïîýòîìó äëÿ çàìêíóòîé ∂F(M, N) ∂F(M, N) pQ (N) dyN − dzN = 0. σ â (33) ∂zN ∂yN Lσ
Èç (33) ïî îðìóëàì (26) èìååì ∂pQ (N) ∂ ∂pQ (N) ∂F(M, N) F(M, N) − = ∂yN ∂yN ∂yN ∂yN ∂2 pQ (N) −F(M, N) ; ∂y2N ∂ ∂pQ (N) ∂pQ (N) ∂F(M, N) = F(M, N) − ∂zN ∂zN ∂zN ∂zN 2 ∂ pQ (N) . −F(M, N) ∂z2N Ê ïîäûíòåãðàëüíîé óíêöèè â (33) äîáàâèì è âû÷òåì ∂ ∂pQ (N) ∂2 pQ (N)
os β × F(M, N) = F(M, N) ∂xN ∂yN ∂xN ∂yN ∂F(M, N) ∂pQ (N) × os β + os β ; ∂xN ∂yN
(34)
(35)
244
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ ∂
os γ ∂xN
∂pQ (N) ∂2 pQ (N) F(M, N) = F(M, N) × ∂zN ∂xN ∂zN ∂F(M, N) ∂pQ (N) × os γ + os γ , ∂xN ∂zN
òî ïîëó÷èì Z 2 ∂ pQ (N) − Φx (M) = κ pQ (N)F(M, N) os αdσ − + ∂y2N σ σ ∂2 pQ (N) ∂2 pQ (N) + + F(M, N)
os α +
os β F(M, N) ∂xN ∂yN ∂z2N ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) + os γ F(M, N) × + − ∂xN ∂yN ∂yN ∂xN 2 ∂ pQ (N) ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) dσ− + − × ∂x ∂x ∂zN N ∂zN N ∂zN ∂xN Z ∂pQ (N) ∂ ∂ F(M, N) − −F(M, N) × −
os α ∂yN ∂yN ∂zN σ ∂pQ (N) ∂ ∂pQ (N) × + − F(M, N)
os β + os γ× ∂zN ∂xN ∂yN ∂pQ (N) ∂ × F(M, N) dσ. ∂xN ∂zN 2
Z
(36)
Ê ïîñëåäíåìó èíòåãðàëó ïðèìåíÿåì îðìóëó Ñòîêñà (32) è ïðèìåíÿÿ âûøåîïèñàííûå ðàññóæäåíèÿ äëÿ èíòåãðàëà ïî êîíòóðó íà çàìêíóòîé ïîâåðõíîñòè, ïîëó÷àåì, ÷òî ýòîò èíòåãðàë ðàâåí íóëþ, òîãäà Z 2 Z ∂ pQ (N) 2 − Φx (M) = κ pQ (N)F(M, N) os αdσ − + ∂y2N σ σ ∂2 pQ (N) ∂2 pQ (N) F(M, N)
os α +
os β F(M, N) + + 2 ∂xN ∂yN ∂zN (37) ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) + os γ F(M, N) × − + ∂xN ∂yN ∂yN ∂xN ∂2 pQ (N) ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) × dσ. + − ∂xN ∂zN ∂xN ∂zN ∂zN ∂xN Ïðèìåíèì îðìóëó (37) äëÿ óíêöèè pQ (M), ðàññ÷èòûâàåìîé ïî îðìóëå (17) èëè (19).
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
245
àññìîòðèì âíà÷àëå ñëó÷àé, êîãäà pQ (M) ðàññ÷èòûâàåòñÿ ïî îðìóëå (17). Äëÿ ïðîñòîòû ðàññóæäåíèé îãðàíè÷èìñÿ ñëó÷àåì, êîãäà m = 1.  ýòîì ñëó÷àå pQ (M) óäîâëåòâîðÿåò óðàâíåíèþ åëüìãîëüöà (2), òîãäà 2 ∂2 pQ (N) ∂ pQ (N) ∂2 pQ (N) + = + κ2 pQ (N). − 2 2 ∂yN ∂zN ∂x2N  ðåçóëüòàòå ïîäñòàíîâêè îðìóëà (37) ïðèíèìàåò âèä Z ∂2 pQ (N) ∂2 pQ (N) Φx (M) = F(M, N)
os α + F(M, N) + 2 ∂xN ∂yN ∂xN σ ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N)
os β+ + − ∂xN ∂yN ∂yN ∂xN ∂2 pQ (N) ∂F(M, N) ∂pQ (N) + os γ F(M, N) + − ∂xN ∂zN ∂xN ∂zN ∂F(M, N) ∂pQ (N) dσ. − ∂zN ∂xN
 õîäå àíàëîãè÷íûõ ðàññóæäåíèé ïîëó÷àåì Z ∂2 pQ (N) ∂2 pQ (N) Φy (M) = F(M, N)
os β + F(M, N) + ∂xN ∂yN ∂y2N σ ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N)
os α+ + − ∂yN ∂xN ∂xN ∂yN ∂2 pQ (N) ∂F(M, N) ∂pQ (N) + os γ F(M, N) + − ∂yN ∂zN ∂yN ∂zN ∂F(M, N) ∂pQ (N) dσ. − ∂zN ∂yN Z ∂2 pQ (N) ∂2 pQ (N) Φz (M) = F(M, N)
os γ + F(M, N) + ∂xN ∂zN ∂z2N σ ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N)
os α+ + − ∂zN ∂xN ∂xN ∂zN ∂2 pQ (N) ∂F(M, N) ∂pQ (N) + os β F(M, N) + − ∂yN ∂zN ∂zN ∂yN ∂F(M, N) ∂pQ (N) dσ. − ∂yN ∂zN
(38)
(39)
(40)
246
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
Ïîäñòàâèì (38)(40)â (21), òîãäà â I(M) áóäåò èíòåãðàë Z ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N)
os αM os β + − ∂xN ∂yN ∂yN ∂xN σ ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) + os αM os γ + − ∂zN ∂zN ∂xN ∂xN ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) + − + os α os βM ∂xN ∂xN ∂yN ∂yN ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) + − + os βM os γ ∂zN ∂zN ∂yN ∂yN ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) − + os α os γM + ∂zN ∂xN ∂xN ∂zN ∂F(M, N) ∂pQ (N) ∂F(M, N) ∂pQ (N) dσ, − + os β os γM ∂zN ∂yN ∂yN ∂zN
êîòîðûé â ñèëó âûïîëíåíèÿ ñîîòíîøåíèé ∇N F(M, N) = = −∇M F(M, N), ∇N F(M, N) = −∇M1 pQ (N) îáðàùàåòñÿ â íîëü, è òîãäà èíòåãðàë (20) ðàâåí Z ∂ ~nM · ∇M1 pQ (N) dσ I(M) = F(M, N) (41) ∂nN σ
èëè äëÿ m èñòî÷íèêîâ m Z X ∂ ~nM · ∇Mi pQ (N) dσ. I(M) = F(M, N) ∂nN
(42)
i=1 σ
Òåïåðü ïóñòü pQ (M) ðàññ÷èòûâàåòñÿ ïî îðìóëå (19).  ýòîì ñëó÷àå pQ (M) óäîâëåòâîðÿåò óðàâíåíèþ Ëàïëàñà, òîãäà 2 ∂2 pQ (N) ∂ pQ (N) ∂2 pQ (N) − + = . ∂y2N ∂z2N ∂x2N
 õîäå ðàññóæäåíèé àíàëîãè÷íûõ âûøåïðèâåäåííûì ïîëó÷àåì îðìóëó Z 2 I(M) = κ pQ (N)F(M, N)~nM · ~nM dσ+ +
m Z X
i=1 σ
σ
∂ ~ M · ∇Mi pQ (N) dσ. F(M, N) n ∂nN
(43)
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé
247
Òàê êàê òî÷êè Mi , i = 1, 2, . . . , m íå ëåæàò íà ïîâåðõíîñòè σ, òî èíòåãðàëû (42) è (43) íå ÿâëÿþòñÿ ãèïåðñèíãóëÿðíûìè. Ýòè èíòåãðàëû èìåþò óñòðàíèìóþ îñîáåííîñòü ïðè M → N, êîòîðàÿ èñ÷åçàåò ïðè ïåðåõîäå ê ñèñòåìå îòñ÷åòà íà ïîâåðõíîñòè σ àíàëîãè÷íîé ïîëÿðíîé ñ ïîëþñîì â òî÷êå M. Äëÿ ÷èñëåííîãî ðàñ÷åòà èíòåãðàëà I(M) ïðèìåíÿåòñÿ êâàäðàòóðíàÿ îðìóëà (11). Ïðè ýòîì äëÿ êàæäîé ÿ÷åéêè ïîñòîÿííîé ñ÷èòàåòñÿ óíêöèÿ exp(iκrMN ), à èíòåãðàë äëÿ îñòàâøåãîñÿ ìíîæèòåëÿ âû÷èñëÿåòñÿ àíàëèòè÷åñêè. Ïðè âû÷èñëåíèè èíòåãðàëà (17) èëè (19) òàêæå ïðèìåíÿþòñÿ ìîçàè÷íî-ñêåëåòíûé àïïðîêñèìàöèè.
Ñïèñîê ëèòåðàòóðû
[1℄ Âàéíèêêî . Ì. Ëèàíîâ È. Ê., Ïîëòàâñêèé Ë. Í. ×èñëåííûå ìåòîäû â ãèïåðñèíãóëÿðíûõ èíòåãðàëüíûõ óðàâíåíèÿõ è èõ ïðèëîæåíèÿ. Ì. ßíóñ-Ê, 2001, 508ñ. [2℄ îðåéíîâ Ñ. À. Ìîçàè÷íî-ñêåëåòîííûå àïïðîêñèìàöèè ìàòðèö, ïîðîæäåííûõ àñèìïòîòè÷åñêè ãëàäêèìè è îñöèëëÿöèîííûìè ÿäðàìè. // 1999. Ñ. 42-76.
Ñá.: Ìàòðè÷íûå ìåòîäû è âû÷èñëåíèÿ.
[3℄ Äìèòðèåâ Â.È., Çàõàðîâ Å.Â. Èíòåãðàëüíûå óðàâíåíèÿ â êðàåâûõ çàäà÷àõ ýëåêòðîäèíàìèêè. Ì Ó. 1987ã. 167ñ. [4℄ Äîâãèé Ñ. À., Ëèàíîâ È. Ê. Ìåòîäû ðåøåíèÿ èíòåãðàëüíûõ óðàâíåíèé. Êèåâ, Íàóêîâà äóìêà, 2002, 344ñ. [5℄ Ëèàíîâ È.Ê. Ìåòîä ñèíãóëÿðíûõ èíòåãðàëüíûõ óðàâíåíèé è ÷èñëåííûé ýêñïåðèìåíò. Ì. ÒÎÎ ßíóñ. 1995, 520ñ. [6℄ Ëèàíîâ È.Ê., Ñòàâöåâ Ñ.Ë. Èíòåãðàëüíûå óðàâíåíèÿ è ðàñïðîñòðàíåíèå çâóêà â ìåëêîì ìîðå. // . 2004. Ò. 40, 9. Ñ. 1256-1270.
óðàâíåíèÿ
Äèåðåíöèàëüíûå
[7℄ Ñòàâöåâ Ñ.Ë. Èòåðàöèîííûé ïîäõîä ê ÷èñëåííîìó ðåøåíèþ ñèñòåìû èíòåãðàëüíûõ óðàâíåíèé äëÿ êðàåâûõ çàäà÷ ñêàëÿðíîãî óðàâíåíèÿ åëüìãîëüöà. // 2006. Òîì 42, 9. Ñ. 1282-1290.
Äèåðåíöèàëüíûå óðàâíåíèÿ.
248
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
[8℄ Tyrtyshnikov E. E. Mosai -skeleton approximations // 1996. V. 33(1-2). P. 47-57.
Cal olo.
[9℄ Tyrtyshnikov E.E. In omplete ross approximation in the mosai 2000. V. 64(4). P. 367-380. skeleton method //
Computing.
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñðåäàõ Ñ. È. Ñîáîëåâ
⋆
Ñòàòüÿ ïîñâÿùåíà àíàëèçó àêòîðîâ, âëèÿþùèõ íà ýåêòèâíîñòü ïðîâåäåíèÿ ðàñ÷åòîâ â ðàñïðåäåëåííûõ ìåòàêîìïüþòåðíûõ ñðåäàõ, ïîñòðîåííûõ íà îñíîâå ïðîãðàììíîãî êîìïëåêñà X-Com/VMC. Ïðèâîäÿòñÿ îïèñàíèÿ òèïè÷íûõ ñèòóàöèé, âåäóùèõ ê ñíèæåíèþ ïðîèçâîäèòåëüíîñòè ðàñïðåäåëåííîé ñðåäû, è ðåêîìåíäàöèè ïî èõ óñòðàíåíèþ. Îáñóæäàþòñÿ íàïðàâëåíèÿ ðàçâèòèÿ ïðîãðàììíîãî êîìïëåêñà X-Com/VMC, íàöåëåííûå íà ïîâûøåíèå ýåêòèâíîñòè åãî ðàáîòû.
1. Ââåäåíèå
Ýåêòèâíîñòü îäíî èç êëþ÷åâûõ ïîíÿòèé, ñ êîòîðûì ñòàëêèâàåòñÿ ïîëüçîâàòåëü ïðè ðàáîòå íà ëþáîé âûñîêîïðîèçâîäèòåëüíîé âû÷èñëèòåëüíîé ñèñòåìå. Ñóïåðêîìïüþòåð ìîæåò îáëàäàòü âûñîêîé ïèêîâîé ïðîèçâîäèòåëüíîñòüþ, îäíàêî ðåàëüíûå ïðèêëàäíûå ïðîãðàììû êðàéíå ðåäêî ñïîñîáíû ïîëíîöåííî çàäåéñòâîâàòü âñå åãî âîçìîæíîñòè. Êàê ïðàâèëî, ýåêòèâíîñòü ðåøåíèÿ òîé èëè èíîé çàäà÷è îïðåäåëÿåòñÿ ñîîòâåòñòâèåì åå âíóòðåííåé ñòðóêòóðû àðõèòåêòóðå âûñîêîïðîèçâîäèòåëüíîé ñèñòåìû.  êà÷åñòâå ïðèìåðà ìîæíî îòìåòèòü èññëåäîâàíèå [1℄, ïðîâåäåííîå íà îñíîâå äàííûõ ñïèñêà Top500 [2℄. Ñîãëàñíî ïðèâåäåííûì îöåíêàì, ýåêòèâíîñòü ïðåäñòàâëåííûõ â ñïèñêå âû÷èñëèòåëüíûõ ñèñòåì çàâèñèò â ïåðâóþ î÷åðåäü îò èõ àðõèòåêòóðû è ñëàáî êîððåëèðóåò ñ ïèêîâîé ïðîèçâîäèòåëüíîñòüþ. Ïðè ýòîì ðàññìàòðèâàåòñÿ òîëüêî âûïîëíåíèå òåñòà ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
250
Ñ. È. Ñîáîëåâ
èñ. 1. Àðõèòåêòóðà ïðîãðàììíîãî êîìïëåêñà X-Com/VMC Linpa k, íà äðóãîì êëàññå çàäà÷ îöåíêè óæå ìîãóò áûòü ïðèíöèïèàëüíî èíûìè. Ïîâûøåíèå ýåêòèâíîñòè âûïîëíåíèÿ êîíêðåòíîãî ïðèëîæåíèÿ â êîíêðåòíîé âû÷èñëèòåëüíîé ñðåäå îòäåëüíàÿ è, êàê ïðàâèëî, âåñüìà íåòðèâèàëüíàÿ çàäà÷à. Ïðè ïåðåõîäå æå ê ðàñïðåäåëåííûì âû÷èñëèòåëüíûì ñðåäàì ñëîæíîñòü ýòîé çàäà÷è ìíîãîêðàòíî âîçðàñòàåò. Ïðèõîäèòñÿ ïðèíèìàòü âî âíèìàíèå íå òîëüêî õàðàêòåðèñòèêè âñåãî ìíîæåñòâà âû÷èñëèòåëüíûõ ðåñóðñîâ, íà êîòîðûõ áóäåò âûïîëíÿòüñÿ ïðèëîæåíèå, íî è îñîáåííîñòè îðãàíèçàöèè ñàìîé ñðåäû: åå òîïîëîãèþ, íàäåæíîñòü è ïðîïóñêíóþ ñïîñîáíîñòü êàíàëîâ ñâÿçè, èçìåí÷èâîñòü ñîñòàâà êîìïîíåíòîâ ñðåäû, íàêëàäíûå ðàñõîäû, âíîñèìûå ïðîãðàììíûìè êîìïîíåíòàìè ñèñòåìû îðãàíèçàöèè ðàñïðåäåëåííûõ âû÷èñëåíèé. Äàííàÿ ñòàòüÿ ïîñâÿùåíà îáñóæäåíèþ ðàçëè÷íûõ àêòîðîâ, âëèÿþùèõ íà ýåêòèâíîñòü ðàñ÷åòîâ â ðàñïðåäåëåííûõ ñðåäàõ, âûÿâëåííûõ â õîäå ðàçðàáîòêè è ïðàêòè÷åñêîãî ïðèìåíåíèÿ ïðîãðàììíîãî êîìïëåêñà X-Com/VMC, à òàêæå ìåòîäàì ïîâûøåíèÿ ýåêòèâíîñòè ìåòàêîìïüþòåðíûõ ðàñ÷åòîâ. Ïðè ðàáîòå â ìåòàêîìïüþòåðíîé ñðåäå, îðãàíèçîâàííîé ñ ïîìîùüþ êîìïëåêñà X-Com/VMC (ðèñ. 1), ëþáîå çàäàíèå ïîëüçîâàòåëÿ ïîñëåäîâàòåëüíî ïðîõîäèò òðè óðîâíÿ: ñåðâåðíûé, ñåòåâîé è êëè-
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ ñðåäàõ
251
åíòñêèé. Ñåðâåðíûé óðîâåíü îïðåäåëÿåò ïîëèòèêó èñïîëüçîâàíèÿ äîñòóïíûõ ðåñóðñîâ, ñåòåâîé óðîâåíü îòâå÷àåò çà òîïîëîãèþ ñðåäû è òðàíñïîðòèðîâêó âñåõ íåîáõîäèìûõ äàííûõ ìåæäó ñåðâåðíûì óðîâíåì è âû÷èñëèòåëüíûìè óçëàìè, à êëèåíòñêèé óðîâåíü îáåñïå÷èâàåò âçàèìîäåéñòâèå ñ ïðèêëàäíîé ïðîãðàììîé íà óçëàõ. àññìîòðèì îñíîâíûå àêòîðû, âëèÿþùèå íà ýåêòèâíîñòü ðàñ÷åòà íà êàæäîì èç óðîâíåé.
2. àñïðåäåëåíèå çàäàíèé íà ñåðâåðíîì óðîâíå
Ìåõàíèçìû ñåðâåðíîãî óðîâíÿ îïðåäåëÿþò ìíîæåñòâî âû÷èñëèòåëüíûõ ðåñóðñîâ, íà êîòîðûõ áóäóò ïðîèçâîäèòüñÿ âû÷èñëåíèÿ, à òàêæå ïîðÿäîê âûïîëíåíèÿ çàäàíèé â ìåòàêîìïüþòåðíîé ñðåäå. àñïðåäåëåíèå çàäàíèé íà äîñòóïíûå ðåñóðñû â X-Com/VMC ïðîèçâîäèòñÿ ñ ïîìîùüþ îäíîãî èç äâóõ ìåòîäîâ: îäíîïîòî÷íîãî ëèáî ìíîãîïîòî÷íîãî. Îäíîïîòî÷íûé ìåòîä ðåàëèçóåò îñíîâíóþ èäåþ ìåòàêîìïüþòåðíûõ âû÷èñëåíèé, à èìåííî èñïîëüçîâàíèå ìàêñèìàëüíîãî îáúåìà ðåñóðñîâ äëÿ ðåøåíèÿ çàäà÷è.  ýòîì ñëó÷àå êàæäîå çàäàíèå, ïîñòóïàþùåå íà âõîä X-Com/VMC, ïîñëåäîâàòåëüíî çàïóñêàåòñÿ íà âñåõ äîñòóïíûõ óçëàõ. Ýòîò ìåòîä ïîçâîëÿåò äîñòè÷ü ìàêñèìàëüíîé ñóììàðíîé ïðîèçâîäèòåëüíîñòè ïîäêëþ÷åííûõ ðåñóðñîâ. Íàèáîëüøàÿ ýåêòèâíîñòü ïðè èñïîëüçîâàíèè îäíîïîòî÷íîãî ìåòîäà äîñòèãàåòñÿ â òåõ ñëó÷àÿõ, êîãäà ïðèêëàäíàÿ çàäà÷à ðàçáèòà íà äîñòàòî÷íî áîëüøîå ÷èñëî âû÷èñëèòåëüíûõ áëîêîâ-ïîðöèé, ïðè ýòîì âðåìÿ îáðàáîòêè êàæäîé ïîðöèè íåâåëèêî ïî ñðàâíåíèþ ñ îáùèì âðåìåíåì ïðîâåäåíèÿ ðàñ÷åòà. Ïðè òàêîé îðãàíèçàöèè âû÷èñëåíèé êàæäûé óçåë ñðåäû âíîñèò ñâîé âêëàä â ðàñ÷åò, îáðàáîòàâ êàêîå-òî êîëè÷åñòâî ïîðöèé. Îäíàêî äîñòèæåíèå ìàêñèìàëüíîé ñóììàðíîé ïðîèçâîäèòåëüíîñòè ðåñóðñîâ âîâñå íå ãàðàíòèðóåò îïòèìàëüíîñòü èõ èñïîëüçîâàíèÿ. Ïðåäïîëîæèì, ÷òî âî âðåìÿ ðàñ÷åòà âû÷èñëèòåëüíàÿ ÷àñòü ïðèêëàäíîé ïðîãðàììû äîñòàòî÷íî äîëãî îáðàáàòûâàåò êàæäóþ ïîðöèþ âõîäíûõ äàííûõ, ïðè ýòîì âðåìÿ îáðàáîòêè ïîðöèè ñóùåñòâåííî çàâèñèò îò òàêòîâîé ÷àñòîòû ïðîöåññîðà, à ñðåäà îáúåäèíÿåò óçëû êàê ñ âûñîêîé, òàê è íèçêîé ÷àñòîòîé CPU.  ýòîì ñëó÷àå âïîëíå âîçìîæåí âàðèàíò, ïðè êîòîðîì ñëàáûå óçëû, ïîëó÷èâ ñâîè ïîðöèè
252
Ñ. È. Ñîáîëåâ
â íà÷àëå ðàñ÷åòà, íå çàêîí÷àò èõ îáðàáîòêó äî ìîìåíòà çàâåðøåíèÿ âñåãî ðàñ÷åòà. Ïîäêëþ÷åíèå òàêèõ óçëîâ äëÿ äàííîãî ðàñ÷åòà îêàæåòñÿ íåöåëåñîîáðàçíûì; â òî æå âðåìÿ, èõ âïîëíå ìîæíî áûëî áû èñïîëüçîâàòü, íàïðèìåð, äëÿ ðåøåíèÿ îòíîñèòåëüíî íåáîëüøèõ çàäà÷ ëèáî äëÿ òåñòîâûõ çàïóñêîâ äðóãèõ ïðèëîæåíèé. Ïîäîáíóþ óíêöèîíàëüíîñòü ðåàëèçóåò ìíîãîïîòî÷íûé ìåòîä ðàñïðåäåëåíèÿ çàäàíèé. Èäåÿ ýòîãî ìåòîäà ñîñòîèò â äèíàìè÷åñêîì ïåðåðàñïðåäåëåíèè äîñòóïíûõ ðåñóðñîâ äëÿ ðåøåíèÿ òåõ çàäà÷, òðåáîâàíèÿì êîòîðûõ îíè ñîîòâåòñòâóþò. Òðåáîâàíèÿ ïðèêëàäíîé çàäà÷è äîëæíû óêàçûâàòüñÿ ïîëüçîâàòåëÿìè ïðè îðìèðîâàíèè çàäàíèÿ. Ýòî ìîãóò áûòü ìèíèìàëüíûå/ìàêñèìàëüíûå çíà÷åíèÿ òàêòîâîé ÷àñòîòû ïðîöåññîðà, åãî òèï, îáúåìû îïåðàòèâíîé è äèñêîâîé ïàìÿòè, îïåðàöèîííàÿ ñèñòåìà è äðóãèå. Ïðè îòñóòñòâèè òðåáîâàíèé çàäàíèå, êàê è â îäíîïîòî÷íîì ìåòîäå, áóäåò îòïðàâëåíî íà âñå óçëû. Ìíîãîïîòî÷íûé ìåòîä ïîçâîëÿåò ðàçáèâàòü âñþ ñðåäó íà ñåãìåíòû ïî çàäàííûì ïðèçíàêàì, ïðè ýòîì êàæäûé ñåãìåíò áóäåò ðàáîòàòü íàä ñâîåé çàäà÷åé. Äàííûé ìåòîä ÿâëÿåòñÿ áîëåå óíèâåðñàëüíûì, îäíàêî ïðè åãî èñïîëüçîâàíèè ìîãóò âîçíèêíóòü ïðîáëåìû óæå äðóãîãî õàðàêòåðà. Çàïóñê áîëüøîé ñåðèè çàäàíèé, çàòðåáîâàâøèõ äëÿ ñåáÿ ñàìûå ìîùíûå ðåñóðñû âû÷èñëèòåëüíîé ñðåäû, î÷åâèäíî, èñêëþ÷èò ýòè ðåñóðñû èç ðàáîòû íàä äðóãèìè çàäà÷àìè, à ìíîæåñòâî íåçàäåéñòâîâàííûõ óçëîâ ìîæåò óæå íå ïðåäñòàâëÿòü èíòåðåñà äëÿ ïðàêòè÷åñêîé ðàáîòû. åøåíèå ïîäîáíûõ ïðîáëåì îäíî èç íàïðàâëåíèé äàëüíåéøåãî ðàçâèòèÿ ïðîãðàììíîãî êîìïëåêñà XCom/VMC. Âàðèàíòîì ðåøåíèÿ ìîæåò áûòü ââåäåíèå â ñèñòåìó ìåõàíèçìîâ àâòîðèçàöèè ïîëüçîâàòåëåé è çàäàíèå àäìèíèñòðàòèâíûõ îãðàíè÷åíèé íà âîçìîæíîñòü ðåçåðâèðîâàíèÿ îïðåäåëåííûõ ðåñóðñîâ äëÿ ãðóïï ïîëüçîâàòåëåé è èõ çàäà÷. Åñëè ðàñïðåäåëåííàÿ ñðåäà èñïîëüçóåòñÿ äëÿ ðåøåíèÿ òîëüêî îäíîé ïðèêëàäíîé çàäà÷è ñ ðàçëè÷íûìè íàáîðàìè âõîäíûõ äàííûõ, òî â êà÷åñòâå åùå îäíîãî âàðèàíòà ðåøåíèÿ ìîæíî ïðåäëîæèòü òàêîé ðåæèì ðàáîòû ñåðâåðíûõ êîìïîíåíòîâ X-Com/VMC, ïðè êîòîðîì óçëàì áóäóò ïîñëåäîâàòåëüíî âûäàâàòüñÿ ïîðöèè âñåõ çàïóùåííûõ â äàííûé ìîìåíò çàäàíèé.
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ ñðåäàõ
253
3. Îáìåí äàííûìè ìåæäó êîìïîíåíòàìè ðàñïðåäåëåííîé ñðåäû
Ñåòåâîé óðîâåíü X-Com/VMC îðìèðóåò òîïîëîãèþ ðàñïðåäåëåííîé ñðåäû è îïðåäåëÿåò ìåõàíèçìû îáìåíà äàííûìè ìåæäó ñåðâåðíîé ÷àñòüþ êîìïëåêñà è âû÷èñëèòåëüíûìè óçëàìè.  êà÷åñòâå ïðîòîêîëà ïåðåäà÷è äàííûõ êîìïëåêñ èñïîëüçóåò ìîäèèöèðîâàííûé ïðîòîêîë HTTP, óíàñëåäîâàííûé îò òðàíñïîðòíîãî óðîâíÿ ñèñòåìû ìåòàêîìïüþòèíãà X-Com [3℄. Îñíîâíûå ïðè÷èíû ñíèæåíèÿ ýåêòèâíîñòè ðàñ÷åòîâ, âîçíèêàþùèå íà ñåòåâîì óðîâíå íåîïòèìàëüíàÿ òîïîëîãèÿ ñðåäû è íàêëàäíûå ðàñõîäû, âûçûâàåìûå èíòåíñèâíûìè îáìåíàìè ìåæäó ñåðâåðíîé ÷àñòüþ X-Com/VMC è âû÷èñëèòåëüíûìè óçëàìè. Îïòèìàëüíûì ñ òî÷êè çðåíèÿ ýåêòèâíîñòè ÿâëÿåòñÿ òàêîé âàðèàíò ïðîâåäåíèÿ ðàñ÷åòîâ, ïðè êîòîðîì èíòåíñèâíîñòü ñåòåâûõ îáìåíîâ ìåæäó óçëàìè è ñåðâåðîì íåâåëèêà, à âðåìÿ ïåðåäà÷è âõîäíûõ è âûõîäíûõ äàííûõ âî ìíîãî ðàç ìåíüøå âðåìåíè îáðàáîòêè ýòèõ äàííûõ íà óçëàõ. Ïðè ïåðåäà÷å áîëüøèõ îáúåìîâ äàííûõ ñóùåñòâåííîå âëèÿíèå íà÷èíàþò îêàçûâàòü ñâîéñòâà êàíàëîâ, êîòîðûìè ñâÿçàí ñåðâåð ñ óçëàìè. Íèçêàÿ ïðîïóñêíàÿ ñïîñîáíîñòü, áîëüøèå çàäåðæêè è íåâûñîêàÿ íàäåæíîñòü êàíàëîâ ìîãóò ñâåñòè íà íåò âñþ îòäà÷ó îò ïîäêëþ÷åíèÿ óäàëåííûõ ðåñóðñîâ.  ýòîì ñëó÷àå íåîáõîäèìî èçìåíèòü ïàðàìåòðû ïðèêëàäíîé çàäà÷è, à òî è ñàìó åå ñòðóêòóðó òàêèì îáðàçîì, ÷òîáû ìèíèìèçèðîâàòü îáúåìû ïåðåñûëàåìûõ äàííûõ. Ïîâûøåíèå èíòåíñèâíîñòè âçàèìîäåéñòâèÿ óçëîâ ñ ñåðâåðîì, êîòîðîå ìîæåò áûòü âûçâàíî êàê ïîäêëþ÷åíèåì äîñòàòî÷íî áîëüøîãî ÷èñëà óçëîâ, òàê è âûñîêîé ñêîðîñòüþ îáðàáîòêè ïîðöèé äàííûõ, âëå÷åò çà ñîáîé ðîñò íàãðóçêè íà ñåðâåðíûå êîìïîíåíòû ñðåäû è óâåëè÷åíèå íàêëàäíûõ ðàñõîäîâ. Åñëè âñå óçëû îáùàþòñÿ ñ ñåðâåðîì íàïðÿìóþ, äî êàêîãî-òî ìîìåíòà ñ ýòîé ïðîáëåìîé ìîæíî áîðîòüñÿ ïîâûøåíèåì ìîùíîñòè êîìïüþòåðà, íà êîòîðîì ðàáîòàþò ñåðâåðíûå êîìïîíåíòû. Îäíàêî áîëåå öåëåñîîáðàçíûì ÿâëÿåòñÿ ââåäåíèå â ñðåäó íàáîðà ïðîìåæóòî÷íûõ ñåðâåðîâ, ïîçâîëÿþùèõ áóåðèçèðîâàòü äàííûå ìåæäó öåíòðàëüíûì ñåðâåðîì è ÷àñòüþ óçëîâ, è òåì ñàìûì âûðîâíÿòü íàãðóçêó íà öåíòðàëüíûé ñåðâåð.
254
Ñ. È. Ñîáîëåâ
Ïðîìåæóòî÷íûå ñåðâåðû ïîçâîëÿþò îðãàíèçîâàòü ñðåäó â âèäå ïðîèçâîëüíîãî èåðàðõè÷åñêîãî äåðåâà.  êîðíå òàêîãî äåðåâà áóäåò ðàñïîëàãàòüñÿ öåíòðàëüíûé ñåðâåð X-Com/VMC, ëèñòüÿìè âñåãäà áóäóò âû÷èñëèòåëüíûå óçëû, à âî âíóòðåííèõ âåðøèíàõ áóäóò íàõîäèòüñÿ ïðîìåæóòî÷íûå ñåðâåðû. Ïîìèìî áóåðèçàöèè äàííûõ, ïðîìåæóòî÷íûå ñåðâåðû òàêæå ïîçâîëÿþò ïîäêëþ÷èòü ê ðàñ÷åòàì êîìïüþòåðû, íàõîäÿùèåñÿ âíóòðè çàêðûòîé ñåòè, íàïðèìåð, óçëû âû÷èñëèòåëüíûõ êëàñòåðîâ. Òàêèì îáðàçîì, ïðîìåæóòî÷íûå ñåðâåðû óâåëè÷èâàþò ìàñøòàáèðóåìîñòü ðàñïðåäåëåííûõ ðàñ÷åòîâ.
4. Ïîäêëþ÷åíèå âû÷èñëèòåëüíûõ óçëîâ
Êëèåíòñêèé óðîâåíü X-Com/VMC îòâå÷àåò çà âçàèìîäåéñòâèå ñ âû÷èñëèòåëüíîé ÷àñòü ïðèêëàäíîé çàäà÷è íåïîñðåäñòâåííî íà óçëàõ ìåòàêîìïüþòåðíîé ñðåäû. Èíèöèàòèâó ïî çàïðîñó çàäàíèÿ âñåãäà ïðîÿâëÿþò ñàìè óçëû, ÷òî ïîçâîëÿåò âûáðàòü íàèëó÷øèé â êàæäîì êîíêðåòíîì ñëó÷àå ðåæèì ó÷àñòèÿ óçëîâ â ðàñ÷åòàõ. Î÷åâèäíî, ÷òî ñ òî÷êè çðåíèÿ ïðèêëàäíîé çàäà÷è îïòèìàëüíûì ðåæèìîì äëÿ ïðîâåäåíèÿ ðàñ÷åòîâ ÿâëÿåòñÿ ìîíîïîëüíûé ðåæèì, êîãäà çàäà÷å ïîëíîñòüþ ïðåäîñòàâëÿþòñÿ âñå ðåñóðñû óçëà. Îäíàêî íà ïðàêòèêå óçëû â òàêîì ðåæèìå ðàáîòû ìîãóò áûòü âûäåëåíû çàäà÷å íå âñåãäà, äà è âðåìÿ ìîíîïîëüíîãî èñïîëüçîâàíèÿ, ñêîðåå âñåãî, áóäåò îãðàíè÷åíî óçëû âíîâü ìîãóò ïîíàäîáèòüñÿ äëÿ âûïîëíåíèÿ îáû÷íûõ çàäà÷. îðàçäî ÷àùå ïðèõîäèòñÿ ïðèìåíÿòü îäèí èç ìåòîäîâ ñîâìåñòíîé ðàáîòû øòàòíûõ ïðèëîæåíèé óçëà è çàäàíèé èç ðàñïðåäåëåííîé ñðåäû: îíîâûé ðåæèì ðàáîòû ñ ïîíèæåííûì ïðèîðèòåòîì ëèáî ðàáîòà òîëüêî â òå ìîìåíòû, êîãäà óçëû íå çàãðóæåíû äðóãèìè çàäà÷àìè. Çàïóñê çàäà÷è â îíîâîì ðåæèìå îñíîâûâàåòñÿ íà ïîääåðæêå ìåõàíèçìà ïðèîðèòåòîâ ïðîöåññîâ â ñîâðåìåííûõ îïåðàöèîííûõ ñèñòåìàõ. Ïðîãðàììà, çàïóùåííàÿ â îíîâîì ðåæèìå ñ ïîíèæåííûì ïðèîðèòåòîì, áóäåò ïîëó÷àòü äîñòóï ê ðåñóðñàì êîìïüþòåðà òîëüêî òîãäà, êîãäà îíè íå òðåáóþòñÿ ïðèëîæåíèÿì ñ áîëåå âûñîêèì ïðèîðèòåòîì.  ñîñòàâ ïðîãðàììíîãî êîìïëåêñà X-Com/VMC âêëþ÷åí âàðèàíò êëèåíòà X-Com äëÿ ÎÑ ñåìåéñòâà MS Windows, ðåàëèçóþùèé ïîäîáíóþ óíêöèîíàëüíîñòü. Ñòîèò îòìåòèòü, ÷òî ïðèìåíè-
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ ñðåäàõ
255
ìîñòü äàííîãî ìåòîäà âî ìíîãîì çàâèñèò îò îñîáåííîñòåé òîé èëè èíîé îïåðàöèîííîé ñèñòåìû è åå íàñòðîåê íà êîíêðåòíîì êîìïüþòåðå, ó÷åñòü êîòîðûå êðàéíå ñëîæíî. Áîëåå ñòðîãèì è áîëåå ¾âûñîêîóðîâíåâûì¿ ìåòîäîì ÿâëÿåòñÿ çàïóñê ðàñïðåäåëåííîãî ïðèëîæåíèÿ íà óçëå òîëüêî â òå ìîìåíòû, êîãäà îí íå çàíÿò ñâîåé øòàòíîé ðàáîòîé. Ñïåöèàëüíûé ìåõàíèçì îòñëåæèâàåò çàíÿòîñòü óçëà; åñëè óçåë îïðåäåëÿåòñÿ êàê ñâîáîäíûé, îí ïîäêëþ÷àåòñÿ ê ðàñ÷åòó. Êàê òîëüêî øòàòíûå ïðîöåññû óçëà íà÷èíàþò ïðîÿâëÿòü ñâîþ àêòèâíîñòü, ðàñïðåäåëåííûé ðàñ÷åò íà íåì îñòàíàâëèâàåòñÿ, à âñå ïðîöåññû óíè÷òîæàþòñÿ. àçëè÷íûå ìåòîäû îïðåäåëåíèÿ íåçàíÿòîñòè óçëîâ îïèñàíû â ñòàòüå [4℄. Ïîíÿòíî, ÷òî ýåêòèâíîñòü èñïîëüçîâàíèÿ ðåñóðñîâ â òàêîì ðåæèìå íàïðÿìóþ çàâèñèò îò èõ çàãðóæåííîñòè. Ïðàêòè÷åñêè òî æå ñàìîå ìîæíî ñêàçàòü è î îíîâîì çàïóñêå. Îñíîâíàÿ ðàçíèöà ìåæäó ýòèìè äâóìÿ ìåòîäàìè çàêëþ÷àåòñÿ â òîì, ÷òî ïðè ïîÿâëåíèè àêòèâíîñòè íà óçëàõ ðàñïðåäåëåííîå ïðèëîæåíèå ëèáî ïðèîñòàíàâëèâàåòñÿ (îíîâûé ðåæèì ñ ïîíèæåííûì ïðèîðèòåòîì), ëèáî ïîëíîñòüþ ïðåêðàùàåòñÿ (âû÷èñëåíèÿ â ìîìåíòû ïðîñòîÿ).  ïåðâîì âàðèàíòå ïðèëîæåíèå îñòàåòñÿ íà óçëå, îíî ìîæåò îêàçûâàòü âëèÿíèå íà äðóãèå ïðîöåññû óçëà è ìåøàòü èõ ðàáîòå. Âî âòîðîì ñëó÷àå ïîòðåáóåòñÿ ïðîèçâåñòè ïåðåðàñ÷åò òîé âû÷èñëèòåëüíîé ïîðöèè, íàä êîòîðîé ðàáîòàë óçåë. Ôîíîâûé çàïóñê áîëüøå îðèåíòèðîâàí íà ïîäêëþ÷åíèå ê ðàñ÷åòàì ðàáî÷èõ ñòàíöèé, çàïóñê â ìîìåíòû ïðîñòîÿ ïðèìåíÿåòñÿ, êàê ïðàâèëî, ïðè ïîäêëþ÷åíèè óçëîâ âû÷èñëèòåëüíûõ êëàñòåðîâ. Ñòîèò òàêæå îòìåòèòü åùå îäèí ñïîñîá ïîäêëþ÷åíèÿ âû÷èñëèòåëüíûõ ðåñóðñîâ ê ðàñïðåäåëåííûì ðàñ÷åòàì èñïîëüçîâàíèå âîçìîæíîñòåé øòàòíûõ ñèñòåì óïðàâëåíèÿ çàäàíèÿìè. Âîçìîæíûå ñëîæíîñòè ñ ðàáîòîé ÷åðåç òàêèå ñèñòåìû ñâÿçàíû ñ îãðàíè÷åíèÿìè, êîòîðûå îáû÷íî íàêëàäûâàþòñÿ íà ìàêñèìàëüíîå âðåìÿ âûïîëíåíèÿ ïðèëîæåíèé, çàïóùåííûõ ÷åðåç íèõ. Ïîýòîìó ïðè èñïîëüçîâàíèè óçëîâ â ïîäîáíûõ ðåæèìàõ íåîáõîäèìî, âî-ïåðâûõ, ïîñòîÿííî îòñëåæèâàòü è ïîääåðæèâàòü ïîñòîÿííîå ÷èñëî ïðîöåññîâ ðàñïðåäåëåííîãî ïðèëîæåíèÿ (X-Com/VMC ñîäåðæèò ïîäîáíûé ìåõàíèçì, ðàáîòàþùèé ñîâìåñòíî ñ ñèñòåìîé Cleo [5℄), à âî-âòîðûõ, ïî âîçìîæíîñòè ñàìîñòîÿòåëüíî çàäàâàòü îæèäàåìîå âðåìÿ îáðàáîò-
256
Ñ. È. Ñîáîëåâ
êè çàäàíèé. Çàäàíèå ìàêñèìàëüíî âîçìîæíîãî âðåìåíè íå âñåãäà îïðàâäàíî, ò.ê. â ýòîì ñëó÷àå ñèñòåìà óïðàâëåíèÿ çàäàíèÿìè ìîæåò ïîïûòàòüñÿ ïðîïóñòèòü ñïåðâà áîëåå êîðîòêèå çàäà÷è. Íàèáîëåå öåëåñîîáðàçíî óêàçûâàòü âðåìÿ, êðàòíîå ñðåäíåìó âðåìåíè îáðàáîòêè îäíîé âû÷èñëèòåëüíîé ïîðöèè. Òåì íå ìåíåå, ïî èñòå÷åíèþ çàäàííîãî ëèìèòà âðåìåíè ïðîöåññû ðàñïðåäåëåííîãî ðàñ÷åòà ìîãóò áûòü ïðåðâàíû ñèñòåìîé óïðàâëåíèÿ çàäàíèÿìè, ÷òî ïðèâåäåò ê íåîáõîäèìîñòè èõ ïåðåðàñ÷åòà. Î÷åâèäíî, ÷åì áîëüøå ïîðöèé áóäåò îáðàáîòàíî çà îäèí ïðèåì, òåì âûøå áóäåò ýåêòèâíîñòü.
5. Ïðî÷èå àêòîðû
àññìîòðåâ ïðè÷èíû óìåíüøåíèÿ ýåêòèâíîñòè, âîçíèêàþùèå íà âñåõ óðîâíÿõ ðàáîòû ïðîãðàììíîãî êîìïëåêñà X-Com/VMC, ñòîèò òàêæå óïîìÿíóòü åùå íåñêîëüêî ìîìåíòîâ. Òàê, î÷åíü âàæíûì ÿâëÿåòñÿ âîïðîñ îïòèìèçàöèè ñàìîé ïðèêëàäíîé ïðîãðàììû. Åñëè äîñòóïíû èñõîäíûå òåêñòû ïðîãðàììû, ïåðåä íà÷àëîì ðàñ÷åòà èìååò ñìûñë ïðîâåñòè òåñòèðîâàíèå åå âûïîëíÿåìîãî êîäà, ïîëó÷åííîãî ñ ïîìîùüþ ðàçëè÷íûõ êîìïèëÿòîðîâ, íà òåõ òèïàõ ïðîãðàììíîàïïàðàòíûõ ïëàòîðì, êîòîðûå áóäóò çàäåéñòâîâàíû â ðàñ÷åòå. àçíèöà âî âðåìåíè âûïîëíåíèÿ ðàçëè÷íûõ âàðèàíòîâ ïðîãðàììíîãî êîäà ìîæåò áûòü âåñüìà çíà÷èòåëüíîé. Òàê, ïðîâîäÿ ýêñïåðèìåíòû ñ îäíîé èç çàäà÷ ýëåêòðîäèíàìèêè, ìû îáíàðóæèëè, ÷òî âåðñèÿ ïðîãðàììû, ïîëó÷åííàÿ ñ ïîìîùüþ êîìïèëÿòîðà Intel (i
), ðàáîòàåò ïðàêòè÷åñêè â 4 ðàçà áûñòðåå, ÷åì âåðñèÿ, ïîëó÷åííàÿ ñ ïîìîùüþ êîìïèëÿòîðà GNU (g
). Ïðè âêëþ÷åíèè â ñîñòàâ ðàñïðåäåëåííîé ñðåäû ìíîãîïðîöåññîðíûõ è ìíîãîÿäåðíûõ óçëîâ öåëåñîîáðàçíî çàïóñêàòü ïî îäíîìó âû÷èñëèòåëüíîìó ïðîöåññó ïðèêëàäíîé ïðîãðàììû íà êàæäîå ïðîöåññîðíîå ÿäðî. Îäíàêî ñëåäóåò ïðèíèìàòü âî âíèìàíèå, ÷òî êàæäûé íîâûé ðàñ÷åòíûé ïðîöåññ óâåëè÷èâàåò ðàñõîä îïåðàòèâíîé ïàìÿòè êîìïüþòåðà. Êðîìå òîãî, îäíîâðåìåííûé çàïóñê îäèíàêîâûõ ïðîöåññîâ ìîæåò ïðèâåñòè ê çàìåäëåíèþ èõ ðàáîòû ïî ñðàâíåíèþ ñ çàïóñêîì â åäèíñòâåííîì ýêçåìïëÿðå. Ïðè÷èíû çàìåäëåíèÿ çàâèñÿò êàê îò ñàìîé ïðèêëàäíîé ïðîãðàììû, òàê è îò îñîáåííîñòåé àïïàðàòíîé àðõèòåêòóðû âû÷èñëèòåëüíîãî óçëà, è ìîãóò áûòü âûçâàíû íåý-
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ ñðåäàõ
257
åêòèâíûì èñïîëüçîâàíèåì êýø-ïàìÿòè ïðîöåññîðîâ, ïîâûøåíèåì íàãðóçêè íà êàíàë ïðîöåññîð-ïàìÿòü è ñèñòåìíóþ øèíó, êîíëèêòàìè ïðè äîñòóïå ê óñòðîéñòâàì õðàíåíèÿ äàííûõ. Ïåðåä íà÷àëîì ðåàëüíûõ ðàñ÷åòîâ èìååò ñìûñë âûÿñíèòü, áóäåò ëè ïðîÿâëÿòüñÿ ïîäîáíûé ýåêò íà äîñòóïíûõ óçëàõ, â êàêîé ñòåïåíè îí ñïîñîáåí ïîâëèÿòü íà ïðîöåññ âû÷èñëåíèé â öåëîì è êàêîå êîëè÷åñòâî âû÷èñëèòåëüíûõ ïðîöåññîâ íà îäíîì óçëå îáåñïå÷èò äîñòàòî÷íóþ ýåêòèâíîñòü ðàñ÷åòà. Äëÿ ïîèñêà óçêèõ ìåñò â ïðèêëàäíîé ïðîãðàììå ìîæåò ïîòðåáîâàòüñÿ åå èññëåäîâàíèå ñ ïîìîùüþ ñïåöèàëüíûõ îòëàäî÷íûõ ñðåäñòâ. Ïðèíöèï öåíòðàëèçîâàííîãî óïðàâëåíèÿ ðàñïðåäåëåííûìè ðàñ÷åòàìè òàêæå âíîñèò ñâîè îãðàíè÷åíèÿ.  õîäå ýêñïåðèìåíòîâ íàì óäàâàëîñü ñìîäåëèðîâàòü ñèòóàöèþ, êîãäà öåíòðàëüíûé ñåðâåð XCom/VMC, âçàèìîäåéñòâóÿ ñ äîñòàòî÷íî áîëüøèì ÷èñëîì âû÷èñëèòåëüíûõ óçëîâ, ñ òðóäîì ñïðàâëÿëñÿ ñ îáðàáîòêîé ïîòîêà âõîäÿùèõ è èñõîäÿùèõ äàííûõ, ñëåäñòâèåì ÷åãî ÿâëÿëîñü çíà÷èòåëüíîå ñíèæåíèå ýåêòèâíîñòè ìîäåëüíîãî ðàñ÷åòà. Ïîýòîìó îäíî èç äàëüíåéøèõ íàïðàâëåíèé ðàçâèòèÿ ïðîãðàììíîãî êîìïëåêñà XCom/VMC äåöåíòðàëèçàöèÿ, è â ÷àñòíîñòè, ðàñïðåäåëåíèå íàãðóçêè öåíòðàëüíîãî ñåðâåðà ìåæäó íåñêîëüêèìè êîìïüþòåðàìè. Âíåäðåíèå òàêîãî ìåõàíèçìà îäíîâðåìåííî ïîçâîëèò ïîâûñèòü è îáùóþ íàäåæíîñòü êîìïëåêñà, ïîñêîëüêó â ñëó÷àå îòêàçà îäíîé èç ñåðâåðíûõ ìàøèí ìîæíî âûïîëíèòü ðåêîíèãóðàöèþ ñåðâåðíîãî ïóëà è ïðîäîëæèòü ðàñ÷åò.
6. Çàêëþ÷åíèå
Íåîáõîäèìî åùå ðàç îòìåòèòü âàæíîñòü àáñîëþòíî âñåõ àñïåêòîâ, âëèÿþùèõ íà ýåêòèâíîñòü ðàñ÷åòîâ â ðàñïðåäåëåííîé ñðåäå. Êîëè÷åñòâî çàäà÷, ðåøàåìûõ ñ ïîìîùüþ ðàñïðåäåëåííûõ òåõíîëîãèé, íåóêëîííî ðàñòåò. Íå âñåãäà òðèâèàëüíûì îêàçûâàåòñÿ âûäåëåíèå â çàäà÷å íåçàâèñèìûõ áëîêîâ, îðìèðîâàíèå âû÷èñëèòåëüíûõ ïîðöèé, îðãàíèçàöèÿ ðàñ÷åòà íà ñòà, ïÿòèñòàõ, òûñÿ÷å êîìïüþòåðîâ. åøèâ ýòè ïåðâè÷íûå çàäà÷è, ìîæíî äîñòèãíóòü çíà÷èòåëüíîé ñóììàðíîé ïðîèçâîäèòåëüíîñòè, ïîäêëþ÷èòü ìíîæåñòâî óäàëåííûõ óçëîâ, ïðîâåñòè ýåêòíûé ýêñïåðèìåíò íî áóäåò ëè îí ýåê-
258
Ñ. È. Ñîáîëåâ
òèâíûì?
Ñïèñîê ëèòåðàòóðû
[1℄ Âîåâîäèí Âë.Â. Top500: ÷èñëîì èëè óìåíüåì// Îòêðûòûå ñèñòåìû, 10, 2005 ã. Ñ.1215. (http://www.osp.ru/os/2005/10/380430/_p1.html) [2℄ Top500 Super omputing Sites, http://www.top500.org/. [3℄ Ñèñòåìà ìåòàêîìïüþòèíãà X-Com, http://x- om.parallel.ru/. [4℄ Æóìàòèé Ñ.À., Ñîáîëåâ Ñ.È. Îöåíêà çàãðóæåííîñòè êîìïüþòåðà â ðàçëè÷íûõ UNIX-ñèñòåìàõ (â íàñòîÿùåì ñáîðíèêå). [5℄ Ñèñòåìà óïðàâëåíèÿ çàäàíèÿìè Cleo, http://par on.parallel.ru/ leo.html
Òåõíîëîãè÷åñêèé èíñòðóìåíòàðèé äëÿ ïîñòðîåíèÿ ñèñòåì àíàëèçà è ïðåîáðàçîâàíèÿ ñòðóêòóðû ïðîãðàìì ⋆
Ê. Ñ. Ñòåàíîâ
 äàííîé ñòàòüå îïèñûâàåòñÿ ïðåäëàãàåìàÿ àðõèòåêòóðà òåõíîëîãè÷åñêîãî èíñòðóìåíòàðèÿ äëÿ ïîñòðîåíèÿ ñèñòåì àíàëèçà ñòðóêòóðû ïðîãðàìì. Èíñòðóìåíòàðèé ïðåäíàçíà÷åí äëÿ ïîñòðîåíèÿ ñïåöèàëèçèðîâàííûõ ñèñòåì äëÿ ðåøåíèÿ êîíêðåòíûõ çàäà÷, âîçíèêàþùèõ ïðè èññëåäîâàíèè ïîñëåäîâàòåëüíûõ ïðîãðàìì è èõ ïðåîáðàçîâàíèè ñ öåëüþ èñïîëíåíèÿ íà êîìïüþòåðàõ ñ ïàðàëëåëüíîé àðõèòåêòóðîé. Îïèñûâàþòñÿ ïðèíöèïû ðàçáèåíèÿ èíñòðóìåíòàðèÿ íà ëîãè÷åñêèå óðîâíè: âíóòðåííåå ïðåäñòàâëåíèå, çàâèñèìûå è íåçàâèñèìûå îò ÿçûêà ìîäóëè, óðîâåíü ìîäóëåé öåëåâûõ óíêöèé (ýêñïåðòîâ) è óðîâåíü èíòåðåéñîâ. Îïðåäåëÿþòñÿ âîçìîæíûå âçàèìîäåéñòâèÿ ìåæäó ìîäóëÿìè èíñòðóìåíòàðèÿ, ðàñïîëîæåííûìè íà ðàçíûõ óðîâíÿõ, ñ öåëüþ ëîêàëèçàöèè çàâèñèìîñòè îò ÿçûêà àíàëèçèðóåìîé ïðîãðàììû è ÎÑ âûïîëíåíèÿ èíñòðóìåíòàëüíîãî êîìïëåêñà. àññìîòðåíî ðàçäåëåíèå ìîäóëåé íà ìîäóëè àíàëèçà è ïðåîáðàçîâàíèé. àññìàòðèâàþòñÿ îòäåëüíûå óðîâíè ñ ïðèìåðàìè ðàñïîëîæåííûõ íà íèõ ìîäóëåé.
1. Ââåäåíèå
Ïðè ñîçäàíèè ïðîãðàììíîãî îáåñïå÷åíèÿ äëÿ âû÷èñëèòåëüíûõ ñèñòåì ñ ïàðàëëåëüíîé àðõèòåêòóðîé íå òîëüêî ñîõðàíÿþòñÿ âñå ⋆ Íàó÷íî-èññëåäîâàòåëüñêèé
âû÷èñëèòåëüíûé öåíòð Ì Ó
260
Ê. Ñ. Ñòåàíîâ
òðóäíîñòè òðàäèöèîííîãî ïðîãðàììèðîâàíèÿ, íî è äîáàâëÿåòñÿ ìíîæåñòâî íîâûõ, ñâÿçàííûõ ñ îðãàíèçàöèåé ïàðàëëåëüíîãî âûïîëíåíèÿ ïðîãðàììû. ó÷íîå ðàñïàðàëëåëèâàíèå ïîñëåäîâàòåëüíûõ ïðîãðàìì çàíÿòèå êðàéíå òðóäîåìêîå. Íåêîòîðûå ìåòîäû àâòîìàòè÷åñêîãî ðàñïàðàëëåëèâàíèÿ ðåàëèçóþòñÿ â êîìïèëÿòîðàõ äëÿ ïàðàëëåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì. Îòëè÷èòåëüíàÿ îñîáåííîñòü âñåõ ýòèõ ìåòîäîâ îíè äîëæíû ðàáîòàòü áûñòðî, ïîýòîìó íå ìîãóò áûòü ñëîæíûìè.  ðàáîòå [1℄ ïðîàíàëèçèðîâàíû ìåòîäû âûÿâëåíèÿ ïàðàëëåëèçìà, çàëîæåííûå â êîìïèëÿòîðû äëÿ ïàðàëëåëüíûõ ñèñòåì íà÷àëà 90-õ ãîäîâ ïðîøëîãî âåêà. Îêàçàëîñü, ÷òî ñåðà ïðèìåíåíèÿ êàæäîãî èç ìåòîäîâ î÷åíü óçêà.  öåëîì æå ïðè àíàëèçå çàâèñèìîñòåé ðàçëè÷íûõ îïåðàòîðîâ êîìïèëÿòîðàì óäàåòñÿ ëèøü â 15% ñëó÷àåâ áåç òðóäíîñòåé îïðåäåëèòü õàðàêòåðèñòèêè ýòèõ çàâèñèìîñòåé. Íåñìîòðÿ íà òî, ÷òî çà ïðîøåäøèå 10 ëåò ïîÿâèëîñü ìíîãî íîâûõ ñïîñîáîâ ðàñïàðàëëåëèâàíèÿ âû÷èñëåíèé, â îáùåì ñèòóàöèÿ èçìåíèëàñü íå ñèëüíî. Äëÿ îáëåã÷åíèÿ ñîçäàíèÿ ïàðàëëåëüíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ ñîçäàþòñÿ ñèñòåìû àâòîíîìíîãî àíàëèçà è ïðåîáðàçîâàíèÿ ïðîãðàìì. Íà äàííûé ìîìåíò ñóùåñòâóåò íåêîòîðîå êîëè÷åñòâî ïðîåêòîâ, íàöåëåííûõ íà îáëåã÷åíèå ñîçäàíèÿ ïàðàëëåëüíîãî ÏÎ. Ýòî ñåìåéñòâà SUIF, KAP, ïàêåòû FORGE, Polaris, CAPO, ñèñòåìà ParaWise è äðóãèå. ×àñòü ýòèõ ñèñòåì ÿâëÿåòñÿ àâòîìàòè÷åñêèìè ïðåïðîöåññîðàìè, äðóãèå èìåþò âîçìîæíîñòè ïî èíòåðàêòèâíîìó ïðîñìîòðó ðåçóëüòàòîâ àíàëèçà è ïîëó÷åíèþ ïîäñêàçîê ïî ïðåîáðàçîâàíèþ. Íåêîòîðûå ðàññ÷èòàíû òîëüêî íà ìàøèíû ñ îáùåé ïàìÿòüþ, è íå èìåþò óíêöèîíàëüíîñòè äëÿ ðàáîòû ñ ðàñïðåäåëåíèåì äàííûõ.  ïàêåòå FORGE ðåàëèçîâàíî ðàñïàðàëëåëèâàíèå ïîä êîìïüþòåðû ñ ðàñïðåäåëåííîé ïàìÿòüþ, íî ñ äîâîëüíî æåñòêèìè îãðàíè÷åíèÿìè íà èñïîëüçóåìîå ðàñïðåäåëåíèå äàííûõ è âîçìîæíóþ êîíèãóðàöèþ ïàðàëëåëüíûõ öèêëîâ. Ïðè ýòîì èñõîäíûé êîä áîëüøèíñòâà ýòèõ ñèñòåì íåäîñòóïåí, è èñïîëüçîâàíèå èõ óíêöèé äëÿ ðåøåíèÿ äðóãèõ çàäà÷ íåâîçìîæíî.  íàñòîÿùåå âðåìÿ â ÍÈÂÖ Ì Ó âåäóòñÿ ðàáîòû ïî ñîçäàíèþ òåõíîëîãè÷åñêîãî èíñòðóìåíòàðèÿ, êîòîðûé ïîçâîëèë áû êîíñòðóè-
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
261
ðîâàòü ñèñòåìû àíàëèçà è ïðåîáðàçîâàíèÿ ïðîãðàìì ñ íåîáõîäèìîé óíêöèîíàëüíîñòüþ íà îñíîâå ãîòîâûõ áëîêîâ.
2. Ïðèíöèïû ïîñòðîåíèÿ òåõíîëîãè÷åñêîãî èíñòðóìåíòàðèÿ
 îñíîâó èíñòðóìåíòàðèÿ çàêëàäûâàþòñÿ òðè ïðèíöèïà: ëîêàëèçàöèÿ çàâèñèìîñòåé îò êîíêðåòíîãî ÿçûêà àíàëèçèðóåìîé ïðîãðàììû, ìîäóëüíîñòü èíñòðóìåíòàðèÿ è ãèáêîñòü àðõèòåêòóðû. Ïîä ãèáêîñòüþ ìû ïîíèìàåì âîçìîæíîñòü ïîñëåäóþùåãî ïîñòðîåíèÿ íà îñíîâå èíñòðóìåíòàðèÿ ñïåöèàëèçèðîâàííûõ ñèñòåì è êîíâåðòîðîâ, ïðåäíàçíà÷åííûõ äëÿ ðåøåíèÿ ìàêñèìàëüíî øèðîêîãî ñïåêòðà çàäà÷, êîòîðûå âîçíèêàþò â ïðîöåññå àäàïòàöèè ïðîãðàìì ïîä ïàðàëëåëüíûå âû÷èñëèòåëüíûå ñèñòåìû: îïðåäåëåíèå ïîòåíöèàëüíîãî ïàðàëëåëèçìà ïðîãðàìì, âûäåëåíèå ïàðàëëåëüíûõ ó÷àñòêîâ êîäà, ïðåîáðàçîâàíèå ïðîãðàìì ïîä êîíêðåòíóþ ñèñòåìó ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ è ò.ï. àçáèåíèå íà ìîäóëè îñóùåñòâëÿåòñÿ òàê, ÷òîáû èìåòü âîçìîæíîñòü èç óæå íàïèñàííûõ ìîäóëåé òåõíîëîãè÷åñêîãî èíñòðóìåíòàðèÿ êîíñòðóèðîâàòü âàðèàíòû íîâûõ ñèñòåì äëÿ ðàçíûõ çàäà÷. Íàïðèìåð, ýòî ìîæåò áûòü ïðåïðîöåññîð, öåëü êîòîðîãî â ïîëíîñòüþ àâòîìàòè÷åñêîì ðåæèìå âûÿâèòü âåñü èìåþùèéñÿ â ïðîãðàììå ïàðàëëåëèçì è çàïèñàòü åãî â âèäå êîììåíòàðèåâ ñïåöèàëüíîãî âèäà. Èëè íàîáîðîò, ýòî ìîæåò áûòü ñèñòåìà ñ ãðàè÷åñêèì èíòåðåéñîì, ïîêàçûâàþùàÿ ïîëüçîâàòåëþ ñòðóêòóðó èññëåäóåìîé ïðîãðàììû è ïîçâîëÿþùàÿ åìó ñàìîìó ïðîâåñòè íåîáõîäèìûå ïðåîáðàçîâàíèÿ. Èíñòðóìåíòàðèé ñðàçó ïðîåêòèðóåòñÿ ñ ðàñ÷åòîì íà áóäóùåå äîáàâëåíèå àíàëèçèðóåìûõ ÿçûêîâ ïðîöåäóðíîãî òèïà. Èìåííî ïîýòîìó îòäåëÿþòñÿ ìîäóëè, êîòîðûå ïîòðåáóåòñÿ äîðàáîòàòü ïðè ïåðåõîäå ê àíàëèçó ïðîãðàìì íà äðóãèõ ÿçûêàõ. Ìîäóëüíîñòü íå òîëüêî îáëåã÷àåò ïîñòðîåíèå ñïåöèàëèçèðîâàííûõ ñèñòåì ñ íóæíîé óíêöèîíàëüíîñòüþ, íî è ïîçâîëÿåò èñïîëüçîâàòü â êà÷åñòâå ìîäóëåé áëîêè, âçÿòûå èç äðóãèõ ñèñòåì, à òàêæå âíåøíèå ïðîãðàììû, ðåàëèçîâàâ èíòåðåéñ ñ íèìè â âèäå ìîäóëÿîáîëî÷êè èíñòðóìåíòàðèÿ.
262
Ê. Ñ. Ñòåàíîâ
èñ. 1. Ëîãè÷åñêèå óðîâíè áëîêîâ èíñòðóìåíòàëüíîãî êîìïëåêñà
3. Îáùàÿ ñòðóêòóðà èíñòðóìåíòàðèÿ
Âñå áëîêè ñèñòåìû ëîãè÷åñêè ðàçäåëÿþòñÿ íà óðîâíè (ðèñ. 1): (âõîäíîé ïðîãðàììû) áëîêè, áëîêè, è . Äåëåíèå íà óðîâíè îïðåäåëÿåò âíóòðåííþþ ñòðóêòóðó êîìïëåêñà è îãðàíè÷èâàåò âîçìîæíûå âçàèìîäåéñòâèÿ áëîêîâ. Ñ áëîêàìè
âíóòðåííåå ïðåäñòàâëåíèå, çàâèñèìûå îò ÿçûêà íåçàâèñèìûå îò ÿçûêà ýêñïåðòû èíòåðåéñû
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
263
âíóòðåííåãî ïðåäñòàâëåíèÿ ìîãóò âçàèìîäåéñòâîâàòü òîëüêî áëîêè, çàâèñèìûå îò ÿçûêà. Èíòåðåéñ, ïðåäîñòàâëÿåìûé çàâèñèìûìè îò ÿçûêà áëîêàìè âåðõíèì óðîâíÿì, ñêðûâàåò îñîáåííîñòè êîíêðåòíûõ ÿçûêîâ è äåòàëè âíóòðåííåãî ïðåäñòàâëåíèÿ ïðîãðàìì. Óðîâíè çàâèñèìûõ è íåçàâèñèìûõ îò ÿçûêà îïåðàöèé äîïîëíèòåëüíî äåëÿòñÿ íà áëîêè îïðåäåëåíèÿ ñâîéñòâ (àíàëèç) è áëîêè ïðåîáðàçîâàíèé. Ýêñïåðò ýòî áëîê, èìåþùèé öåëåâóþ óíêöèþ, íóæíóþ ïîëüçîâàòåëþ ñèñòåìû. Íàïðèìåð, ýêñïåðò ìîæåò âûÿâëÿòü âñå ïîòåíöèàëüíî ïàðàëëåëüíûå öèêëû ïðîãðàììû è îòðàæàòü ýòó èíîðìàöèþ â êîììåíòàðèÿõ, èëè îñóùåñòâëÿòü ïðåîáðàçîâàíèå ïðîãðàììû ïîä êîíêðåòíóþ ñèñòåìó ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ. Èíòåðåéñ ïðåäîñòàâëÿåò äîñòóï ê óíêöèÿì ñèñòåìû âíåøíèì ïîëüçîâàòåëÿì, â ðîëè êîòîðûõ ìîãóò áûòü è äðóãèå ïðîãðàììû. Âñå âçàèìîäåéñòâèå êîìïëåêñà èëè ñîçäàííîé íà åãî îñíîâå ñèñòåìû ñ âíåøíèì ìèðîì ñ ïîëüçîâàòåëåì ëèáî ñ äðóãèìè ïðîãðàììàìè ïðîèñõîäèò ÷åðåç èíòåðåéñû.
4. Óðîâåíü âíóòðåííåãî ïðåäñòàâëåíèÿ
Óðîâåíü âíóòðåííåãî ïðåäñòàâëåíèÿ ñîñòàâëÿþò áëîêè, îòâå÷àþùèå íåïîñðåäñòâåííî çà ðàáîòó ñ òåêñòîì ïðîãðàììû (åå ðàçáîð èëè ãåíåðàöèþ íîâîãî òåêñòà) è çà äåéñòâèÿ ñî ñòðóêòóðàìè äàííûõ, ñîñòàâëÿþùèõ ïðåäñòàâëåíèå ðàçîáðàííîé ïðîãðàììû. Áëîêè ýòîãî óðîâíÿ â ñàìîé áîëüøîé ñòåïåíè çàâèñÿò îò ÿçûêà àíàëèçèðóåìîé ïðîãðàììû. Èìåííî íà ýòîì óðîâíå îñóùåñòâëÿåòñÿ ðàçáîð òåêñòà âõîäíîé ïðîãðàììû. Ñòðóêòóðû äàííûõ äëÿ ðàçíûõ âõîäíûõ ÿçûêîâ ìîãóò ñèëüíî îòëè÷àòüñÿ, îäíàêî èíòåðåéñ, ïðåäîñòàâëÿåìûé áëîêàì âåðõíåãî óðîâíÿ, äîëæåí áûòü âûðàæåí â òåðìèíàõ îïèñàíèÿ ÿçûêîâ. Ïîñêîëüêó ìû îðèåíòèðóåìñÿ ïðåæäå âñåãî íà ïðîöåäóðíûå ÿçûêè, ýòè òåðìèíû äîëæíû áûòü ïîõîæè äëÿ ðàçíûõ ÿçûêîâ, åñòåñòâåííî, â òîé ñòåïåíè, â êàêîé ïîõîæè ÿçûêè ïðîãðàììèðîâàíèÿ ïðîöåäóðíîãî òèïà. Èíòåðåéñ áëîêîâ óðîâíÿ âíóòðåííåãî ïðåäñòàâëåíèÿ ïîçâîëÿåò ïðîèçâîäèòü ðàçëè÷íûå äåéñòâèÿ ñ îáúåêòàìè ïðîãðàììû òàêèìè êàê îïåðàòîðû, âûðàæåíèÿ, ïåðåìåííûå, ïðîãðàììíûå åäèíè-
264
Ê. Ñ. Ñòåàíîâ
öû, àéëû ïðîãðàììû (åñëè âõîäíîé ÿçûê ïðåäóñìàòðèâàåò äåëåíèå ïðîãðàììû íà àéëû). Íàïðèìåð, â Ñè åñòü îäèí òèï ïðîãðàììíîé åäèíèöû óíêöèÿ, â Ôîðòðàíå-77 òèïîâ ïðîãðàììíûõ åäèíèö íåñêîëüêî: ïðîöåäóðà, óíêöèÿ, ãëàâíàÿ ïðîãðàììà è ò.ä., à â Ôîðòðàíå-90 äîáàâëÿåòñÿ åùå ìîäóëü.  Ñè åñòü ãëîáàëüíûå ïåðåìåííûå, à â Ôîðòðàíå-77 ñâÿçü ìåæäó ïðîãðàììíûìè åäèíèöàìè ïî îáùèì äàííûì îñóùåñòâëÿåòñÿ ïðè ïîìîùè COMMON-áëîêîâ. Èíòåðåéñ áëîêîâ âíóòðåííåãî ïðåäñòàâëåíèÿ äîëæåí îòðàæàòü ýòè è äðóãèå îñîáåííîñòè êàæäîãî àíàëèçèðóåìîãî ÿçûêà. Âîçìîæíîñòè ïî ãåíåðàöèè ïðîãðàìì äîëæíû äàâàòü âîçìîæíîñòü ãåíåðèðîâàòü âûõîäíóþ ïðîãðàììó èç ëþáûõ êîíñòðóêöèé. Ïðè ýòîì êîððåêòíîñòü ãåíåðèðóåìîé ïðîãðàììû íà äàííîì óðîâíå ìîæåò ïðîâåðÿòüñÿ ëèøü ÷àñòè÷íî, îñòàâëÿÿ òàêóþ ïðîâåðêó çàâèñèìûì îò ÿçûêà ìîäóëÿì ïðåîáðàçîâàíèé.
5. Áëîêè àíàëèçà è ïðåîáðàçîâàíèé
Óðîâíè çàâèñèìûõ è íåçàâèñèìûõ îò ÿçûêà áëîêîâ ñîäåðæàò îñíîâíûå ïîäñèñòåìû êîìïëåêñà àíàëèç è ïðåîáðàçîâàíèå ïðîãðàìì, è ïðåäîñòàâëÿþò óíêöèîíàëüíîñòü, íåîáõîäèìóþ äëÿ ïîñòðîåíèÿ ýêñïåðòîâ. Áëîêè àíàëèçà ñëóæàò äëÿ îïðåäåëåíèÿ ñâîéñòâ âõîäíîé ïðîãðàììû, êîòîðûå çàòåì ìîãóò áûòü èñïîëüçîâàíû äðóãèìè áëîêàìè äëÿ âûïîëíåíèÿ ñâîèõ óíêöèé. Ýòî ìîãóò áûòü ñâîéñòâà êàê îòäåëüíûõ îáúåêòîâ ïðîãðàììû (ÿâëÿåòñÿ ëè äàííûé îïåðàòîð îïåðàòîðîì ïåðåõîäà, èìååò ëè äàííàÿ ïåðåìåííàÿ ñîñòàâíîé òèï), òàê è ñâîéñòâà ðàãìåíòîâ ïðîãðàììû (ïðèíàäëåæèò ëè äàííûé ðàãìåíò ïðîãðàììû ê ëèíåéíîìó êëàññó [2℄. Áëîêè àíàëèçà ïðîãðàìì íà âûõîäå äàþò îáúåêòû-ñâîéñòâà, ñîäåðæàùèå èíîðìàöèþ î âõîäíîé ïðîãðàììå. Ýòî ìîãóò áûòü ýëåìåíòàðíûå îáúåêòû ëîãè÷åñêîãî òèïà, îïèñûâàþùèå íàëè÷èå èëè îòñóòñòâèå â àíàëèçèðóåìîé ïðîãðàììå êàêîãî-ëèáî ïðèçíàêà, íàïðèìåð, âîçìîæíîñòü ðàñïàðàëëåëèâàíèÿ êîíêðåòíîãî öèêëà. Òàêæå ýòî ìîãóò áûòü ñëîæíûå îáúåêòû, íàïðèìåð, ãðà âûçîâîâ ïðîãðàììû.
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
265
Ïðîãðàììíûé èíòåðåéñ äëÿ ðàáîòû ñ òàêèìè îáúåêòàìè äîëæåí áûòü îïðåäåëåí ëèáî â òåðìèíàõ àíàëèçèðóåìûõ ÿçûêîâ, åñëè îáúåêò-ñâîéñòâî ñóùåñòâóåò íà óðîâíå ìåæäó âíóòðåííèì ïðåäñòàâëåíèåì è çàâèñèìûìè îò ÿçûêà áëîêàìè, ëèáî â òåðìèíàõ, îáùèõ äëÿ àíàëèçèðóåìûõ ÿçûêîâ, åñëè òàêîé îáúåêò ñóùåñòâóåò íà óðîâíÿõ âûøå óðîâíÿ çàâèñèìûõ îò ÿçûêà áëîêîâ. Áëîêè ïðåîáðàçîâàíèé ñëóæàò äëÿ âûïîëíåíèÿ áàçîâûõ ïðåîáðàçîâàíèé ïðîãðàììû, êîòîðûå ìîãóò áûòü èñïîëüçîâàíû â êà÷åñòâå ñîñòàâíûõ ÷àñòåé äðóãèìè áëîêàìè ïðåîáðàçîâàíèé èëè ìîäóëÿìèýêñïåðòàìè. Îòíåñåíèå òîãî èëè èíîãî ïðåîáðàçîâàíèÿ ê óðîâíþ çàâèñèìûõ èëè íåçàâèñèìûõ îò ÿçûêà áëîêîâ ëèáî æå âêëþ÷åíèå åãî êàê ñîñòàâíîé ÷àñòè â êàêîé-íèáóäü ýêñïåðò îïðåäåëÿåòñÿ òåì, ìîæåò ëè äàííîå ïðåîáðàçîâàíèå èñïîëüçîâàíî äðóãèì ýêñïåðòîì. Ìíîãèå ïðåîáðàçîâàíèÿ øèðîêî èñïîëüçóþòñÿ ïðè ðàçëè÷íûõ ñòðàòåãèÿõ ðàñïàðàëëåëèâàíèÿ ïîä ðàçíûå âû÷èñëèòåëüíûå ñèñòåìû.  òî æå âðåìÿ ñóùåñòâóþò è ïðåîáðàçîâàíèÿ, èñïîëüçîâàíèå êîòîðûõ âðÿä ëè ìîæåò âûõîäèòü çà ïðåäåëû äîñòàòî÷íî óçêîé îáëàñòè. Íàïðèìåð, ïðè ïðåîáðàçîâàíèè ïðîãðàììû ïîä ñèñòåìó ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ OpenMP èìååò ñìûñë îïðåäåëèòü ïðåîáðàçîâàíèå ¾äîáàâëåíèå äèðåêòèâû OpenMP¿, îïèðàþùåéñÿ íà äîáàâëåíèå êîììåíòàðèÿ èëè äèðåêòèâû #pragma. Èñïîëüçîâàíèå êîììåíòàðèåâ äëÿ çàäàíèÿ äèðåêòèâ ðàñïàðàëëåëèâàíèÿ â ïðîãðàììàõ íà Ôîðòðàíå ïðèìåíÿåòñÿ íå òîëüêî â OpenMP, à òàêæå ìîæåò ïðèìåíÿòüñÿ è äëÿ çàïèñè â òåêñòå ïðîãðàììû êàêèõ-ëèáî íàéäåííûõ åå ñâîéñòâ. Ïîýòîìó äîáàâëåíèå êîììåíòàðèÿ öåëåñîîáðàçíî ñäåëàòü ìîäóëåì ïðåîáðàçîâàíèÿ. Äåëåíèå íà çàâèñèìûå è íåçàâèñèìûå îò ÿçûêà îïðåäåëÿåòñÿ âîçìîæíîñòüþ îïðåäåëèòü ñâîéñòâî èëè ïðåîáðàçîâàíèå â òåðìèíàõ, îáùèõ äëÿ âñåõ àíàëèçèðóåìûõ ÿçûêîâ. Ïîäðîáíåå ïðî ýòî äåëåíèå áóäåò ñêàçàíî íèæå.
6. Çàâèñèìûå îò ÿçûêà áëîêè
Çàâèñèìûå îò ÿçûêà áëîêè ýòî áëîêè îïðåäåëåíèÿ ñâîéñòâ èëè ïðîâåäåíèÿ ïðåîáðàçîâàíèé, êîòîðûì íóæíî çíàòü ñïåöèèêó ÿçûêà, íà êîòîðîì íàïèñàíà àíàëèçèðóåìàÿ èëè ïðåîáðàçóåìàÿ
266
Ê. Ñ. Ñòåàíîâ
ïðîãðàììà. Ýòè áëîêè ðàáîòàþò ÷åðåç èíòåðåéñ, ïðåäîñòàâëÿåìûé áëîêàìè óðîâíÿ âíóòðåííåãî ïðåäñòàâëåíèÿ. Êàæäûé òàêîé áëîê äîëæåí áûòü ïîâòîðåí äëÿ êàæäîãî àíàëèçèðóåìîãî âõîäíîãî ÿçûêà. Ïðè ýòîì èíòåðåéñ ñàìèõ ýòèõ áëîêîâ, ïðåäîñòàâëÿåìûé áëîêàì âåðõíèõ óðîâíåé, äîëæåí âûðàæàòüñÿ â òåðìèíàõ, îáùèõ äëÿ âñåõ àíàëèçèðóåìûõ ÿçûêîâ ïðîãðàììèðîâàíèÿ, à âûáîð áëîêà äëÿ êîíêðåòíîãî ÿçûêà äîëæåí îáåñïå÷èâàòüñÿ ñàìèì èíñòðóìåíòàðèåì. Çàâèñèìûå îò ÿçûêà áëîêè àíàëèçà ñëóæàò äëÿ îïðåäåëåíèÿ òåõ ñâîéñòâ ïðîãðàììû, äëÿ êîòîðûõ íóæíî çíàòü ñïåöèèêó ÿçûêà, íà êîòîðîì îíà íàïèñàíà. Íàïðèìåð, äëÿ ïîñòðîåíèÿ ãðàà óïðàâëåíèÿ ïðîãðàììû íóæíî óìåòü îïðåäåëÿòü, â êàêîì ïîðÿäêå ïåðåäàåòñÿ óïðàâëåíèå ìåæäó îïåðàòîðàìè. Îïðåäåëåíèå òîãî, êàêîé îïåðàòîð ìîæåò áûòü âûïîëíåí ïîñëå äàííîãî, ÿâëÿåòñÿ áëîêîì, ðåàëèçàöèÿ êîòîðîãî çàâèñèò îò ÿçûêà àíàëèçèðóåìîé ïðîãðàììû.  Ôîðòðàíå åñòü óïðàâëÿþùèå îïåðàòîðû GOTO, IF, îïåðàòîð öèêëà DO.  ÿçûêå Ñè íàáîð óïðàâëÿþùèõ îïåðàòîðîâ äðóãîé: goto, if, swit h, break,
ontinue è îïåðàòîðû öèêëà for, while, do . . . while. Íàáîðû óïðàâëÿþùèõ îïåðàòîðîâ ðàçëè÷àþòñÿ îò ÿçûêà ê ÿçûêó. Çàâèñèìûå îò ÿçûêà áëîêè ïðåîáðàçîâàíèé, ïî àíàëîãèè ñ çàâèñèìûìè îò ÿçûêà áëîêàìè àíàëèçà, îïðåäåëÿþò ïðåîáðàçîâàíèÿ, ñïåöèè÷åñêèå äëÿ äàííîãî ÿçûêà. Íàïðèìåð äëÿ äîáàâëåíèÿ íîâîé ïåðåìåííîé íóæíî ñîçäàòü îïåðàòîð, åå îïèñûâàþùèé, è âñòàâèòü â áëîê îïèñàíèé (åñëè âõîäíîé ÿçûê òðåáóåò îïèñàíèé ïåðåìåííûõ). Ïðè ýòîì èíîðìàöèÿ î âîçìîæíûõ òèïàõ ïåðåìåííûõ, à òàêæå î ðàñïîëîæåíèè áëîêà îïèñàíèé, ñòðóêòóðå ñàìèõ îïèñàíèé è ò.ï. çàâèñèò îò ÿçûêà ïðîãðàììèðîâàíèÿ, íà êîòîðîì çàïèñàíà ïðåîáðàçóåìàÿ ïðîãðàììà. Íåêîòîðûå ïðåîáðàçîâàíèÿ ïðîãðàììû ìîæíî äåëàòü áîëåå ýåêòèâíî, åñëè íå òðåáîâàòü ñîõðàíåíèÿ êîððåêòíîñòè ïðîãðàììû íà ïðîìåæóòî÷íûõ ýòàïàõ (ðàçóìååòñÿ, ïîëíîå ïðåîáðàçîâàíèå äîëæíî ñîõðàíÿòü êîððåêòíîñòü). Íàïðèìåð èçìåíåíèå ðàçìåðíîñòè ìàññèâà, èñïîëüçóåìîå èíîãäà äëÿ ïðèâåäåíèÿ ïðîãðàììû ê ëèíåéíîìó âèäó [3℄, ìîæåò ïðèâåñòè ê òîìó, ÷òî îïåðàöèè äîñòóïà ê ýëåìåíòàì ýòîãî ìàññèâà ñòàíóò íåêîððåêòíûìè. Ìîæíî ðàçðàáîòàòü
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
267
ïîñëåäîâàòåëüíîñòü ïðåîáðàçîâàíèé, âêëþ÷àþùóþ ââåäåíèå íîâîãî ìàññèâà è ïîñëåäîâàòåëüíóþ çàìåíó âñåõ îáðàùåíèé ê îäíîìó ìàññèâó íà îáðàùåíèÿ ê äðóãîìó, íî ïðîùå âðåìåííî îòêëþ÷èòü ïðîâåðêó ïîëíîé êîððåêòíîñòè ïîëó÷àåìîé ïðîãðàììû ïîñëå êàæäîãî øàãà ïðåîáðàçîâàíèÿ (åñëè òàêàÿ ïðîâåðêà âîîáùå ïðîâîäèòñÿ). Ïîýòîìó íåîáõîäèìî èìåòü âîçìîæíîñòü îòêëþ÷åíèÿ íåêîòîðûõ ïðîâåðîê íà êîððåêòíîñòü. Åñòåñòâåííî, ÷òî îòâåòñòâåííîñòü çà ïîëíóþ êîððåêòíîñòü ïîëó÷àåìîé ïðîãðàììû ëåæèò íà ïðîãðàììèñòå, ðåàëèçóþùåì ïðåîáðàçîâàíèÿ â òàêîì ðåæèìå. Ïðè ýòîì ñèíòàêñè÷åñêàÿ êîððåêòíîñòü ïîëó÷àåìîé ïðîãðàììû ãàðàíòèðóåòñÿ ñðåäñòâàìè ãåíåðàöèè ïðîãðàììû óðîâíÿ ðàáîòû ñ âíóòðåííèì ïðåäñòàâëåíèåì.
7. Íåçàâèñèìûå îò ÿçûêà áëîêè
Íåçàâèñèìûå îò ÿçûêà áëîêè àíàëèçà îïðåäåëÿþò òå, îáû÷íî áîëåå ¾âûñîêîóðîâíåâûå¿, ñâîéñòâà, êîòîðûå ìîæíî îïðåäåëèòü îáùèì äëÿ âñåõ ÿçûêîâ ïðîöåäóðíîãî òèïà îáðàçîì, îïèðàÿñü íà èíîðìàöèþ, ïîñòàâëÿåìóþ çàâèñèìûìè îò ÿçûêà áëîêàìè. Èíîðìàöèÿ, íåîáõîäèìàÿ äëÿ ðàáîòû äàííûõ áëîêîâ, âûðàæàåòñÿ â òåðìèíàõ, îáùèõ äëÿ âñåõ àíàëèçèðóåìûõ ÿçûêîâ. Íàïðèìåð ïîñòðîåíèå ãðàà óïðàâëåíèÿ ïðîöåäóðû ìîæåò áûòü îñóùåñòâëåíî îïèðàÿñü íà èíîðìàöèþ, êàêîé îïåðàòîð ìîæåò áûòü âûïîëíåí ïîñëå äàííîãî. Ïîëó÷èâ èíîðìàöèþ î ïåðåõîäàõ ìåæäó îïåðàòîðàìè, ãðà óïðàâëåíèÿ â òåðìèíàõ îòäåëüíûõ îïåðàòîðîâ ìîæåò áûòü ïîñòðîåí áåç ó÷åòà îñîáåííîñòåé êîíêðåòíûõ ÿçûêîâ. Íåçàâèñèìûå îò ÿçûêà áëîêè ïðåîáðàçîâàíèÿ ïðåäîñòàâëÿþò âîçìîæíîñòè ïî ïðåîáðàçîâàíèþ ïðîãðàììû, íåîáõîäèìûå áëîêàì ýêñïåðòîâ. Ïî àíàëîãèè ñ íåçàâèñèìûìè îò ÿçûêà áëîêàìè àíàëèçà, îáû÷íî íà äàííîì óðîâíå ïðîâîäÿòñÿ áîëåå ¾âûñîêîóðîâíåâûå¿ ïðåîáðàçîâàíèÿ ÷åì òå, êîòîðûå ïðîâîäÿòñÿ íà óðîâíå çàâèñèìûõ îò ÿçûêà ïðåîáðàçîâàíèé. Ïðàêòè÷åñêè âñå ñîñòàâíûå ïðåîáðàçîâàíèÿ äîëæíû íàõîäèòüñÿ íà äàííîì óðîâíå. Ïðè èõ ïðîâåäåíèè íóæíî îïèðàòüñÿ íà ¾ýëåìåíòàðíûå¿ ïðåîáðàçîâàíèÿ, ïðîâîäèìûå çàâèñèìûìè îò ÿçûêà áëîêàìè ïðåîáðàçîâàíèé.  áëîêàõ ýêñïåðòîâ âñåãäà èñïîëüçóåòñÿ èíîðìàöèÿ, ïîñòàâëÿ-
268
Ê. Ñ. Ñòåàíîâ
åìàÿ áëîêàìè íåçàâèñèìîãî îò ÿçûêà óðîâíÿ. Åñëè ýêñïåðòó íåîáõîäèìà èíîðìàöèÿ îò áëîêà çàâèñèìîãî îò ÿçûêà óðîâíÿ èëè óðîâíÿ âíóòðåííåãî ïðåäñòàâëåíèÿ, òî íàäî ñîçäàòü äîïîëíèòåëüíûé áëîêïðîñëîéêó, ïåðåäàþùèé òàêóþ èíîðìàöèþ íàâåðõ. Òàêàÿ àðõèòåêòóðà îáëåã÷èò ðåøåíèå ïðîáëåì, âîçíèêàþùèõ ïðè äîáàâëåíèè íîâûõ àíàëèçèðóåìûõ ÿçûêîâ.  íåêîòîðûõ ñëó÷àÿõ ïîëåçíî èìåòü íàáîð áëîêîâ, èìåþùèõ îäèíàêîâûé èíòåðåéñ è âûïîëíÿþùèõ îäíó óíêöèþ ðàçíûìè ìåòîäàìè. Íàïðèìåð, îäíèì èç ìåòîäîâ, èñïîëüçóåìûõ äëÿ ïðèâåäåíèÿ ïðîãðàììû ê ëèíåéíîìó âèäó, ÿâëÿåòñÿ àïðèîðíàÿ ïîäñòàíîâêà [4℄. Ïðè ýòîì çíà÷åíèå îäíîé ïåðåìåííîé çàìåíÿåòñÿ íà íåêîòîðîå âûðàæåíèå. Òàêàÿ çàìåíà ìîæåò ïðîèçâîäèòüñÿ, íàïðèìåð, ìîäóëÿìè, îïðåäåëÿþùèìè èñïîëüçóåìûå ïåðåìåííûå èëè èíäåêñíûå âûðàæåíèÿ íà ëåòó, ïðîçðà÷íî äëÿ âûçûâàþùèõ ìîäóëåé. Òàêèì îáðàçîì ðåàëèçàöèÿ èñïîëüçîâàíèÿ ïîäñòàíîâêè ñâåäåòñÿ ê èçìåíåíèÿì â íåáîëüøîì êîëè÷åñòâå ìîäóëåé àíàëèçà è íàïèñàíèè ìîäóëÿ óðîâíÿ ýêñïåðòîâ, îïðåäåëÿþùåãî ïðàâèëà òàêîé ïîäñòàíîâêè.
8. Óðîâåíü ìîäóëåé öåëåâûõ ïðåîáðàçîâàíèé (ýêñïåðòîâ) Áëîêè, ðåàëèçóþùèå öåëåâóþ óíêöèîíàëüíîñòü ñèñòåìû èëè êîíâåðòîðà, ðàñïîëîæåíû íà óðîâíå ýêñïåðòîâ. Ýêñïåðò ìîäóëü ñèñòåìû, ðåàëèçóþùèé êîíêðåòíóþ íóæíóþ ïîëüçîâàòåëþ óíêöèþ â àâòîìàòè÷åñêîì èëè ïîëóàâòîìàòè÷åñêîì ðåæèìå, íàïðèìåð, ðàñïàðàëëåëèâàþùèé è ïðåîáðàçóþùèé ïðîãðàììó ïîä êîíêðåòíóþ ñèñòåìó ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ.  ðàìêàõ ðàññìàòðèâàåìîãî òåõíîëîãè÷åñêîãî èíñòðóìåíòàðèÿ âñÿ öåëåâàÿ óíêöèîíàëüíîñòü ñèñòåìû îîðìëÿåòñÿ ìîäóëÿìè óðîâíÿ ýêñïåðòîâ. Ýòè ìîäóëè ìîãóò áûòü êàê âåñüìà ïðîñòûìè, íàïðèìåð, âûçûâàþùèìè êàêîé-ëèáî áëîê àíàëèçà äëÿ âñåõ îïåðàòîðîâ ïðîãðàììû è òàêèì îáðàçîì ñîáèðàþùèì ñòàòèñòèêó. Èëè æå ýêñïåðò ìîæåò áûòü ñëîæíûì, ðåàëèçóþùèì ìíîæåñòâî óíêöèé ïî ïðèâåäåíèþ ïðîãðàììû ê âèäó, ïðèãîäíîìó äëÿ èñïîëüçîâàíèÿ â îïðåäåëåííîé ñèñòåìå ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ è îñó-
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
269
ùåñòâëÿþùèé åå îïòèìèçàöèþ. àçëè÷íûå ìîäóëè óðîâíÿ ýêñïåðòîâ ìîãóò âçàèìîäåéñòâîâàòü ñ ìîäóëÿìè ñâîåãî óðîâíÿ èëè ìîäóëÿìè íåçàâèñèìîãî îò ÿçûêà óðîâíÿ.  íåêîòîðûõ ñëó÷àÿõ ýêñïåðòó ìîæåò ïîòðåáîâàòüñÿ äîïîëíèòåëüíàÿ èíîðìàöèÿ îá àíàëèçèðóåìîé ïðîãðàììå ïîìèìî ñîäåðæàùåéñÿ â åå òåêñòå. Ýòî ìîæåò áûòü, íàïðèìåð, èíîðìàöèÿ î âõîäíûõ è âûõîäíûõ äàííûõ êàêîé-ëèáî ïîäïðîãðàììû èëè èíîðìàöèÿ î ïàðàëëåëüíûõ ñâîéñòâàõ êàêîãî-ëèáî ðàãìåíòà ïðîãðàììû, íå ïîääàþùåãîñÿ àíàëèçó.  ýòîì ñëó÷àå ýêñïåðò çàïðàøèâàåò ýòó èíîðìàöèþ ó âûçûâàþùåãî åãî ìîäóëÿ (ýòî ìîæåò áûòü êàê äðóãîé ýêñïåðò, òàê è ìîäóëü óðîâíÿ èíòåðåéñîâ), êîòîðûé è ñîîáùàåò åìó òðåáóåìîå. Ïðè âûçîâå ýêñïåðòà, êîòîðîìó ìîãóò ïîíàäîáèòüñÿ äîïîëíèòåëüíûå äàííûå, âûçûâàþùèé ìîäóëü ïðåäîñòàâëÿåò èíîðìàöèþ, êàêèì îáðàçîì ïîëó÷àòü òðåáóåìûå ñâåäåíèÿ (èëè î òîì, ÷òî íàäî ïîëüçîâàòüñÿ çíà÷åíèÿìè ïî óìîë÷àíèþ). Òàêèì îáðàçîì ìîæåò áûòü ðåàëèçîâàíà, íàïðèìåð, èñïîëüçóåìàÿ â ñèñòåìå V-Ray ñõåìà ñïåöèàëüíûõ êîììåíòàðèåâ [2℄. Òàêèå êîììåíòàðèè ðàçìåùàþòñÿ â òåêñòå ïðîãðàììû è ñîîáùàþò àíàëèçèðóþùåé ñèñòåìå î íåêîòîðûõ ñâîéñòâàõ ýòîé ïðîãðàììû, íàïðèìåð, î ãðàíèöàõ èçìåíåíèé êàêèõ-ëèáî ïåðåìåííûõ.  ýòîì ñëó÷àå ýêñïåðò, èñïîëüçóþùèé òàêóþ èíîðìàöèþ â ñâîåé ðàáîòå, çàïðàøèâàåò åå ó âûçûâàþùåãî ìîäóëÿ. Ýòîò ìîäóëü ìîæåò áûòü äðóãèì ýêñïåðòîì, êîòîðûé ïðîñìîòðèò èìåþùèåñÿ â ïðîãðàììå êîììåíòàðèè è ñîîáùèò òðåáóåìóþ èíîðìàöèþ (ëèáî î åå îòñóòñòâèè).
9. Óðîâåíü èíòåðåéñîâ
Áëîêè èíòåðåéñîâ ïðåäíàçíà÷åíû äëÿ ðåàëèçàöèè ðàçëè÷íûõ ñïîñîáîâ âçàèìîäåéñòâèÿ ïîñòðîåííîé ñèñòåìû ñ âíåøíèì ìèðîì, íàïðèìåð, ãðàè÷åñêîãî èíòåðåéñà ïîëüçîâàòåëÿ èëè èíòåðåéñà êîìàíäíîé ñòðîêè, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ êàê ÷åëîâåêîì, òàê è äðóãèìè ïðîãðàììàìè. Ó êàæäîé ñèñòåìû, ñîçäàííîé ïðè ïîìîùè èíñòðóìåíòàðèÿ, äîëæåí áûòü îäèí îñíîâíîé áëîê èíòåðåéñà. Ýòîò áëîê äîëæåí îïðåäåëèòü è ñîîáùèòü äðóãèì áëîêàì ñèñòåìû:
270
Ê. Ñ. Ñòåàíîâ
Íà êàêîì ÿçûêå íàïèñàíà àíàëèçèðóåìàÿ ïðîãðàììà è êàêèå àéëû åé ïðèíàäëåæàò. Êàêèå ýêñïåðòû áóäóò âûçûâàòüñÿ ïîñëå çàãðóçêè àíàëèçèðóåìîé ïðîãðàììû. Êàêèå åùå ìîäóëè èíòåðåéñîâ áóäóò èñïîëüçîâàòüñÿ. Êóäà áóäåò çàïèñàí òåêñò ñãåíåðèðîâàííîé ïðîãðàììû è äðóãèå âûõîäíûå àéëû (åñëè îíè åñòü). Äðóãóþ èíîðìàöèþ, íåîáõîäèìóþ âûçûâàåìûì ýêñïåðòàì. Êàê âèäíî, îñíîâíîé áëîê èíòåðåéñà ÿâëÿåòñÿ öåíòðîì îáùåíèÿ ñèñòåìû ñ âíåøíèì ìèðîì. Ïðè ýòîì èíîðìàöèÿ äëÿ êàæäîãî èç ïóíêòîâ ìîæåò áûòü ïîëó÷åíà ïðàêòè÷åñêè íåçàâèñèìî. ßçûê àíàëèçèðóåìîé ïðîãðàììû è èìåíà àéëîâ ìîãóò áûòü ïîëó÷åíû ó ïîëüçîâàòåëÿ â îêíå-äèàëîãå, ìîãóò áûòü ïàðàìåòðàìè êîìàíäíîé ñòðîêè èëè ñîäåðæàòüñÿ â ïàêåòíîì àéëå îïèñàíèÿ çàäà÷è. Äðóãèå èñïîëüçóåìûå èíòåðåéñíûå ìîäóëè è áëîêè-ýêñïåðòû ñêîðåå âñåãî áóäóò èìåòü ðàçëè÷íûå ïðîãðàììíûå èíòåðåéñû, ïîýòîìó èõ èñïîëüçîâàíèå îïðåäåëÿåòñÿ ïðîãðàììíûì êîäîì äàííîãî ìîäóëÿ èíòåðåéñà. Äëÿ êàêèõ-òî êîíêðåòíûõ ñèñòåì ìîæåò èñïîëüçîâàòüñÿ ðîâíî îäèí ýêñïåðò, ñîáèðàþùèé êàêóþ-íèáóäü ñòàòèñòèêó ïî ñâîéñòâàì àíàëèçèðóåìîãî ïðîãðàììíîãî êîìïëåêñà.  ýòîì ñëó÷àå ìîäóëü èíòåðåéñà áóäåò äîñòàòî÷íî ïðîñòûì áåç èñïîëüçîâàíèÿ äðóãèõ èíòåðåéñîâ. Èëè íàîáîðîò, ó ñëîæíîé ñèñòåìû ñ ãðàè÷åñêèì èíòåðåéñîì ìîæåò áûòü ïðåäîñòàâëåí âûáîð ïî âûçûâàåìûì ýêñïåðòàì, à äëÿ íàñòðîéêè êàêèõ-òî ýêñïåðòîâ ìîãóò ïðèâëåêàòüñÿ äðóãèå èíòåðåéñíûå ìîäóëè. Íàïðèìåð, â ðàìêàõ îäíîé ñèñòåìû ìîãóò îäíîâðåìåííî ïðèñóòñòâîâàòü âîçìîæíîñòè ðàñïàðàëëåëèâàíèÿ ïðîãðàììû è ïîä OpenMP, è ïîä MPI, îîðìëåííûå â âèäå ðàçíûõ ýêñïåðòîâ.  ýòîì ñëó÷àå îñíîâíîé áëîê èíòåðåéñà äîëæåí ïðåäîñòàâèòü ïîëüçîâàòåëþ âûáîð, êàêîé ýêñïåðò çàïóñêàòü, à íàñòðîéêè ðàçíûõ ýêñïåðòîâ áóäóò ïðîèçâîäèòüñÿ ñîîòâåòñòâóþùèìè èíòåðåéñíûìè ìîäóëÿìè.
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
271
Îïðåäåëåíèå ìåñòîïîëîæåíèÿ âûõîäíûõ àéëîâ (ñãåíåðèðîâàííîé èëè ïðåîáðàçîâàííîé ïðîãðàììû è äðóãèõ àéëîâ ñ ïîëó÷åííîé èíîðìàöèåé) ìîæåò îïðåäåëÿòüñÿ ëþáûì èç ñïîñîáîâ, êîòîðûì îïðåäåëÿåòñÿ ðàñïîëîæåíèå âõîäíûõ àéëîâ. Ìîãóò áûòü çàäàíû êàêèå-òî óìîë÷àíèÿ èëè, íàïðèìåð, ñõåìà ïîëó÷åíèÿ èìåíè âûõîäíîãî àéëà èç èìåíè âõîäíîãî (çàìåíà ñóèêñà è ò.ï.). Êàê óæå îòìå÷àëîñü âûøå, íåêîòîðûì ýêñïåðòàì ïðè ðàáîòå ìîæåò ïîòðåáîâàòüñÿ äîïîëíèòåëüíàÿ èíîðìàöèÿ. Îíà ìîæåò ïîçâîëÿòü ïðîâåñòè áîëåå òî÷íûé àíàëèç èëè èíîãäà óêàçàòü ýêñïåðòó ïðî êàêèå-òî ñâîéñòâà ïðîãðàììû, èçâåñòíûå ïîëüçîâàòåëþ, íî êîòîðûå íå óäàåòñÿ ïîëó÷èòü ïðè àíàëèçå òåêñòà ïðîãðàììû. Åñëè ïðè ýòîì ýêñïåðò âûçûâàåòñÿ íàïðÿìóþ èç èíòåðåéñà (èëè ÷åðåç öåïî÷êó äðóãèõ ýêñïåðòîâ, êîòîðûì íåîòêóäà âçÿòü ýòó èíîðìàöèþ), ýêñïåðò äåëàåò çàïðîñ ê âûçâàâøåìó åãî ìîäóëþ î íàëè÷èè òðåáóåìîé èíîðìàöèè, ïåðåäàâàÿ ñâåäåíèÿ î êàêîì îáúåêòå ïðîãðàììû è ÷òî èìåííî îí õî÷åò óçíàòü. Èíòåðåéñ èíèöèèðóåò äèàëîã ñ ïîëüçîâàòåëåì ñ çàïðîñîì ñîîòâåòñòâóþùèõ ñâåäåíèé, åñëè òàêàÿ âîçìîæíîñòü ïðåäóñìîòðåíà, èëè ñîîáùàåò, ÷òî äàííûõ ó íåãî íåò. Òàêæå èíîðìàöèÿ ìîæåò áûòü ïîëó÷åíà íå îò ïîëüçîâàòåëÿ à, íàïðèìåð, èç àéëà, îïèñûâàþùåãî çàäàíèå äëÿ ñèñòåìû. Íî â ýòîì ñëó÷àå, îñîáåííî åñëè òàêèõ ñâåäåíèé ìîæåò áûòü ìíîãî, öåëåñîîáðàçíî âûíåñòè ýòó èíîðìàöèþ â îòäåëüíûé àéë è ñîçäàòü åùå îäèí èíòåðåéñíûé ìîäóëü, ÷èòàþùèé äàííûé àéë è ñîîáùàþùèé ñâåäåíèÿ çàïðàøèâàþùåìó ìîäóëþ. Ïðè ïîñòðîåíèè ïîëüçîâàòåëüñêîãî èíòåðåéñà ê îáúåêòàìñâîéñòâàì ïðîãðàììû äîáàâëÿþòñÿ ýòèõ ñâîéñòâ. Ïðåäñòàâëåíèå èñïîëüçóåòñÿ áëîêîì èíòåðåéñà ïðè âûäà÷å îïèñàíèÿ ñâîéñòâà ïîëüçîâàòåëþ, ïðè÷åì îäíîìó ñâîéñòâó ìîæåò ñîîòâåòñòâîâàòü ìíîæåñòâî ïðåäñòàâëåíèé. Íàïðèìåð, ñâîéñòâî ïàðàëëåëüíîñòè öèêëà ìîæåò áûòü ïðåäñòàâëåíî òåêñòîâûì êîììåíòàðèåì ê çàãîëîâêó ýòîãî öèêëà, äèðåêòèâîé OpenMP èëè æå ðàçìåòêîé âåðøèíû, ñîîòâåòñòâóþùåé ýòîìó öèêëó íà ãðàå óïðàâëåíèÿ.  ïîñëåäíåì ñëó÷àå ìû èìååì äåëî ñ ïðåäñòàâëåíèåì âíóòðè äðóãîãî ïðåäñòàâëåíèÿ.
îáúåêòû-ïðåäñòàâëåíèÿ
Áëîêè, âûðàáàòûâàþùèå ïðåäñòàâëåíèå ïî îáúåêòó, ÿâëÿþòñÿ
272
Ê. Ñ. Ñòåàíîâ
ñîñòàâíûìè ÷àñòÿìè èíòåðåéñîâ. Ïîñêîëüêó îäíî è òî æå ïðåäñòàâëåíèå ìîæåò òðåáîâàòüñÿ â ðàçíûõ èíòåðåéñàõ, òàêèå áëîêè ïðåäñòàâëåíèé âûäåëÿþòñÿ îòäåëüíûìè áëîêàìè äëÿ âîçìîæíîñòè ïîâòîðíîãî èñïîëüçîâàíèÿ. Íåêîòîðûì ïðåäñòàâëåíèÿì ìîæåò òðåáîâàòüñÿ äîïîëíèòåëüíàÿ èíîðìàöèÿ. Íàïðèìåð, îäíèì èç ïðåäñòàâëåíèé ãðàà çàâèñèìîñòåé ïðîãðàììû ìîæåò ñëóæèòü íå åãî ïðîåêöèÿ íà îñü îïåðàòîðîâ ïðîãðàììû, à ïîëíîå èçîáðàæåíèå â ïðîñòðàíñòâå èòåðàöèé. Ïðè ýòîì êîíêðåòíûé ðàçìåð èçîáðàæåíèÿ (ãðàíèöû èçìåíåíèé ïàðàìåòðîâ öèêëîâ) çàâèñèò îò çíà÷åíèé âíåøíèõ ïåðåìåííûõ.  ýòîì ñëó÷àå ëèáî äîëæíû áûòü ïðåäóñìîòðåíû êàêèå-òî ðàçóìíûå çíà÷åíèÿ ïî óìîë÷àíèþ, ëèáî íàäî ñïðàøèâàòü êîíêðåòíûå çíà÷åíèÿ ó ïîëüçîâàòåëÿ.  áëîêàõ óðîâíÿ èíòåðåéñîâ äîëæíà áûòü ëîêàëèçîâàíà çàâèñèìîñòü îò ñðåäû, â êîòîðîé èñïîëíÿåòñÿ ñèñòåìà. Èìåííî áëîêè ýòîãî óðîâíÿ çíàþò î æåëàòåëüíîì ðàñïîëîæåíèè àéëîâ, î âûçîâàõ, òðåáóåìûõ äëÿ îòêðûòèÿ ýòèõ àéëîâ. Äðóãèì áëîêàì ïðè ýòîì ïåðåäàþòñÿ îáúåêòû ÿçûêà ïðîãðàììèðîâàíèÿ, íà êîòîðîì îíè íàïèñàíû, ïðåäñòàâëÿþùèå îòêðûòûé àéë (íàïðèìåð îáúåêò òèïà istream èëè ostream Ñè++).  ýòèõ æå áëîêàõ ëîêàëèçóåòñÿ çàâèñèìîñòü îò ñïîñîáà îáùåíèÿ ñ ïîëüçîâàòåëåì, áóäü òî èíòåðåéñ êîìàíäíîé ñòðîêè èëè ãðàè÷åñêàÿ ñðåäà. Ñóùåñòâóåò ìíîæåñòâî âàðèàíòîâ áèáëèîòåê äëÿ ïîñòðîåíèÿ ãðàè÷åñêèõ èíòåðåéñîâ, è êàæäàÿ èç íèõ èìååò íåêîòîðûé îãðàíè÷åííûé íàáîð ïëàòîðì, íà êîòîðûé îíà ìîæåò áûòü çàäåéñòâîâàíà. Ïîýòîìó ëîêàëèçàöèÿ çàâèñèìîñòè îò êîíêðåòíîé áèáëèîòåêè îáëåã÷àåò ïåðåíîñ ïîëó÷åííîé ñèñòåìû ïîä äðóãóþ ÎÑ. Ïðè ïîñòðîåíèè ñèñòåì àíàëèçà êðàéíå âàæíî òåñòèðîâàíèå êîððåêòíîñòè èõ ðàáîòû. Åñëè íàáîð ðåàëèçîâàííûõ óíêöèé âåëèê, òî ðó÷íîå òåñòèðîâàíèå ñòàíîâèòñÿ âåñüìà òðóäíûì, åñëè íå íåâîçìîæíûì. Ïðè ýòîì â ïðîöåññå ðàçðàáîòêè íåîáõîäèìî ðåãóëÿðíî ïðîâîäèòü ìàêñèìàëüíî ïîëíîå òåñòèðîâàíèå, ÷òîáû áûòü óâåðåííûì, ÷òî âíîñèìûå èçìåíåíèÿ íå ïðèâåëè ê ïîÿâëåíèþ îøèáêè. Îáû÷íî äëÿ ýòîãî èñïîëüçóþòñÿ ñèñòåìû àâòîìàòè÷åñêîãî òåñòèðîâàíèÿ.  ðàìêàõ ïðåäëàãàåìîé àðõèòåêòóðû äëÿ ñâÿçè ñ òàêèìè ñèñòåìàìè âûäå-
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
273
ëÿþòñÿ ñïåöèàëüíûå ìîäóëè èíòåðåéñîâ. Îíè ðàáîòàþò ïîä óïðàâëåíèåì òåñòèðóþùåé ñèñòåìû, ïðèíèìàÿ îò íåå çàäàíèÿ, âûïîëíÿþò íóæíûå äåéñòâèÿ è ïåðåäàþò îáðàòíî ïîëó÷åííûå ðåçóëüòàòû. Íà îñíîâàíèè ñðàâíåíèÿ ïîëó÷åííîãî è îæèäàåìîãî ðåçóëüòàòà ñèñòåìà òåñòèðîâàíèÿ ìîæåò äåëàòü âûâîä î êîððåêòíîé ðàáîòå òåñòèðóåìîé óíêöèè è îðìèðîâàòü ñîîòâåòñòâóþùèå îò÷åòû.
10. Ïðèìåðû áëîêîâ èíñòðóìåíòàðèÿ
Íà ðèñ. 2 ïðèâåäåíà ñõåìà èíñòðóìåíòàðèÿ ñ ïðèìåðàìè áëîêîâ, ðàñïîëîæåííûõ íà êàæäîì óðîâíå. Íà óðîâíå âíóòðåííåãî ïðåäñòàâëåíèÿ ðàñïîëàãàþòñÿ áëîêè, îòâå÷àþùèå çà ðàáîòó ñî âñåìè îáúåêòàìè, ñîñòàâëÿþùèìè ïðîãðàììó: îïåðàòîðàìè, ïåðåìåííûìè, òèïàìè, êîììåíòàðèÿìè è ò.ï. Íà óðîâíå çàâèñèìûõ îò ÿçûêà áëîêîâ íàõîäÿòñÿ áëîêè, îïèðàþùèå íà ñïåöèèêó âõîäíîãî ÿçûêà. Íàïðèìåð, äëÿ îïðåäåëåíèÿ çàâèñèìîñòåé ïî äàííûì äëÿ êàæäîãî îïåðàòîðà íåîáõîäèìî çíàòü, êàêèå ïåðåìåííûå ÷èòàþòñÿ, à êàêèå èçìåíÿþòñÿ â äàííîì îïåðàòîðå. Çà ýòî îòâå÷àåò âîò áëîê ¾îïðåäåëåíèå èñïîëüçóåìûõ ïåðåìåííûõ¿. Äëÿ íàõîæäåíèÿ öèêëîâ â ïðîãðàììå òàêæå èìååòñÿ áëîê ¾îïðåäåëåíèå ÿâíûõ öèêëîâ¿. Ýòîò áëîê ïåðå÷èñëÿåò âñå çàïèñàííûå ÿâíûì îáðàçîì, ò.å. ñ ïîìîùüþ ïðåäóñìîòðåííûõ â ÿçûêå êîíñòðóêöèé, öèêëû, èìåþùèåñÿ â ïðîãðàììå. Íà óðîâíå íåçàâèñèìûõ îò ÿçûêà áëîêîâ íàõîäÿòñÿ îñíîâíûå áëîêè àíàëèçà è ïðåîáðàçîâàíèé. Íàïðèìåð, çäåñü ðàñïîëàãàþòñÿ áëîêè îïðåäåëåíèÿ èíîðìàöèîííûõ çàâèñèìîñòåé. Èíîðìàöèîííóþ çàâèñèìîñòü ìîæíî îïðåäåëÿòü ðàçëè÷íûìè ìåòîäàìè òî÷íûì, îñíîâàííûì íà ãðàå àëãîðèòìà, èëè ðàçíîãî ðîäà ýâðèñòèêàìè. Íà ðèñóíêå ïîêàçàíî äâà áëîêà äëÿ ýòîé çàäà÷è. Ýòè áëîêè èìåþò îäèíàêîâûé èíòåðåéñ è ìîãóò çàìåíÿòü äðóã äðóãà. Íà íèõ îïèðàåòñÿ áëîê îïðåäåëåíèÿ ñâîéñòâ ïàðàëëåëüíîñòè öèêëà. Çäåñü òîæå äâà áëîêà ñ îäèíàêîâûì èíòåðåéñîì, îäèí èç êîòîðûõ îïðåäåëÿåò ïàðàëëåëüíîñòü öèêëà íà îñíîâå íàëè÷èÿ â íåì çàâèñèìîñòåé, à âòîðîé ïîëó÷àåò îò ýêñïåðòà êîìàíäó, êàêèå öèêëû ñ÷èòàòü íåçàâèñèìûìè, ïîñëå ÷åãî íà÷èíàåò ñîîáùàòü îá ýòîì âûçûâàþùèì áëîêàì. Ýòî ìîæåò ïîíàäîáèòüñÿ, íàïðèìåð, åñëè öèêë íå ïîääàåòñÿ àíàëèçó, íî èç
274
Ê. Ñ. Ñòåàíîâ
èñ. 2. Ëîãè÷åñêèå óðîâíè èíñòðóìåíòàëüíîãî êîìïëåêñà ñ ïðèìåðàìè ðàñïîëîæåííûõ íà íèõ áëîêîâ
Ñèñòåìû àíàëèçà ñòðóêòóð ïðîãðàìì
275
êàêèõ-òî ñîîáðàæåíèé èçâåñòíî, ÷òî îí ïàðàëëåëüíûé.  êà÷åñòâå ýêñïåðòà ìîæåò áûòü ìîäóëü, ðåàëèçóþùèé ïðåîáðàçîâàíèå ïîñëåäîâàòåëüíîé ïðîãðàììû â ñèñòåìó ïðîãðàììèðîâàíèÿ OpenMP èëè DVM. Èëè æå êîíñòðóèðóåìàÿ ñèñòåìà (è ñîîòâåòñòâóþùèé ýêñïåðò) ìîæåò ðàçìå÷àòü ïðîãðàììó â ñîîòâåòñòâèè ñ èìåþùèìñÿ â íåé ïîòåíöèàëüíûì ïàðàëëåëèçìîì. Íà óðîâíå èíòåðåéñîâ íàõîäÿòñÿ áëîêè ïîëó÷åíèÿ ïðåäñòàâëåíèé ïî îáúåêòàì-ñâîéñòâàì (¾èçîáðàæåíèå ãðàà óïðàâëåíèÿ¿, ¾èçîáðàæåíèå èíîðìàöèîííûõ çàâèñèìîñòåé¿). Òàêæå íà ýòîì óðîâíå íàõîäÿòñÿ áëîêè, îáåñïå÷èâàþùèå âçàèìîäåéñòâèå ñ ïîëüçîâàòåëåì, â ÷àñòíîñòè, ¾ïîëó÷åíèå ïîäñêàçîê î ñâîéñòâàõ öèêëîâ¿, ¾ïîëó÷åíèå êîìàíä íà ïðîâåäåíèå ïðåîáðàçîâàíèé¿.
Ñïèñîê ëèòåðàòóðû
[1℄ Shen Z., Li Z., Yew P.-C. An Empiri al Study of Fortran Programs for Parallelizing Compilers// IEEE Transa tions on Parallel and Distributed Systems. 1990. Vol. 1, no. 3. Pp. 356364. [2℄ Âîåâîäèí Â.Â., Âîåâîäèí Âë.Â. Ïàðàëëåëüíûå âû÷èñëåíèÿ. ÑÏá.: ÁÕÂ-Ïåòåðáóðã, 2002. 608 ñ. [3℄ Õìåëåâ Ä.Â. Âîññòàíîâëåíèå ëèíåéíûõ èíäåêñíûõ âûðàæåíèé äëÿ ñâåäåíèÿ ïðîãðàìì ê ëèíåéíîìó êëàññó// ÆÂÌ è ÌÔ. 1998. Ò. 38, 3. Ñ. 532544. [4℄ Âîåâîäèí Âë.Â. Òåîðèÿ è ïðàêòèêà èññëåäîâàíèÿ ïàðàëëåëèçìà ïîñëåäîâàòåëüíûõ ïðîãðàìì// Ïðîãðàììèðîâàíèå. 1992. 3. Ñ. 3853.
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå Å. Å. Òûðòûøíèêîâ
$
Ïðåäëîæåíû ïðîñòûå è ïîëíûå äîêàçàòåëüñòâà îñíîâíûõ àêòîâ àëãåáðàè÷åñêîé òåîðèè Ïàäå íà îñíîâå ¾ìåòîäà ñêà÷êîâ¿, âîçíèêøåãî ïðè èçó÷åíèè âåäóùèõ ïîäìàòðèö ãàíêåëåâîé ìàòðèöû. Àëãåáðàè÷åñêàÿ òåîðèÿ àïïðîêñèìàöèé Ïàäå ÿâëÿåòñÿ ïî ñóòè òåîðèåé ïîäìàòðèö áåñêîíå÷íîé ãàíêåëåâîé ìàòðèöû. Îñíîâíûå àêòû ýòîé òåîðèè îðìóëèðóþòñÿ ýëåãàíòíî è ïðîñòî. Ñ íèìè ìîæíî ïîçíàêîìèòüñÿ, íàïðèìåð, ïî êíèãå [1℄. Îäíàêî ïðèâåäåííûå òàì äîêàçàòåëüñòâà íå òîëüêî ñëîæíû, íî è â íåêîòîðîé ñòåïåíè äåçîðèåíòèðóþò ÷èòàòåëÿ. Öåëü ýòîé çàìåòêè äàòü ïîëíîå, êðàòêîå è ÿñíîå èçëîæåíèå òåîðèè Ïàäå íà îñíîâå ¾ìåòîäà ñêà÷êîâ¿, âîçíèêøåãî ïðè èçó÷åíèè âåäóùèõ ïîäìàòðèö ãàíêåëåâîé ìàòðèöû [2, 6℄.  êà÷åñòâå îñíîâíîãî ðåçóëüòàòà, ïîìèìî íåêîòîðîãî ðàçâèòèÿ ñàìîãî ìåòîäà ñêà÷êîâ, íóæíî ðàññìàòðèâàòü íîâûå äîêàçàòåëüñòâà èçâåñòíûõ óòâåðæäåíèé àëãåáðàè÷åñêîé òåîðèè Ïàäå.
1. ÿäû è ìàòðèöû
Ïóñòü çàäàí îðìàëüíûé ðÿä f(x) =
∞ X
a i xi .
i=0
$ àáîòà âûïîëíåíà ïðè ïîääåðæêå ãðàíòîâ ÔÔÈ 05-1-00721, 06-01-08052 è
Ïðîãðàììû ïðèîðèòåòíûõ óíäàìåíòàëüíûõ èññëåäîâàíèé Îòäåëåíèÿ ìàòåìàòè÷åñêèõ íàóê ÀÍ. Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ
278
Å. Å. Òûðòûøíèêîâ
àïïðîêñèìàöèåé Ïàäå òèïà
Åãî ÷ëåíîâ
u(x) =
m X
ui xi ,
(m, n) íàçûâàåòñÿ ïàðà ìíîãîv(x) =
i=0
n X
vi xi
i=0
òàêèõ, ÷òî f(x)v(x) − u(x) = O(xm+n+1 )
(1)
ïðè äîïîëíèòåëüíîì óñëîâèè v(0) = 1.
Îòñþäà ñðàçó æå ñëåäóåò, ÷òî f(x) −
u(x) = O(xm+n+1 ). v(x)
Óñëîâèå (1) ðàâíîñèëüíî ñèñòåìå ëèíåéíûõ óðàâíåíèé n X
ai−j vj = 0,
m + 1 6 i 6 m + n,
j=0
èëè, â ìàòðè÷íîé çàïèñè,
am+1 am+2 ... am+n
am am+1 ... am+n−1
... ... ... ...
v0 am−n+1 v1 am−n = 0. ... ... vn am
Ñ ó÷åòîì ðàâåíñòâà v0 = 1 ïîëó÷àåì am ... am−n+1 v1 am+1 ... ... = − ... . ... ... am+n−1 ... am vn am+n Äëÿ íàãëÿäíîñòè âîçüìåì m = n = 3 , òîãäà a4 v1 a3 a2 a1 a4 a3 a2 v2 = − a5 . a6 v3 a5 a4 a3
(2)
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
279
 ìàòðèöå ýòîé ñèñòåìû êàæäûé ýëåìåíò îïðåäåëÿåòñÿ ðàçíîñòüþ ñòðî÷íîãî è ñòîëáöîâîãî èíäåêñîâ òàêèå ìàòðèöû íàçûâàþòñÿ . Ïåðåñòàâèâ â îáðàòíîì ïîðÿäêå ñòîëáöû, ïîëó÷àåì ìàòðèöó, â êîòîðîé ýëåìåíòû îïðåäåëÿþòñÿ ñóììîé èíäåêñîâ òàêèå ìàòðèöû íàçûâàþòñÿ . Èç íàøåé ñèñòåìû ïîñëå òàêîé ïåðåñòàíîâêè ïîëó÷àåòñÿ ðàâíîñèëüíàÿ ñèñòåìà
òåïëèöåâûìè
ãàíêåëåâûìè
a1 a2 a3
a2 a3 a4
a4 v3 a3 a4 v2 = − a5 . a6 v1 a5
 îáùåì ñëó÷àå ýòî áóäåò ñèñòåìà ñëåäóþùåãî âèäà:
am−n+1 ... am
... am vn am+1 ... = − ... , ... ... ... am+n−1 v1 am+n
(3)
èëè, â êðàòêîé çàïèñè, Amn vn = −amn .
(4)
àíêåëåâà ìàòðèöà Amn ñîñòàâëÿåòñÿ èç êîýèöèåíòîâ îðìàëüíîãî ðÿäà f(x) . Ïðè ýòîì â åå ëåâîì íèæíåì óãëó ïîìåùàåòñÿ êîýèöèåíò am , à ïîðÿäîê ìàòðèöû ðàâåí n . Åñëè i < 0 , òî ñ÷èòàåòñÿ, åñòåñòâåííî, ÷òî ai = 0 . Ñòîëáåö ïðàâîé ÷àñòè amn ÿâëÿåòñÿ ïîñëåäíèì ñòîëáöîì ðàñøèðåííîé ïðÿìîóãîëüíîé ãàíêåëåâîé ìàòðèöû [Amn , amn ] . Òàêèì îáðàçîì, (m, n) (4). Ïîñëåäíåå îçíà÷àåò, ÷òî
äå òèïà ñèñòåìû
âîïðîñ î ñóùåñòâîâàíèè àïïðîêñèìàöèè Ïàðàâíîñèëåí âîïðîñó î ðàçðåøèìîñòè ëèíåéíîé amn ∈ im Amn ,
è, â ñèëó òåîðåìû ÊðîíåêåðàÊàïåëëè, ðàâíîñèëüíî óñëîâèþ rank Amn = rank[Amn , amn ].
(5)
280
Å. Å. Òûðòûøíèêîâ
2. Ìåòîä ñêà÷êîâ
àññìîòðèì ïîëóáåñêîíå÷íóþ ãàíêåëåâó ìàòðèöó A = [ai+j−1 ],
1 6 i, j < ∞,
è åå âåäóùèå ïîäìàòðèöû. Ïóñòü Ak âåäóùàÿ ïîäìàòðèöà ïîðÿäêà k , à ïîñëåäîâàòåëüíîñòü íàòóðàëüíûõ ÷èñåë n1 < n2 < ...
îïðåäåëÿåò ïîðÿäêè òåõ è òîëüêî òåõ âåäóùèõ ïîäìàòðèö, êîòîðûå ÿâëÿþòñÿ íåâûðîæäåííûìè. Ìåòîä ñêà÷êîâ, ïðåäëîæåííûé â [2℄, ïðåäñòàâëÿåò ñîáîé ñõåìó ïåðåõîäà îò íåêîòîðîãî êîìïàêòíîãî ïðåäñòàâëåíèÿ ìàòðèöû A−1 nk ê àíàëîãè÷íîìó ïðåäñòàâëåíèþ äëÿ A−1 . Íàçâàíèå îáúÿñíÿåòñÿ òåì, ÷òî ïðè ýòîì ïðîèñõîäèò ¾ñêànk+1 ÷îê¿ ÷åðåç ïðîìåæóòî÷íûå âûðîæäåííûå ïîäìàòðèöû. Ñ îáùèìè âîïðîñàìè ïîñòðîåíèÿ áûñòðûõ àëãîðèòìîâ äëÿ ãàíêåëåâûõ è òåïëèöåâûõ ìàòðèö ìîæíî ïîçíàêîìèòüñÿ, íàïðèìåð, ïî ðàáîòàì [4, 5, 7℄. Àëãåáðàè÷åñêèå ñâîéñòâà ãàíêåëåâûõ ìàòðèö, ïîçâîëÿþùèå ñäåëàòü ¾ñêà÷îê¿, ìîæíî íàéòè òàêæå â êíèãå [6℄. Îíè òåñíî ñâÿçàíû ñ èçó÷åííûìè â [3℄ âîïðîñàìè áåñêîíå÷íîãî ïðîäîëæåíèÿ ãàíêåëåâîé ìàòðèöû ñ ñîõðàíåíèåì ðàíãà. Ìåòîä ñêà÷êîâ áàçèðóåòñÿ íà ñëåäóþùåì íàáëþäåíèè. Ïóñòü p = nk è q = nk+1 .  ñèëó íåâûðîæäåííîñòè Ap ñèñòåìà
a1 ... ap
... ap s1 ap+1 ... = ... ... ... ... a2p−1 sp a2p
èìååò åäèíñòâåííîå ðåøåíèå. Äðóãèìè ñëîâàìè, óñå÷åííûå äî p ýëåìåíòîâ ñòîëáöû ñ 1-ãî ïî p -é ëèíåéíî íåçàâèñèìû, à òàêèì æå îáðàçîì óñå÷åííûé p+1 -é ñòîëáåö ÿâëÿåòñÿ èõ ëèíåéíîé êîìáèíàöèåé ñ êîýèöèåíòàìè s1 , ... , sp . Âïîëíå âîçìîæíî, ÷òî òå æå êîýèöèåíòû ïîçâîëÿþò ïîëó÷èòü p + 1 -é ñòîëáåö êàê ëèíåéíóþ êîìáèíàîëüøåãî öèþ ïðåäûäóùèõ ñòîëáöîâ ïðè óñå÷åíèè äî p+1 èëè äàæå á ÷èñëà ýëåìåíòîâ.
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
281
Òåîðåìà 1. Ïóñòü r(p) > p ìèíèìàëüíûé ðàçìåð óñå÷åíèÿ, ïðè êîòîðîì p + 1 -é ñòîëáåö íå ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ. Òîãäà nk+1 = r(nk ). Äîêàçàòåëüñòâî. Ïóñòü p = n
è r = r(p) . Òîãäà 0 ap+1 ... −s ... 1 a2p 0 ... = , ... −sp ... 0 ar+p−1 1 ar+p γ k
a1 ... ap ... ar−1 ar
... ... ... ... ... ...
ap ... a2p−1 ... ar+p−2 ar+p−1
Îòñþäà ïîëó÷àåì ðàâåíñòâî −s1 ... −s1 ... ... ... −s ... ... p Ar 1 −sp ... 1 ... ... ... ... ... −sp 1 =
γ
1 1 ...
a1 a2 ... ap γ ap+1 ... ... ... ... γ ... ... ar ... ... ...
γ 6= 0.
1 =
a2 a3 ... ap+1 ap+2 ... ... ar+1
... ap ... ap+1 ... ... ... a2p−1 ... a2p ... ... ... ... ... ar+p−1
.
(6) Ïðè p = nk ìàòðèöà Ap íåâûðîæäåííàÿ. Ïîýòîìó ÿñíî, ÷òî íåâûðîæäåííîñòü îêàéìëÿþùåé åå ìàòðèöû Ar ðàâíîñèëüíà óñëîâèþ γ 6= 0 .
282
Å. Å. Òûðòûøíèêîâ
Ñëåäñòâèå 1. Ïðè n
k
6 n 6 nk+1
èìååò ìåñòî ðàâåíñòî
dim ker An = min{n − nk , nk+1 − n}.
Äîêàçàòåëüñòâî. Íåïîñðåäñòâåííî èç (6) âûòåêàåò, ÷òî ïðè óìíî-
æåíèè An íà íåâûðîæäåííóþ ìàòðèöó ïîëó÷àåòñÿ ìàòðèöà, â êîòîðîé èìååòñÿ min{n − nk , nk+1 − n} íóëåâûõ ñòîëáöîâ, à îñòàëüíûå ñòîëáöû ëèíåéíîé íåçàâèñèìû. ^ n äëÿ ñëåäóþùåãî ðàñøèðåíèÿ ìàòðèöû Ââåäåì îáîçíà÷åíèå A An : a1 ... an an+1 ^ n = ... ... A ... ... . an ... a2n−1 a2n
Ñëåäñòâèå 2. Åñëè n
k
6 n < nk+1
, òî ðàâåíñòâî ðàíãîâ
^n rank An = rank A
(7)
èìååò ìåñòî â òîì è òîëüêî òîì ñëó÷àå, êîãäà n − nk < nk+1 − n.
(8)
Äîêàçàòåëüñòâî. Ñîãëàñíî òåîðåìå ÊðîíåêåðàÊàïåëëè, ðàâåíñòâî
(7) ðàâíîñèëüíî òîìó, ÷òî ïîñëåäíèé ñòîëáåö ðàñøèðåííîé ìàòðèöû ^ n ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé åå ïðåäûäóøèõ ñòîëáöîâ. Ïóñòü A p = nk è q = nk+1 . Çàïèøåì p 6 n = p + i < q . Çàìåòèì,÷òî p + 1 -é ñòîëáåö ìàòðèöû Aq−1 ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ ñ êîýèöèåíòàìè s1 , ..., sp . Òî æå âåðíî â îòíîøåíèè p+1 -ãî ñòîëáöà åå âåäóùèõ ïîäìàòðèö, ñîäåðæàùèõ Ap+1 . Åñëè p + 2i < q,
òî ýòî âåðíî äëÿ ìàòðèöû Ap+2i . Èñïîëüçóÿ ãàíêåëåâó ñòðóêòóðó ìàòðèö, îòñþäà ëåãêî âûâåñòè, ÷òî p + 1 + i -é (ïîñëåäíèé) ñòîëáåö ^ p+i ëèíåéíî âûðàæàåòñÿ ÷åðåç ïðåäûäóðàñøèðåííîé ìàòðèöû A ùèå p ñòîëáöîâ (ñ òåìè æå êîýèöèåíòàìè s1 , ..., sp ). Óñëîâèå p + 2i < q ðàâíîñèëüíî íåðàâåíñòâó n − p < q − n .
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
283
Îñòàåòñÿ äîêàçàòü, ÷òî (7) âëå÷åò çà ñîáîé (8). Ñîãëàñíî (7) ïî^ n ëèíåéíî âûðàæàåòñÿ ñëåäíèé ñòîëáåö ðàñøèðåííîé ìàòðèöû A ÷åðåç ñòîáöû An .  ýòîì ñëó÷àå ïðè ïåðåõîäå îò An ê An+1 ðàíã ìîæåò óâåëè÷èòüñÿ íå áîëåå ÷åì íà 1. Îò ïðîòèâíîãî, äîïóñòèì, ÷òî n − p > q − p.
Ñîãëàñíî ñëåäñòâèþ 1, rank An = n − min{n − p, q − n} = 2n − q, rank An+1 = n + 1 − min{n + 1 − p, q − n − 1} = 2n − q + 2. Ñëåäîâàòåëüíî,
rank An+1 = rank An + 2,
ò. å. ðàíã äîëæåí âûðàñòè áîëüøå, ÷åì íà 1.
Ñëåäñòâèå 3.  ñëó÷àå n
k
6 n < nk+1
åòñÿ òîãäà è òîëüêî òîãäà, êîãäà
íåðàâåíñòâî (8) âûïîëíÿ-
rank An+1 − rank An 6 1.
3. Äåòåðìèíàíòíîå òîæäåñòâî
Ïóñòü A ìàòðèöà ïîðÿäêà n , à Aij åå ïîäìàòðèöà ïîðÿäêà n−1 , ïîëó÷åííàÿ âû÷åðêèâàíèåì ñòðîêè i è ñòîëáöà j . Ïóñòü Aik;jl îáîçíà÷àåò ïîìàòðèöó ïîðÿäêà n − 2 , ïîëó÷åííóþ èç A âû÷åðêèâàíèåì ïàðû ñòðîê ñ íîìåðàìè i è k è ïàðû ñòîëáöîâ ñ íîìåðàìè j è l . Ñëåäóþùèé ðåçóëüòàò èçâåñòåí êàê òîæäåñòâî Ñèëüâåñòðà.
Òåîðåìà 2. Ïóñòü i < k è j < l . Òîãäà
det A det Aik;jl = det Aij det Akl − det Ail det Akj .
Äîêàçàòåëüñòâî. Íå îãðàíè÷èâàÿ îáùíîñòè, ìîæíî ñ÷èòàòü, ÷òî
i = j = n − 1 è k = l = n . Ïóñòü B = Aik;jl . Òîãäà ìàòðèöà A èìååò âèä B v q A = u c d . p g h
284
Å. Å. Òûðòûøíèêîâ
Ïðåäïîëîæèì ñíà÷àëà, ÷òî ïîäìàòðèöà B íåâûðîæäåííàÿ. Èñêëþ÷àÿ ïî àóññó u è p ñ ïîìîùüþ íåâûðîæäåííîãî áëîêà B , íàõîäèì
ãäå
I −uB−1 −pB−1
h1 = h−pB−1 q,
0 0 B 1 0 u 0 1 p
v q B c d = 0 g h 0
c1 = c−uB−1 v,
v c1 g1
g1 = g−pB−1 v,
q d1 , h1 d1 = d−uB−1 q.
Ñëåäîâàòåëüíî, det Aij det Akl − det Ail det Akj = (det B)2 (h1 c1 − g1 d1 ) = det B det A. Åñëè ìàòðèöà B âûðîæäåíà, òî òîæäåñòâî ñïðàâåäëèâî ïðè çàìåíå B íà ëþáóþ íåâûðîæäåííóþ ìàòðèöó Bε . Ïîñêîëüêó Bε ìîæíî âûáðàòü ñêîëü óãîäíî áëèçêî ê B , èíòåðåñóþùåå íàñ òîæäåñòâî ïîëó÷àåòñÿ ïðåäåëüíûì ïåðåõîäîì.
4. Òàáëèöà ìèíîðîâ
Ïðèñòóïèì ê èçó÷åíèþ áåñêîíå÷íîé ãàíêåëåâîé ìàòðèöû A = [ai+j ] , ñîñòàâëåííîé èç êîýèöèåíòîâ îðìàëüíîãî ðÿäà f(x) = ∞ P ai xi (åñëè i < 0 , òî ai = 0 ). Íàïîìíèì, ÷òî ÷åðåç Amn îáîi=0
çíà÷àåòñÿ åå ãàíêåëåâà ïîäìàòðèöà ïîðÿäêà n , ñîäåðæàùàÿ â ëåâîì íèæíåì óãëó êîýèöèåíò am . Íàñ èíòåðåñóåò ïîëóáåñêîíå÷íàÿ ìàòðèöà C = [cmn ] , ñîñòàâëåííàÿ èç ìèíîðîâ ìàòðèöû A : cmn = det Amn ,
Óñëîâèìñÿ ñ÷èòàòü, ÷òî cm0 = 1 .
0 6 m, n < ∞.
Ëåììà 1. cm,n+1 cm,n−1 = cm+1,n cm−1,n − c2mn .
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
285
Äîêàçàòåëüñòâî. Äàííîå ðàâåíñòâî åñòü íå ÷òî èíîå, êàê äåòåðìè-
íàíòíîå òîæäåñòâî Ñèëüâåñòðà (òåîðåìà 2), çàïèñàííîå äëÿ ãàíêåëåâîé ìàòðèöû Am,n+1 è åå ïîäìàòðèö, ïîëó÷àåìûõ ïðè âû÷åðêèâàíèè ïåðâûõ è ïîñëåäíèõ ñòðîê è ñòîëáöîâ è ïîýòîìó îñòàþùèõñÿ ãàíêåëåâûìè. Òàáëèöó ìèíîðîâ C äëÿ ãàíêåëåâîé ìàòðèöû A èíîãäà íàçû[1℄. Åå îñíîâíîå ñâîéñòâî çàêëþ÷àåòñÿ â îñîáîé âàþò C ñòðóêòóðå ðàñïîëîæåíèÿ íóëåé (íóëåâûõ ìèíîðîâ ìàòðèöû A ). Áóäåì íàçûâàòü ëþáóþ êîíå÷íóþ èëè áåñêîíå÷íóþ ïîäìàòðèöó, ñîñòàâëåííóþ èç ïîäðÿä èäóùèõ ñòðîê è ñòîëáöîâ. Îêíî íàçûâàåòñÿ , åñëè îíî ñîîòâåòñòâóåò êîíå÷íîé êâàäðàòíîé ïîäìàòðèöå èëè áåñêîíå÷íîé ïîäìàòðèöå, â êîòîðîé áåñêîíå÷íî ìíîãî êàê ñòðîê, òàê è ñòîëáöîâ. Âñå ïðèìûêàþùèå ê îêíó ýëåìåíòû áóäåì íàçûâàòü åãî ýòî ýëåìåíòû áîëåå øèðîêîãî îêíà íà ñòðîêàõ è ñòîëáöàõ, îêàéìëÿþùèõ äàííîå îêíî. Íàñ áóäóò èíòåðåñîâàòü è â ïåðâîì ñëó÷àå âñå ýëåìåíòû ìíîæåñòâà ñóòü íóëè, âî âòîðîì âñå îíè îòëè÷íû îò íóëÿ.  äàëüíåéøåì áóäåì ñ÷èòàòü, ÷òî a0 6= 0 . Òîãäà c0n 6= 0 ïðè n > 1 (îïðåäåëèòåëè ãàíêåëåâûõ òðåóãîëüíûõ ìàòðèö ñ íåíóëåâûì ýëåìåíòîì ïîáî÷íîé äèàãîíàëè). Êðîìå òîãî, ïðèìåì ñîãëàøåíèå î òîì, ÷òî cm0 = 1 ïðè m > 0.
-òàáëèöåé îêíîì êâàäðàòíûì îêíîì
ðàìîé íóëåâûå îêíà íåíóëåâûå ðàìû
Òåîðåìà 3. Ëþáîé íóëåâîé ýëåìåíò òàáëèöû ìèíîðîâ ëåæèò êâàäðàòíîìó íóëåâîìó îêíó ñ íåíóëåâîé ðàìîé.
C
ïðèíàä-
Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî
cm,n−1 = cm+1,n = 0 èëè cm,n+1 = cm+1,n = 0 . Ñîãëàñíî ëåììå 1 íàõîäèì cmn = 0 . Òàêèì îáðàçîì, ìàòðèöû âèäà 0 ∗ ∗ 0 , ∗ 0 0 ∗
íåïðåìåííî îêàçûâàþòñÿ íóëåâûìè. Ñ ó÷åòîì íåðàâåíñòâ cm0 6= 0 è c0n 6= 0 îòñþäà ñëåäóåò, ÷òî ëþáîé íóëåâîé ýëåìåíò ìàòðèöû C ïðèíàäëåæèò ïðÿìîóãîëüíîìó íóëåâîìó îêíó ñ íåíóëåâîé ðàìîé. Îñòàåòñÿ äîêàçàòü, ÷òî ëþáîå òàêîå îêíî ÿâëÿåòñÿ êâàäðàòíûì.
286
Å. Å. Òûðòûøíèêîâ
Ïóñòü cmn 6= 0 ýëåìåíò ðàìû, ðàñïîëîæåííûé â åå ëåâîì âåðõíåì óãëó. Ïðåäïîëîæèì, ÷òî cm+r,n+r 6= 0 åùå îäèí ýëåìåíò ðàìû òîãî æå îêíà, è äîêàæåì, ÷òî ýòîò ýëåìåíò íàõîäèòñÿ â ïðàâîì íèæíåì óãëó. Åñëè ýòî íå òàê, òî: (1) cm+r,n+r−1 = 0 , ëèáî (2) cm+r−1,n+r = 0 .
Ñëó÷àé
(1). Çàìåòèì, ÷òî ìàòðèöû Amn è Am+r,n+r ÿâëÿþòñÿ íåâûðîæäåííûìè âåäóùèìè ïîäìàòðèöàìè â ãàíêåëåâîé ìàòðèöå Am+r,n+r è ïðè ýòîì ïðîìåæóòî÷íûå âåäóùèå ïîäìàòðèöû Am+i,n+i ïðè 0 < i < r ÿâëÿþòñÿ âûðîæäåííûìè. Ñîãëàñíî ìåòîäó ñêà÷êîâ (òåîðåìà 1), n + 1 -é ñòîëáåö ìàòðèöû ìàòðèöû Am+r,n+r ñ âû÷åðêíóòîé ïîñëåäíåé ñòðîêîé ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ.  äàííîì ñëó÷àå cm+1,n 6= 0 è cm+r+1,n+r 6= 0 . Ïîýòîìó ìåòîä ñêà÷êîâ ìîæíî ïðèìåíèòü ê íåâûðîæäåííûì ãàíêåëåâûì ìàòðèöàì Am+1,n è Am+1+r,n+r è ñäåëàòü âûâîä î òîì, ÷òî n + 2 -é ñòîëáåö ìàòðèöû Am+r,n+r ñ âû÷åðêíóòîé ïîñëåäíåé ñòðîêîé ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ, íà÷èíàÿ ñî 2-ãî. Âû÷èòàÿ äàííûå ëèíåéíûå êîìáèíàöèè èç n+1 -ãî è n+2 -ãî ñòîëáöîâ, ìû íå èçìåíèì îïðåäåëèòåëü ìàòðèöû Am+r,n+r è ïîëó÷èì â íåì äâà ñòîëáöà ñ íóëåâûìè ýëåìåíòàìè, êðîìå ýëåìåíòîâ ïîñëåäíåé ñòðîêè. Ñëåäîâàòåëüíî, cm+r,n+r = det Am+r,n+r = 0 , ÷òî ïðîòèâîðå÷èò ñäåëàííîìó ðàíåå ïðåäïîëîæåíèþ. Ïîýòîìó ñ íåîáõîäèìîñòüþ cm+r,n+r−1 6= 0 . (2). Çàìåòèì, ÷òî cm+r,n+r+1 6= 0 (èíà÷å â ñèëó ëåììû 1 cm+r,n+r = 0 ). Òàêèì îáðàçîì, ìàòðèöû Am,n+1 è Am+r,n+r+1 íåâûðîæäåííûìè âåäóùèå ïîäìàòðèöû ñ âûðîæäåííûìè ïðîìåæóòî÷íûìè ïîäìàòðèöàìè. Ñîãëàñíî ìåòîäó ñêà÷êîâ, n + 2 -é ñòîëáåö â Am+r,n+r+1 ñ âû÷åðêíóòîé ïîñëåäíåé ñòðîêîé ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ. Îòñþäà íàõîäèì, ÷òî n + 2 -é ñòîëáåö ìàòðèöû Am+r,n+r ñ âû÷åðêíóòîé ïîñëåäíåé ñòðîêîé ÿâëÿåòñÿ ëèíåéíîé êîìáèíàöèåé ïðåäûäóùèõ ñòîëáöîâ. Êàê è ðàíüøå, òî æå âåðíî â îòíîøåíèè n+1 -ãî ñòîëáöà òîé æå ìàòðèöû. Îïÿòü ïðèõîäèì ê ïðîòèâîðå÷èþ ñ íåâûðîæäåííîñòüþ ìàòðèöû Am+r,n+r .
Ñëó÷àé
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
287
Ñëåäîâàòåëüíî, cm+r−1,n+r 6= 0 . Òàêèì îáðàçîì, â êàæäîì èç ñëó÷àåâ (1) è (2) ìû ïîëó÷àåì ïðîòèâîðå÷èå. Çíà÷èò, îäíîâðåìåííî èìååì cm+r,n+r 6= 0,
cm+r,n+r−1 6= 0,
cm+r−1,n+r 6= 0.
Ýòî îçíà÷àåò, ÷òî ýëåìåíò cm+r,n+r íàõîäèòñÿ â ïðàâîì íèæíåì óãëó ðàìû íóëåâîãî îêíà. Ïîñêîëüêó â ëåâîì âåðõíåì óãëó ðàçìåùàåòñÿ ýëåìåíò cmn , òî îêíî ÿâëÿåòñÿ êâàäðàòíûì. Åñëè îêàçàëîñü, ÷òî cm+r,n+r 6= 0 ïðè âñåõ r > 0 , òî èç ëåììû 1 ñðàçó æå âûòåêàåò, ÷òî äàííîå íóëåâîå îêíî ÿâëÿåòñÿ áåñêîíå÷íûì êâàäðàòíûì îêíîì.
5. Òåîðèÿ Ïàäå
Òåîðèÿ Ïàäå äàåò íåîáõîäèìîå è äîñòàòî÷íîå óñëîâèå ñóùåñòâîâàíèÿ àïïðîêñèìàöèè Ïàäå òèïà (m, n) â òåðìèíàõ ñòðóêòóðû íóëåé â òàáëèöå ìèíîðîâ, àññîöèèðîâàííîé ñ îðìàëüíûì ðÿäîì f(x) . Êàê ìû óæå çíàåì, íåîáõîäèìà è äîñòàòî÷íà ñîâìåñòíîñòü ñèñòåìû (4). Î÷åâèäíî, óñëîâèå cmn = det Amn 6= 0 ÿâëÿåòñÿ äîñòàòî÷íûì äëÿ ðàçðåøèìîñòè ýòîé ñèñòåìû. Îñíîâíîé ðåçóëüòàò äëÿ ñëó÷àÿ cmn = 0 îðìóëèðóåòñÿ ñëåäóþùèì îáðàçîì.
Òåîðåìà 4. Ïóñòü c
mn = 0 ïðèíàäëåæèò íóëåâîìó îêíó ìàòðèöû ñ íåíóëåâîé ðàìîé, èìåþùåé â ëåâîì âåðõíåì óãëó ýëåìåíò ckl 6= , à â ïðàâîì âåðõíåì óãëó ýëåìåíò ck+r,l+r . Òîãäà àïïðîêñèìàöèÿ Ïàäå òèïà (m, n) ñóùåñòâóåò â òîì è òîëüêî òîì ñëó÷àå, êîãäà k+l < m + n < k + l + r.
C 0
Äîêàçàòåëüñòâî. Ïóñòü c
st è cs+p,t+p ïðèíàäëåæàò íåíóëåâîé ðàìå äàííîãî íóëåâîãî îêíà è ïðè êàêîì-òî h > 0 ïîëó÷àåòñÿ m = s+h è n = t + h . Ìàòðèöà Ast ÿâëÿåòñÿ íåâûðîæäåííîé âåäóùåé ïîäìàòðèöåé â íåâûðîæäåííîé ãàíêåëåâîé ìàòðèöå As+p,t+p , ïðè÷åì ïîäìàòðèöû As+i,t+i âûðîæäåíû ïðè âñåõ 0 < i < p . Èç ìåòîäà ñêà÷êîâ âûòåêàåò (ñëåäñòâèå 2), ÷òî óñëîâèå ñîâìåñòíîñòè (5) ðàâíîñèëüíî íåðàâåíñòâó
(t + h) − t < (t + p) − (t + h)
⇔
h < p/2.
288
Å. Å. Òûðòûøíèêîâ
Îíî âûïîëíÿåòñÿ â òîì è òîëüêî ñëó÷àå, êîãäà m + n < k + l + r.
Òåîðåìà 5. Ïóñòü ckl è ck+r,l+r óãëîâûå ýëåìåíòû íåíóëåâîé ðàìû íóëåâîãî îêíà òàáëèöû ìèíîðîâ, è ïðåäïîëîæèì, ÷òî k 6 m , l 6 n . Òîãäà àïïðîêñèìàöèÿ Ïàäå òèïà (k, l) ÿâëÿåòñÿ òàêæå àïïðîêñèìàöèåé òèïà (m, n) , åñëè k + l 6 m + n < k + l + r . Åñëè ckl ÿâëÿåòñÿ óãëîâûì ýëåìåíòîì íåíóëåâîé ðàìû áåñêîíå÷íîãî íóëåâîãî îêíà, òî â ñëó÷àå k 6 m , l 6 n àïïðîêñèìàöèÿ Ïàäå òèïà (k, l) áóäåò òàêæå àïïðîêñèìàöèåé Ïàäå òèïà (m, n) , åñëè k + l 6 m + n . Äîêàçàòåëüñòâî. Ïóñòü k 6 m è l 6 n . Äîñòàòî÷íî çàìåòèòü, ÷òî åñëè vl åñòü ðåøåíèå ñèñòåìû
Akl vl = −akl ,
òî ïðè óñëîâèè k+l 6 m+n < k+l+r âûïîëíÿåòñÿ òàêæå ðàâåíñòâî 0 Amn l = −amn . v  ñëó÷àå áåñêîíå÷íîãî îêíà ýòî âåðíî ïðè âñåõ r > 0 .
Ñïèñîê ëèòåðàòóðû
[1℄ Äæ. Áåéêåð, Ï. ðåéâñ-Ìîððèñ, 1986.
Àïïðîêñèìàöèè Ïàäå, Ìèð,
Âû÷èñëèòåëüíûå ïðîöåññû ñ òåïëèöåâûìè ìàòðèöàìè [3℄ È. Ñ. Èîõâèäîâ, àíêåëåâû è òåïëèöåâû ìàòðèöû è îðìû,
[2℄ Â. Â. Âîåâîäèí, Å. Å. Òûðòûøíèêîâ, , Íàóêà, 1987, 320 ñ. Íàóêà, 1974, 264 ñ.
Òåïëèöåâû ìàòðèöû, íåêîòîðûå èõ àíàëîãè è ïðèëîæåíèÿ, ÎÂÌ ÀÍ, 1989.
[4℄ Å. Å. Òûðòûøíèêîâ,
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå
289
Ìåòîäû ÷èñëåííîãî àíàëèçà, Èçäàòåëü-
[5℄ Å. Å. Òûðòûøíèêîâ, ñêèé öåíòð ¾Àêàäåìèÿ¿, 2007.
Algebrai Methods for Toeplitz-like Matri es
[6℄ G. Heinig, K. Rost, , A ademie-Verlag, Berlin, 1984.
and Operators
[7℄ E. E. Tyrtyshnikov, Eu lidean Algorithm and Hankel Matri es // , AIP Conferen e Pro eedings. 2007. V. 936, Melville, New York. P. 2730.
Numeri al Analysis and Applied Mathemati s
Îá àëãîðèòìå ïîñòðîåíèÿ êîíîðìíîé êâàçè-èåðàðõè÷åñêîé òðåóãîëüíîé ñåòêè, ñëàáî δ -àïïðîêñèìèðóþùåé çàäàííûå ëîìàíûå $
Â. Í. ×óãóíîâ
Ïðåäëîæåí àëãîðèòì ïîñòðîåíèÿ êîíîðìíîé êâàçè-èåðàðõè÷åñêîé òðåóãîëüíîé ñåòêè, àïïðîêñèìèðóþùåé ñ òî÷íîñòüþ δ íàáîð çàäàííûõ ëîìàíûõ. Âîçìîæíîñòü ñäâèãà ëîìàíûõ â ïðåäåëàõ èõ δ -îêðåñòíîñòè ãàðàíòèðóåò ðàçðåøèìîñòü çàäà÷è. åçóëüòèðóþùàÿ ñåòêà èìååò íåáîëüøîå ÷èñëî òðåóãîëüíèêîâ è äîïóñêàåò ðåàëèçàöèþ ìíîãîñåòî÷íîãî ìåòîäà. Óñòàíîâëåíà êîíå÷íîñòü äàííîãî àëãîðèòìà è äîêàçàíà îöåíêà íà ðîñò ÷èñëà òðåóãîëüíèêîâ â ðåçóëüòèðóþùåé ñåòêå ïðè óìåíüøåíèè ïàðàìåòðà δ (ïîðÿäêà log22 δ−1 ). Ïðèâåäåíû ðåçóëüòàòû ðàáîòû àëãîðèòìà äëÿ êîíêðåòíîãî çàäàííîãî íàáîðà ëîìàíûõ.
1. Ââåäåíèå
Çàäà÷è ïîñòðîåíèÿ êîíîðìíîé òðåóãîëüíîé ñåòêè, óäîâëåòâîðÿþùåé íåêîòîðûì îãðàíè÷åíèÿì, ÷àñòî âñòðå÷àþòñÿ íà ïðàêòèêå. Íàáîð îãðàíè÷åíèé äèêòóåòñÿ ïîñòàíîâêîé çàäà÷è. Òèïè÷íûìè îãðàíè÷åíèÿìè ÿâëÿþòñÿ îòñóòñòâèå ìàëûõ óãëîâ ó òðåóãîëüíèêîâ ñåòêè, àïïðîêñèìàöèÿ ãðàíèöû îáëàñòè ðåáðàìè ñåòêè ñî âòîðûì ïîðÿäêîì îòíîñèòåëüíî äëèí ðåáåð. $ àáîòà âûïîëíåíà ïðè ÷àñòè÷íîé èíàíñîâîé ïîääåðæêå îññèéñêîãî îíäà
óíäàìåíòàëüíûõ èññëåäîâàíèé (ãðàíòû ÔÔÈ 05-01-00721 è 06-01-08052) è ïðîãðàììû óíäàìåíòàëüíûõ èññëåäîâàíèé îòäåëåíèÿ ìàòåìàòè÷åñêèõ íàóê ÀÍ ¾Âû÷èñëèòåëüíûå è èíîðìàöèîííûå ïðîáëåìû ðåøåíèÿ áîëüøèõ çàäà÷¿ ïî ïðîåêòó ¾Ìàòðè÷íûå ìåòîäû è òåõíîëîãèè äëÿ çàäà÷ ñî ñâåðáîëüøèì ÷èñëîì íåèçâåñòíûõ¿, à òàêæå èññëåäîâàòåëüñêîãî ãðàíòà ExxonMobil Corp. Èíñòèòóò âû÷èñëèòåëüíîé ìàòåìàòèêè ÀÍ (119333, Ìîñêâà, óë. óáêèíà, ä.8) e-mail: vadimba h.inm.ras.ru
292
Â. Í. ×óãóíîâ
Èçâåñòíû çàäà÷è, â êîòîðûõ âîçíèêàþò äîïîëíèòåëüíûå îãðàíè÷åíèÿ, ñâÿçàííûå ñ àïïðîêñèìàöèåé âíóòðåííèõ ãðàíèö. Ïðèìåðîì ìîæåò ñëóæèòü äâóìåðíàÿ ïîäçàäà÷à, âîçíèêàþùàÿ ïðè ìîäåëèðîâàíèè òðåõìåðíûõ òå÷åíèé â ïîðèñòûõ ñðåäàõ, îáëàäàþùèõ ñëîèñòîé ñòðóêòóðîé. Äëÿ ðåøåíèÿ ïîñëåäíåé çàäà÷è óäîáíî èñïîëüçîâàòü ïðèçìàòè÷åñêèå ñåòêè ñ îñíîâàíèÿìè ïðèçì, ëåæàùèìè íà ãðàíèöàõ ãåîëîãè÷åñêèõ ñëîåâ. Ñàìè ãåîëîãè÷åñêèå ñëîè, ñâÿçàííûå ñ ðàçëè÷íûìè ïîðîäàìè, èìåþò ïåðåìåííóþ òîëùèíó è ìîãóò ñóæàòüñÿ âïëîòü äî ïîëíîãî èñ÷åçíîâåíèÿ íà ëèíèÿõ âûðîæäåíèÿ, à òàêæå ìåíÿòü òîëùèíó ñêà÷êîîáðàçíî â ðàéîíå âåðòèêàëüíûõ ðàçëîìîâ çåìíîé êîðû. Äëÿ óñïåøíîãî ðåøåíèÿ çàäà÷ ìîäåëèðîâàíèÿ íåîáõîäèìî, ÷òîáû ïðèçìàòè÷åñêàÿ ñåòêà îòðàæàëà ýòè îñîáåííîñòè, à èìåííî, ëèíèè âûðîæäåíèÿ è ïîâåðõíîñòè âåðòèêàëüíûõ ðàçëîìîâ áûëè àïïðîêñèìèðîâàíû ðåáðàìè è ãðàíÿìè ïðèçì. Îäíèì èç ñïîñîáîâ ïîñòðîåíèÿ æåëàåìîé ñåòêè ÿâëÿåòñÿ ïðîåêòèðîâàíèå ðàçëîìîâ è ëèíèé âûðîæäåíèÿ íà äâóìåðíóþ îáëàñòü è çàäàíèå èõ ëîìàíûìè. Èìåÿ äâóìåðíóþ ñåòêó ñî ñòîðîíàìè òðåóãîëüíèêîâ, ëåæàùèìè íà ëîìàíûõ, ìîæíî ïóòåì äóáëèðîâàíèÿ äâóìåðíîé ñåòêè äëÿ êàæäîãî ãåîëîãè÷åñêîãî ñëîÿ ïîëó÷èòü òðåõìåðíóþ ñåòêó, ó÷èòûâàþùóþ èìåþùèåñÿ îñîáåííîñòè ñòðóêòóðû ïîðèñòîé ñðåäû. Ïîñòðîåíèå ñåòêè ñ âíóòðåííèìè ìíîæåñòâåííûìè îãðàíè÷åíèÿìè ìîæåò áûòü òàêæå èñïîëüçîâàíî êàê ïðè ðåøåíèè äðóãèõ ñëîæíûõ çàäà÷, òàê è ñàìî ïî ñåáå.
ìíîæåñòâåííûõ
Íàáîð óñëîâèé, íàêëàäûâàåìûõ íà àëãîðèòì, îïðåäåëÿåòñÿ ñëåäóþùèìè ìàòåìàòè÷åñêèìè òðåáîâàíèÿìè, ïðåäúÿâëÿåìûìè ê ñåòêå. Âî-ïåðâûõ, õîòåëîñü èìåòü âîçìîæíîñòü èñïîëüçîâàòü ïîëó÷àåìóþ ñåòêó ïðè ðåàëèçàöèè ìíîãîñåòî÷íûõ ìåòîäîâ [2℄, ÿâëÿþùèõñÿ íàèáîëåå ýåêòèâíûìè ìåòîäàìè ðåøåíèÿ êðàåâûõ çàäà÷. Ýòî ïðèâîäèò ê óñëîâèþ, ÷òîáû ïîëó÷åííàÿ ñåòêà áûëà çàêëþ÷èòåëüíûì çâåíîì íåêîòîðîé ïîñëåäîâàòåëüíîñòè ëîãè÷åñêè âëîæåííûõ äðóã â äðóãà ñåòîê, äëÿ êîòîðîé çàäàíî ïðàâèëî ïåðåõîäà îò îäíîé ñåòêè ê äðóãîé. Âî-âòîðûõ, òðåáîâàíèÿ óñòîé÷èâîñòè àïïðîêñèìàöèè êðàåâûõ çàäà÷ îãðàíè÷èâàåò êëàññ äâóìåðíûõ ñåòîê òðèàíãóëÿöèÿìè ñ òðåóãîëüíèêàìè ðåãóëÿðíîé îðìû [7, 9℄. Íàðÿäó ñ óäîâëåòâîðåíèåì ýòèì ìàòåìàòè÷åñêèì óñëîâèÿì, öåëü àëãîðèòìà çà-
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
293
êëþ÷àåòñÿ â òîì, ÷òîáû ðåçóëüòèðóþùàÿ ñåòêà ïîä÷èíÿëàñü òàêæå íàáîðó èçè÷åñêèõ òðåáîâàíèé. À èìåííî, ïîñòðîåííàÿ äâóìåðíàÿ ñåòêà äîëæíà îáëàäàòü íåáîëüøèì ÷èñëîì òðåóãîëüíèêîâ â ñèëó îãðàíè÷åíèé, íàêëàäûâàåìûõ âîçìîæíîñòÿìè âû÷èñëèòåëüíîé òåõíèêè ïðè ðåøåíèè çàäà÷, èñïîëüçóþùèõ òðåóãîëüíóþ ñåòêó. Êðîìå ýòîãî, òàê êàê äàííûå î âíóòðåííèõ ãðàíèöàõ íå ìîãóò áûòü òî÷íûìè èç-çà ïîãðåøíîñòåé èçìåðåíèé, âñåãäà ñóùåñòâóåò íåêîòîðûé ïîðîã äëÿ òî÷íîñòè àïïðîêñèìàöèè çàäàííûõ ëîìàíûõ, ÷òî äîïóñêàåò èõ íåçíà÷èòåëüíóþ ëîêàëüíóþ ìîäèèêàöèþ. Âûøåïðèâåäåííûå ñîîáðàæåíèÿ îïðåäåëÿþò ðàññìàòðèâàåìûé êëàññ ñåòîê è îãðàíè÷åíèé. Ñóùåñòâóåò íåñêîëüêî ìåòîäîâ ãåíåðàöèè òðåóãîëüíûõ ñåòîê [7, 9, 10℄, óäîâëåòâîðÿþùåé ìíîæåñòâåííûì îãðàíè÷åíèÿì, à òàêæå öåëûé ðÿä èõ ïðîãðàììíûõ ðåàëèçàöèé [15, 16℄. Ïåðâûé àëãîðèòì ïðèíàäëåæèò Áåéêåðó, ðîññå è àåðòè [3℄. Îíè ïðåäëîæèëè ìåòîä òðèàíãóëÿöèè îáëàñòè, ÿâëÿþùåéñÿ ìíîæåñòâîì ìíîãîóãîëüíèêîâ ñ óãëàìè íå ìåíåå 13o .  èòîãîâîé ñåòêå óãëû âñåõ òðåóãîëüíèêîâ íå ïðåâîñõîäÿò 90 ãðàäóñîâ è íàèìåíüøèé óãîë íå ìåíüøå 13o . Îäíàêî, ïîëó÷àþùàÿñÿ ñåòêà ÿâëÿåòñÿ ðàâíîìåðíîé è, ïîýòîìó, èìååò î÷åíü ìíîãî ñåòî÷íûõ ýëåìåíòîâ. Ïðîáëåìà áîëüøîãî ÷èñëà òðåóãîëüíèêîâ ïðè ðåøåíèè ðàññìàòðèâàåìîé çàäà÷è ïîçäíåå áûëà óñòðàíåíà Áåðíîì, Ýïøòåéíîì è èëüáåðòîì [5℄. Îíè ñîçäàëè ñåòî÷íûé ãåíåðàòîð ñ òðåóãîëüíèêàìè, èìåþùèìè îãðàíè÷åíèÿ íà îðìó è ðàçìåð, ïîä÷èíÿþùèåñÿ íà÷àëüíûì äàííûì. Êðîìå òîãî, àâòîðû ïîêàçàëè, ÷òî ñòðîÿùàÿñÿ èìè ñåòêà èìååò òðåóãîëüíèêè ñ îòíîøåíèåì ñòîðîí, íå ïðåâîñõîäÿùèì ÷èñëà 5. Èõ àëãîðèòì îñíîâàí íà èäåå ïðåäâàðèòåëüíîãî ðåêóðñèâíîãî ðàçáèåíèÿ îáëàñòè íà êâàäðàòû ðàçëè÷íîé îðìû. Äðóãèì ñïîñîáîì ðåøåíèÿ ïîñòàâëåííîé çàäà÷è ÿâëÿåòñÿ òðèàíãóëÿöèÿ Äåëîíý. Îáçîð àäåêâàòíûõ ìåòîäîâ äëÿ ïîñòðîåíèÿ òðèàíãóëÿöèé Äåëîíý ñ ìíîæåñòâåííûìè îãðàíè÷åíèÿìè ìîæíî íàéòè â [1, 13℄. Íàèáîëåå èçâåñòíûå ðåçóëüòàòû ïðåäñòàâëåíû â ðàáîòàõ ×üþ è àïïåðòà. ×üþ [8℄ ïðåäñòàâèë òðèàíãóëÿöèþ Äåëîíý, â êîòîðîé âñå òðåóãîëüíèêè èìåþò óãëû ìåæäó 30 è 120 ãðàäóñîâ, äëÿ îáëàñòè ñ íàèìåíüøèì óãëîì, îáðàçîâàííûì ãðàíèöàìè, íå ìåíüøå 30 ãðàäó-
294
Â. Í. ×óãóíîâ
ñîâ. Åãî àëãîðèòì ïðîèçâîäèò ðàâíîìåðíóþ ñåòêó. àïïåðò [12℄ ðàñøèðèë èäåè ×üþ, ïðåäëîæèâ àëãîðèòì òðèàíãóëÿöèè ïëàíàðíîãî ïðÿìîëèíåéíîãî ãðàà òàêîé, ÷òî âñå òðåóãîëüíèêè âûõîäíîé ñåòêè èìåþò óãëû ìåæäó α è π − 2α ( 0 < α < 20 ), ãäå α çàâèñèò îò âõîäíûõ îãðàíè÷åíèé. Ñåòêà ÿâëÿåòñÿ íåðàâíîìåðíîé. Àëãîðèòì àïïåðòà, ïîëó÷àÿ íà âõîä íåêîòîðóþ òðèàíãóëÿöèþ Äåëîíý, òî÷íî àïïðîêñèìèðóþùóþ ðåáðà ãðàà, âûäàåò ñåòêó ñ òðåóãîëüíèêàìè, óäîâëåòâîðÿþùèìè îãðàíè÷åíèÿì íà îðìó. Ïðè ýòîì íà÷àëüíàÿ àïïðîêñèìàöèÿ ñîõðàíÿåòñÿ. Òàêèì îáðàçîì, äàííûé àëãîðèòì ëèøü óëó÷øàåò èìåþùóþñÿ òðèàíãóëÿöèþ.  ñòàòüå [12℄ äîêàçûâàåòñÿ, ÷òî ÷èñëî òðåóãîëüíèêîâ â âûõîäíîé ñåòêå ïîëó÷àåòñÿ èç íà÷àëüíîãî ÷èñëà, óìíîæåíèåì íà êîíñòàíòó, çàâèñÿùóþ îò α .  ïðåäñòàâëÿåìîé ðàáîòå èññëåäóåòñÿ èíîé ïîäõîä ê ðåøåíèþ çàäà÷è.  îòëè÷èå îò îïèñûâàåìûõ âûøå ìåòîäîâ â ñòàòüå ïðåäñòàâëåí ãåíåðàòîð, êîòîðûé ïîëó÷àåò íà âõîä òðåóãîëüíóþ êîíîðìíóþ ñåòêó, òî÷íî àïïðîêñèìèðóþùóþ òîëüêî âíåøíþþ ãðàíèöó è íå ó÷èòûâàþùóþ âíóòðåííèå îãðàíè÷åíèÿ. åçóëüòèðóþùàÿ êîíîðìíàÿ íåðàâíîìåðíàÿ ñåòêà ñ òðåóãîëüíèêàìè, óäîâëåòâîðÿþùèìè îãðàíè÷åíèÿì íà îðìó, ñîõðàíÿÿ òî÷íóþ àïïðîêñèìàöèþ âíåøíåé ãðàíèöû, ïðèáëèæåíî àïïðîêñèìèðóåò âíóòðåííèå ãðàíèöû ñ çàäàííîé òî÷íîñòüþ δ . Ïðè ýòîì ñàìà àïïðîêñèìàöèÿ âíóòðåííèõ ãðàíèö âî âðåìÿ ïîñòðîåíèÿ ñåòêè ìîæåò ñäâèãàòüñÿ îò ãðàíèöû íà âåëè÷èíó íå áîëåå δ ñ öåëüþ áåçîòêàçíîé ðàáîòû àëãîðèòìà. Ïðåäñòàâëÿåìûé ãåíåðàòîð îáëàäàåò ðÿäîì ïðåèìóùåñòâ. Âî-ïåðâûõ, ïðîöåññ ïîñòðîåíèÿ ñåòêè ÿâëÿåòñÿ êîíñòðóêòèâíîé ïðîöåäóðîé. Èòîãîâàÿ ñåòêà ïîëó÷àåòñÿ èç íà÷àëüíîé ïîñëåäîâàòåëüíûì ïðèìåíåíèåì îäíîé èç äâóõ îïåðàöèé: ñäâèãà óçëà è ðàçáèåíèÿ òðåóãîëüíèêà íà äâà ìåòîäîì áèñåêöèè. Ýòî îáñòîÿòåëüñòâî äàåò âîçìîæíîñòü ââåñòè èåðàðõèþ ñåòîê äëÿ èñïîëüçîâàíèÿ ìíîãîñåòî÷íûõ ìåòîäîâ. Âî-âòîðûõ, ïðèáëèæåííàÿ àïïðîêñèìàöèÿ âíóòðåííèõ ãðàíèö è âîçìîæíîñòü åå ñäâèãà ïîçâîëÿþò ïðèìåíÿòü àëãîðèòì äëÿ ðàçíîîáðàçíûõ êîíèãóðàöèé çàäàííûõ âíóòðåííèõ îãðàíè÷åíèé. Â-òðåòüèõ, ÷èñëî òðåóãîëüíèêîâ â ïîëó÷åííîé ñåòêå áóäåò íåáîëüøèì áëàãîäàðÿ ïðèáëèæåííîé àïïðîêñèìàöèè âíóòðåííèõ ãðàíèö. Ìû äàåì íà íåãî îöåíêó,
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
295
çàâèñÿùóþ íå îò íà÷àëüíîé ñåòêè, à îò òî÷íîñòè àïïðîêñèìàöèè δ . Ïîñòàíîâêè çàäà÷, ðàññìàòðèâàåìûõ â ýòîé ñòàòüå, îáñóæäàþòñÿ â ðàçäåëå 2. Àëãîðèòì ðåøåíèÿ çàäà÷è ñëàáîé δ -àïïðîêñèìàöèè ëîìàíûõ, áóäåò îïèñàí â ðàçäåëå 3. Õàðàêòåðèñòèêà ñâîéñòâ ñåòêè, êîòîðóþ ñòðîèò ïðåäñòàâëÿåìûé àëãîðèòì, ñîäåðæèòñÿ â ïóíêòå 4.  ðàçäåëå 5 ïðèâåäåíû ïðèìåðû ðàáîòû ïðåäñòàâëÿåìîãî àëãîðèòìà. Àâòîð âûðàæàåò áëàãîäàðíîñòü Âàñèëåâñêîìó Þ. Â. çà ïîñòàíîâêó çàäà÷è, êîíñóëüòàöèè ïðè åå ðåøåíèè è íàïèñàíèè ñòàòüè.
2. Ïîñòàíîâêà çàäà÷è
 áîëåå îáùåì âèäå çàäà÷à àïïðîêñèìàöèè ëîìàíûõ ìîæåò áûòü ñîðìóëèðîâàíà ñëåäóþùèì îáðàçîì. Äàíà ãðóáàÿ íà÷àëüíàÿ êîíîðìíàÿ òðåóãîëüíàÿ ñåòêà, ïîêðûâàþùàÿ çàäàííóþ ïîëèãîíàëüíóþ îáëàñòü Ω , òî÷íî àïïðîêñèìèðóþùàÿ ãðàíèöó îáëàñòè Ω , è íåêîòîðîå ìíîæåñòâî ëîìàíûõ, çàäàâàåìûõ óïîðÿäî÷åííûì íàáîðîì òî÷åê íà ïëîñêîñòè. Çàäàííàÿ ñåòêà áóäåò ïîðîæäàòü ìíîæåñòâî ëîãè÷åñêè èåðàðõè÷åñêèõ êîíîðìíûõ ñåòîê, ïîëó÷àåìûõ ïîñëåäîâàòåëüíûì ìíîãîóðîâíåâûì ðàçáèåíèåì íåêîòîðûõ òðåóãîëüíèêîâ íà äâà ïîäòðåóãîëüíèêà ìåòîäîì áèñåêöèè [4, 11℄. Êîíîðìíûå ñåòêè, ïîëó÷àåìûå ñäâèãîì óçëîâ èåðàðõè÷åñêèõ ñåòîê, íàçûâàþòñÿ êâàçè-èåðàðõè÷åñêèìè ñåòêàìè. Ìíîæåñòâî êâàçè-èåðàðõè÷åñêèõ ñåòîê ïîçâîëÿåò îðãàíèçîâàòü ìíîãîñåòî÷íûå àëãîðèòìû íà îñíîâå èñêëþ÷èòåëüíî ãåîìåòðè÷åñêîé (òîïîëîãè÷åñêîé) èíîðìàöèè, ïîýòîìó èìåííî ýòè ñåòêè ðàññìàòðèâàþòñÿ íèæå. Äëÿ êàæäîãî òðåóãîëüíèêà îïðåäåëåíû äâå ÷èñëåííûå õàðàêòåðèñòèêè êà÷åñòâî îðìû è êà÷åñòâî àïïðîêñèìàöèè (ìíîæåñòâà ëîìàíûõ). Ïîä êà÷åñòâîì îðìû Qi òðåóãîëüíèêà i ïîíèìàåòñÿ âåëè÷èíà, îïðåäåëÿåìàÿ ïî îðìóëå [6, 14℄: Qi =
√ P02 Si Si ∗ 2 = 12 3 ∗ 2 , S0 Pi Pi
(1)
ãäå Si ïëîùàäü, Pi ïåðèìåòð òðåóãîëüíèêà i , P0 , S0 ïåðèìåòð è ïëîùàäü ëþáîãî ðàâíîñòîðîííåãî òðåóãîëüíèêà. Îòìåòèì,
296
Â. Í. ×óãóíîâ
÷òî Qi 6 1 , ïðè÷åì Qi = 1 òîëüêî äëÿ ðàâíîñòîðîííåãî òðåóãîëü^ i òðåóãîëüíèêà íèêà. Äëÿ âû÷èñëåíèÿ êà÷åñòâà àïïðîêñèìàöèè Q (l,j) ^ i ñíà÷àëà îïðåäåëÿåòñÿ êà÷åñòâî àïïðîêñèìàöèè Qi ïî îòíîøåíèþ ê êàæäîìó çâåíó j êàæäîé ëîìàíîé l : eñëè çâåíî j ëîìàíîé l ïåðåñåêàåò òðåóãîëüíèê i , òî ^ (l,j) = 1 − 2 ∗ min(S1 , S2 ) , Q (2) i S ãäå S ïëîùàäü òðåóãîëüíèêà, à S1 è S2 ïëîùàäè èãóð, íà êîòîðûå çâåíî j ëîìàíîé l ðàçáèâàåò òðåóãîëüíèê i ; â ïðîòèâíîì ñëó÷àå (ïåðåñå÷åíèÿ íåò) ïîëîæèì ^ (l,j) = 1. Q i
(3)
^ (l,j) = 1 äëÿ òðåóãîëüíèêà i , íå ðàçáèâàåìîãî çâåÒàêèì îáðàçîì, Q i ^ (l,j) îïðåíîì j ëîìàíîé l . Êàê òîëüêî êà÷åñòâî àïïðîêñèìàöèè Q i äåëåíî äëÿ êàæäîãî çâåíà j êàæäîé ëîìàíîé l , êà÷åñòâî àïïðîêñè^ i òðåóãîëüíèêà i áåðåòñÿ êàê ìèíèìóì ñðåäè íàéäåííûõ ìàöèè Q ^ (l,j) Q i ^ i = min min Q ^ (l,j) . Q (4) l
j
i
Äëÿ âñåé ñåòêè ǫ òàêæå ââåäåíî êà÷åñòâî îðìû ñåòêè Qǫ è êà^ ǫ êàê ìèíèìóì èç ñîîòâåòñòâóþùèõ ÷åñòâî àïïðîêñèìàöèè ñåòêè Q êà÷åñòâ òðåóãîëüíèêîâ Qǫ = min Qi , i ^ i. ^ ǫ = min Q Q
(5)
i
Â
íûõ
îïòèìèçàöèîííîé çàäà÷å òî÷íîé àïïðîêñèìàöèè ëîìà-
êâàçè-èåðàðõè÷åñêèìè ñåòêàìè òðåáóåòñÿ äëÿ çàäàííîãî ÷èñëà 0 < q0 < 1 ïîñòðîèòü êîíîðìíóþ êâàçè-èåðàðõè÷åñêóþ òðåóãîëüíóþ ñåòêó ǫ0 íà Ω , óäîâëåòâîðÿþùóþ óñëîâèþ ǫ0 = arg
min
^ ǫ =1 ǫ:Qǫ >q0 ,Q
nt(ǫ),
(6)
ãäå nt(ǫ) ÷èñëî òðåóãîëüíèêîâ â ñåòêå ǫ . Äðóãèìè ñëîâàìè, öåëü çàäà÷è äëÿ çàäàííîãî ÷èñëà q0 ïîñòðîèòü êîíîðìíóþ òðåóãîëüíóþ ñåòêó, óäîâëåòâîðÿþùóþ óñëîâèÿì: ñåòêà êâàçè-èåðàðõè÷íà; çàäàííûå ëîìàíûå àïïðîêñèìèðóþòñÿ ñòîðîíàìè òðåóãîëüíèêîâ, ò.å.
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
297
ëîìàíûå ëåæàò íà ðåáðàõ òðåóãîëüíèêîâ; òðåóãîëüíèêè èìåþò õîðîøåå êà÷åñòâî îðìû; ÷èñëî òðåóãîëüíèêîâ ìèíèìàëüíî. Îäíàêî, îïòèìèçàöèîííàÿ çàäà÷à òî÷íîé àïïðîêñèìàöèè ëîìàíûõ äîñòàòî÷íî ñëîæíà äëÿ ðåøåíèÿ. Çàìåíèì åå ìåíåå òðóäíîé: áóäåì ñ÷èòàòü, ÷òî çàäàííûå ëîìàíûå ìîãóò àïïðîêñèìèðîâàòüñÿ ñòîðîíàìè òðåóãîëüíèêîâ ñ íåêîòîðîé çàðàíåå çàäàâàåìîé òî÷íîñòüþ δ . Ïóñòü d(i) äèàìåòð òðåóãîëüíèêà i . Îïðåäåëèì äëÿ êàæäîãî ^ δi òðåóãîëüíèêà δ -êà÷åñòâî àïïðîêñèìàöèè Q ^ δi = Q
^ i, Q 1,
åñëè d(i) > δ, â ïðîòèâíîì ñëó÷àå,
(7)
^ δǫ à äëÿ ñåòêè δ -êà÷åñòâî àïïðîêñèìàöèè Q ^ δǫ = min Q ^ δi . Q
(8)
i
Òî åñòü, ëîìàíàÿ ìîæåò ïåðåñåêàòü òðåóãîëüíèê i ïî ëèíèè, íå ñîâïàäàþùåé ñ ðåáðîì, åñëè d(i) 6 δ . δ ñîñòîèò â òîì, ÷òîáû äëÿ çàäàííûõ ÷èñåë 0 < q0 < 1 , 0 < δ ≪ 1 ïîñòðîèòü êîíîðìíóþ êâàçè-èåðàðõè÷åñêóþ òðåóãîëüíóþ ñåòêó ǫ0 íà Ω òàêóþ, ÷òî ǫ0 = arg min nt(ǫ). (9)
Îïòèìèçàöèîííàÿ çàäà÷à -àïïðîêñèìàöèè ëîìàíûõ
^ δ =1 ǫ:Qǫ >q0 ,Q ǫ
Ïðåäëàãàåìûé íèæå àëãîðèòì ïðåäíàçíà÷åí äëÿ ðåøåíèÿ åùå áîëåå óïðîùåííîé çàäà÷è, íàçûâàåìîé â äàëüíåéøåì δ .  ýòîé çàäà÷å ðàçðåøàåòñÿ ñäâèãàòü ëîìàíûå íà ðàññòîÿíèå íå áîëüøå δ . Êàê áóäåò ïîêàçàíî íèæå, ýòî îáåñïå÷èâàåò ïîñòðîåíèå ïðèáëèæåííîãî ðåøåíèÿ çàäà÷è â íåêîòîðîì êëàññå ñåòîê. Ôàêòè÷åñêè, ìû ðàññìàòðèâàåì ïîñòðîåíèå êâàçè-èåðàðõè÷åñêîé ñåòêè ǫ0 , óäîâëåòâîðÿþùåé óñëîâèÿì Qǫ0 > q0 , ^ δǫ = 1 è ïîëó÷àþùåéñÿ èç çàäàííîé ïóòåì êàê ìîæíî ìåíüøåãî Q 0 ÷èñëà äåéñòâèé ñ óçëàìè ñåòêè è òðåóãîëüíèêàìè. Ïðèáëèæåííîñòü ðåøåíèÿ îáóñëîâëåíà çàìåíîé óñëîâèÿ ñòðîãîé ìèíèìèçàöèè ÷èñëà òðåóãîëüíèêîâ íà æåëàíèå ïîëó÷èòü ñåòêó ëèøü ñ íåáîëüøèì,
áîé -àïïðîêñèìàöèè ëîìàíûõ
çàäà÷åé ñëà-
298
Â. Í. ×óãóíîâ
ïî-âîçìîæíîñòè, ÷èñëîì ñåòî÷íûõ ýëåìåíòîâ33 . Îòìåòèì, ÷òî çàìåíà îïòèìèçàöèîííîé çàäà÷è òî÷íîé àïïðîêñèìàöèè ëîìàíûõ çàäà÷åé ñëàáîé δ -àïïðîêñèìàöèè ëîìàíûõ îáóñëîâëåíà íàëè÷èåì ïîãðåøíîñòè â ïðåäñòàâëåíèè äàííûõ. Ïåðåõîä ê óïðîùåííîé ïîñòàíîâêå, ñîõðàíÿþùåé ñóùíîñòü äâóìåðíîé ïîäçàäà÷è â ðàìêàõ òðåõìåðíîé çàäà÷è èëüòðàöèè, îáåñïå÷èâàåò ïðîñòîòó è íàäåæíîñòü ïðåäëàãàåìîãî àëãîðèòìà, â êîòîðîì áóäóò èñïîëüçîâàòüñÿ ëèøü äâå îñíîâíûå îïåðàöèè: ñäâèã óçëà è ðàçáèåíèå òðåóãîëüíèêà íà äâà ïîäòðåóãîëüíèêà [4, 11℄.  êà÷åñòâå ïàðàìåòðà δ ìîæíî ðàññìàòðèâàòü òî÷íîñòü ïðåäñòàâëåíèÿ íà÷àëüíûõ äàííûõ. Èç îïèñàíèÿ àëãîðèòìà áóäåò âèäíî, ÷òî ïðè δ , ñòðåìÿùèìñÿ ê íóëþ, çàäàííûå ëîìàíûå íå ñäâèãàþòñÿ, ñòîðîíû òðåóãîëüíèêîâ ïî÷òè òî÷íî èõ àïïðîêñèìèðóþò, à ÷èñëî òðåóãîëüíèêîâ ðàñòåò óìåðåííî.
3. Îïèñàíèå àëãîðèòìà
3.1. Îáîçíà÷åíèÿ è áàçîâûå îïåðàöèè..
Ïðåæäå, ÷åì èçëîæèòü àëãîðèòì ïîñòðîåíèÿ ñåòêè, îïèøåì ïðåäïîëîæåíèÿ, ïðè êîòîðûõ áóäåò ðåøàòüñÿ çàäà÷à ñëàáîé δ -àïïðîêñèìàöèè ëîìàíûõ, è ââåäåì íåêîòîðûå íåîáõîäèìûå â äàëüíåéøåì îáîçíà÷åíèÿ. Äàííóþ çàäà÷ó áóäåì ðåøàòü ïðè ñëåäóþùèõ ïðåäïîëîæåíèÿõ: ÷èñëî ëîìàíûõ è ÷èñëî çâåíüåâ â îäíîé ëîìàíîé íå áîëüøå íåêîòîðûõ çàäàííûõ çíà÷åíèé; ëþáàÿ ëîìàíàÿ íå èìååò ñàìîïåðåñå÷åíèé; êàæäàÿ ëîìàíàÿ ëåæèò â çàìûêàíèè Ω ; íè îäíà èç âíóòðåííèõ òî÷åê ëþáîé ëîìàíîé íå ëåæèò íà ãðàíèöå îáëàñòè Ω 34 . Ïðè îðìóëèðîâàíèè àëãîðèòìà íàì ïîíàäîáÿòñÿ ðàçëè÷íûå òèïû óçëîâ ñåòêè. Äëÿ ýòîãî âñå óçû ñåòêè ìû ðàçäåëèì íà íåïîäâèæíûå óçëû, ïîäâèæíûå âäîëü ãðàíèöû è ïîäâèæíûå â ëþáîì íàïðàâëåíèè.  äàëüíåéøåì íàì òàêæå ïîíàäîáèòñÿ ïîíÿòèå êà÷åñòâî îðìû óçëà, êîòîðîå ïîëîæèì ðàâíûì ìèíèìóìó èç êà÷åñòâ îðì âñåõ òðåóãîëüíèêîâ, ñîäåðæàùèõ äàííûé óçåë è îáðàçóþùèõ 33 Ñòðóêòóðà àëãîðèòìà ïîçâîëÿåò äîïîëíèòåëüíî ëîêàëüíî èçìåëü÷àòü ïîñòðîåííóþ ñåòêó. 34 Åñëè êàêàÿ-òî ëîìàíàÿ èìååò âíóòðåííþþ òî÷êó (èëè îòðåçîê) íà ãðàíèöå, ðàçîáúåì åå íà äâå, òîãäà òî÷êà íà ãðàíèöå áóäåò ãðàíè÷íîé äëÿ îáåèõ ëîìàíûõ (â ñëó÷àå îòðåçêà óäàëÿåì ýòîò îòðåçîê èç ëîìàíîé).
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
299
ñóïåðýëåìåíò äàííîãî óçëà. Òàêæå îïðåäåëèì ïîíÿòèå ñóïåðýëåìåíò òðåóãîëüíèêà êàê îáúåäèíåíèå ñóïåðýëåìåíòîâ åãî âåðøèí. Ââåäåì ÷èñëî ε êàê ìèíèìóì èç ðàññòîÿíèé ìåæäó äâóìÿ çâåíüÿìè ëîìàíûõ, íå èìåþùèõ îáùèõ òî÷åê, è ðàññòîÿíèé ìåæäó çâåíîì ëîìàíîé è îòðåçêîì ãðàíèöû âñåé îáëàñòè, êîòîðûé äàííîå çâåíî íå ïåðåñåêàåò. Òîãäà äëèíà ëþáîãî çâåíà ëþáîé ëîìàíîé íå ìåíüøå ε . Ïðè îïèñàíèè ïðîöåññà ïîñòðîåíèÿ ñåòêè ìû áóäåì èñïîëüçîâàòü äâå âñïîìîãàòåëüíûå ïðîöåäóðû. Îäíà èç íèõ ýòî ïðîöåäóðà , êîòîðàÿ ïðèìåíèìà ê ñåòêå, ó êîòîðûé ïîìå÷åíû íåêîòîðûå òðåóãîëüíèêè. Ïðîöåäóðà áèñåêöèè çàêëþ÷àåòñÿ â ðàçáèåíèè íà äâà êàæäîãî èç ïîìå÷åííûõ òðåóãîëüíèêîâ, à òàêæå íåêîòîðûõ äðóãèõ äëÿ ñîõðàíåíèÿ êîíîðìíîñòè ñåòêè. Âàæíûì ñâîéñòâîì BS àëãîðèòìà áèñåêöèè ÿâëÿåòñÿ ëîêàëüíîñòü: áèñåêöèÿ îäíîãî ïîìå÷åííîãî òðåóãîëüíèêà ìîæåò ïîðîæäàòü áèñåêöèþ ëèøü òðåóãîëüíèêîâ èç ñóïåðýëåìåíòà ïîìå÷åííîãî òðåóãîëüíèêà [1,2℄.  äàëüíåéøåì íàì ïîòðåáóåòñÿ åùå îäíî ñâîéñòâî KBS àëãîðèòìà áèñåêöèè, êîòîðîå çàêëþ÷àåòñÿ â òîì, ÷òî ïðèìåíåíèå ê äàííîé ñåòêå ëþáîãî ÷èñëà óðîâíåé áèñåêöèé íå óõóäøèò êà÷åñòâî îðìû ñåòêè áîëåå, ÷åì â äâà ðàçà [11℄. Òàêæå íàì áóäåò íåîáõîäèìà îïåðàöèÿ S(J, R, j0 , r0 , q ^ ) îäíîãî óçëà èç çàäàííîãî ïîäìíîæåñòâà J òî÷åê ñåòêè â îäíó èç òî÷åê ïðåäïèñàííîãî ìíîæåñòâà R . Åñëè âñå óçëû â J íåïîäâèæíû, ïðîöåäóðà âûäàåò èíîðìàöèþ î íåâîçìîæíîñòè ñäâèãà, èíà÷å îíà ñíà÷àëà ñòðîèò ïîäìíîæåñòâî ~J èç âñåõ ïîäâèæíûõ óçëîâ â J è ìîäåëèðóåò ñäâèã êàæäîãî ýëåìåíòà j ∈ ~J â êàæäóþ èç òî÷åê r ∈ R ñ öåëüþ íàéòè òàêóþ ïàðó ýëåìåíòîâ j0 ∈ ~J è r0 ∈ R , ÷òî ïðè ïåðåìåùåíèè j0 â r0 òðåóãîëüíèêè íå íàëåãàþò äðóã íà äðóãà è íå âûâîðà÷èâàþòñÿ, à êà÷åñòâî îðìû q(j0 ) óçëà j0 áóäåò ðàâíûì
áèñåêöèè
ïðîâåðêè âîçìîæíîñòè
ñäâèãà
q(j0 )|j0 → r0 = max max q(j)|j→ r , j∈~ J r∈R
äëÿ âñåõ ïàð j, r , îáåñïå÷èâàþùèõ êîíîðìíîñòü ïîëó÷àåìîé ñåòêè. Åñëè òàêàÿ ïàðà íàøëàñü, è ïîëó÷àåìîå êà÷åñòâî îðìû q(j0 ) óçëà j0 ïîñëå ñäâèãà íå íèæå q ^ , òî ïðîöåäóðà âûäàåò íà âûõîäå ïàðó
300
Â. Í. ×óãóíîâ
j0 , r0 , â ïðîòèâíîì ñëó÷àå âûäàåòñÿ èíîðìàöèÿ î íåâîçìîæíîñòè ñäâèãà. Çàìåòèì, ÷òî åñëè âåðøèíà ïîäâèæíà òîëüêî âäîëü ãðàíèöû, òî äëÿ íåå ñäâèã äîëæåí ìîäåëèðîâàòüñÿ òîëüêî äëÿ òåõ òî÷åê R , êîòîðûå íàõîäÿòñÿ íà ãðàíèöå. Îòìåòèì âàæíîå ñâîéñòâî SD îïåðàöèè ñäâèãà. Äëÿ ëþáîãî òðåóãîëüíèêà, ïåðåñåêàåìîãî íåêîé ïðÿìîé, ñîäåðæàùåé åãî âåðøèíó, ñäâèã áëèæàéøåé èç äðóãèõ âåðøèí (j) íà ïðÿìóþ íå óõóäøèò êà÷åñòâî îðìû ñäâèãàåìîãî óçëà q(j) áîëåå ÷åì â κ(q) ðàç. Òåïåðü ìîæíî ïåðåéòè ê îïèñàíèþ àëãîðèòìà ðåøåíèÿ íàøåé çàäà÷è, êîòîðûé áóäåò èñïîëüçîâàòü ïðîöåäóðû áèñåêöèè è ñäâèãîâ óçëîâ. Ïóñòü íà÷àëüíàÿ ñåòêà èìååò êà÷åñòâî îðìû q . Áóäåì ïðåäïîëàãàòü, ÷òî ïîðîã q0 èç (9) íå ïðåâîñõîäèò q/4 , ÷òî íåîáõîäèìî äëÿ îáåñïå÷åíèÿ âîçìîæíîñòè ñîâåðøàòü áèñåêöèè è ñäâèãè.
3.2. Îïèñàíèå àëãîðèòìà.
àññìàòðèâàåìûé àëãîðèòì ïîñòðîåíèÿ òðåóãîëüíîé êîíîðìíîé êâàçè-èåðàðõè÷åñêîé ñåòêè ǫ0 ñ íåáîëüøèì ÷èñëîì òðåóãîëüíèêîâ, èìåþùåé δ -êà÷åñòâî àïïðîê^ δǫ = 1 è êà÷åñòâî îðìû Qǫ0 > q0 , íà ïðåäâàðèòåëüñèìàöèè Q 0 íîì ýòàïå ìîæåò ñäâèíóòü ñàìè ëîìàíûå íà âåëè÷èíó íå áîëåå δ . Ýòî îáåñïå÷èâàåò ðàçðåøèìîñòü çàäà÷è ñëàáîé δ -àïïðîêñèìàöèè ëîìàíûõ äëÿ çàäàííîãî q0 . Àëãîðèòì âêëþ÷àåò â ñåáÿ òðè ýòàïà, äàëüíåéøåå îïèñàíèå êàæäîãî èç êîòîðûõ, ïðè íåîáõîäèìîñòè, áóäåò çàêàí÷èâàòüñÿ îáîñíîâàíèåì âîçìîæíîñòè ñîâåðøåíèÿ äåéñòâèé, ñîñòàâëÿþùèõ îñíîâó èçëîæåííîãî ýòàïà. àïïðîêñèìàöèÿ îáùèõ òî÷åê ñîñåäíèõ çâåíüåâ ëîìàíûõ (ò.í. òî÷åê èçëîìà), ãðàíè÷íûõ òî÷åê ëîìàíûõ è òî÷åê ïåðåñå÷åíèÿ ëîìàíûõ óçëàìè ñåòêè ñ ïîìîùüþ äîïóñòèìûõ îïåðàöèé, è, åñëè íåîáõîäèì, ñäâèã ëîìàíûõ íà âåëè÷èíó íå áîëåå δ . Ýòîò ýòàï ñîñòîèò èç íåñêîëüêèõ øàãîâ, ïðîèëëþñòðèðîâàííûõ íà ðèñ. 14. Ñòðîèì ìíîæåñòâî Z , ñîñòîÿùåå èç òî÷åê èçëîìà, ãðàíè÷íûõ òî÷åê ëîìàíûõ è òî÷åê ïåðåñå÷åíèÿ çàäàííûõ ëîìàíûõ (ðèñ. 1). Óäàëÿåì èç Z òî÷êè, êîòîðûå ëåæàò â óçëàõ ñåòêè, îáúÿâèâ ñîîòâåòñòâóþùèå óçëû ñåòêè íåïîäâèæíûìè. Äëÿ êàæäîãî òðåóãîëüíèêà i íàõîäèì ïîäìíîæåñòâî òî÷åê Zi ∈ Z , ïðèíàäëåæàùèõ ýòîìó òðåóãîëüíèêó. Åñëè òðåóãîëüíèê èìååò íåïóñòîå ìíîæå-
Ýòàï 1
Øàã 1-1. Øàã 1-2.
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
301
ñòâî Zi , îðìèðóåì ìíîæåñòâî Li èç òðåõ åãî âåðøèí è âûïîëíÿåì ïðîöåäóðó ïðîâåðêè âîçìîæíîñòè ñäâèãà S(Li , Zi , l0 , z0 , 4 ∗ q0 ) . Åñëè îíà äàåò ïîëîæèòåëüíûé ðåçóëüòàò, òî ñîâåðøàåì ñäâèã l0 â z0 , îáúÿâëÿåì âåðøèíó l0 íåïîäâèæíîé è èñêëþ÷àåì z0 èç Z , èíà÷å, â ñëó÷àå åñëè d(i) > δ , ìåòèì äàííûé òðåóãîëüíèê äëÿ ðàçáèåíèÿ (ðèñ. 2). Ïîñëå ïðîñìîòðà âñåõ òðåóãîëüíèêîâ ïðè íàëè÷èè ïîìå÷åííûõ âûïîëíÿåì ïðîöåäóðó áèñåêöèè, êîòîðàÿ äàåò äîïîëíèòåëüíûå ñòåïåíè ñâîáîäû. Åñëè ìíîæåñòâî Z ïóñòî, òî ïåðåõîäèì ê ýòàïó 2, èíà÷å ïîâòîðÿåì øàã 1-2 äî òåõ ïîð, ïîêà íå ïîëó÷èì ñåòêó, â êîòîðîé ëþáîé òðåóãîëüíèê i ëèáî íå ñîäåðæèò òî÷åê èç Z , ëèáî ñîäåðæèò òîëüêî îäíó òî÷êó è d(i) 6 δ (ðèñ. 3).
Øàã 1-3. Äëÿ êàæäîé òî÷êè èç Z ñîâåðøàåì ïðîöåäóðó ñäâèãà
ñàìîé òî÷êè èç Z íà âåëè÷èíó íå áîëåå δ , ÷òî ïðèâîäèò ê ñäâèãó ëîìàíûõ íå áîëåå, ÷åì íà δ . Äëÿ ýòîãî íà òðåóãîëüíèêå, åå ñîäåðæàùåì, ñòðîèì ëîêàëüíóþ ñåòêó, âêëþ÷àþùóþ ñàìè âåðøèíû òðåóãîëüíèêà, è èç íèõ îðìèðóåì ìíîæåñòâî Ri . Îïðåäåëèâ ìíîæåñòâî Li èç òðåõ âåðøèí òðåóãîëüíèêà, âûïîëíÿåì ïðîöåäóðó ïðîâåðêè âîçìîæíîñòè ñäâèãà S(Li , Ri , l0 , r0 , 2 ∗ q0 ) , êîòîðàÿ äàåò ïîëîæèòåëüíûé ðåçóëüòàò â ñèëó òîãî, ÷òî ñàìè âåðøèíû òðåóãîëüíèêà óæå ïðèíàäëåæàò ëîêàëüíîé ñåòêå è èõ êà÷åñòâî îðìû íå íèæå 2 ∗ q0 , òàê êàê íà÷àëüíàÿ ñåòêà èìåëà êà÷åñòâî íå õóæå 4 ∗ q0 , à íà øàãå 1-2 ïîäâåðãàëàñü ëèøü áèñåêöèè è ñäâèãàì S ñ êà÷åñòâîì 4 ∗ q0 . Ïåðåäâèãàåì òî÷êó Z â ýòó âûáðàííóþ òî÷êó ëîêàëüíîé ñåòêè r0 . Åñëè òî÷êà èç Z òî÷êà ïåðåñå÷åíèÿ äâóõ èëè áîëåå ëîìàíûõ, òî íàõîäèì â ýòèõ ëîìàíûõ çâåíüÿ, ñîäåðæàùèõ ýòó òî÷êó è äîáàâëÿåì òî÷êó èç Z â óïîðÿäî÷åííûå ñïèñêè òî÷åê, çàäàþùèõ ýòè ëîìàíûå. Òåïåðü â òî÷êó Z ìû ìîæåì ñäâèíóòü âåðøèíó òðåóãîëüíèêà l0 (ðèñ. 4) è çàèêñèðîâàòü åå. Íà ýòîì ïåðâûé ýòàï àëãîðèòìà çàâåðøåí.  ðåçóëüòàòå ïîëó÷àåì êîíîðìíóþ ñåòêó óçëàìè, ñîäåðæàùèìè âñå ýëåìåíòû ìíîæåñòâà Z , è êà÷åñòâîì îðìû, íå õóæå 2 ∗ q0 . Îòìåòèì, ÷òî øàã 1-2 ìîæåò ïðîèçâîäèòü ñåòêó, ñãóùàþùóþñÿ ê íåêîòîðîìó êîíå÷íîìó ÷èñëó òî÷åê, íå áîëüøåìó ÷åì ìîùíîñòü èçíà÷àëüíîãî ìíîæåñòâà Z . Äîñòè÷ü óñëîâèÿ, ÷òîáû âñå òî÷êè Z ëåæàëè â óçëàõ ñåòêè ïðè
302
Â. Í. ×óãóíîâ
çàäàííîì q0 âîçìîæíî ëèøü áëàãîäàðÿ øàãó 1-3. Åñëè q0 äîñòàòî÷íî âåëèêî, òî â ðåçóëüòàòå ðàáîòû òîëüêî øàãîâ 1-1 è 1-2 ñîâìåñòèòü âñå òî÷êè Z ñ óçëàìè ñåòêè íå â ëþáîì ñëó÷àå âîçìîæíî, òàê êàê áîëüøîå q0 íå âñåãäà äàåò âîçìîæíîñòü ñäâèãà óçëà, à çíà÷èò, ïðîöåññ èç øàãîâ 1-1 è 1-2 áåç îãðàíè÷åíèÿ íà äèàìåòð òðåóãîëüíèêîâ ìîæåò çàöèêëèòüñÿ. Øàã 1-3 äâèãàåò ñàìè òî÷êè Z òàê, ÷òîáû äëÿ çàäàííîãî q0 ìîæíî áûëî îñóùåñòâèòü ñäâèã.  ýòèõ ñëó÷àÿõ òî÷êà èç Z ñàìà ïåðåäâèãàåòñÿ â óçåë ñåòêè, îáåñïå÷èâàÿ òðåáóåìûé ðåçóëüòàò. Åñëè âàæíî ãàðàíòèðîâàííî ñîõðàíèòü âçàèìíîå ðàñïîëîæåíèå ëîìàíûõ, íåîáõîäèìî âûáðàòü δ ìåíüøå ÷åòâåðòè ε . Äåéñòâèòåëüíî, ïåðåä øàãîì 1-3 òî÷êè, åùå íåàïïðîêñèìèðîâàííûå óçëàìè ñåòêè, ïðèíàäëåæàò òðåóãîëüíèêàì ñ äèàìåòðîì íå áîëåå δ . Ïîýòîìó ñäâèã òî÷åê Z ìîæåò èõ ñáëèçèòü, íî ëèøü äî ðàññòîÿíèÿ 2δ = ε/2 , ÷òî îáåñïå÷èò îòñóòñòâèå âîçìîæíîãî ñëèÿíèÿ ðàçíûõ çâåíüåâ ðàçëè÷íûõ ëîìàíûõ. Èç îïèñàíèÿ øàãà 1 âèäíî, ÷òî âåëè÷èíà ñäâèãà ëîìàíûõ çàâèñèò îò ãåîìåòðèè ëîìàíûõ è îò δ ; êðîìå òîãî, åñëè δ óñòðåìèòü ê íóëþ, òî, íà÷èíàÿ ñ íåêîòîðîãî ìîìåíòà, ñäâèãà ëîìàíûõ âîîáùå íå ïðîèñõîäèò. Ñäâèã ëîìàíûõ ïðîèñõîäèò ëîêàëüíî, òàê êàê ïîñëå êàæäîãî ñäâèãà òî÷êè ìíîæåñòâà Z â íîâóþ òî÷êó ïîìåùàåòñÿ óçåë ñåòêè, è ðàññìàòðèâàåìûé ýëåìåíò Z èñêëþ÷àåòñÿ èç ìíîæåñòâà Z . Ïîýòîìó ëþáàÿ òî÷êà íîâîé ëîìàíîé áóäåò íàõîäèòüñÿ íà ðàññòîÿíèè íå áîëåå δ îò ñâîåãî ïðîîáðàçà íà ñòàðîé ëîìàíîé äàæå äëÿ ñóïåðïîçèöèè íåñêîëüêèõ ñäâèãîâ. ïðèáëèæåíèå ñòîðîí òðåóãîëüíèêîâ ê çâåíüÿì ëîìàíûõ ñ è ïîëüçîâàíèåì ëèøü äîïóñòèìûõ îïåðàöèé. Åñëè âñå òðåóãîëüíèêè èìåþò δ -êà÷åñòâî àïïðîêñèìàöèè ðàâíîå åäèíèöå, òî ïåðåõîäèì ê ýòàïó 3. àññìîòðèì êàæäûé òðåóãîëüíèê i ñ δ -êà÷åñòâîì àïïðîêñèìàöèè, îòëè÷íûì îò åäèíèöû. Åñëè åãî êà÷åñòâî àïïðîêñèìàöèè îòëè÷íî îò åäèíèöû äëÿ íåêîòîðîãî çâåíà j íåêîòîðîé ëîìàíîé l , è õîòÿ áû îäíà èç åãî âåðøèí, íå ëåæàùàÿ íà l , íåïîäâèæíà, òî ìåòèì òðåóãîëüíèê i äëÿ ðàçáèåíèÿ. Åñëè åñòü ïîìå÷åííûå òðåóãîëüíèêè, ñîâåðøàåì ïðî-
Ýòàï 2 Øàã 2-1. Øàã 2-2.
Øàã 2-3.
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
303
èñ. 1. Íà÷àëüíàÿ ñåòêà
(à) Íà÷àëüíàÿ ñåòêà è çàäàííûå ëîìàíûå
(á) Íà÷àëüíàÿ ñåòêà âáëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
öåäóðó áèñåêöèè è ïåðåõîäèì ê øàãó 2-1. Åñëè âñå òðåóãîëüíèêè èìåþò δ -êà÷åñòâî àïïðîêñèìàöèè ðàâíîå åäèíèöå, òî ïåðåõîäèì ê ýòàïó 3. Äëÿ êàæäîãî òðåóãîëüíèêà i , èìåþùåãî δ -êà÷åñòâî àïïðîêñèìàöèè, îòëè÷íîå îò åäèíèöû, íàõîäèì âåðøèíó, áëèæàéøóþ ê îäíîìó èç çâåíüåâ ëîìàíûõ, êîòîðîå ïåðåñåêàåò äàííûé òðåóãîëüíèê íå ïî ðåáðó, è îðìèðóåì èç íåå ìíîæåñòâî Li . Íà ñîîòâåòñòâóþùåì çâåíå ñòðîèì ëîêàëüíóþ ñåòêó íà òîé ÷àñòè, êîòîðàÿ ïåðåñåêàåò âñå òðè ñóïåðýëåìåíòà äëÿ òðåõ âåðøèí òðåóãîëüíèêà, îáðàçóåì èç íåå ìíîæåñòâî Ri è âûçûâàåì ïðîöåäóðó ïðîâåðêè âîçìîæíîñòè ñäâèãà S(Li , Ri , l0 , r0 , 2 ∗ q0 ) . Åñëè îíà äàåò îòðèöàòåëüíûé ðåçóëüòàò è d(i) > δ , òî ìåòèì ýòîò òðåóãîëüíèê äëÿ ïîñëåäóþùåãî ðàçáèåíèÿ. Åñëè îíà äàåò ïàðó l0 è r0 , òî ñíîñèì l0 â r0 ,
Øàã 2-4. Øàã 2-5.
304
Â. Í. ×óãóíîâ èñ. 2. Â ïðîöåññå ðàáîòû
(à) Â ïðîöåññå ðàáîòû øàãà 1-2
(á)  ïðîöåññå ðàáîòû øàãà 1-2 âáëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
èêñèðóåì l0 . Åñëè íà øàãå 2-5 ïðîèçîøëà ñäâèæêà õîòÿ áû îäíîãî óçëà, òî ñ÷èòàåì, ÷òî íåò ïîìå÷åííûõ òðåóãîëüíèêîâ, è ïåðåõîäèì ê øàãó 2-4.  ïðîòèâíîì ñëó÷àå ñîâåðøàåì ïðîöåäóðó áèñåêöèè è ïåðåõîäèì ê øàãó 2-4.  ðåçóëüòàòå ðàáîòû âòîðîãî ýòàïà ïîëó÷àåì êîíîðìíóþ òðåóãîëüíóþ ñåòêó, δ -êà÷åñòâî àïïðîêñèìàöèè òðåóãîëüíèêîâ â êîòîðîé ðàâíî åäèíèöå è êà÷åñòâî îðìû òðåóãîëüíèêîâ íå ìåíüøå q0 . Ïðî ñäâèãè S óçëîâ ìû òðåáóåì, ÷òîáû êà÷åñòâî áûëî íå õóæå 2 ∗ q0 , òàê êàê òðåóãîëüíèêè, êîòîðûå óæå àïïðîêñèìèðîâàëè ëîìàíûå, ïðè âûïîëíåíèè àëãîðèòìà ìîãóò ïîäâåðãàòüñÿ áèñåêöèÿì äëÿ îáåñïå÷åíèÿ êîíîðìíîñòè ñåòêè. Íî ïî ñâîéñòâó KBS èõ êà÷åñòâî íå óõóäøèòüñÿ áîëåå ÷åì â äâà ðàçà, òî åñòü èõ êà÷åñòâî áóäåò íå
Øàã 2-6.
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
305
èñ. 3. Ïîñëå øàãà 12
(à) Ïîñëå øàãà 12
(á) Ïîñëå øàãà 12 âáëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
ìåíüøå q0 . Èç îïèñàíèÿ âèäíî, ÷òî âòîðîé ýòàï ýòî ïîâòîðÿþùèåñÿ ïðîöåäóðû âûïîëíåíèÿ øàãîâ 2-1 2-3 è øàãîâ 2-4 2-6.  êà÷åñòâå ïðèìåðà íà (ðèñ. 56) ïðèâåäåíû ñåòêè ïîñëå âòîðîãî è ÷åòâåðòîãî ïîâòîðåíèé øàãîâ 2-4 2-6. óëó÷øåíèå êà÷åñòâà îðìû ñåòêè çà ñ÷åò ñäâèæêè ïîäâèæíûõ óçëîâ, åñëè ýòî âîçìîæíî.
Ýòàï 3
4. Àíàëèç àëãîðèòìà.
 ýòîì ðàçäåëå îïèøåì îñíîâíûå ñâîéñòâà àëãîðèòìà è ñäåëàåì íåêîòîðûå âàæíûå çàìå÷àíèÿ. . Ïðåäñòàâëåííûé àëãîðèòì ñòðîèò òðåóãîëüíóþ êîíîðìíóþ êâàçè-èåðàðõè÷åñêóþ ñåòêó ǫ0 , êîòîðàÿ èìååò δ -êà÷åñòâî ^ δǫ = 1 è êà÷åñòâî îðìû Qǫ0 > q0 , ïðåäâàðèàïïðîêñèìàöèè Q 0
Ñâîéñòâî I
306
Â. Í. ×óãóíîâ èñ. 4. Ïîñëå ýòàïà 1
(à) Ïîñëå ýòàïà 1
(á) Ïîñëå ýòàïà 1 âáëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
òåëüíî ïðè íåîáõîäèìîñòè ñäâèíóâ ëîìàíûå íà âåëè÷èíó íå áîëåå δ. Îòìåòèì, ÷òî â ñëó÷àå δ < ε/4 ðàññòîÿíèå ìåæäó ëþáûìè äâóìÿ íåïåðåñåêàþùèìèñÿ çâåíüÿìè îñòàåòñÿ ìåíüøå ε/2 . Òàêèì îáðàçîì, âçàèìíîå ðàñïîëîæåíèå ëîìàíûõ ñîõðàíÿåòñÿ ïîñëå ñäâèãà. . Àëãîðèòì ïîñòðîåíèÿ êîíîðìíîé òðåóãîëüíîé êâàçè-èåðàðõè÷åñêîé ñåòêè, ñëàáî àïïðîêñèìèðóþùåé ëîìàíûå ñ òî÷íîñòüþ δ , êîíå÷åí. Äåéñòâèòåëüíî, ïîñêîëüêó äèàìåòð òðåóãîëüíèêà íå ìåíüøå δ , òî ÷èñëî óðîâíåé ðàçáèåíèÿ íå ïðåâûøàåò 2 log2 δ−1 , ò. å. êîíå÷íî. . Ïóñòü ñåòêà ïîñëå øàãà 2-3 èìååò êà÷åñòâî îðìû q ~ . Øàãè 2-52-6 àëãîðèòìà ìîãóò óõóäøèòü êà÷åñòâî îðìû íå áîëüøå, ÷åì â 2κ2 (q ~ ) ðàç, ãäå κ(q ~ ) êîíñòàíòà èç ñâîéñòâà SD îïå-
Ñâîéñòâî II
Ñâîéñòâî III
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
307
èñ. 5. Ïîñëå äâóõ ïîâòîðåíèé øàãîâ 2-4 2-6
(à) Ïîñëå äâóõ ïîâòîðåíèé øàãîâ 2-4 2-6
(á) Ïîñëå äâóõ ïîâòîðåíèé øàãîâ 2-4 2-6 âëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
ðàöèè ñäâèãà. Ïîýòîìó ïîðîã êà÷åñòâà îðìû äîëæåí âûáèðàòüñÿ ñ ~ /2κ2 (q ~ ) . Äåéñòâèòåëüíî, ðàññìîòðèì îòðåçîê îãðàíè÷åíèåì q0 < q çâåíà ëîìàíîé, êîòîðûé åùå íå àïïðîêñèìèðîâàí ðåáðàìè òðåóãîëüíèêîâ, íå ñîäåðæèò âíóòðè óçëîâ ñåòêè, è íå ÿâëÿåòñÿ ÷àñòüþ äðóãîãî áîëüøåãî îòðåçêà, òàêæå íå àïïðîêñèìèðîâàííîãî ðåáðàìè òðåóãîëüíèêîâ. Îòìåòèì, ÷òî êîíöû ýòîãî îòðåçêà ëåæàò â óçëàõ ñåòêè, à â ñèëó îêîí÷àíèÿ øàãîâ 2-1 2-3 ëþáîé òðåóãîëüíèê, ïåðåñåêàþùèé äàííûé îòðåçîê, íå èìååò íåïîäâèæíûõ âåðøèí, íå ëåæàùèõ íà ðàññìàòðèâàåìîì îòðåçêå. àññìîòðèì ñëåäóþùóþ ïîñëåäîâàòåëüíîñòü äåéñòâèé äëÿ àïïðîêñèìàöèè äàííîãî îòðåçêà. Âîçüìåì òðåóãîëüíèê i , ïåðåñåêàþùèéñÿ ñ äàííûì îòðåçêîì íå ïî ðåáðó, è ñîäåðæàùèé îäèí èç êîíöîâ
308
Â. Í. ×óãóíîâ èñ. 6. Ïîñëå ÷åòûðåõ ïîâòîðåíèé øàãîâ 2-4 2-6
(à) Ïîñëå ÷åòûðåõ ïîâòîðåíèé øàãîâ 2-4 2-6
(á) Ïîñëå ÷åòûðåõ ïîâòîðåíèé øàãîâ 2-4 2-6 âëèçè òî÷êè ñáëèæåíèÿ ëîìàíûõ
îòðåçêà (ðèñ. 7). Ïðè äàííîì ìàëîì q0 ìû ìîæåì ñäâèíóòü íà ëîìàíóþ áëèæàéøóþ èç âåðøèí j0 äàííîãî òðåóãîëüíèêà. Ïî ñâîéñòâó SD êà÷åñòâî ~ /κ ). îðìû ñäâèíóòîãî óçëà óõóäøèòñÿ íå áîëåå, ÷åì â κ ðàç ( q Ïðè ýòîì ñäâèã j0 ñðàçó ñòàâèò íà ëîìàíóþ öåëîå ðåáðî, èçìåíÿÿ êà÷åñòâî îðìû òîëüêî ó òðåóãîëüíèêîâ èç ñóïåðýëåìåíòà j0 , íî óëó÷øàÿ äî åäèíèöû êà÷åñòâî àïïðîêñèìàöèè äëÿ òðåóãîëüíèêà i îòíîñèòåëüíî çâåíà, ñîäåðæàùåãî ðàññìàòðèâàåìûé îòðåçîê. Ïîñëå ñäâèãà j0 â ñóïåðýëåìåíòå j0 ïîÿâëÿåòñÿ ëèøü îäèí òðåóãîëüíèê (ñêàæåì i0 ) ñ ïëîõèì êà÷åñòâîì àïïðîêñèìàöèè îòíîñèòåëüíî èññëåäóåìîãî çâåíà, è ñîäåðæàùèé óçåë j0 (ðèñ. 8). Åãî êà÷åñòâî îðìû íå õóæå q ~ /κ .
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
309
èñ. 7. Íà÷àëüíîå ðàñïîëîæåíèå òðåóãîëüíèêîâ è çâåíà ëîìàíîé B B B @ B i @ B 0 @ B HH @ H B j 0 HH @ j1 B A A A A A i HH HH H
Äàëåå, àëãîðèòì ñäâèíåò íà ëîìàíóþ óçåë j1 , áëèæàéøóþ âåðøèíó òðåóãîëüíèêà i0 . Íåñìîòðÿ íà âîçìîæíî íîâîå óõóäøåíèå êà~ /κ2 ïîñëå ñäâèãà óçëà j1 (ñî÷åñòâî îðìû òðåóãîëüíèêà i0 äî q ãëàñíî ñâîéñòâó SD ), îí íà÷èíàåò àïïðîêñèìèðîâàòü ëîìàíóþ. Ïîýòîìó äàëåå ñóïåðýëåìåíò j0 íå áóäåò ïîäâåðãàòüñÿ ñäâèãàì. Ïî àíàëîãèè ñ óçëîì j0 ïîñëå ñäâèãà óçëà j1 ó íàñ ïîÿâèòñÿ òðåóãîëüíèê i1 ñ êà÷åñòâîì àïïðîêñèìàöèè, îòëè÷íûì îò åäèíèöû, è ñîäåðæàùèé âåðøèíó j1 . Ýòîò òðåóãîëüíèê èìååò êà÷åñòâî îðìû íå ìåíüøå q ~ /κ (ñâîéñòâî SD ), òàê êàê îí íå ïðèíàäëåæèò ñóïåðýëåìåíòó j0 è äî ñäâèãà j1 èìåë êà÷åñòâî îðìû íå ìåíüøå q ~ , ïîýòîìó äëÿ íåãî ìîæíî ïðèìåíèòü îïåðàöèþ ñäâèãà óçëà. Çíà÷èò, âîçìîæåí ïîñëåäîâàòåëüíûé ïðîöåññ àïïðîêñèìàöèè ëîìàíûõ, êîòîðûé íå ïðèâåäåò ê öåïî÷êå íàðàùèâàåìîãî óõóäøåíèÿ êà÷åñòâà îðìû êàêèõ-íèáóäü òðåóãîëüíèêîâ, à áóäåò ïîääåðæèâàòü êà÷åñòâî îðìû àïïðîêñèìèðóþùèõ òðåóãîëüíèêîâ íå íèæå q ~ /κ2 . Ïîñëåäóþùèå âîçìîæíûå áèñåêöèè àïïðîêñèìèðóþùèõ òðåóãîëüíèêîâ äëÿ ñîõðàíåíèÿ êîíîðìíîñòè ñåòêè ìîãóò óõóäøèòü èõ êà÷åñòâî îð-
310
Â. Í. ×óãóíîâ
èñ. 8. àñïîëîæåíèå òðåóãîëüíèêîâ è çâåíà ëîìàíîé ïîñëå ñäâèãà óçëà. B B B B
@ @ B
i0 @ i1 B
A @ A B
j1 @ A B
A j0
A HH HH H H i HH HH
ìû íå áîëåå ÷åì â äâà ðàçà (äî q ~ /2κ2 ) ïî ñâîéñòâó KSD . Ïîñêîëüêó ëþáàÿ ïîñëåäîâàòåëüíîñòü äåéñòâèé â øàãàõ 2-526 ïðåäñòàâëÿåòñÿ êàê ñîâîêóïíîñòü ïîñëåäîâàòåëüíîñòåé, àíàëîãè÷íûõ òîëüêî ÷òî ðàññìîòðåííîé ïîñëåäîâàòåëüíîñòè, îöåíêè êà÷åñòâà îðìû ïåðåíîñÿòñÿ íà ñëó÷àé ïðîèçâîëüíîãî âûïîëíåíèÿ ñäâèãîâ. Ýòî è äîêàçûâàåò ñâîéñòâî III. Òåïåðü ïåðåéäåì ê âîïðîñó îá îöåíêå ÷èñëà òðåóãîëüíèêîâ â çàâèñèìîñòè îò âåëè÷èíû δ . àññìîòðèì ñåòêó, ïîëó÷àþùóþñÿ ðàâíîìåðíûì èçìåëü÷åíèåì èñõîäíîé. Äèàìåòð ëþáîãî òðåóãîëüíèêà â ïîëó÷åííîé ñåòêå ìåíüøå δ , à ïîýòîìó èìååò ïëîùàäü ìåíüøå O(δ2 ) . Ñëåäîâàòåëüíî, ÷èñëî òðåóãîëüíèêîâ â ðåçóëüòèðóþùåé ñåòêå O(δ−2 ) . Îöåíèì ÷èñëî òðåóãîëüíèêîâ äëÿ ñåòêè, êîòîðàÿ èìååò ñãóùåíèå ê ëèíèÿì. àññìîòðèì ëþáîå çâåíî çàäàííîé ëîìàíîé. Ïóñòü åãî äëèíà l , à ÷èñëî òðåóãîëüíèêîâ, êîòîðîå îíî ïåðåñåêàåò (âêëþ÷àÿ
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
311
èñ. 9. àñïîëîæåíèå òðåóãîëüíèêîâ, ïðèâîäÿùåå ê âîçìîæíîìó ñãóùåíèþ ñåòêè Y
HH HH
A C @ A C @ P P @ PP A C P @ A P C
@ @ C
@ C @C
X HH
HH
ïåðåñå÷åíèå ïî ñòîðîíå) n . Òîãäà l ïðîïîðöèîíàëüíî n ∗ δ , ò. å. n ïðîïîðöèîíàëüíî l/δ . Ñëåäîâàòåëüíî, ÷èñëî òðåóãîëüíèêîâ â òàêîé ñåòêå O(δ−1 ) . Òåïåðü ïðîàíàëèçèðóåì àëãîðèòì, îïèñàííûé â ïðåäûäóùåì ïàðàãðàå. Âîïðîñ îá îöåíêå ÷èñëà òðåóãîëüíèêîâ çàâèñèò îò âçàèìíîãî ðàñïîëîæåíèÿ çàäàííûõ ëîìàíûõ. Åñëè δ > ε , òî àëãîðèòì ðåøåíèÿ çàäà÷è ñëàáîé δ -àïïðîêñèìàöèè ëîìàíûõ îêîëî òî÷åê ñáëèæåíèÿ íåïåðåñåêàþùèõñÿ çâåíüåâ ìîæåò ïîðîæäàòü ñåòêó, ñãóùàþùóþñÿ ê ëèíèè.  ÷àñòíîñòè, åñëè ñóùåñòâóþò äâà çâåíà, ðàñïîëîæåííûå ïàðàëëåëüíî íà ðàññòîÿíèè ε , òî àëãîðèòì ïðîèçâåäåò ñåòêó ñî ñãóùåíèåì ê çâåíó, è ïîýòîìó èìåþùóþ ÷èñëî òðåóãîëüíèêîâ ïîðÿäêà O(δ−1 ) . Ïîýòîìó â äàëüíåéøåì áóäåì ñ÷èòàòü, ÷òî δ ≪ ε. . Àëãîðèòì, îïèñàííûé â ïðåäûäóùåì ïàðàãðàå, ïðè δ ≪ ε áóäåò èìåòü ÷èñëî òðåóãîëüíèêîâ íå áîëüøå log22 δ−1 . Ýòî ñëåäóåò íåïîñðåäñòâåííî èç ñëåäóþùåé òåîðåìû.
Ñâîéñòâî IV
312
Â. Í. ×óãóíîâ èñ. 10. Íà÷àëüíàÿ ñåòêà è ñåòêà ïîñëå ýòàïà 1, q0 = 0.15
Òåîðåìà. Ïóñòü äàíà ãðóáàÿ íà÷àëüíàÿ êîíîðìíàÿ òðåóãîëüíàÿ ñåòêà, ïîêðûâàþùàÿ çàäàííóþ ïîëèãîíàëüíóþ îáëàñòü Ω è òî÷íî àïïðîêñèìèðóþùàÿ ãðàíèöó îáëàñòè Ω . Îïèñàííûé â ïðåäûäóùåì ðàçäåëå àëãîðèòì ïîñòðîåíèÿ êîíîðìíîé êâàçè-èåðàðõè÷åñêîé òðåóãîëüíîé ñåòêè, àïïðîêñèìèðóþùåé çàäàííîå ìíîæåñòâî ëîìàíûõ ñ òî÷íîñòüþ δ ≪ ε , ïîðîæäàåò ñåòêó, ñãóùàþùóþñÿ ïðè äîñòàòî÷íî ìàëîì q0 ê ÷èñëó òî÷åê íå áîëüøå O(log2 δ−1) . Äåéñòâèòåëüíî, ðàññìîòðèì ñåòêó, ñãóùàþùóþñÿ ê îäíîé òî÷êå. Äëÿ äîñòèæåíèÿ óñëîâèÿ, ÷òî äèàìåòð òðåóãîëüíèêà âáëèçè òî÷êè ñãóùåíèÿ ñòàë ìåíüøå δ , íåîáõîäèìî ñîâåðøèòü O(log2 δ−1 ) áèñåêöèé, à êàæäàÿ áèñåêöèÿ ïîðîæäàåò ëèøü îãðàíè÷åííîå ÷èñëî òðåóãîëüíèêîâ ïî ñâîéñòâó BS . Ñëåäîâàòåëüíî, ñåòêà ñ îäíîé òî÷êîé ñãóùåíèÿ èìååò O(log2 δ−1 ) ÷èñëî òðåóãîëüíèêîâ. Åñëè ÷èñëî òî÷åê ñãóùåíèÿ O(log2 δ−1 ) , òî ÷èñëî òðåóãîëüíèêîâ â ñåòêå èìååò ïîðÿäîê (log22 δ−1 ) .
Äîêàçàòåëüñòâî.
Èç îïèñàíèÿ àëãîðèòìà ëåãêî âèäåòü, ÷òî ñìûñë ïåðâîãî ýòàïà çàêëþ÷àåòñÿ â àïïðîêñèìàöèè òîëüêî ëèøü òî÷åê ìíîæåñòâà Z .
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
313
èñ. 11. Ñåòêè ïîñëå ýòàïîâ 2 è 3, q0 = 0.15
Ïîýòîìó ïî åãî îêîí÷àíèè ìû ìîæåì (â õóäøåì ñëó÷àå) ïîëó÷èòü ñåòêó, èìåþùóþ ñãóùåíèå ëèøü ê íåêîòîðûì òî÷êàì èç ìíîæåñòâà Z , ÷èñëî êîòîðûõ êîíå÷íî. Òàê êàê òðåòèé ýòàï àëãîðèòìà âîîáùå íå ïðîèçâîäèò áèñåêöèé, òî äëÿ äîêàçàòåëüñòâà òåîðåìû äîñòàòî÷íî ïîêàçàòü, ÷òî èìåííî âòîðîé ýòàï àëãîðèòìà ïðè äîñòàòî÷íî ìàëîì δ ïðîèçâîäèò ñåòêó, ñãóùàþùóþñÿ ê ÷èñëó òî÷åê ïîðÿäêà O(log2 δ−1 ) . Òàê êàê δ ≪ ε , ÷èñëî ïîâòîðåíèé øàãîâ 2-1 2-3 íå çàâèñèò îò δ . Äåéñòâèòåëüíî, ïîñêîëüêó ðàññòîÿíèå îò ëþáîé íåïîäâèæíîé òî÷êè äî ëþáîãî çâåíà, íå ñîäåðæàùåãî ýòó òî÷êó, íå ìåíüøå 0.9ε , òî èçìåëü÷åíèå òðåóãîëüíèêîâ, ïåðåñåêàþùèõ çâåíî, äî äèàìåòðà 0.5ε îáåñïå÷èò îòñóòñòâèå ó íèõ íåïîäâèæíûõ âåðøèí. Ïîëó÷àåì, ÷òî ÷èñëî ïîâòîðåíèé øàãîâ 2-1 2-3 îïðåäåëÿåòñÿ ëèøü ðàñïîëîæåíèåì çàäàâàåìûõ ëîìàíûõ è íå çàâèñèò îò δ . Ïîýòîìó ïðîàíàëèçèðóåì ëèøü øàãè 2-4 2-6. Ïóñòü ïîñëå øàãà 2-3 ñåòêà èìåëà ~. êà÷åñòâî îðìû q ~ , à q0 = 0.1 ∗ q àññìîòðèì ëþáîé îòðåçîê ëîìàíîé, êîòîðûé ïåðåä øàãîì 2-4 íå àïïðîêñèìèðîâàí ðåáðàìè òðåóãîëüíèêîâ, à åãî êîíöû X è Y ñîâ-
314
Â. Í. ×óãóíîâ
èñ. 12. Ñåòêè ïîñëå ýòàïîâ 2 è 3, q0 = 0.21 . Ñãóùåíèÿ ïîðîæäåíû øàãàìè 2.4-2.6
ïàäàþò ñ óçëàìè ñåòêè. Íå îãðàíè÷èâàÿ îáùíîñòè, ìîæíî ñ÷èòàòü, ÷òî íè îäèí èç óçëîâ ñåòêè íå ëåæèò íà ýòîì îòðåçêå, â ïðîòèâíîì ñëó÷àå, âûäåëèì èç âçÿòîãî îòðåçêà ïîäîòðåçîê ìåíüøåé äëèíû áåç âíóòðåííèõ ñåòî÷íûõ óçëîâ. Ïóñòü ÷èñëî òðåóãîëüíèêîâ, ïåðåñåêàåìûõ îòðåçêîì XY ðàâíî m . Òàê êàê íà ïåðâîì ýòàïå àëãîðèòì ïðîèçâîäèò ñåòêó, ñãóùàþùóþñÿ ê íåêîòîðûì (èëè íèêàêèì) èç òî÷åê Z , òî ÷èñëî m íå ïðåâûøàåò O(log2 δ−1 ) . Íà÷àâ ðàáîòó ñ ýòèì îòðåçêîì, àëãîðèòì ñòàíåò ñíîñèòü íà íåãî âåðøèíû.  ñèëó ìàëîñòè q0 øàãè 2-4 2-6 áóäóò ïðîõîäèòü áåç áèñåêöèé äî òåõ ïîð, ïîêà ñðåäè m ïåðåñåêàþùèõ XY òðåóãîëüíèêîâ íå âûäåëèòñÿ m1 ïàð òðåóãîëüíèêîâ, èìåþùèõ îáùåå ðåáðî, ïåðåñåêàþùåå XY , è ïðîòèâîïîëîæíûå îáùåìó ðåáðó âåðøèíû, ëåæàùèå íà XY (ðèñ. 9). Ïîëó÷èâ ìíîæåñòâî òàêèõ ïàð, àëãîðèòì ïîïûòàåòñÿ ñíåñòè íà ëîìàííóþ áëèæàéøóþ îáùóþ âåðøèíó äâóõ òðåóãîëüíèêîâ. Ýòî íå âñåãäà âîçìîæíî, òàê êàê ñíîñèìàÿ âåðøèíà ïðèíàäëåæèò ñóïåðýëåìåíòàì ñðàçó äâóõ âåðøèí, óæå ñíåñåííûõ íà XY â ðåçóëüòàòå ïîñëåäîâàòåëüíûõ ïðîöåññîâ àïïðîêñèìàöèè ëîìà-
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
315
íîé, ïðîèñõîäÿùèõ ïî ðàçíûå ñòîðîíû îò ðàññìàòðèâàåìîé ïàðû òðåóãîëüíèêîâ. Îãðàíè÷åíèå ñíèçó íà êà÷åñòâî îðìû ýòèõ ñóïåðýëåìåíòîâ ìîæåò âîñïðåïÿòñòâîâàòü ñíîñó âåðøèíû, îáåñïå÷èâàþùåé àïïðîêñèìàöèþ ëîìàíîé.  ýòîì ñëó÷àå íà÷íåòñÿ ïðîöåññ áèñåêöèé, êîòîðûé áóäåò ïîðîæäàòü ñåòêó ñ ñãóùåíèåì ê òî÷êå ïåðåñå÷åíèÿ îáùåãî ðåáðà èññëåäóåìîé ïàðû òðåóãîëüíèêîâ è îòðåçêà XY . Ïîýòîìó â ðåçóëüòàòå ðàáîòû àëãîðèòìà ìû ïîëó÷èì ñåòêó, ñãóùàþùóþñÿ íå áîëåå ê m1 òî÷êàì, ÷èñëî êîòîðûõ íå áîëåå, ÷åì O(log2 δ−1 ) . Îòìåòèì ïðàêòè÷åñêóþ âàæíîñòü äàííîé òåîðåìû: óëó÷øåíèå àïïðîêñèìàöèè ëîìàíûõ ( δ → 0 ) òðåáóåò óìåðåííîãî ðîñòà ÷èñëà ýëåìåíòîâ ñåòêè, ÷òî ïîçâîëÿåò ñòðîèòü ñåòêè ñ íåáîëüøèì ÷èñëîì òðåóãîëüíèêîâ.
5. Ïðèìåðû ñåòîê, ïîñòðîåííûõ ñ ïîìîùüþ àëãîðèòìà.
àññìîòðèì äâà ïðèìåðà ðàáîòû íàøåãî àëãîðèòìà, â êîòîðûõ èëëþñòðèðóåòñÿ ñâîéñòâî IV. Íàïîìíèì, ÷òî îöåíêà ÷èñëà òðåóãîëüíèêîâ â òåîðåìå ÿâëÿåòñÿ îöåíêîé ñâåðõó: ïîÿâëåíèå òî÷åê ñãóùåíèÿ íà ýòàïàõ 1 è 2 çàâèñèò îò âçàèìíîãî ðàñïîëîæåíèÿ çàäàííûõ ëîìàíûõ è íà÷àëüíîé ñåòêè è îò ïîðîãà êà÷åñòâà îðìû òðåóãîëüíèêîâ q0 . Êàê ïðàâèëî, ïðè óìåðåííûõ çíà÷åíèÿõ q0 ñãóùåíèÿ íå ïðîèñõîäèò íè íà ýòàïå 1, íè íà ýòàïå 2 äàæå ïðè ìàëûõ δ , êàê ýòî ïðîäåìîíñòðèðîâàíî íà ðèñ. 1011 äëÿ δ = 0.008 è q0 = 0.15 . Áîëåå âûñîêèé ïîðîã êà÷åñòâà îðìû ïðèâîäèò ê ïîÿâëåíèþ òî÷åê ñãóùåíèÿ, ñì. ðèñ. 12. Îòìåòèì, ÷òî ìàëîñòü δ âëèÿåò ëèøü íà ãëóáèíó ñãóùåíèÿ, íî íå íà ïîÿâëåíèå òî÷åê ñãóùåíèÿ.
6. Çàêëþ÷åíèå
 ðàáîòå ðàññìîòðåíî íåñêîëüêî ïîñòàíîâîê îïòèìèçàöèîííûõ çàäà÷ ïî ãåíåðàöèè ñåòîê, óäîâëåòâîðÿþùèõ ìíîæåñòâåííûì îãðàíè÷åíèÿì. Äëÿ îäíîé èç íèõ ïðåäëîæåí è ïðîàíàëèçèðîâàí àëãîðèòì ïîñòðîåíèÿ êâàçè-èåðàðõè÷åñêîé ñåòêè, êîòîðàÿ ìîæåò ðàññìàòðèâàòüñÿ êàê íåêîòîðîå ïðèáëèæåíèå ê ðåøåíèþ â ñîîòâåòñòâó-
316
Â. Í. ×óãóíîâ
þùåì êëàññå ñåòîê. Õàðàêòåðíîé îñîáåííîñòüþ àëãîðèòìà ÿâëÿåòñÿ åãî ðîáàñòíîñòü, ÷òî äîñòèãàåòñÿ àïïðîêñèìàöèåé îãðàíè÷åíèé ñ òî÷íîñòüþ δ è âîçìîæíîñòüþ ëîêàëüíîãî δ -âîçìóùåíèÿ çàäàííûõ îãðàíè÷åíèé. Óëó÷øåíèå àïïðîêñèìàöèè ëîìàíûõ ( δ → 0 ) ïðèâîäèò ê ðîñòó ÷èñëà ýëåìåíòîâ ñåòêè, íå ïðåâûøàþùåì log22 δ−1 .
Ñïèñîê ëèòåðàòóðû
[1℄ Ñêâîðöîâ A. Òðèàíãóëÿöèÿ Äåëîíý è åå ïðèìåíåíèå. Òîìñê, Èçäàòåëüñòâî Òîì. óí-òà. 2002. [2℄ Øàéäóðîâ Â. Â. Ìíîãîñåòî÷íûå ìåòîäû êîíå÷íûõ ýëåìåíòîâ. Ìîñêâà, Íàóêà. 1989.
[3℄ Baker B., Grosse E., Raerty C. S. Nonobtuse triangulation of 1998. V. 3. P. 147168. polygons //
Dis . and Comput. Geom.
IMPACT
[4℄ Bans h E. Lo al mesh renement in 2 and 3 dimensions // . 1991. V. 3. P. 181191.
of Computing in S ien e and Engrg
[5℄ Bern M., Eppstein D., Gilbert J. R. Provably good mesh generation // . 1990. IEEE. P. 231241.
Pro eedings of the 31st Annual Symposium on Foundations of Computer S ien e
[6℄ Bus aglia G., Dari E. Anisotropi mesh optimization and its appli ation in adaptivity // 1997. V. 40. P. 41194136.
Inter. J. Numer. Meth. Engng.
[7℄ Carey G. Computational grids. Generation, adaptation, and solution strategies. London. Taylor and Fran is. 1997. [8℄ Chew L. P. Guaranteed-quality mesh generator for urved surfa es // . 1993. ACM. P. 274280.
Pro eedings of the Ninth Annual Symposium on Computational Geometry
[9℄ Frey P., George P.-L. Maillages: appli ations aux element nis. Paris. Hermes S ien e Publi ations. 1999. [10℄ Liseikin V. Grid generation methods. Springer. Berlin Heidelberg. 1999.
Î ñåòêå, ñëàáî δ -àïïðîêñèìèðóþùåé ëîìàíûå
317
[11℄ Rivara M. Mesh renement pro esses based on the generalized 1984. V. 21. P. bise tion of simplexes // 604613.
SIAM J. Numer. Anal.
[12℄ Ruppert J. A Delaunay renement algorithm for quality 2. 1995. V. 18. dimensional mesh generator // N. 3. P. 548585.
Journal of Algorithms
[13℄ Shew huk J. Delaunay renement algorithms for triangular mesh generation // . 2002. V. 22 (1-3). P. 2174. Ñì. òàêæå ∼
Computational Geometry: theory and appli ations http://www2. s. mu.edu/ jrs/jrspapers.html# dt
[14℄ Vassilevski Yu., Lipnikov K. Adaptive algorithm for generation of . 1999. V. 39. quasi-optimal meshes // P. 15321551.
Comp. Math. Math. Phys.
[15℄ http://www-users.informati .rwth-aa hen.de/ ∼ roberts/meshgeneration.html [16℄ http://www.engr.usask. a/ ∼ ma phed/finite/fe_resour es/mesh.html
ÑÎÄÅÆÀÍÈÅ Ïðåäèñëîâèå . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Âë. Â. Âîåâîäèí
ÍÈÂÖ Ì Ó: øèðîêèì ðîíòîì ñîâìåñòíûõ äåë . . . . . . . . .
3 5
À. Â. Àäèíåö, Í. À. Ñàõàðíûõ
Î ñèñòåìå ïðîãðàììèðîâàíèÿ âû÷èñëåíèé îáùåãî íàçíà÷åíèÿ íà ãðàè÷åñêèõ ïðîöåññîðàõ . . . . . . . . . . . . . . . . . . .
25
À. Ñ. Àíòîíîâ
Âëèÿíèå õàðàêòåðèñòèê ïðîãðàììíî-àïïàðàòíîé ñðåäû íà ïðîèçâîäèòåëüíîñòü ïðèëîæåíèé . . . . . . . . . . . . . . . . . . . . . .
53
. À. Áî÷àðîâ, Í. À. Ìåäâåäåâà
×èñëåííûå àëãîðèòìû àíàëèçà ÷óâñòâèòåëüíîñòè è ñëîæíîñòè îïèñàíèÿ â çàäà÷àõ èäåíòèèêàöèè ìîäåëåé ìàòåìàòè÷åñêîé èììóíîëîãèè
67
Âàä. Â. Âîåâîäèí, Ñ. È. Ñîáîëåâ, À. Â. Ôðîëîâ
Àðõèòåêòóðà è ïðèíöèïû ðåàëèçàöèè êîëëåêòèâíîãî áàíêà òåñòîâ â ñåòè Èíòåðíåò . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
Ï. À. àâðèëóøêèí
Ñòðóêòóðà è ïðîèçâîäèòåëüíîñòü ïîäñèñòåì ïàìÿòè ñîâðåìåííûõ âû÷èñëèòåëüíûõ ïëàòîðì
Ñ. À. îðåéíîâ
Îá îöåíêå ñõîäèìîñòè ìåòîäà áèäèàãîíàëèçàöèè
. . . . . . . 99 . . . . . . . . 111
À. À. Äàíèëîâ
Ïîñòðîåíèå òåòðàýäðàëüíûõ ñåòîê äëÿ îáëàñòåé ñ çàäàííûìè ïîâåðõíîñòíûìè òðèàíãóëÿöèÿìè . . . . . . . . . . . 119
Ñ. À. Æóìàòèé
Êîìïëåêñíûé ïîäõîä ê îáñëóæèâàíèþ âû÷èñëèòåëüíûõ êëàñòåðîâ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Ñ. À. Æóìàòèé, Ñ. È. Ñîáîëåâ
Îöåíêà çàãðóæåííîñòè êîìïüþòåðà â ðàçëè÷íûõ UNIX-ñèñòåìàõ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Î. Ñ. Ëåáåäåâà, Å. Å. Òûðòûøíèêîâ
àçìåðíîñòè êîììóòàòèâíûõ ìàòðè÷íûõ àëãåáð . . . . . . . 151
Ä. À. Íèêèòåíêî
Òîï50. åéòèíã íàèáîëåå ïðîèçâîäèòåëüíûõ âû÷èñëèòåëüíûõ ñèñòåì ÑÍ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Ê. Ä. Íèêèòèí
Òåõíîëîãèÿ ðàñ÷åòà òå÷åíèé ñî ñâîáîäíîé ãðàíèöåé ñ èñïîëüçîâàíèåì äèíàìè÷åñêèõ ãåêñàýäðàëüíûõ ñåòîê
. . 183
Ä. Â. Ñàâîñòüÿíîâ
Àëãîðèòìû ñëåïîãî ðàçäåëåíèÿ èñòî÷íèêîâ â ïàêåòíîì ðåæèìå . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Ä. Â. Ñàâîñòüÿíîâ, Ñ. Ë. Ñòàâöåâ, Å. Å. Òûðòûøíèêîâ
Îá èñïîëüçîâàíèè ìîçàè÷íî-ñêåëåòíûõ àïïðîêñèìàöèé ïðè ðåøåíèè ãèïåðñèíãóëÿðíûõ èíòåãðàëüíûõ óðàâíåíèé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Ñ. È. Ñîáîëåâ
Ýåêòèâíàÿ ðàáîòà â ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñðåäàõ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Ê. Ñ. Ñòåàíîâ
Òåõíîëîãè÷åñêèé èíñòðóìåíòàðèé äëÿ ïîñòðîåíèÿ ñèñòåì àíàëèçà è ïðåîáðàçîâàíèÿ ñòðóêòóðû ïðîãðàìì . . . . . . . . . .259
Å. Å. Òûðòûøíèêîâ
Ìåòîä ñêà÷êîâ è àïïðîêñèìàöèè Ïàäå . . . . . . . . . . . . . . . . . . . . . 277
Â. Í. ×óãóíîâ
Îá àëãîðèòìå ïîñòðîåíèÿ êîíîðìíîé êâàçè-èåðàðõè÷åñêîé òðåóãîëüíîé ñåòêè, ñëàáî δ -àïïðîêñèìèðóþùåé çàäàííûå ëîìàíûå . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
Íàó÷íîå èçäàíèå
×èñëåííûå ìåòîäû, ïàðàëëåëüíûå âû÷èñëåíèÿ è èíîðìàöèîííûå òåõíîëîãèè
Ñáîðíèê íàó÷íûõ òðóäîâ ïîä ðåä. Âë. Â. Âîåâîäèíà è Å. Å. Òûðòûøíèêîâà
Îðèãèíàë-ìàêåò èçãîòîâëåí â ÈÂÌ ÀÍ Ïîäïèñàíî â ïå÷àòü .01.2008 ã. Ôîðìàò 60 × 84/16 . Áóìàãà îñåòíàÿ 1. Ïå÷àòü ðèçî. Óñë. ïå÷. ë. 20,0. Ó÷.-èçä. ë. 21,5. Òèðàæ 250 ýêç. Çàêàç 1. Îðäåíà ¾Çíàê ïî÷åòà¿ Èçäàòåëüñòâî Ìîñêîâñêîãî óíèâåðñèòåòà. 125009, Ìîñêâà, óë. Á.Íèêèòñêàÿ, 5/7. Ó÷àñòîê îïåðàòèâíîé ïå÷àòè ÍÈÂÖ Ì Ó. 119992, ÑÏ-2, Ìîñêâà, ÍÈÂÖ Ì Ó.