¯ = 0. Òàê êàê íåíóëåâûå ñòîëáöû â ñòîëáöå t ìàòðèöû J ðàâåí 1. Ïîýòîìó (S0 + dJ)(S0 − dJ) ¯ ìàòðèöû (S0 − dJ) ëèíåéíî íåçàâèñèìû, òî ðàíã åå ðàâåí ðàíãó J¯. Ðàíã S1 = S0 + dJ ðàâåí ðàíãó J , ¯ = n. Ïîýòîìó ñòîëáöû ìàòðèöû S0 + dJ¯ ïîðîæäàþò ÿäðî ñëåäîâàòåëüíî rank(S1 ) + rank(S0 − dJ) îïåðàòîðà S1 , ñëåäîâàòåëüíî îíè ïîðîæäàþò è ÿäðî îïåðàòîðà M . Ñëåäîâàòåëüíî ÿäðî îïåðàòîðà M ïîðîæäàåòñÿ íåíóëåâûìè ñòîëáöàìè ìàòðèöû S1 − dI. À ýòî âñå íåíóëåâûå ñòîëáöû ìàòðèöû J¯. kern(M ) = span(E T AM − dI). ÁËÀÃÎÄÀÐÍÎÑÒÈ: Ðàáîòà âûïîëíåíà ïðè ïîääåðæêå ÐÔÔÈ, ïðîåêò 04-07-90268. Ïîñòóïèëà â ðåäàêöèþ 15 äåêàáðÿ 2007ã. Î âû÷èñëèòåëüíûõ ýêñïåðèìåíòàõ ñ ïàðàëëåëüíûìè àëãîðèòìàìè óìíîæåíèÿ ïîëèíîìîâ è ìàòðèö â LLP ñõåìå c Þ.Ä. Âàëååâ LLP ñõåìà ýòî ïàðàëëåëüíàÿ òåõíîëîãèÿ, êîòîðàÿ ïîçâîëÿåò ðàñïàðàëëåëèâàòü ðåêóðñèâíûå îäíîïðîöåññîðíûå àëãîðèòìû. Îíà ïîäðîáíî èçëîæåíà â [13]. LLP ñõåìà ïðåäíàçíà÷åíà äëÿ ðàñïàðàëëåëèâàíèÿ îäíîïðîöåññîðíûõ àëãîðèòìîâ êàê ñ ïëîòíûìè, òàê è ñ ðàçðåæåííûìè äàííûìè. Ýòî äîñòèãàåòñÿ çà ñ÷åò èñïîëüçîâàíèÿ ïëàíèðîâùèêà, êîòîðûé îòñëåæèâàåò ñâîáîäíûå è çàíÿòûå ïðîöåññîðû è àâòîìàòè÷åñêè ïåðåðàñïðåäåëÿåò çàäàíèÿ îò çàãðóæåííûõ ê ñâîáîäíûì. Îò äðóãèõ ñèñòåì àâòîìàòè÷åñêîãî ðàñïàðàëëåëèâàíèÿ åå îòëè÷àåò òî, ÷òî ãðàô àëãîðèòìà â íåé ïðåäñòàâëÿåòñÿ â âèäå âçâåøåííîãî äåðåâà, à êàæäûé àëãîðèòì ÿâëÿåòñÿ âåðøèíîé äåðåâà. Äëÿ òîãî ÷òîáû ðàñïàðàëëåëèòü îäíîïðîöåññîðíûé àëãîðèòì ñ ïîìîùüþ LLP, íóæíî ðåàëèçîâàòü åãî â âèäå âåðøèíû äåðåâà è îïèñàòü åãî ãðàô. LLP ñõåìà íàïèñàíà íà ÿçûêå Java è ðåàëèçîâàíà ñ èñïîëüçîâàíèåì òåõíîëîãèé mpiJava, MPI. Ñ èñïîëüçîâàíèåì LLP ñõåìû áûëè ðåàëèçîâàíû ïàðàëëåëüíûå ïðîãðàììû äëÿ óìíîæåíèÿ ïîëèíîìîâ è ìàòðèö. Ïðîãðàììû ïðîòåñòèðîâàíû íà 16 ïðîöåñîðíîì êëàñòåðå ëàáîðàòîðèè àëãåáðàè÷åñêèõ âû÷èñëåíèé ñ ïðîöåññîðàìè Intel Xeon 3000 è ïàìÿòüþ 1Ãá. 1 Ðåçóëüòàòû òåñòèðîâàíèÿ LLP àëãîðèòìà óìíîæåíèÿ ïîëèíîìîâ Áûë ïðîòåñòèðîâàí ïàðàëëåëüíûé àëãîðèòì óìíîæåíèÿ ïîëèíîìîâ ñ èñïîëüçîâàíèåì ñõåìû LLP. Òåñòèðîâàëèñü ïîëèíîìû òðåõ ïåðåìåííûõ â êîíå÷íîì ïîëå è â êîëüöå öåëûõ ÷èñåë. 1. Ïîëèíîìû â êîëüöå Zp [x].  òàáëèöå ïðèâåäåíû âðåìåíà âûïîëíåíèÿ óìíîæåíèÿ â ìèëëèñåêóíäàõ. ×åðåç äðîáíóþ ÷åðòó óêàçàíî, âî ñêîëüêî ðàç âðåìÿ âû÷èñëåíèÿ ïðè äàííîì êîëè÷åñòâå ïðîöåññîðîâ áîëüøå ïî ñðàâíåíèþ ñ âðåìåíåì âû÷èñëåíèÿ ïðè 16 ïðîöåññîðàõ. Ïðîãðàììà óìíîæåíèÿ çàïóñêàëàñü íà 2, 4, 8 è 16 ïðîöåññîðàõ. Ýêñïåðèìåíòû ïðîâîäèëèñü äëÿ ïîëèíîìîâ îò òðåõ ïåðåìåííûõ ñ îäèíàêîâûìè ìàêñèìàëüíûìè ñòåïåíÿìè ïðè ïåðåìåííûõ x, y, z: 20, 25, 30, ñ ïëîòíîñòüþ 50 è 100%. Ïëîòíîñòü 100% Ïëîòíîñòü 50% m\p 2 4 8 16 m\p 2 4 8 16 20 5710/4.17 3250/2.38 2040/1.49 1370/1 20 14470/6.55 7800/3.53 4320/1.95 2210/1 25 16320/6.16 8620/3.25 4870/1.84 2650/1 25 45080/7.01 23610/3.67 12630/1.96 6430/1 30 45180/7.14 23310/3.68 11810/1.87 6330/1 30 132020/6.98 68430/3.62 36350/1.92 18900/1 Ðèñ. 1. Ãðàôèêè çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ïîëèíîìîâ íàä êîëüöîì Zp [x] ñ ïëîòíîñòüþ 50 è 100%  ëåâîé ÷àñòè ðèñ.1 èçîáðàæåíî 3 ãðàôèêà çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ðàçëè÷íûõ çíà÷åíèé ìàêñèìàëüíûõ ñòåïåíåé ïîëèíîìîâ. Ïîä óñêîðåíèåì ïîíèìàåòñÿ âî ñêîëüêî ðàç óìåíüøèëîñü âðåìÿ âû÷èñëåíèÿ ïî ñðàâíåíèþ ñ âðåìåíåì íà 2 ïðîöåññîðàõ. 1 ãðàôèê äëÿ ìàêñèìàëüíîé ñòåïåíè ðàâíîé 20, 2 ãðàôèê äëÿ 25, 3 äëÿ 30. Íà ðèñóíêå òàêæå èçîáðàæåíû 2 ïðÿìûå ëèíèè. Âåðõíÿÿ îïðåäåëÿåò èäåàëüíîå óñêîðåíèå, ò.å. ïðè óâåëè÷åíèè ÷èñëà ïðîöåññîðîâ âî ñòîëüêî æå ðàç áóäåò óìåíüøåíî âðåìÿ. Íèæíÿÿ ëèíèÿ îçíà÷àåò óñêîðåíèå âäâîå ìåíüøåå, ÷åì èäåàëüíîå. 2. Ïîëèíîìû â êîëüöå Z[x, y, z].  òàáëèöå ïðèâåäåíû âðåìåíà âûïîëíåíèÿ óìíîæåíèÿ â ìèëëèñåêóíäàõ. Ïðîãðàììà óìíîæåíèÿ çàïóñêàëàñü íà 2, 4, 8 è 16 ïðîöåññîðàõ. Ïîëèíîìû áðàëèñü îò òðåõ ïåðåìåííûõ ñ îäèíàêîâûìè ìàêñèìàëüíûìè ñòåïåíÿìè ïðè ïåðåìåííûõ x,y,z: 20,25,30, ñ ïëîòíîñòüþ 50% è 100% è êîëè÷åñòâîì áèò â êîýôôèöèåíòàõ 64, 128. 1. Òàáëèöà äëÿ ïîëèíîìîâ ñ ïëîòíîñòüþ 50%. \nbits 64 128 m\procs 2 4 8 16 2 4 8 16 20 11940/4.39 6130/2.25 3740/1.38 2720/1 16220/4.37 9000/2.42 5620/1.51 3710/1 25 35910/5.05 18710/2.63 10190/1.43 7110/1 52250/4.90 28110/2.64 16550/1.55 10660/1 30 105930/5.65 54150/2.89 28610/1.53 18740/1 152620/5.75 77640/2.93 46940/1.77 26540/1 Ðèñ. 2. Ãðàôèêè çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ïîëèíîìîâ íàä êîëüöîì Z[x] ñ ïëîòíîñòüþ 50% è êîëè÷åñòâîì áèò â êîýôôèöèåíòàõ 64 è 128 2. Òàáëèöà äëÿ ïîëèíîìîâ ñ ïëîòíîñòüþ 100%. \nbits 64 128 m\procs 2 4 8 16 2 4 8 16 20 28960/6.18 14550/2.73 7810/1.47 5330/1 43330/5.34 27140/3.34 13400/1.65 8120/1 25 96380/5.83 49550/3.00 25170/1.52 16540/1 149630/6.12 100320/4.11 45590/1.86 24430 30 262850/5.00 137830/2.62 69820/1.32 52650/1 425370/6.05 278100 /3.95 123000/1.75 70420/1 Ðèñ. 3. Ãðàôèêè çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ïîëèíîìîâ íàä êîëüöîì Z[x] ñ ïëîòíîñòüþ 100% è êîëè÷åñòâîì áèò â êîýôôèöèåíòàõ 64 1.1 Ðåçóëüòàòû òåñòèðîâàíèÿ LLP àëãîðèòìà óìíîæåíèÿ ìàòðèö Òåñòèðîâàëîñü ïàðàëëåëüíîå óìíîæåíèå ìàòðèö ñ èñïîëüçîâàíèåì LLP ñõåìû. Ìàòðèöû ãåíåðèðîâàëèñü ñëó÷àéíûì îáðàçîì Äëÿ òåñòîâ áûëè âçÿòû ñëåäóþùèå ïàðàìåòðû: • Ðàçìåð ìàòðèöû: 1024, 2048. • Ïëîòíîñòü ìàòðèö: 10, 30, 50, 70, 100. • Êîëè÷åñòâî ïðîöåññîðîâ 2, 4, 8, 16. Ìàòðèöû áðàëèñü â ôîðìàòå LQTSM, ýëåìåíòû ìàòðèö 64 áèòíûå ÷èñëà. LQTSM ôîðìàò õðàíåíèÿ ðàçðåæåííûõ ìàòðèö, â êîòîðîì ìàòðèöû õðàíÿòñÿ â âèäå êâàòåðíàðíîãî (÷åòâåðè÷íîãî) äåðåâà.  òàáëèöå óêàçàíî âðåìÿ âû÷èñëåíèÿ â ìèëëèñåêóíäàõ è âî ñêîëüêî ðàç âðåìÿ âû÷èñëåíèÿ áîëüøå ïî ñðàâíåíèþ ñ âðåìåíåì âû÷èñëåíèÿ ïðè 16 ïðîöåññîðàõ. Òàáëèöà 1. Ðàçìåðà ìàòðèö 1024x1024. %\ ïðîöåññîðû 2 4 8 16 10 7110/2.9 4110/1.7 2750/1.1 2430/1 30 14120/4.2 7460/2.2 4970/1.5 3340/1 50 18080/4.6 9520/2.4 5770/1.5 3900/1 70 21170/4.9 11240/2.6 7060/1.6 4300/1 100 26700/5.4 12980/2.6 7440/1.5 4930/1 Òàáëèöà 2. Ðàçìåð ìàòðèö 2048x2048. %\ ïðîöåññîðû 2 4 10 47900/4.8 25500/2.6 30 97500/5.7 50080/2.9 50 131760/6.0 68530/3.1 70 156710/6.1 80260/3.1 8 14690/1.5 28070/1.6 36440/1.6 46940/1.8 16 9930/1 17010/1 22090/1 25540/1 Ðèñ. 4. Ãðàôèêè çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ìàòðèö ïîðÿäêà 1024 è 2048 Íà ðèñ. 4 ñëåâà èçîáðàæåíî 4 ãðàôèêà çàâèñèìîñòè óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ðàçëè÷íûõ çíà÷åíèé ïëîòíîñòè äëÿ ìàòðèö ïîðÿäêà 1024. 1 ãðàôèê äëÿ ïëîòíîñòè 30%, 2 ãðàôèê äëÿ 50%, 3 äëÿ 70%, 4 100%. Ãðàôèê äëÿ ìàòðèö ïîðÿäêà 1024 è ïëîòíîñòè 10% íå ðàññìàòðèâàåòñÿ, ò.ê. âðåìÿ âû÷èñëåíèÿ ïðè ýòèõ ïàðàìåòðàõ ÿâëÿåòñÿ äîñòàòî÷íî ìàëåíüêèì. Íà ðèñ. 4 ñïðàâà 1-é ãðàôèê îòðàæàåò çàâèñèìîñòü óñêîðåíèÿ îò êîëè÷åñòâà ïðîöåññîðîâ äëÿ ìàòðèö ïîðÿäêà 2048 è ïëîòíîñòè 10%, 2 äëÿ ïëîòíîñòè 30%, 3 50%, 4 70%. 2 Çàêëþ÷åíèå Ýêñïåðèìåíòû äëÿ ïîëèíîìîâ íàä Zp [x] ïîêàçûâàþò, ÷òî óñêîðåíèå íàõîäèòñÿ â äèàïàçîíå: 4.0-7.2 äëÿ ïëîòíîñòè 50% è 6.5-7.1 äëÿ ïîëèíîìîâ ïëîòíîñòè 100%. Äëÿ ïîëèíîìîâ èç êîëüöà Z[x, y, z] óñêîðåíèå íàõîäèòñÿ â äèàïàçîíå 4.3-5.8 äëÿ ïîëèíîìîâ ïëîòíîñòè 50% è êîëè÷åñòâîì áèò â êîýôôèöèåíòàõ 64 è 128, è â äèàïàçîíå 5.0-6.2 äëÿ ïîëèíîìîâ ïëîòíîñòè 100% è ïðè òåõ æå ðàçìåðàõ êîýôôèöèåíòîâ. LLP ñõåìà äëÿ ïîëèíîìîâ íàä êîëüöàìè Zp [x] è Z[x] ïîêàçûâàåò õîðîøåå óñêîðåíèå, êîòîðîå áëèçêî ê òåîðåòè÷åñêè ëó÷øåìó óñêîðåíèþ, ðàâíîìó 8. LLP ñõåìà äëÿ àëãîðèòìà óìíîæåíèÿ ìàòðèö äëÿ ðàçìåðà 1024 äàåò óñêîðåíèå â äèàïàçîíå 4.25.4, äëÿ ìàòðèö ðàçìåðà 2048 4.8-6.1. Óñêîðåíèå äëÿ ìàòðè÷íîãî óìíîæåíèÿ íàõîäèòñÿ â îáëàñòè ìåæäó òåðåòè÷åñêè ëó÷øèì óñêîðåíèåì è 50% óñêîðåíèåì. Ëèòåðàòóðà 1. Ìàëàøîíîê Ã.È., Âàëååâ Þ.Ä., Çóåâ Ì.Ñ. Ïàðàëëåëüíàÿ êîìïüþòåðíàÿ àëãåáðà. Ââåäåíèå. Òàìáîâ: Èçä-âî ÒÃÓ èì. Ã.Ð. Äåðæàâèíà, 2006. 102 ñ. 2. Ìàëàøîíîê Ã.È., Âàëååâ Þ.Ä. Äèíàìè÷åñêîå ðàñïðåäåëåíèå çàäàíèé â âû÷èñëèòåëüíîì êëàñòåðå ïî ãðàôó àëãîðèòìà // XI Äåðæàâèíñêèå ÷òåíèÿ. Òåçèñû äîêëàäîâ. Òàìáîâ: Èçä-âî ÒÃÓ èì. Ã.Ð.Äåðæàâèíà, 2006. Ñ. 38-47. 3. Ìàëàøîíîê Ã.È., Âàëååâ Þ.Ä. Ðåêóðñèâíîå ðàñïàðàëëåëèâàíèå ñèìâîëüíî-÷èñëåííûõ àëãîðèòìîâ // Âåñòí. Òàìá. óí-òà. Ñåð.: Åñòåñòâ. è òåõí. íàóêè. Òàìáîâ, 2006. Ò. 11, âûï. 4. Ñ. 536-549. Ïîñòóïèëà â ðåäàêöèþ 3 äåêàáðÿ 2007ã. Îá îöåíêå êîýôôèöèåíòîâ õàðàêòåðèñòè÷åñêîãî ïîëèíîìà c Î.Í.Ïåðåñëàâöåâà Ïóñòü A êîììóòàòèâíîå êîëüöî, A = aij êâàäðàòíàÿ ìàòðèöà ïîðÿäêà n ñ ýëåìåíòàìè aij ∈ A, i = 1, . . . , n, j = 1, . . . , n; E åäèíè÷íàÿ ìàòðèöà ïîðÿäêà n, F (x) = det(A − xE) õàðàêòåðèñòè÷åñêèé ïîëèíîì ìàòðèöû A. Îäíîé èç âàæíûõ çàäà÷, ñâÿçàííûõ ñ âû÷èñëåíèåì õàðàêòåðèñòè÷åñêèõ ïîëèíîìîâ öåëî÷èñëåííûõ ìàòðèö, ÿâëÿåòñÿ çàäà÷à íàõîæäåíèÿ âåðõíåé îöåíêè äëÿ êîýôôèöèåíòîâ õàðàêòåðèñòè÷åñêîãî ïîëèíîìà. Òàêóþ îöåíêó íåîáõîäèìî çíàòü, íàïðèìåð, äëÿ ìîäóëÿðíîé ðåàëèçàöèè àëãîðèòìà âû÷èñëåíèÿ õàðàêòåðèñòè÷åñêîãî ïîëèíîìà ìàòðèöû ñ ïîìîùüþ êèòàéñêîé òåîðåìû. Ìîæíî âîñïîëüçîâàòüñÿ íåðàâåíñòâîì Àäàìàðà äëÿ îïðåäåëèòåëÿ ìàòðèöû, ò.å. äëÿ ñâîáîäíîãî ÷ëåíà õàðàêòåðèñòè÷åñêîãî ïîëèíîìà. Îäíàêî ñâîáîäíûé ÷ëåí íå ÿâëÿåòñÿ îáÿçàòåëüíî íàèáîëüøèì ïî ìîäóëþ êîýôôèöèåíòîì õàðàêòåðèñòè÷åñêîãî ïîëèíîìà.