=Paper=
{{Paper
|id=Vol-1482/572
|storemode=property
|title=Метод декомпозиции области для суперкомпьютерного моделирования гравитирующих систем
(Domain decomposition method for supercomputer simulation of gravitating systems)
|pdfUrl=https://ceur-ws.org/Vol-1482/572.pdf
|volume=Vol-1482
}}
==Метод декомпозиции области для суперкомпьютерного моделирования гравитирующих систем
(Domain decomposition method for supercomputer simulation of gravitating systems)==
Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Ìåòîä äåêîìïîçèöèè îáëàñòè äëÿ ñóïåðêîìïüþòåðíîãî ìîäåëèðîâàíèÿ ãðàâèòèðóþùèõ ñèñòåì ∗ Í.Â. Ñíûòíèêîâ, Â.À.Âøèâêîâ Èíñòèòóò Âû÷èñëèòåëüíîé Ìàòåìàòèêè è Ìàòåìàòè÷åñêîé åîèçèêè ÑÎ ÀÍ Ïðåäñòàâëåí íîâûé ïàðàëëåëüíûé àëãîðèòì äëÿ ñóïåðêîìïüþòåðíîãî ìîäåëè- ðîâàíèÿ áåññòîëêíîâèòåëüíûõ ãðàâèòèðóþùèõ ñèñòåì. Îí êîìáèíèðóåò ìåòîä ÷àñòèö â ÿ÷åéêàõ (PIC) äëÿ ðåøåíèÿ óðàâíåíèÿ Âëàñîâà è ìåòîä ïàðàëëåëüíîãî âû÷èñëåíèÿ ãðàâèòàöèîííîãî ïîòåíöèàëà èçîëèðîâàííûõ ñèñòåì íà îñíîâå ìåòî- äà ñâåðòêè. Àëãîðèòì èñïîëüçóåò ñïåöèàëüíûé ñïîñîá äåêîìïîçèöèè îáëàñòè, äèíàìè÷åñêè íàçíà÷àþùèé ïðîöåññîðû ïîäîáëàñòÿì è îáåñïå÷èâàþùèé ðàâíîìåðíóþ áàëàí- ñèðîâêó çàãðóçêè. Îí ó÷èòûâàåò èçè÷åñêèå îñîáåííîñòè çàäà÷ ìîäåëèðîâàíèÿ íåñòàöèîíàðíûõ âðàùàþùèõñÿ äèñêîâ (äâóìåðíûõ è òðåõìåðíûõ).  ýòîì ñëó- ÷àå PIC-÷àñòèöû, îïèñûâàþùèå äèíàìèêó áåññòîëêíîâèòåëüíîãî âåùåñòâà, ìîãóò ïåðåìåùàòüñÿ ïî âñåé âû÷èñëèòåëüíîé îáëàñòè è, òàêèì îáðàçîì, ìíîãîêðàòíî ïåðåõîäèòü ìåæäó ïîäîáëàñòÿìè è ñîîòâåòñòâóþùèì èì ïðîöåññîðàì. Ïàðàë- ëåëüíûé àëãîðèòì ìîæåò áûòü èñïîëüçîâàí íà ñóïåðêîìïüþòåðàõ ñ ðàçíûìè òè- ïàìè àðõèòåêòóðû: òðàäèöèîííûìè (CPU), è ãèáðèäíûìè (CPU ñ âèäåîêàðòàìè NVIDIA GPU è Intel Xeon Phi).  ñòàòüå ïîäðîáíî îïèñàíà òåîðåòè÷åñêàÿ ÷àñòü àëãîðèòìà. Ïîäðîáíûå ðåçóëü- òàòû ÷èñëåííûõ ýêñïåðèìåíòîâ áóäóò ïðåäñòàâëåíû â îòäåëüíîé ïóáëèêàöèè. 1. Ââåäåíèå Ñóïåðêîìïüþòåðíîå ìîäåëèðîâàíèå äèíàìèêè ãðàâèòèðóþùèõ ñèñòåì (òàêèõ êàê ãà- ëàêòèêè èëè îêîëîçâåçäíûå äèñêè [1℄) ÿâëÿåòñÿ îäíîé èç íàèáîëåå òðóäíûõ è àêòóàëüíûõ ïðîáëåì â ñîâðåìåííîé âû÷èñëèòåëüíîé àñòðîèçèêå. Õîòÿ îäíîïðîöåññîðíûå ÷èñëåííûå ìåòîäû áûëè ñîçäàíû è óñïåøíî èñïîëüçóþòñÿ óæå áîëåå 30 ëåò [26℄, ðàçðàáîòêà ñîîò- âåòñòâóþùèõ èì ïàðàëëåëüíûõ àëãîðèòìîâ òðåáóåò çíà÷èòåëüíûõ ìîäèèêàöèé.  ïåðâóþ î÷åðåäü ýòî ñâÿçàíî ïîñòîÿííûì ðàçâèòèåì àïïàðàòíîãî îáåñïå÷åíèÿ ñóïåðêîìïüþòåðîâ óâåëè÷èâàåòñÿ îáùåå ÷èñëî ïðîöåññîðîâ, èçìåíÿåòñÿ ñêîðîñòü ìåæïðîöåññîðíûõ êîììóíè- êàöèé, ïîÿâëÿþòñÿ ìàññèâíî ïàðàëëåëüíûå àðõèòåêòóðû (òèïà GPU èëè Phi) ïîýòîìó ïàðàëëåëüíûå àëãîðèòìû è ïðîãðàììíûé êîä, ñîçäàííûé äëÿ àðõèòåêòóð ïðåäûäóùåãî ïî- êîëåíèÿ, óñòàðåâàåò è íóæäàåòñÿ â ïîñòîÿííîé ïåðåðàáîòêå. Äðóãîé îñîáåííîñòüþ ÿâëÿåòñÿ ðàçíîîáðàçèå ìîäåëèðóåìûõ àñòðîèçè÷åñêèõ ïðîöåññîâ [79℄, êîòîðûå äîëæíû áûòü òåñ- íî ñîïðÿæåíû äðóã ñ äðóãîì. Çäåñü âîçíèêàåò åùå îäíà òðóäíîñòü â èñïîëüçîâàíèè óæå ñîçäàííûõ ïðîãðàììíûå êîìïëåêñîâ è êîäîâ çà÷àñòóþ îíè ïðåäíàçíà÷åíû äëÿ ðåøåíèÿ îïðåäåëåííûõ òèïîâ çàäà÷ (íàïðèìåð, çàäà÷ êîñìîëîãèè [1012℄) è íå ìîãóò áûòü ýåê- òèâíî èñïîëüçîâàíû â äðóãèõ êîíòåêñòàõ.  äàííîé ñòàòüå ìû ïðåäëàãàåì ïàðàëëåëüíûé àëãîðèòì äëÿ ìîäåëèðîâàíèÿ âðàùàþ- ùèõñÿ áåññòîëêíîâèòåëüíûõ ãðàâèòèðóþùèõ ñèñòåì ìåòîäîì ÷àñòèö â ÿ÷åéêàõ. Îí îñíîâàí íà äåêîìïîçèöèè îáëàñòè äëÿ ðàíåå ðàçðàáîòàííîé ìîäåëè [13℄. Àëãîðèòì ìîæåò áûòü ïðè- ìåíåí êàê äëÿ ìîäåëè òîíêîãî äèñêà (êîãäà îòñóòñòâóåò äâèæåíèå âåùåñòâà â âåðòèêàëüíîì íàïðàâëåíèè), òàê è äëÿ ïîëíîñòüþ òðåõìåðíîé ìîäåëè. Íîâûì â ýòîì ïîäõîäå ÿâëÿåòñÿ ìåòîä äèíàìè÷åñêîé áàëàíñèðîâêè çàãðóçêè ïðîöåññîðîâ ïðè âû÷èñëåíèè òðàåêòîðèè ìî- ∗ àçðàáîòêà òåîðåòè÷åñêèõ îñíîâ àëãîðèòìà ïàðàëëåëüíîãî ìåòîäà äåêîìïîçèöèè îáëàñòè äëÿ ìåòîäà ÷àñòèö â ÿ÷åéêàõ âûïîëíåíà ïðè ïîääåðæêå îññèéñêîãî Íàó÷íîãî Ôîíäà, ãðàíò 14-11-00485. Ïðîãðàìì- íàÿ ðåàëèçàöèÿ àëãîðèòìîâ âûïîëíåíà ïðè ïîääåðæêå ÔÔÈ, ãðàíòû 14-01-31088, 14-01-00392. 572 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org äåëüíûõ ÷àñòèö, êîòîðûå â ñëó÷àå âðàùàþùèõñÿ ñèñòåì ìîãóò ìíîãîêðàòíî ïåðåõîäèòü ìåæäó ïîäîáëàñòÿìè (è ñîîòâåòñòâóþùèì èì ïðîöåññîðàì). åøàåìàÿ ñèñòåìà óðàâíåíèé ñîñòîèò èç óðàâíåíèÿ Âëàñîâà (èçâåñòíîãî òàêæå êàê áåññòîëêíîâèòåëüíîå óðàâíåíèå Áîëüöìàíà) äëÿ óíêöèè ðàñïðåäåëåíèÿ âåùåñòâà f = f (t, r, u), çàâèñÿùåé îò âðåìåíè t, ïðîñòðàíñòâåííîé êîîðäèíàòû r è âåêòîðà ñêîðîñòè u, ñ çàäàííûì íà÷àëüíûì çíà÷åíèåì f 0 (r, u) (â âèäå íåêîòîðîãî âðàùàþùåãîñÿ äèñêà): ∂f ∂f ∂f +u − ∇Φ(t, r) = 0, f (0, r, u) = f 0 (r, u) ∂t ∂r ∂u è óðàâíåíèÿ Ïóàññîíà äëÿ ãðàâèòàöèîííîãî ïîòåíöèàëà Φ = Φ(t, r) ñ êðàåâûìè óñëîâèÿìè äëÿ èçîëèðîâàííûõ ñèñòåì: ∆Φ(t, r) = 4πGρ(t, r), Φ(t, r)||r|→∞ = 0, ãäå G ãðàâèòàöèîííàÿ ïîñòîÿííàÿ. Çàìûêàåò ñèñòåìó ñëåäóþùåå óðàâíåíèå äëÿ ïëîòíîñòè ρ = ρ(t, r), êîòîðîå ñâÿçûâàåò åå ñ óíêöèåé ðàñïðåäåëåíèÿ f : Z ρ(t, r) = f (t, r, u)du. u Äëÿ ðåøåíèÿ óðàâíåíèÿ Âëàñîâà èñïîëüçóåòñÿ ìåòîä ÷àñòèö â ÿ÷åéêàõ [2, 3℄, à äëÿ ðåøåíèÿ óðàâíåíèÿ Ïóàññîíà ïàðàëëåëüíûé ìåòîä ñâ¼ðòêè. Îäíîïðîöåññîðíûé àëãîðèòì îïèñûâàåòñÿ ñëåäóþùèìè øàãàìè: 1.  èñõîäíîé âû÷èñëèòåëüíîé îáëàñòè ââîäèòñÿ ðàâíîìåðíàÿ ñåòêà â äåêàðòîâûõ êî- îðäèíàòàõ. åíåðèðóåòñÿ íà÷àëüíîå ðàñïðåäåëåíèå ìîäåëüíûõ ÷àñòèö (èõ ïðîñòðàí- ñòâåííûå êîîðäèíàòû è ñêîðîñòè). 2. åøàåòñÿ óðàâíåíèå Âëàñîâà ñ ïîìîùüþ ìåòîäà ÷àñòèö. Ïîñêîëüêó PIC-÷àñòèöû âçà- èìîäåéñòâóþò äðóã ñ äðóãîì òîëüêî ÷åðåç ãðàâèòàöèîííîå ïîëå, òî èõ êîîðäèíàòû è ñêîðîñòè íà ñëåäóþùåì øàãå ìîãóò âû÷èñëÿòüñÿ íåçàâèñèìî äðóã îò äðóãà. Âìåñòå ñ òåì êàæäàÿ ÷àñòèöà äîëæíà äëÿ ýòîãî ¾çíàòü¿ ãðàâèòàöèîííîå ïîëå, âêëàä â êîòîðîå âíîñÿò âñå îñòàëüíûå ÷àñòèöû. 3. Âû÷èñëÿåòñÿ ñåòî÷íûé ãðàâèòàöèîííûé ïîòåíöèàë ñ èñïîëüçîâàíèåì ìåòîäà ñâåðòêè (íà îñíîâå óíäàìåíòàëüíîãî ðåøåíèÿ óðàâíåíèÿ Ïóàññîíà è áûñòðîãî ïðåîáðàçîâà- íèÿ Ôóðüå). Ñîîòâåòñòâóþùèé ïàðàëëåëüíûé àëãîðèòì äîëæåí îáëàäàòü ñëåäóþùèìè ñâîéñòâàìè: (à) ïîäðàçäåëÿòü èñõîäíóþ âû÷èñëèòåëüíóþ îáëàñòü íà òàêèå ïîäîáëàñòè, ÷òî êàæäàÿ èç íèõ ìîãëà áû áûòü îáðàáîòàíà îäíèì âû÷èñëèòåëüíûì óñòðîéñòâîì ñ 1-4 Á ïàìÿòè, è (á) ðàñïðåäåëÿòü PIC-÷àñòèöû ìåæäó ïðîöåññîðàìè òàê, ÷òîáû îíè ìîãëè èìåòü äîñòóï ê çíà÷åíèÿì òðåáóåìûõ ñåòî÷íûõ óíêöèé â ïîäîáëàñòÿõ, ñâîáîäíî äâèãàòüñÿ ìåæäó ïîäîá- ëàñòÿìè, è îáùåå êîëè÷åñòâî ÷àñòèö, ïåðåäàâàåìûõ ìåæäó ïðîöåññîðàìè, áûëî ìèíèìàëü- íûì.  òèïè÷íîì ñëó÷àå ìàêñèìàëüíîå êîëè÷åñòâî ÷àñòèö, êîòîðîå ìîæíî ïîìåñòèòü â îä- íî âû÷èñëèòåëüíîå óñòðîéñòâî (CPU, GPU, Intel Phi), ñîñòàâëÿåò 8-16 ìèëëèîíîâ, à ìàê- ñèìàëüíûå êîëè÷åñòâî óçëîâ ñåòêè ñîñòàâëÿåò 256 × 256 × 256 äëÿ òðåõìåðíûõ çàäà÷ è 4096 × 4096 äëÿ äâóìåðíûõ. Ýòî îçíà÷àåò, ÷òî áîëüøèå âû÷èñëèòåëüíûå îáëàñòè (òàêèå êàê 1024 × 1024 × 1024) äîëæíû ïîäðàçäåëÿòüñÿ íà ìåíüøèå ïîäîáëàñòè.  òî æå ñàìîå âðåìÿ PIC ÷àñòèöû ìîãóò ìíîãîêðàòíî ïåðåëåòàòü èç îäíîé îáëàñòè â äðóãóþ çà âðåìÿ îäíîãî ðàñ÷åòà (íàïðèìåð, åñëè ìû ðàññìàòðèâàåì ìîäåëèðîâàíèå äèñêîâ íà âðåìåííûõ ìàñøòàáàõ ïîðÿäêà äåñÿòêîâ îáîðîòîâ, ãäå êàæäàÿ ÷àñòèöà äâèãàåòñÿ ïî ýëëèïòè÷åñêîé 573 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org èëè ýïèöèêëè÷åñêîé îðáèòå âîêðóã îáùåãî öåíòðà ìàññ), ÷òî ñîçäàåò ïðîáëåìó ïåðåñûëîê äàííûõ íà êàæäîì âðåìåííîì øàãå. Ýòà ïðîáëåìà óñóãóáëÿåòñÿ èç-çà òîãî, ÷òî ÷àñòèöû ìîãóò áûòü ðàñïðåäåëåíû íåðàâ- íîìåðíî ìåæäó ïîäîáëàñòÿìè. Âî âðàùàþùåìñÿ äèñêå ìîãóò âîçíèêàòü ãðàâèòàöèîííûå íåóñòîé÷èâîñòè, êîòîðûå ïðèâîäÿò ê ïîÿâëåíèþ ðàçíîîáðàçíûõ ñòðóêòóð ñãóñòêîâ âå- ùåñòâà èëè ñïèðàëüíûõ âîëí, êîòîðûå ñïîñîáíû ïåðåäâèãàòüñÿ ïî âñåé âû÷èñëèòåëüíîé ïîäîáëàñòè. Ïëîòíîñòü âåùåñòâà (è êîëè÷åñòâî ÷àñòèö) â ýòèõ ñòðóêòóðàõ ìîæåò áûòü íà ïîðÿäêè áîëüøå îíîâûõ çíà÷åíèé. Ñëåäîâàòåëüíî, êîëè÷åñòâî ÷àñòèö â êàæäîé ïîäîáëà- ñòè ìîæåò òàê æå îòëè÷àòüñÿ íà ïîðÿäêè è ìåíÿòüñÿ ñî âðåìåíåì, îñîáåííî â òåõ ñëó÷àÿõ, êîãäà ñãóñòîê, ñîäåðæàùèé áîëüøîå êîëè÷åñòâî ÷àñòèö, äâèãàåòñÿ âîêðóã öåíòðà ìàññ. àçðàáîòàííûé íàìè ïàðàëëåëüíûé àëãîðèòì, íàöåëåííûé íà ðåøåíèå óêàçàííûõ âî- ïðîñîâ, îñíîâàí íà ñëåäóþùèõ ïðåäïîëîæåíèÿõ: • Òðóäîåìêîñòü ðåøåíèÿ óðàâíåíèÿ Âëàñîâà (ò.å. èíòåãðèðîâàíèå òðàåêòîðèé PIC-÷àñòèö) ñóùåñòâåííî âûøå (îò 10 äî 100 ðàç), ÷åì òðóäîåìêîñòü âû÷èñëåíèÿ ãðàâèòàöèîííîãî ïîòåíöèàëà. Ýòî ïðåäïîëîæåíèå îáîñíîâûâàåòñÿ òåì, ÷òî âû÷èñëèòåëüíàÿ ñëîæíîñòü äëÿ ðåøåíèÿ óðàâíåíèÿ Ïóàññîíà ñîñòàâëÿåò O(n log n) (ãäå n ýòî îáùåå êîëè÷åñòâî ñåòî÷íûõ óçëîâ), â òî âðåìÿ êàê ñðåäíåå ÷èñëî PIC-÷àñòèö íà îäíó ÿ÷åéêó ñåòêè (èëè îäèí ñåòî÷íûé óçåë) â òèïè÷íûõ ðàñ÷åòàõ íàõîäèòñÿ â äèàïàçîíå 10 ÷ 100. Êðîìå òîãî, êîëè÷åñòâî àðèìåòè÷åñêèõ îïåðàöèé âûïîëíÿåìûõ äëÿ âû÷èñëåíèÿ êîîðäè- íàò è ñêîðîñòåé îäíîé ÷àñòèöû áîëüøå, ÷åì ÷èñëî îïåðàöèé, âûïîëíÿåìûõ äëÿ îäíîé ÿ÷åéêè. Ïîýòîìó âîçìîæåí àëãîðèòì, êîãäà PIC-÷àñòèöû îáðàáàòûâàþòñÿ ñ ïîìîùüþ ìàññèâíî ïàðàëëåëüíûõ âû÷èñëèòåëüíûõ óñòðîéñòâ (GPU, Phi), â òî âðåìÿ êàê ãðà- âèòàöèîííûé ïîòåíöèàë âû÷èñëÿåòñÿ íà CPU. • Ïîñêîëüêó âðåìåííîé øàã, èñïîëüçóåìûé äëÿ ìåòîäà èíòåãðèðîâàíèÿ òðàåêòîðèé ÷à- ñòèö, äîëæåí óäîâëåòâîðÿòü óñëîâèþ Êóðàíòà (â ïðîòèâíîì ñëó÷àå ÷èñëåííûé ìåòîä áóäåò âû÷èñëèòåëüíî íåóñòîé÷èâûì), òî ÷àñòèöà ìîæåò ïåðåëåòåòü çà îäèí øàã íå äàëåå, ÷åì â ñîñåäíþþ ÿ÷åéêó. Ýòî îçíà÷àåò, ÷òî ÷èñëî ÷àñòèö, êîòîðûå äîëæíû ïåðå- ìåùàòüñÿ ìåæäó ñìåæíûìè ïîäîáëàñòÿìè, íàìíîãî ìåíüøå, ÷åì îáùåå ÷èñëî ÷àñòèö â ñìåæíûõ ïîäîáëàñòÿõ. Ýòî ÷èñëî ìîæåò áûòü îöåíåíî êàê 10 · ny äëÿ 2D çàäà÷ è 10 · ny nz äëÿ 3D çàäà÷, ãäå êîýèöèåíò 10 ñîîòâåòñòâóåò îöåíî÷íîìó ÷èñëó ïåðåëå- òàþùèõ ÷àñòèö, à ny , nz ýòî ÷èñëî âñåõ ãðàíè÷íûõ óçëîâ ìåæäó ïîäîáëàñòÿìè. Îáùàÿ ñõåìà ïàðàëëåëüíîãî àëãîðèòìà ïðåäñòàâëåíà íèæå êàê Àëãîðèòì 1. Îí ðàçáèò íà íåñêîëüêî îòäåëüíûõ ïðîãðàììíûõ ïðîöåäóð, êîòîðûå ñîðìóëèðîâàíû â âèäå Àëãî- ðèòìîâ 2-6. 2. Ìåòîä äåêîìïîçèöèè îáëàñòè Àëãîðèòì 1. Îáùàÿ ñõåìà ìåòîäà äåêîìïîçèöèè îáëàñòè äëÿ ïàðàëëåëüíîãî ðåøåíèÿ. Èñõîäíàÿ âû÷èñëèòåëüíàÿ îáëàñòü (2D èëè 3D) ðàâíîìåðíî ïîäðàçäåëÿåòñÿ íà K ïîä- îáëàñòåé îäèíàêîâîãî ðàçìåðà S1, S2, .., SK â íàïðàâëåíèè X. ðóïïà ïðîöåññîðîâ Gk íàçíà- ÷àåòñÿ êàæäîé ïîäîáëàñòè Sk . Êîëè÷åñòâî ïðîöåññîðîâ â ãðóïïå Gk ðàâíî Pk , Pk ≥ 1. Îáùåå êîëè÷åñòâî ïðîöåññîðîâ ðàâíî P = P Pk . Êîëè÷åñòâî óçëîâ (ÿ÷ååê) â êàæäîé âû÷èñëèòåëü- íîé ïîäîáëàñòè âûáèðàåòñÿ òàêèì îáðàçîì, ÷òî âñå ñåòî÷íûå óíêöèè (ãðàâèòàöèîííûé ïîòåíöèàë, ïëîòíîñòü, ñèëà) äîëæíû ïîëíîñòüþ ïîìåùàòüñÿ â îïåðàòèâíóþ ïàìÿòü îäíîãî âû÷èñëèòåëüíîãî óñòðîéñòâà è îñòàâèòü â ïàìÿòè äîñòàòî÷íî ìåñòà äëÿ õðàíåíèÿ ìàññèâîâ ñ ÷àñòèöàìè (ò.å. èõ ïðîñòðàíñòâåííûõ êîîðäèíàò è ñêîðîñòåé). Îáû÷íî ýòî ÷èñëî ðàâíî 0.5 ÷ 2 ìèëëèîíîâ óçëîâ (ñîîòâåòñòâóåò ñåòêå 1283 èëè 10242 ). Êîëè÷åñòâî ïðîöåññîðîâ â ãðóïïå Gk âûáèðàåòñÿ òàê, ÷òîáû îáåñïå÷èòü ïðèáëèçèòåëüíî îäèíàêîâîå êîëè÷åñòâî ÷à- ñòèö íà îäíîì ïðîöåññîðå (ñì. Àëãîðèòì 2). Ýòî îçíà÷àåò, ÷òî åñëè ïîäîáëàñòü Sk ñîäåðæèò áîëüøå ÷àñòèö, ÷åì ïîäîáëàñòü Sk , òî ÷èñëî ïðîöåññîðîâ Pk â ãðóïïå Gk áóäåò áîëüøå 1 2 1 1 574 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org èëè ðàâíî êîëè÷åñòâó Pk â ãðóïïå Gk .  êàæäîé ãðóïïå ïðîöåññîðîâ Gk è ñîîòâåòñòâó- þùåé ïîäîáëàñòè Sk èìååòñÿ ãëàâíûé ïðîöåññîð gk0, êîòîðûé íå ìîæåò áûòü ïåðåíàçíà÷åí 2 2 ëþáîé äðóãîé ïîäîáëàñòè âî âðåìÿ âû÷èñëèòåëüíîãî ýêñïåðèìåíòà (äàæå â òîì ñëó÷àå, êîãäà ïîäîáëàñòü Sk íå ñîäåðæèò ÷àñòèö). 1.  íóëåâîé ìîìåíò âðåìåíè (t = 0): (a) äëÿ êàæîé ïîäîáëàñòè Sk âû÷èñëÿåòñÿ îáùåå êîëè÷åñòâî ÷àñòèö, ñîîòâåòñòâóþ- ùåå ÷èñëó ïðîöåññîðîâ â ãðóïïå Gk , è êîëè÷åñòâî ÷àñòèö, íàçíà÷åííîå êàæäîìó èç ïðîöåññîðîâ (ñì. Àëãîðèòì 2), (b) íà êàæäîì ïðîöåññîðå âûäåëÿåòñÿ ïàìÿòü äëÿ ìàññèâîâ êîîðäèíàò è ñêîðîñòåé ÷àñòèö, ( ) âûïîëíÿåòñÿ ãåíåðàöèÿ íà÷àëüíûõ êîîðäèíàò è ñêîðîñòåé PIC ÷àñòèö â îáëà- ñòè (íà êàæäîì ïðîöåññîðå) â ñîîòâåòñòâèè ñ çàäàííîé ïîëüçîâàòåëåì óíêöèåé ðàñïðåäåëåíèÿ. 2. Âû÷èñëÿåòñÿ ñåòî÷íàÿ óíêöèÿ ïëîòíîñòè äëÿ PIC ÷àñòèö (ñì. Àëãîðèòì 3). 3. Âû÷èñëÿåòñÿ ãðàâèòàöèîííûé ïîòåíöèàë ñ ïîìîùüþ ïàðàëëåëüíîãî ìåòîäà ñâåðòêè (ñì. Àëãîðèòì 6). 4. Äëÿ êàæäîãî ïðîöåññîðà âû÷èñëÿþòñÿ íîâûå êîîðäèíàòû ÷àñòèö äëÿ ñëåäóþùåãî øà- ãà (ñì. Àëãîðèòì 4). 5. Âû÷èñëÿåòñÿ êîëè÷åñòâî ÷àñòèö, êîòîðîå äîëæíî íàõîäèòüñÿ â êàæäîé ïîäîáëàñòè Sk íà ñëåäóþùåì øàãå. Âû÷èñëÿåòñÿ êîëè÷åñòâî ïðîöåññîðîâ, êîòîðîå äîëæíî áûòü íàçíà÷åíî êàæäîé ïîäîáëàñòè (ñì. Àëãîðèòì 2). Ïåðåðàñïðåäåëÿþòñÿ ÷àñòèöû ìåæäó ïðîöåññîðíûìè ãðóïïàìè (ñì Àëãîðèòì 5). 6. Èíêðåìåíòèðóåòñÿ âðåìåííîé øàã è âûïîëíÿåòñÿ ïåðåõîä íà Øàã 2. Àëãîðèòì 2. Âû÷èñëåíèå ÷èñëà ïðîöåññîðîâ â ãðóïïå. Ïðåäïîëîæèì, ÷òî êàæäàÿ ïîäîáëàñòü Sk ñîäåðæèò Nk ÷àñòèö, è îáùåå ÷èñëî ÷àñòèö N = Nk . Ìû äîëæíû âû÷èñëèòü, ñêîëüêî ïðîöåññîðîâ äîëæíî áûòü íàçíà÷åíî îäíîé P ïîäîáëàñòè äëÿ îáðàáîòêè Nk ÷àñòèö è ïðè ýòîì îáåñïå÷èòü ïðèáëèçèòåëüíî îäèíàêîâóþ çàãðóçêó âñåõ ïðîöåññîðîâ. Êàæäàÿ ïðîöåññîðíàÿ ãðóïïà ñîäåðæèò ïî êðàéíåé ìåðå îäèí (ãëàâíûé) ïðîöåññîð gk0. Íà êàæäîì âðåìåííîì øàãå ìû äîëæíû âû÷èñëèòü Nmax ìàê- ñèìàëüíîå ÷èñëî ÷àñòèö íà ïðîöåññîðå. Åñëè ïðîöåññîð ñîäåðæèò â òî÷íîñòè Nmax ÷àñòèö, òî îáùèå âû÷èñëèòåëüíûå ðàñõîäû íà ýòîì âðåìåííîì øàãå áóäóò îïðåäåëÿòüñÿ äàííûì ïðîöåññîðîì. Òàêèì îáðàçîì íàøåé çàäà÷åé ÿâëÿåòñÿ ìèíèìèçàöèÿ ïàðàìåòðà Nmax. Äëÿ ýòîãî èñïîëüçóåòñÿ ìåòîä áèñåêöèè: 1. Âû÷èñëÿåì çíà÷åíèÿ Nlow = N/P è Nupp = 2 · N/P . Çíà÷åíèå Nlow ìåíüøå, ÷åì æå- ëàåìîå Nmax, à çíà÷åíèå Nupp áîëüøå, ÷åì îïòèìàëüíîå Nmax. Ïðèñâàèâàåì Nmax := (Nlow + Nupp )/2. 2. Âû÷èñëÿåì çíà÷åíèÿ Pk = (Nk /Nmax) + 1. Âû÷èñëÿåì çíà÷åíèÿ P ∗ = P Pk . Ñðàâíè- âàåì P ∗ ñ P : • Åñëè P ∗ < P , òî Nupp := Nmax , âûïîëíÿåòñÿ ïåðåõîä íà Øàã 3. • Åñëè P ∗ > P , òî Nlow := Nmax , âûïîëíÿåòñÿ ïåðåõîä íà Øàã 3. • Åñëè P ∗ = P , òî Nupp := Nmax , è ïðîâåðÿåì: åñëè Nupp − Nlow < Neps (ãäå Neps ≪ Nmax è îïðåäåëÿåòñÿ ïîëüçîâàòåëåì), òî ïåðåõîä íà çàâåðøåíèå, èíà÷å âûïîëíÿåòñÿ ïåðåõîä íà 3. 575 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 3. Ïðèñâàèâàåì Nmax := (Nlow + Nupp)/2 è âûïîëíÿåì ïåðåõîä íà Øàã 2. Âû÷èñëåíèå ïëîòíîñòè è èíòåãðèðîâàíèå òðàåêòîðèé ÷àñòèö âûïîëíÿåòñÿ ñ ïîìîùüþ ñòàíäàðòíîãî âàðèàíòà ìåòîäà ÷àñòèö â ÿ÷åéêàõ [3℄. Âìåñòå ñ òåì, äëÿ ýåêòèâíîé ðåàëè- çàöèè ïàðàëëåëüíîãî àëãîðèòìà íåîáõîäèìî èìåòü ïîäõîäÿùèå ñòðóêòóðû äàííûõ, êîìáè- íèðóþùèõ ÷àñòèöû è ÿ÷åéêè. Àëãîðèòìû 3-4 îïðåäåëÿþò îñíîâíûå ñâîéñòâà òàêèõ ñòðóê- òóð äàííûõ. Àëãîðèòì 3. Âû÷èñëåíèå ïëîòíîñòè âíóòðè ïîäîáëàñòè. • ×àñòèöû ñîðòèðóþòñÿ âíóòðè êàæäîé ïîäîáëàñòè. Êëþ÷îì ñîðòèðîâêè ÿâëÿåòñÿ ïî- ðÿäêîâûé íîìåð ÷àñòèöû (ïîðÿäîê óñòàíàâëèâàåòñÿ ñíà÷àëà ïî êîîðäèíàòå X, çàòåì ïî Y, è äàëåå ïî Z). Ýòà ðàçíîâèäíîñòü ñîðòèðîâî÷íîãî àëãîðèòìà èìååò ëèíåéíóþ ñëîæíîñòü è ìîæåò áûòü ñäåëàíà ¾íà ëåòó¿ âî âðåìÿ èíòåãðèðîâàíèÿ òðàåêòîðèé ÷àñòèö (ñì. Àëãîðèòì 4). • Äàëåå ÷àñòèöû ïåðåðàñïðåäåëÿþòñÿ ìåæäó ïðîöåññîðàìè ýòîé ãðóïïû â ñîîòâåòñòâèè ñ èõ ïîðÿäêîâûìè íîìåðàìè â îòñîðòèðîâàííîì ìàññèâå. • Ïîäîáíàÿ ïðîöåäóðà ñîðòèðîâêè ïðåäîñòàâëÿåò âîçìîæíîñòü ýåêòèâíîãî èñïîëü- çîâàíèÿ êýø-ïàìÿòè ïðîöåññîðà ïðè âû÷èñëåíèè êîîðäèíàò PIC-÷àñòèö. • Ñåòî÷íàÿ óíêöèÿ ïëîòíîñòè âû÷èñëÿåòñÿ ñ èñïîëüçîâàíèåì ÿäðà PIC (ìóëüòèëè- íåéíîé èíòåðïîëÿöèè â óçëû ÿ÷åéêè). È ïîñëå ýòîãî óíêöèÿ ïëîòíîñòè ñîáèðàåòñÿ â åäèíûé ìàññèâ íà ïðîöåññîðå gk0. Àëãîðèòì 4. Âû÷èñëåíèå êîîðäèíàò ÷àñòèö (èíòåãðèðîâàíèå èõ òðàåêòîðèé). • åàëèçîâàíà ñïåöèàëüíàÿ ñòðóêòóðà äàííûõ: êàæäàÿ ÿ÷åéêà èìååò ññûëêó íà ìàññèâ ÷àñòèö, êîòîðûå íà äàííîì øàãå íàõîäÿòñÿ â äàííîé ÿ÷åéêå. • Äëÿ êàæäîé ÿ÷åéêè èíòåãðèðóþòñÿ òðàåêòîðèè ãðóïïû ÷àñòèö, ëîêàëèçîâàííûõ â íåé. • Ïðè ïåðåìåùåíèè ÷àñòèö èç îäíîé ÿ÷åéêè â äðóãóþ, âûïîëíÿåòñÿ ïåðåäà÷à ÷àñòèö èç ìàññèâà ÷àñòèö ñâÿçàííûõ ñ îäíîé ÿ÷åéêîé, â ìàññèâ ÷àñòèö, ñâÿçàííûõ ñ äðóãîé ÿ÷åéêîé. • ×àñòèöû, êîòîðûå ïåðåìåñòèëèñü â ÿ÷åéêè, ðàñïîëîæåííûå çà ïðåäåëàìè äàííîé ïîä- îáëàñòè (èëè çà ïðåäåëàìè ÿ÷ååê, íàçíà÷åííûõ äàííîìó ïðîöåññîðó), ïîìå÷àþòñÿ êàê ¾âíåøíèå¿ ÷àñòèöû è ïîçæå ïåðåìåùàþòñÿ â ñîîòâåòñòâóþùóþ ïîäîáëàñòü (ñì. Àë- ãîðèòì 5). Àëãîðèòì 5. Ïåðåðàñïðåäåëåíèå ÷àñòèö ìåæäó ïîäîáëàñòÿìè ïîñëå âû÷èñëåíèÿ íîâûõ êîîðäèíàò ÷àñòèö. 1. Ïîñëå ïðèìåíåíèÿ Àëãîðèòìà 4 íà êàæäîì ïðîöåññîðå ìîãóò íàõîäèòüñÿ òðè òèïà ÷àñòèö: (à) ÷àñòèöû, êîòîðûå îñòàëèñü âíóòðè äàííîé ïîäîáëàñòè, (á) ÷àñòèöû, êî- òîðûå äîëæíû ïåðåìåñòèòüñÿ â ëåâóþ ñìåæíóþ ïîäîáëàñòü, è (â) ÷àñòèöû, êîòîðûå äîëæíû ïåðåìåñòèòüñÿ â ïðàâóþ ñìåæíóþ ïîäîáëàñòü. Îáùåå êîëè÷åñòâî ïåðåìåùà- åìûõ ìåæäó ïîäîáëàñòÿìè ÷àñòèö íåâåëèêî èç-çà íåîáõîäèìîñòè âûïîëíåíèÿ óñëîâèÿ Êóðàíòà: îíî íå ìîæåò áûòü áîëüøå, ÷åì ÷èñëî ÷àñòèö, êîòîðûå ñîäåðæàëèñü â ãðà- íè÷íûõ ÿ÷åéêàõ ïîäîáëàñòè. Íà ïðàêòèêå ýòî ÷èñëî ñóùåñòâåííî ìåíüøå è ñîñòàâëÿåò ìåíåå 0.1% îò îáùåãî êîëè÷åñòâà ÷àñòèö. 2. Âû÷èñëÿåì íîâîå ÷èñëî ÷àñòèö äëÿ êàæäîé èç ïîäîáëàñòåé (íà îñíîâå Àëãîðèòìà 4). 576 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 3. Âû÷èñëÿåì ÷èñëî ïðîöåññîðîâ äëÿ êàæäîé ïîäîáëàñòè (ñì. Àëãîðèòì 2). 4. Îïðåäåëÿåì òå ïðîöåññîðû â êàæäîé ãðóïïå, êîòîðûå äîëæíû áûòü ïåðåíàçíà÷åíû íà ñîñåäíèå ïîäîáëàñòè (òî åñòü ïåðåäàíû äðóãèì ãðóïïàì). Ïåðåäàåì ñ íèõ òå ÷àñòèöû, êîòîðûå äîëæíû îñòàòüñÿ â äàííîé ïîäîáëàñòè. 5. Ïåðåäàåì ÷àñòèöû, êîòîðûå ïåðåøëè èç äàííîé ïîäîáëàñòè â ñîñåäíèå ïîäîáëàñòè. 3. Ïàðàëëåëüíûé àëãîðèòì äëÿ âû÷èñëåíèÿ ïîòåíöèàëà ìåòî- äîì ñâ¼ðòêè Äëÿ âû÷èñëåíèÿ ãðàâèòàöèîííîãî ïîòåíöèàëà áûë ðåàëèçîâàí ìåòîä ñâ¼ðòêè, ïðåäëî- æåííûé Õîêíè [2℄. Åãî ñóòü çàêëþ÷àåòñÿ â òîì, ÷òî âìåñòî çàäà÷è Äèðèõëå äëÿ óðàâíåíèÿ Ïóàññîíà â áåñêîíå÷íîé îáëàñòè: ∆Φ(x) = ρ(x), (1) Φ(x)|x→∞ = 0, âûïîëíÿåòñÿ ýåêòèâíîå âû÷èñëåíèå èíòåãðàëà, ïðåäñòàâëÿþùåãî óíäàìåíòàëüíîå ðå- øåíèå óðàâíåíèÿ Ïóàññîíà: ρ(x)dx (2) Z Φ(x0 ) = − . |x0 − x|  äèñêðåòíîì ñëó÷àå â äåêàðòîâîé ñèñòåìå êîîðäèíàò íà ðàâíîìåðíîé ñåòêå ÷èñëîì óçëîâ Nx ×Ny ×Nz è ñåòî÷íûìè øàãàìè hx , hy , hz ðåøåíèå áóäåò çàïèñûâàòüñÿ â ñëåäóþùåì âèäå: y −1 Nz −1 x −1 NX NX qi,j,k (3) X Φ(x0 , y0 , z0 ) = − p , i=1 j=1 k=1 (xi − x0 ) + (yi − y0 )2 + (zi − z0 )2 2 ãäå qi,j,k = ρi,j,k · (hxhy hz ) çíà÷åíèÿ çàðÿäîâ (ìàññ), íàõîäÿùèõñÿ â óçëàõ ñåòêè. Íåòðóäíî âèäåòü, ÷òî ïðÿìîå âû÷èñëåíèå ýòîé ñóììû äëÿ âñåõ x0, y0, íåîáõîäèìîå äëÿ âîññòàíîâëåíèÿ ñåòî÷íîé óíêöèè ãðàâèòàöèîííîãî ïîòåíöèàëà ïîòðåáóåò O(Nx2Ny2Nz2) îïå- ðàöèé. Îäíàêî òðóäîåìêîñòü âû÷èñëåíèé ìîæíî ñóùåñòâåííî ñîêðàòèòü, âîñïîëüçîâàâøèñü òåîðåìîé î ñâ¼ðòêå [14℄ è åå äèñêðåòíûì àíàëîãîì. Çàïèøåì (2) â âèäå: (4) Z Φ(x0 ) = − ρ(x)K(x − x0 )dx = −ρ ∗ K, ãäå 1 K(x − x0 ) = |x − x0 | è ρ ∗ K îáîçíà÷àåò ñâ¼ðòêó. Åñëè èíòåãðàë â (4) ÿâëÿåòñÿ àáñîëþòíî èíòåãðèðóåìûì è ñóùåñòâóþò ñëåäóþùèå èí- òåãðàëû (ò.å. ñóùåñòâóþò îãðàíè÷èâàþùèå êîíñòàíòû C1 è C2): Z ρ(x)dx < C1 < ∞, (5) Z K(x)dx < C1 < ∞, òî: F T [Φ](k) = −F T [ρ](k) · F T [K](k), (6) Φ = −F T −1 [F T [ρ] · F T [K]] ãäå F T [. . .] îáîçíà÷àåò ïðåîáðàçîâàíèå Ôóðüå. 577 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Ñ ïðàêòè÷åñêîé òî÷êè çðåíèÿ ýòî îçíà÷àåò, ÷òî, âîñïîëüçîâàâøèñü äèñêðåòíûì àíàëî- ãîì òåîðåìû î ñâ¼ðòêè è àëãîðèòìîì áûñòðîãî ïðåîáðàçîâàíèÿ Ôóðüå, ìîæíî âû÷èñëèòü ñóììó (3) çà O(NxNy Nz (log2Nx + log2Ny + log2Nz )) îïåðàöèé, ÷òî íàìíîãî áûñòðåå ïðÿìîãî ñïîñîáà âû÷èñëåíèÿ óíäàìåíòàëüíîãî ðåøåíèÿ äëÿ óðàâíåíèÿ Ïóàññîíà è ñîîòâåòñòâó- åò òðóäîåìêîñòè ðåøåíèÿ çàäà÷è Äèðèõëå äëÿ óðàâíåíèÿ Ïóàññîíà ìåòîäîì ðàçäåëåíèÿ ïåðåìåííûõ [15℄. Äëÿ òîãî, ÷òîáû ïðèìåíèòü äèñêðåòíîå ïðåîáðàçîâàíèå Ôóðüå íåîáõîäèìî óñòðàíèòü íåîïðåäåëåííîñòü èíòåãðàëà (5) â òî÷êå x = x0, ãäå îí ðàñõîäèòñÿ, è îïðåäåëèòü óíêöèè K è ρ òàê, ÷òîáû îíè ñòàëè ïåðèîäè÷åñêèìè. Ïåðâàÿ èç ýòèõ ïðîáëåì ðåøàåòñÿ ñ ïîìî- ùüþ îáðåçàíèÿ ïîòåíöèàëà íà áëèçêèõ ðàññòîÿíèÿõ. Ìû çàäàâàëè ñåòî÷íóþ óíêöèþ K ñëåäóþùèì îáðàçîì: 1 p 0.5 min(hx,hy,hz) , x2 + y 2 + z 2 = 0, K(x, y, z) = 1 p √ , x2 + y 2 + z 2 > 0. x2 +y 2 +z 2 Âòîðàÿ ïðîáëåìà ðåøàåòñÿ ñ ïîìîùüþ ââåäåíèÿ èêòèâíûõ äîïîëíèòåëüíûõ ïîäîáëà- ñòåé, äóáëèðóþùèõ îáëàñòü ðåøåíèÿ ïî êàæäîìó íàïðàâëåíèþ â äâà ðàçà, è äîîïðåäåëåíèÿ â íèõ óíêöèè K òàê, ÷òîáû îíà ñòàëà ïåðèîäè÷åñêîé âî âñåé íîâîé îáëàñòè, à óíêöèÿ ρ ðàâíîé íóëþ. Àêêóðàòíîå äîêàçàòåëüñòâî êîððåêòíîñòè ìåòîäà è òîãî àêòà, ÷òî ïîëó÷åí- íîå òàêèì ñïîñîáîì ðåøåíèå ñîâïàäàåò ñ ïðÿìûì âû÷èñëåíèåì (3), ïðèâåäåíî â ñòàòüå [16℄. Ïðîèçâîäèòåëüíîñòü ïðåäñòàâëåííîãî àëãîðèòìà ñâ¼ðòêè àêòè÷åñêè îïðåäåëÿåòñÿ ïðî- èçâîäèòåëüíîñòüþ áûñòðîãî ïðåîáðàçîâàíèÿ Ôóðüå (â íàøåé ðåàëèçàöèè ìåòîäà ñâ¼ðòêè ìû èñïîëüçîâàëè FFTW [17℄). Ïàðàëëåëüíàÿ ðåàëèçàöèÿ äàííîãî àëãîðèòìà çàêëþ÷àåòñÿ â ðàçáèåíèè íà ïîäîáëàñòè è ïðèìåíåíè ìåòîäà òðàíñïîçèöèè äàííûõ (ñòàíäàðòíîãî ïîäõîäà äëÿ ìíîãîìåðíîãî ïðå- îáðàçîâàíèÿ Ôóðüå [18℄). Àëãîðèòì 6. Ïàðàëëåëüíûé àëãîðèòì äëÿ âû÷èñëåíèÿ ãðàâèòàöèîííîãî ïîòåíöèàëà. 1. Âû÷èñëèòåëüíàÿ îáëàñòü â 2D èëè 3D ïîäðàçäåëÿåòñÿ íà ïîäîáëàñòè â íàïðàâëåíèè X. 2. Ïðèìåíÿåòñÿ ïðÿìîå áûñòðîå ïðåîáðàçîâàíèå Ôóðüå (ÁÏÔ) ê ñåòî÷íûì óíêöèÿì ïëîòíîñòè ÿäðà ïîòåíöèàëà â íàïðàâëåíèè Y è â íàïðàâëåíèè Z. 3. Âûïîëíÿåòñÿ òðàíñïîçèöèÿ ¾ñëîåâ¿ èç íàïðàâëåíèÿ Y â íàïðàâëåíèå X. 4. Ïðèìåíÿåòñÿ ïðÿìîå ÁÏÔ â íàïðàâëåíèè X. Ïåðåìíîæàåòñÿ îáðàç ñåòî÷íîé óíêöèè ÿäðà íà îáðàç óíêöèè ïëîòíîñòè. Ïðèìåíÿåòñÿ îáðàòíîå ÁÏÔ â íàïðàâëåíèè X ê ïîëó÷åííîìó ðåçóëüòàòó. 5. Âûïîëíÿåòñÿ îáðàòíàÿ òðàíñïîçèöèÿ ¾ñëîåâ¿ èç íàïðàâëåíèÿ X â íàïðàâëåíèå Y. 6. Ïðèìåíÿåòñÿ îáðàòíîå ÁÏÔ â íàïðàâëåíèè Z è îáðàòíîå ÁÏÔ â íàïðàâëåíèè Y. Äëÿ äàííîãî àëãîðèòìà åäèíñòâåííûìè ìåæïðîöåññîðíûìè êîììóíèêàöèÿìè ÿâëÿþòñÿ ïðÿìàÿ è îáðàòíàÿ òðàíñïîçèöèÿ äàííûõ (ñîîòâåòñòâóþùàÿ ïðîöåäóðå MPI Alltoall). ×èñ- ëåííûå ýêñïåðèìåíòû ïîêàçàëè, ÷òî äëÿ ñåòîê ñðåäíåãî ðàçìåðà (äî 10243 óçëîâ) è ÷èñëîì ïðîöåññîðîâ äî 1024 êîììóíèêàöèîííîå âðåìÿ ñîñòàâëÿåò îêîëî 50% (íå áîëåå 1-3 ñåêóíä). 4. Ïðåäâàðèòåëüíûå òåñòîâûå ðåçóëüòàòû ×èñëåííûå òåñòîâûå ýêñïåðèìåíòû ïðîâîäèëèñü íà ñóïåðêîìïüþòåðàõ Ñèáèðñêîãî ñó- ïåðêîìïüþòåðíîãî öåíòðà, Ìåæâåäîìñòâåííîãî ñóïåðêîìïüþòåðíîãî öåíòðà è ñóïåðêîì- ïüþòåðà ¾Ëîìîíîñîâ¿ â Ì Ó.  êà÷åñòâå íà÷àëüíîãî ðàñïðåäåëåíèÿ f 0(r, u) çàäàâàëñÿ äèñê 578 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Ìàêëîðåíà ñ òâåðäîòåëüíûì âðàùåíèåì è ðàçíûìè äèñïåðñèÿìè ñêîðîñòåé ÷àñòèö.  êà÷å- ñòâå ìàêñèìàëüíûõ òåõíè÷åñêèõ ïàðàìåòðîâ äëÿ êâàçèòðåõìåðíîé ìîäåëè (ñ îòñóòñòâèåì âåðòèêàëüíîãî äâèæåíèÿ âåùåñòâà) çàäàâàëàñü ñåòêà 16384 × 16384 è 5 ìèëëèàðäîâ ÷àñòèö (512 ïðîöåññîðîâ), à äëÿ ïîëíîñòüþ òðåõìåðíîé ìîäåëè 1024×1024×1024 è 10 ìèëëèàðäîâ ÷àñòèö (1024 ïðîöåññîðà). Äëÿ òåñòîâûõ çàäà÷ íà ðàçâèòèå ãðàâèòàöèîííîé íåóñòîé÷èâîñòè îñåñèììåòðè÷íîãî òèïà (âàðüèðîâàíèå íà÷àëüíûõ äèñïåðñèé) îáùèé îáúåì êîììóíèêàöè- îííûõ ðàñõîäîâ ñîñòàâëÿë íå áîëåå 30% ñ àáñîëþòíûì âðåìåíåì ñ÷åòà ïîðÿäêà 10 ñåêóíä íà îäèí øàã ïî âðåìåíè. Ïîäðîáíûå ðåçóëüòàòû ÷èñëåííûõ ýêñïåðèìåíòîâ íàõîäÿòñÿ â ñòàäèè ïîäãîòîâêè è áó- äóò ïðåäñòàâëåíû â îòäåëüíîé ïóáëèêàöèè.  äàëüíåéøåì ðàçðàáîòàííûé ïàðàëëåëüíûé àëãîðèòì è åãî ïðîãðàììíàÿ ðåàëèçàöèÿ áóäåò èñïîëüçîâàòüñÿ äëÿ ñóïåðêîìïüþòåðíîãî ìîäåëèðîâàíèÿ äèíàìèêè âðàùàþùèõñÿ ãàëàêòèê è ïûëåâîé êîìïîíåíòû â ïðîòîïëàíåò- íûõ äèñêàõ. Ëèòåðàòóðà 1. Ñíûòíèêîâ Â.Í., Âøèâêîâ Â.À., Êóêøåâà Ý.À., Íåóïîêîåâ Å.Â., Íèêèòèí Ñ.À., Ñíûòíèêîâ À.Â. Òðåõìåðíîå ÷èñëåííîå ìîäåëèðîâàíèå íåñòàöèîíàðíîé ãðàâèòèðóþùåé ñèñòåìû ìíîãèõ òåë ñ ãàçîì // Ïèñüìà â àñòðîíîìè÷åñêèé æóðíàë. 2004. 30, N.2. 146-160. 2. Ho kney, R.W. and Eastwood, J.W. Computer Simulation Using Parti les. // M Graw-Hill. New York. 1981. 3. Berezin Yu.A. Vshivkov V.A. Parti le-in- ell method in the plasma dynami s // Nauka. 1980. 4. J.E. Barnes and P. Hut. A Hierar hi al O(NlogN) For e-Cal ulation Algorithm // Nature Vol. 324, pp.446-449, 1986. 5. R.A. Gingold and J.J. Monaghan. Smoothed parti le hydrodynami s - Theory and appli ation to non-spheri al stars // Monthly Noti es of the Royal Astronomi al So iety, vol. 181, p. 375-389. 1977. 6. P. Colella, P.R. Woodward. The Pie ewise Paraboli Method (PPM) for gas-dynami al simulations // Journal of Computational Physi s. Volume 54, Issue 1, P. 174-201. 1984 7. A.Dubeya, K. Antypasb, M.K. Ganapathy , et al. Extensible omponent-based ar hite ture for FLASH, a massively parallel, multiphysi s simulation ode // Parallel Computing. Volume 35. 2009. P.512-522. 8. Springel V., Yoshida N., White S.D.M.: GADGET: a ode for ollisionless and gasdynami al osmologi al simulation. New Astronomy. 6, pp. 79-117 (2001) 9. F.R. Pear e, H.M.P. Cou hman. Hydra: a parallel adaptive grid ode // New Astronomy. Volume 2, Issue 5, P. 411-427. 1997. 10. V. Springel et al. Simulations of the formation, evolution and lustering of galaxies and quasars // Nature, V. 435, p. 629. 2005, 11. A.A. Klypin et al. Dark Matter Halos in the Standard Cosmologi al Model: Results from the Bolshoi Simulation // Astrophysi al Journal. V. 740 p. 102. 2011. 12. Y. Feng, T. Di Matteo, R.A.C. Croft, S. Bird, N. Battaglia, S. Wilkins // Monthly Noti e of Royal Astronomi al So iety. 2015 (submitted) 579 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 13. N. Snytnikov. S alable Parallel Algorithm for Solving the Collisionless Boltzmann - Poisson System of Equations // Astronomi al So iety of the Pa i Conferen e Series. - 2012. - V. 453. - P. 393. 14. Kolmogorov A.N., Fomin S.V. Elements of the Theory of Fun tions and Fun tional Analysis // Graylo k Press, Ro hester, N.Y., 1961. 15. Ñàìàðñêèé À.À. Íèêîëàåâ Å.Ñ. Ìåòîäû ðåøåíèé ñåòî÷íûõ óðàâíåíèé. Ì.: Íàóêà. 1978. 592 ñ. 16. Eastwood J.W., Brownrigg D.R.K. Remarks on the Solution of Poisson's Equation for Isolated Systems // Journal of Computational Physi s, Vol. 32, pp.24-38, 1979. 17. M.Frigo and S.G.Johnson. FFTW software // http://www.tw.org 18. O. Ayala, L.P. Wang. Parallel implementation and s alability analysis of 3D Fast Fourier Transform using 2D domain de omposition // Parallel Computing. 2013. Vol.39. P. 58-77 580 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Domain decomposition method for supercomputer simulation of gravitating systems Nikolay Snytnikov and Vitaly Vshivkov Keywords: particle in cell, Poisson solver, Vlasov equation, gravitational potential We present a new parallel algorithm for supercomputer simulation of collisionless gravitating systems. The algorithm combines particle-in-cell (PIC) method for solving Vlasov equation with parallel convolution FFT-based method for calculating gravitational potential of an isolated system. It uses a special domain decomposition technique for dynamical assignment of processors to subdomains. It is designed to address the specifics of simulating non- stationary rotating 2D/3D disks, in which PIC particles, representing collisionless matter, may cross computational domain for many times during the numerical experiment. Therefore there is a need to have an efficient load-balancing method. The parallel algorithm is suitable for running on supercomputers with different types of architectures: traditional (CPU-based), and hybrid (CPU with NVIDIA GPU and Intel Xeon Phi).