=Paper= {{Paper |id=Vol-1482/294 |storemode=property |title=Оптимизированная реализация теста HPCG для суперкомпьютера с сетью "Ангара" (Optimized implementation of HPCG benchmark on supercomputer with "Angara" interconnect.) |pdfUrl=https://ceur-ws.org/Vol-1482/294.pdf |volume=Vol-1482 }} ==Оптимизированная реализация теста HPCG для суперкомпьютера с сетью "Ангара" (Optimized implementation of HPCG benchmark on supercomputer with "Angara" interconnect.)== https://ceur-ws.org/Vol-1482/294.pdf
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


 Îïòèìèçàöèÿ òåñòà HPCG äëÿ ñóïåðêîìïüþòåðîâ ñ
                 ñåòüþ ¾Àíãàðà¿
                       À.À. Àãàðêîâ, À.Ñ. Ñåìåíîâ, À.Ñ. Ñèìîíîâ


                                      ÎÀÎ ¾ÍÈÖÝÂÒ¿




        Äàííàÿ ðàáîòà ïîñâÿùåíà îïòèìèçèðîâàííîé ðåàëèçàöèè òåñòà HPCG äëÿ ñóïåð-

        êîìïüþòåðîâ ñ ñåòüþ ¾Àíãàðà¿, ðàçðàáîòàííîé â ÎÀÎ ¾ÍÈÖÝÂÒ¿. Òåñò HPCG

        çàêëþ÷àåòñÿ â ðåøåíèè ñèñòåìû ëèíåéíûõ óðàâíåíèé ñ ðàçðåæåííîé ìàòðèöåé

        ìåòîäîì ñîïðÿæåííûõ ãðàäèåíòîâ ñ ïðåäîáóñëàâëèâàòåëåì. Ïðåäëàãàåìàÿ ðåà-

        ëèçàöèÿ âêëþ÷àåò îïòèìèçàöèè óðîâíÿ âû÷èñëèòåëüíîãî óçëà, â òîì ÷èñëå èç-

        ìåíåíèå îðìàòà õðàíåíèÿ ðàçðåæåííîé ìàòðèöû, OpenMP-ðàñïàðàëëåëèâàíèå

        è âåêòîðèçàöèþ, à òàêæå îïòèìèçàöèþ ìåæïðîöåññíûõ îáìåíîâ äëÿ ñåòè ¾Àí-

        ãàðà¿ ïðè ïîìîùè èñïîëüçîâàíèÿ áèáëèîòåêè SHMEM âìåñòî áèáëèîòåêè MPI.

        Â ðàáîòå ïðåäñòàâëåíû ïåðâûå ðåçóëüòàòû íà ìàêåòíîì 36-óçëîâîì êëàñòåðå ñ

        ñåòüþ ¾Àíãàðà¿, êîòîðûå ïðåâîñõîäÿò ðåçóëüòàòû áàçîâîé âåðñèè òåñòà HPCG

        2.4. Êëþ÷åâûå ñëîâà: êîììóíèêàöèîííàÿ ñåòü ¾Àíãàðà¿, áèáëèîòåêà SHMEM, HPCG




Ââåäåíèå

    HPCG [1℄  íîâûé òåñò, ïðåäíàçíà÷åííûé äëÿ äîïîëíåíèÿ òåñòà LINPACK (HPL) [2℄,
êîòîðûé â íàñòîÿùåå âðåìÿ èñïîëüçóåòñÿ äëÿ ðàíæèðîâàíèÿ ñóïåðêîìïüþòåðîâ â ñïèñêå
TOP500. Â îñíîâå HPCG ëåæèò ðåøåíèå ëèíåéíûõ óðàâíåíèé ðàçðåæåííîé ìàòðèöåé
áîëüøîé ðàçìåðíîñòè ïðè ïîìîùè èòåðàöèîííîãî ìåòîäà ñîïðÿæåííûõ ãðàäèåíòîâ ñ ìíî-
ãîñåòî÷íûì ïðåäîáóñëàâëèâàòåëåì.  îòëè÷èå îò HPL òåñò HPCG îáåñïå÷èâàåò ñòðåññîâóþ
íàãðóçêó ïîäñèñòåìû ïàìÿòè âû÷èñëèòåëüíûõ óçëîâ è êîììóíèêàöèîííîé ñåòè, ïðåäñòàâ-
ëÿÿ çíà÷èòåëüíûé êëàññ ñîâðåìåííûõ ñóïåðêîìïüþòåðíûõ ïðèëîæåíèé.
    Òåñò HPCG ñòàë ïðåäìåòîì ïðèñòàëüíîãî âíèìàíèÿ èññëåäîâàòåëåé âñåãî ìèðà, ïî-
ÿâèëèñü ðàáîòû ïî åãî îïòèìèçàöèè äëÿ ñóïåðêîìïüþòåðîâ Tianhe-2 [3, 4℄, K- omputer [5℄,
èññëåäóþòñÿ âîçìîæíîñòè óñêîðèòåëåé NVIDIA GPU [6℄ è Intel Xeon Phi [3℄, âûøëà ðàáîòà
ïî ïðåäñêàçàíèþ ïðîèçâîäèòåëüíîñòè HPCG [7℄. îññèéñêèå èññëåäîâàòåëè òàêæå óäåëÿþò
âíèìàíèå ýòîìó òåñòó [8, 9℄.
     ÎÀÎ ¾ÍÈÖÝÂÒ¿ ðàçðàáàòûâàåòñÿ âûñîêîñêîðîñòíàÿ êîììóíèêàöèîííàÿ ñåòü ¾Àí-
ãàðà¿ ñ òîïîëîãèåé ¾ìíîãîìåðíûé òîð¿ [1014℄.  2013 ãîäó âûïóùåí êðèñòàëë ìàðøðó-
òèçàòîðà ñåòè [15℄, â 2014 ãîäó ïðåäñòàâëåíû ïðåäâàðèòåëüíûå ðåçóëüòàòû îöåíî÷íîãî òå-
ñòèðîâàíèÿ 12-óçëîâîãî êëàñòåðà ñ ýòîé ñåòüþ [16℄.  íàñòîÿùèé ìîìåíò âåäeòñÿ îöåíî÷íîå
òåñòèðîâàíèå 36-óçëîâîãî êëàñòåðà ñ ñåòüþ ¾Àíãàðà¿.
    Ïåðå÷èñëåííûå ðàáîòû ïî îïòèìèçàöèè HPCG íå ïðåäîñòàâëÿþò èñõîäíûõ êîäîâ, â
ñâÿçè ýòèì è äëÿ áîëåå ãëóáîêîãî ïîíèìàíèÿ ýòîãî òåñòà áûëî ïðèíÿòî ðåøåíèå ðàçðà-
áîòàòü ñîáñòâåííóþ ðåàëèçàöèþ, ïðèçâàííóþ, â ÷àñòíîñòè, äåìîíñòðèðîâàòü âîçìîæíîñòè
ñåòè ¾Àíãàðà¿. Äàííàÿ ðàáîòà ïðåäñòàâëÿåò ïåðâûå ðåçóëüòàòû îïòèìèçàöèè HPCG.

1. Îïèñàíèå òåñòà HPCG


   Â òåñòå HPCG ðåøàåòñÿ ñèñòåìà ëèíåéíûõ óðàâíåíèé Ax = b ñ ðàçðåæåííîé ìàòðèöåé
A è äàííûì íà÷àëüíûì ïðèáëèæåíèåì x0 . Ìàòðèöà ñèñòåìû ïðåäñòàâëÿåò ñîáîé äèñêðå-



                                               294
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


òèçàöèþ óðàâíåíèÿ â ÷àñòíûõ ïðîèçâîäíûõ ýëëèïòè÷åñêîãî òèïà ñ 27-òî÷å÷íûì øàáëî-
íîì íà ðåãóëÿðíîé òðåõìåðíîé ñåòêå. Ñòðîêè â ðàçðåæåííîé ìàòðèöå ïðåäñòàâëÿþò òî÷êè
â ñåòêå. Ìàòðèöà èìååò äîñòàòî÷íî ïðîñòóþ ñòðóêòóðó, ÷òî óäîáíî äëÿ èíèöèàëèçàöèè
çàäà÷è è ïðîâåðêè ïðàâèëüíîñòè îïòèìèçèðîâàííûõ ðåøåíèé, îäíàêî îïòèìèçèðîâàííûå
ïîëüçîâàòåëüñêèå ðåàëèçàöèè íå äîëæíû îïèðàòüñÿ íà ñòðóêòóðó ìàòðèöû äëÿ óñêîðåíèÿ
âû÷èñëåíèé, ïîýòîìó ñëåäóåò ïîëàãàòü, ÷òî èìååòñÿ ðàçðåæåííàÿ ìàòðèöà îáùåãî âèäà. Â
÷àñòíîñòè, íåëüçÿ îòêàçûâàòüñÿ îò êîñâåííîé àäðåñàöèè ïðè äîñòóïå ê ñòðóêòóðàì äàííûõ,
â êîòîðûõ õðàíèòñÿ ìàòðèöà.
     HPCG êàæäûé MPI-ïðîöåññ îòâå÷àåò çà ïîäìíîæåñòâî ñòðîê ìàòðèöû A è ýëåìåí-
òîâ âåêòîðà b, ñîîòâåòñòâóþùåå ðàçìåðó ïîäîáëàñòè Nx ∗ Ny ∗ Nz , êîòîðûé çàäàåòñÿ ïîëü-
çîâàòåëåì â êîíèãóðàöèîííîì àéëå. Ïðîöåññû âûñòðàèâàþòñÿ â òðåõìåðíóþ ðåøåòêó
P = Px ∗Py ∗Pz , ãäå P  îáùåå ÷èñëî ïðîöåññîâ. Èòîãîâûé ðàçìåð çàäà÷è ðàâåí Gx ∗Gy ∗Gz ,
ãäå Gx = Px ∗ Nx , Gy = Py ∗ Ny , Gz = Pz ∗ Nz .
    Â òåñòå HPCG ðåøàåòñÿ ñèñòåìà óðàâíåíèé ïðè ïîìîùè âûïîëíåíèÿ â áàçîâîé ðåà-
ëèçàöèè (âåðñèÿ 2.4) 50 èòåðàöèé ìåòîäà ñîïðÿæåííûõ ãðàäèåíòîâ CG.  íà÷àëå êàæäîé
èòåðàöèè ìåòîäà CG âûïîëíÿåòñÿ ïðåäîáóñëàâëèâàíèå ñèñòåìû ïîìîùüþ èòåðàòèâíîãî
ìíîãîñåòî÷íîãî ìåòîäà (âûïîëíÿåòñÿ 3 èòåðàöèè) ñ èñïîëüçîâàíèåì ñèììåòðè÷íîãî ñãëà-
æèâàòåëÿ àóññà-Çåéäåëÿ.
    Â ñîîòâåòñòâèè ñî ñïåöèèêàöèåé ïîëüçîâàòåëü ìîæåò îïòèìèçèðîâàòü ñëåäóþùèå
óíêöèè:
 1. åàëèçàöèþ ìåòîäà ñèììåòðè÷íîãî àóññà-Çåéäåëÿ (ComputeSYMGS) è êîä ìíîãîñå-
    òî÷íîãî ïðåäîáóñëàëèâàòåëÿ.
 2. Âû÷èñëåíèå ïðîèçâåäåíèÿ ðàçðåæåííîé ìàòðèöû íà âåêòîð (ComputeSPMV).
 3. Âû÷èñëåíèå ñêàëÿðíîãî ïðîèçâåäåíèÿ âåêòîðîâ (ComputeDOT).
 4. Âû÷èñëåíèå ñóììû âåêòîðîâ âèäà: a ∗ X + b ∗ Y (ComputeWAXPBY).
    Ïîëüçîâàòåëüñêîå ðåøåíèå ìîæåò òàêæå èçìåíÿòü îðìàò õðàíåíèÿ ìàòðèöû è ïðîèç-
âîäèòü ïåðåñòàíîâêè ñòðîê. Îäíàêî ïî òðåáîâàíèþ ñïåöèèêàöèè îïòèìèçèðîâàííàÿ ïîëü-
çîâàòåëüêàÿ ðåàëèçàöèÿ äîëæíà äîñòè÷ü òîé òî÷íîñòè ðåøåíèÿ ñèñòåìû, ÷òî è áàçîâàÿ
âåðñèÿ HPCG. Îïòèìèçàöèè ìîãóò ïðèâîäèòü ê óìåíüøåíèþ ñêîðîñòè ñõîäèìîñòè çàäà÷è,
â ýòîì ñëó÷àå ïðè òåñòèðîâàíèè ðåàëèçàöèè âûïîëíÿåòñÿ íåîáõîäèìîå ÷èñëî èòåðàöèé, êî-
òîðîå áîëüøå áàçîâûõ 50 èòåðàöèé. Âðåìÿ, òðåáóþùååñÿ íà äîïîëíèòåëüíûå èòåðàöèè, à
òàêæå âðåìÿ ïðåîáðàçîâàíèÿ ñòðóêòóð äàííûõ, íåîáõîäèìûõ äëÿ îïòèìèçàöèè, âõîäèò âî
âðåìÿ ðåøåíèÿ çàäà÷è è ó÷èòûâàåòñÿ ïðè ïîäñ÷åòå ïðîèçâîäèòåëüíîñòè.

2. Îïòèìèçàöèè


    Âûïîëíåííûå â ðàáîòå îïòèìèçàöèè òåñòà HPCG ðàçäåëÿþòñÿ íà äâå êàòåãîðèè: îä-
íîóçëîâûå îïòèìèçàöèè è îïòèìèçàöèè ìåæóçëîâûõ êîììóíèêàöèé. Îäíîóçëîâûå îïòèìè-
çàöèè âêëþ÷àþò îðãàíèçàöèþ áîëåå ýåêòèâíîé ðàáîòû ñ îïåðàòèâíîé ïàìÿòüþ âíóòðè
âû÷èñëèòåëüíîãî óçëà, âåêòîðèçàöèþ è ðàñïàðàëëåëèâàíèå óíêöèé ñ ïîìîùüþ òåõíîëî-
ãèè OpenMP. Òàêèå îïòèìèçàöèè îáùåèçâåñòíû, îíè ðàññìàòðèâàëèñü â ðàáîòàõ [35℄. Íà-
ïðÿìóþ ýòè îïòèìèçàöèè íå êàñàþòñÿ ñåòè ¾Àíãàðà¿, íî îíè íåîáõîäèìû äëÿ ïîëó÷åíèÿ
âûñîêîé ïðîèçâîäèòåëüíîñòè, èõ îïèñàíèå íàõîäèòñÿ â ðàçäåëàõ 2.12.3. Â ðàçäåëå 2.4 ðàñ-
ñìîòðåíû ñïåöèè÷åñêèå äëÿ ñåòè ¾Àíãàðà¿ ìåæóçëîâûå êîììóíèêàöèè.




                                               295
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


    åçóëüòàòû ïðîèçâîäèòåëüíîñòè äëÿ âàðèàíòîâ îäíîóçëîâîé îïòèìèçàöèè ïîëó÷åíû íà
óçëå ñ äâóìÿ øåñòèÿäåðíûìè ïðîöåññîðàìè ñ âêëþ÷åííûì ðåæèìîì Hyper-Threading. Ïà-
ðàìåòðû óçëà (òèï À) ïðåäñòàâëåíû âî âòîðîì ñòîëáöå òàáëèöû 1.
                      Òàáëèöà 1. Ïàðàìåòðû âû÷èñëèòåëüíûõ óçëîâ

 Ïàðàìåòð                                            Óçåë òèïà A               Óçåë òèïà B
 Ïðîöåññîð                                           2xIntel Xeon E5-2630 Intel Xeon E5-2660
 Òàêòîâàÿ ÷àñòîòà ïðîöåññîðà, ö                      2.3                       2.2
 Êîëè÷åñòâî ÿäåð â óçëå                              12                        8
 àçìåð êýøà L3, ÌÁ                                  15                        20
 Ïèêîâàÿ ïðîèçâîäèòåëüíîñòü óçëà, ëîïñ              220.8                     140.8

          Òàáëèöà 2. Ïàðàìåòðû âû÷èñëèòåëüíîãî êëàñòåðà ñ ñåòüþ ¾Àíãàðà¿

              Ïàðàìåòð                                             Çíà÷åíèå
              Êîëè÷åñòâî óçëîâ òèïà À                              24
              Êîëè÷åñòâî óçëîâ òèïà B                              12
              Îáùàÿ ïèêîâàÿ ïðîèçâîäèòåëüíîñòü, ëîïñ 6988.8
              Èíòåðåéñ ïðîöåññîðà ñ ñåòüþ ¾Àíãàðà¿                PCIe gen2 x16
              Òàêòîâàÿ ÷àñòîòà ñåòåâîãî àäàïòåðà, Ì ö              500
              Çàäåðæêà ïåðåäà÷è 16-áàéòîâîãî ñîîáùåíèÿ 0.7/1
              ìåæäó äâóìÿ óçëàìè, SHMEM/MPI, ìêñ

2.1. Âûäåëåíèå íåïðåðûâíîãî áëîêà ïàìÿòè


    Â èñõîäíîì âàðèàíòå HPCG ïàìÿòü äëÿ ìàññèâîâ ýëåìåíòîâ è èíäåêñîâ ðàçðåæåííîé
ìàòðèöû âûäåëÿåòñÿ áëîêàìè, êàæäûé áëîê èìååò ðàçìåð, ðàâíûé ìàêñèìàëüíîìó êîëè÷å-
ñòâó íåíóëåâûõ ýëåìåíòîâ â ñòðîêå. Áëî÷íîå âûäåëåíèå ïàìÿòè ïðåïÿòñòâóåò ýåêòèâíî-
ìó èñïîëüçîâàíèþ âñåé ïîäñèñòåìû ïàìÿòè, â ÷àñòíîñòè êýøåé äàííûõ, êýøà äåñêðèïòîðîâ
ñòðàíèö (TLB). Ïåðâîå, ÷òî áûëî ïðåäïðèíÿòî  ýòî íåïðåðûâíîå âûäåëåíèå ïàìÿòè äëÿ
ýòèõ ìàññèâîâ. åçóëüòàòû ïðîèçâîäèòåëüíîñòè äëÿ ëîêàëüíîé îáëàñòè 16x16x128 ïðèâåäå-
íû íà ðèñ. 2. Âûäåëåíèå íåïðåðûâíîãî áëîêà ïàìÿòè ïîçâîëèëî ïîëó÷èòü ïðèðîñò ïðîèç-
âîäèòåëüíîñòè â ñðåäíåì â ïîëòîðà ðàçà ïî ñðàâíåíèþ ñ áàçîâîé ðåàëèçàöèåé.

                                               296
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


2.2. àñêðàñêà ìàòðèöû


     Ôóíêöèÿ ComputeSYMGS, ðåàëèçóþùàÿ ñèììåòðè÷íûé ìåòîä                 àóññà-Çåéäåëÿ
(SYMGS), çàíèìàåò íàèáîëüøåå âðåìÿ ñðåäè âñåõ îñòàëüíûõ óíêöèé, ïîýòîìó ÿâëÿåòñÿ
îäíîé èç îñíîâíûõ, íî è íàèáîëåå ñëîæíûõ çàäà÷ äëÿ îïòèìèçàöèè.
      òåñòå HPCG äëÿ ïîñòðîåíèÿ èñõîäíîé ìàòðèöû èñïîëüçóåòñÿ 27-òî÷å÷íûé øàáëîí
â òðåõìåðíîì ïðîñòðàíñòâå (ñì. ðèñ. 1), êàæäàÿ òî÷êà çàäàííîé îáëàñòè ñîîòâåòñòâóåò
êàêîé-òî ñòðîêå ìàòðèöû è ýëåìåíòó âåêòîðà. Ïðèìåíåíèå SYMGS íà êàæäîì óðîâíå ñåò-
êè âêëþ÷àåò â ñåáÿ îáìåí ãðàíè÷íûìè çíà÷åíèÿìè ìåæäó ñîñåäíèìè âû÷èñëèòåëüíûìè
óçëàìè, çà êîòîðûì ñëåäóåò ïðÿìîé è îáðàòíûé õîä SYMGS. Íà âûõîäå óíêöèÿ SYMGS
âîçâðàùàåò îáíîâëåííûé âåêòîð çíà÷åíèé x. Îñíîâíàÿ ñëîæíîñòü çàêëþ÷àåòñÿ â òîì, ÷òî
äëÿ ïîëó÷åíèÿ çíà÷åíèÿ xi èñïîëüçóþòñÿ íîâûå çíà÷åíèÿ x1 ...xi−1 â ïðÿìîì è xi+1 ...xn â
îáðàòíîì õîäå, ÷òî äåëàåò íåâîçìîæíûì ïàðàëëåëüíîå âûïîëíåíèå âñåõ òàêèõ îïåðàöèé.
     Äëÿ ðàñïàðàëëåëèâàíèÿ SYMGS, â ÷àñòíîñòè ïðè îïòèìèçàöèè òåñòà HPCG [35℄, ïðè-
ìåíÿåòñÿ ðàñêðàøèâàíèå òî÷åê îáëàñòè. Ïåðâûé âàðèàíò îïòèìèçàöèè ñîñòîÿë â ðàñêðàñêå
îáëàñòè â 8 öâåòîâ (ñì. ðèñ. 1), ïðè òàêîé ðàñêðàñêå ýëåìåíòû âåêòîðà, ñîîòâåòñòâóþùèå
îäíîìó öâåòó, ìîãóò âû÷èñëÿòüñÿ ïàðàëëåëüíî. Ýòî ñäåëàëî âîçìîæíûì ïàðàëëåëüíîå âû-
÷èñëåíèå ýëåìåíòîâ ñíà÷àëà âî âðåìÿ ïðÿìîãî, çàòåì âî âðåìÿ îáðàòíîãî õîäà SYMGS, íî
óõóäøèëî ñõîäèìîñòü ìåòîäà. Íà 12-òè ïîòîêàõ OpenMP óñêîðåíèå îòíîñèòåëüíî ïðåäûäó-
ùåãî âàðèàíòà ñ íåïðåðûâíîé ïàìÿòüþ ñîñòàâèëî áîëåå 3-õ ðàç, ñì. ðèñ. 2.
     Âî âòîðîì âàðèàíòå ðàñêðàñêà ïðîèçâîäèëàñü âñåãî â 2 öâåòà (ñì. ðèñ. 3) âäîëü îñè
Z . Òî÷êè, ñîîòâåòñòâóþùèå ïëîñêîñòÿì XY îäíîãî öâåòà, ìîãóò ðàññ÷èòûâàâàòüñÿ ïàðàë-
ëåëüíî äðóã äðóãó, â ñðàâíåíèè ñ ïðåäûäóùèì âàðèàíòîì ðàñêðàñêè ýòî íåìíîãî óëó÷øàåò
ñõîäèìîñòü, ÷òî âëèÿåò íà ïðîèçâîäèòåëüíîñòü, ñì. ðèñ. 2. Åñëè ðàñêðàøèâàòü íå ïî îäíîé,
à ïî äâå ïëîñêîñòè XY (ñì. ðèñ. 4), òî ñõîäèìîñòü óëó÷øàåòñÿ åùå áîëüøå, è íà ðèñ. 2 âèä-
íî, ÷òî ýòîò âàðèàíò ïîêàçûâàåò íàèëó÷øèå ðåçóëüòàòû èç âñåõ ïðåäëîæåííûõ âàðèàíòîâ
ðàñêðàñêè. Ïðîèçâîäèòåëüíîñòü ýòîãî âàðèàíòà â 4.8 ðàçà ïðåâûøàåò ïðîèçâîäèòåëüíîñòü
âàðèàíò ñ íåïðåðûâíîé ïàìÿòüþ íà 12-òè ïîòîêàõ OpenMP. Òàêîé âàðèàíò íå óïîìèíàåòñÿ
íè â îäíîé èç äðóãèõ ðàáîò [35℄. Îáúÿñíåíèåì âûñîêîé ïðîèçâîäèòåëüíîñòè ìîæåò áûòü
òî, ÷òî ïðè ðàñêðàøèâàíèè ïî ïëîñêîñòÿì ïðîèñõîäèò áîëüøå ïåðåèñïîëüçîâàíèÿ äàííûõ â
êýøå ïðè îáðàùåíèè ê ïàìÿòè, ïîòîìó ÷òî ïîòîêè ïîñëåäîâàòåëüíî ïåðåáèðàþò ýëåìåíòû,
ñîîòâåòñòâóþùèå ñîñåäíèì òî÷êàì îäíîé ïëîñêîñòè.




                            èñ. 1 . àñêðàñêà îáëàñòè â 8 öâåòîâ



                                               297
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


        12       !
               "#$%#% " # &'( $)*+(
      10       %,'%,' " 8 -#+
               %,'%,' " 2 -#+ ($ 1 $&,',+()
                %,'%,' " 2 -#+ ($ 2 $&,',+()
    ,


      8
               #'+%(-(*
        6
     
       4
      
      
      
      
       2
      
      
        0
                        1                          6                     12                 24
                                                OpenMP




         èñ. 2  . Ïðîèçâîäèòåëüíîñòü îäíîóçëîâûõ âàðèàíòîâ îïòèìèçàöèè HPCG




   èñ. 3    . àñêðàñêà îáëàñòè â 2 öâåòà                    èñ. 4. àñêðàñêà îáëàñòè â 2 öâåòà ïî äâå
                                                              ïëîñêîñòè


2.3. Âåêòîðèçàöèÿ


    Ñëåäóþùèì ýòàïîì îïòèìèçàöèé áûëà âåêòîðèçàöèÿ âû÷èñëåíèé. Ïîñêîëüêó âî âñåõ
ñòðîêàõ ìàòðèöû, êðîìå ñîîòâåòñòâóþùèõ ãðàíè÷íûì ýëåìåíòàì, ïî 27 íåíóëåâûõ çíà-
÷åíèé, òî èñïîëüçóåìûé ïî óìîë÷àíèþ îðìàò õðàíåíèÿ ðàçðåæåííîé ìàòðèöû ìîæíî
çàìåíèòü íà îðìàò ELLPACK, â êîòîðîì êîëè÷åñòâî íåíóëåâûõ ýëåìåíòîâ â ñòðîêå èê-
ñèðîâàíî, è ýòîò àêò èñïîëüçóåòñÿ äëÿ óïðîùåíèÿ ñòðóêòóðû äàííûõ. Â äàííîé ðåàëèçà-
öèè äëÿ îðìàòà ELLPACK êîëè÷åñòâî íåíóëåâûõ ýëåìåíòîâ â ñòðîêå âûáðàíî ðàâíûì 28,
÷òî òðåáóåòñÿ äëÿ êðàòíîñòè äëèíû ìàññèâà ýëåìåíòîâ ñòðîêè äëèíå âåêòîðíîãî ðåãèñòðà
ðàñøèðåíèÿ ñèñòåìû êîìàíä Intel AVX  ïî 4 çíà÷åíèÿ äâîéíîé òî÷íîñòè â âåêòîðå. Ñìå-
íà îðìàòà ìàòðèöû ïîçâîëèëà óëó÷øèòü âåêòîðèçàöèþ êîäà óíêöèé ComputeSYMGS è
ComputeSPMV, ÷òî îáåñïå÷èëî ïðèðîñò ïðîèçâîäèòåëüíîñòè 5%.
    Ýåêòèâíàÿ âåêòîðèçàöèÿ êîäà óíêöèé ComputeSYMGS è ComputeSPMV çàòðóäíè-
òåëüíà èç-çà òîãî, ÷òî îáðàùåíèÿ ê âåêòîðó x ÿâëÿþòñÿ êîñâåííûìè, òî åñòü ïðîèñõîäÿò ïî

                                                        298
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


èíäåêñàì, ñîîòâåòñòâóþùèì íåíóëåâûì ýëåìåíòàì ñòðîê ìàòðèöû. Îñíîâíîé àêòîð, ñäåð-
æèâàþùèé ïðîèçâîäèòåëüíîñòü ýòèõ óíêöèé  ïðîïóñêíàÿ ñïîñîáíîñòü ÷òåíèÿ èç ïàìÿòè
â ðåæèìå ìàëîé ïîëåçíîé äîëè äàííûõ, âûáèðàåìûõ èç ïàìÿòè ïðè îäíîì îáðàùåíèè. Îä-
íàêî ïîëó÷åííûé ïðèðîñò ïðîèçâîäèòåëüíîñòè íå ÿâëÿåòñÿ îêîí÷àòåëüíûì ðåçóëüòàòîì.
2.4. Îïòèìèçàöèÿ ìåæóçëîâûõ êîììóíèêàöèé


    Ïîñêîëüêó ìàðøðóòèçàòîðû ñåòè ¾Àíãàðà¿ ñîçäàâàëèñü ñ àïïàðàòíîé ïîääåðæêîé áèá-
ëèîòåêè SHMEM [17℄, äëÿ óâåëè÷åíèÿ ïðîèçâîäèòåëüíîñòè ìåæóçëîâûõ êîììóíèêàöèé èñ-
ïîëüçîâàëàñü ýòà áèáëèîòåêà âìåñòî áèáëèîòåêè MPI [18℄, èñïîëüçóåìîé â áàçîâîé âåðñèè
HPCG.
    Â óíêöèè Ex hangeHalo, êîòîðàÿ èñïîëüçóåòñÿ ïðè âûïîëíåíèè óíêöèé SYMGS è
SPMV äëÿ îáìåíà ãðàíè÷íûìè çíà÷åíèÿìè, ïîñûëêè çíà÷åíèé â îïòèìèçèðîâàííîé âåð-
ñèè îñóùåñòâëÿþòñÿ ïðè ïîìîùè óíêöèè çàïèñè äàííûõ íà óäàëåííûé óçåë áèáëèîòå-
êè SHMEM (shmem_double_put). Îäíàêî ïîñëå óäàëåííîé çàïèñè äàííûõ â áèáëèîòåêå
SHMEM íåîáõîäèìà ñèíõðîíèçàöèÿ. Ïåðâàÿ ðåàëèçàöèÿ èñïîëüçîâàëà îáùóþ áàðüåðíóþ
ñèíõðîíèçàöèþ: êàæäûé ïðîöåññ îæèäàë, êîãäà çàâåðøàòñÿ óäàëåííûå çàïèñè âñåõ ïðî-
öåññîâ ïðè ïîìîùè óíêöèè shmem_barrier, è òîëüêî ïîñëå ýòîãî íà÷èíàë âûïîëíåíèå
îñíîâíûõ öèêëîâ SYMGS è SPMV. Âî âòîðîì âàðèàíòå èñïîëüçîâàëàñü ñèíõðîíèçàöèÿ, ðå-
àëèçîâàííàÿ ïðè ïîìîùè äîïîëíèòåëüíûõ óäàëåííûõ çàïèñåé, íî òîëüêî ñ òåìè ïðîöåññà-
ìè, ñ êîòîðûìè ïðîèñõîäèò îáìåí. Êàæäûé ïðîöåññ íà÷èíàë âûïîëíÿòü îñíîâíûå èòåðàöèè
ïîñëå òîãî, êàê ïîëó÷èò íåîáõîäèìûå äàííûå äëÿ âû÷èñëåíèé îò ñîñåäíèõ ïðîöåññîâ.
               300

                               SHMEM
               250
                               456789: HPCG 2.4
               200
              3
              2
              1 150
              0
              /
              .
               100


                50


                 0
                      0    5           10         15     20   25   30     35      40



     . Ïðîèçâîäèòåëüíîñòü íà ðàñïðåäåëåííîé ïàìÿòè áàçîâîãî âàðèàíòà â ñðàâíåíèè ñ
èñ. 5

îïòèìèçèðîâàííûì âàðèàíòîì ñ èñïîëüçîâàíèåì áèáëèîòåêè SHMEM
    Ñðàâíåíèå ðåçóëüòàòîâ ðàáîòû êàæäîé ðåàëèçàöèè ïðåäñòàâëåíî íà ðèñ. 5. åçóëüòàòû
èçìåðÿëèñü íà 36-óçëîâîì êëàñòåðå ñ ñåòüþ ¾Àíãàðà¿, åãî ïàðàìåòðû ïðèâåäåíû â òàáëèöå
2. Íà êàæäîì èç óçëîâ ïðè çàïóñêå òåñòà HPCG èñïîëüçîâàëîñü 8 ïðîöåññîâ. åçóëüòà-
òû ïðîèçâîäèòåëüíîñòè ïðèâåäåíû äëÿ ðàçìåðà ëîêàëüíîé îáëàñòè ïðîöåññà 16x16x16. Íà
ðèñóíêå ïðèâåäåíû ðåçóëüòàòû äëÿ áàçîâîé âåðñèè 2.4 òåñòà è äëÿ îïòèìèçèðîâàííîé âåð-
ñèè, âêëþ÷àþùåé îäíîóçëîâûå îïòèìèçàöèè (çà èñêëþ÷åíèåì OpenMP) è èñïîëüçîâàíèå
áèáëèîòåêè SHMEM.

                                                       299
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


   Äèàãðàììà íà ðèñ. 5 ïîêàçûâàåò, ÷òî íà 36 óçëàõ âûèãðûø â ïðîèçâîäèòåëüíîñòè îï-
òèìèçèðîâàííîé âåðñèè ñ èñïîëüçîâàíèåì SHMEM ñîñòàâëÿåò 39%.

Çàêëþ÷åíèå
    Äàííàÿ ðàáîòà ïðåäñòàâëÿåò ïåðâóþ âåðñèþ îïòèìèçèðîâàííîé ðåàëèçàöèè òåñòà HPCG
äëÿ ñóïåðêîìïüþòåðîâ ñ ñåòüþ ¾Àíãàðà¿, ðàçðàáîòàííîé â ÎÀÎ ¾ÍÈÖÝÂÒ¿. Ïðåäëàãàåìàÿ
ðåàëèçàöèÿ âêëþ÷àåò îïòèìèçàöèè óðîâíÿ âû÷èñëèòåëüíîãî óçëà, â òîì ÷èñëå èçìåíåíèå
îðìàòà õðàíåíèÿ ðàçðåæåííîé ìàòðèöû, OpenMP-ðàñïàðàëëåëèâàíèå ìåòîäà ñèììåòðè÷-
íîãî àóññà-Çåéäåëÿ è âåêòîðèçàöèþ êîäà. Íà îäíîì óçëå ïåðå÷èñëåííûå ïðèåìû ïîçâîëèëè
ïîëó÷èòü óñêîðåíèå 4.8 ðàçà ïî ñðàâíåíèþ ñ áàçîâîé âåðñèåé HPCG 2.4.
    Ìåæïðîöåññíûå îïòèìèçàöèè îáìåíîâ â ñåòè ¾Àíãàðà¿ âûïîëíåíû ïðè ïîìîùè èñïîëü-
çîâàíèÿ áèáëèîòåêè SHMEM âìåñòî áèáëèîòåêè MPI. Ïîëó÷åííûå â ðàáîòå ðåçóëüòàòû íà
ìàêåòíîì 36-óçëîâîì êëàñòåðå ñ ñåòüþ ¾Àíãàðà¿ ïîçâîëèëè ïîëó÷èòü âûèãðûø 39% ïî
ñðàâíåíèþ ñ áàçîâîé âåðñèåé 2.4 òåñòà HPCG.
    Äàëüíåéøàÿ ðàáîòà áóäåò íàïðàâëåíà íà îáúåäèíåíèå OpenMP-ðàñïàðàëëåëèâàíèÿ è
ìíîãîóçëîâûõ îïòèìèçàöèé, à òàêæå íà óëó÷øåíèå ðåçóëüòàòîâ è áîëåå ãëóáîêîå èññëåäî-
âàíèå.

Ëèòåðàòóðà
1. M.      Heroux,       J.  Dongarra,     P.     Lusz zek.     HPCG      Te hni al
   Spe i ation.   Sandia   Report     SAND2013-8752.   Printed   O tober     2013.
   URL: https://software.sandia.gov/hp g/do /HPCG-Spe ifi ation.pdf (äàòà îá-
   ðàùåíèÿ: 10.06.2015).

2. J. Dongarra, P. Lusz zek, A. Petitet. The LINPACK Ben hmark:              Past,
   Present,   and Future // Con urren y and Computation:            Pra ti e and
   Experien e.  Vol. 15(9).  2003.  P. 803820. ISSN 1532-0634.
   URL: http://www.netlib.org/utk/people/Ja kDongarra/PAPERS/146_2003_the-linpa k-ben hmark-pa
   (äàòà îáðàùåíèÿ: 14.06.2015).

3. J. Park, M. Smelyanskiy, K. Vaidyanathan, et al. E ient shared-memory implementation
   of high-performan e onjugate gradient ben hmark and its appli ation to unstru tured
   matri esi // In Pro eedings of the International Conferen e for High Performan e Computing,
   Networking, Storage and Analysis (SC'14). IEEE Press, Pis ataway, NJ, USA,  2014. 
   P. 945955. URL: http://p l.intel-resear h.net/publi ations/s 14_hp g.pdf (äàòà
   îáðàùåíèÿ: 12.06.2015).

4. C. Chen, Y. Du, H. Jiang, K. Zuo, C. Yang. HPCG: Preliminary Evaluation and Optimization
   on Tianhe-2 CPU-only Nodes // In Pro eedings of the 2014 IEEE 26th International
   Symposium on Computer Ar hite ture and High Performan e Computing (SBAC-PAD '14).
    IEEE Computer So iety, Washington, DC, USA.  2014.  P. 4148.

5. K. Kumahata,      K. Minami. HPCG Performan e Improvement on the K
    omputer   //    Presentation at Super omputers  Conferen e  (SC'14),   2014.
   URL: http://www.hp g-ben hmark.org/downloads/s 14/HPCG_on_the_K_ omputer.pdf
   (äàòà îáðàùåíèÿ: 14.06.2015).

                                               300
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


6. E. Phillips, M. Fati a. A CUDA Implementation of the High Performan e Conjugate Gradient
   Ben hmark // High Performan e Computing Systems. Performan e Modeling, Ben hmarking,
   and Simulation. Le ture Notes in Computer S ien e.  Vol. 8966.  2015. P. 6884.
   URL: http://www.d s.warwi k.a .uk/~sdh/pmbs14/PMBS14/Workshop_S hedule_files/8-CUDAHPCG.pdf
   (äàòà îáðàùåíèÿ: 12.06.2015).
7. V. Marjanovi, J. Gra ia, C. Glass. Performan e Modeling of the HPCG Ben hmark
   // High Performan e Computing Systems. Performan e Modeling, Ben hmarking, and
   Simulation Le ture Notes in Computer S ien e.  Vol. 8966.  2015.  P. 172192.
   URL: https://hpgmg.org/stati /Marjanovi Gra iaGlass-Performan eModelHPCG-2014.pdf
   (äàòà îáðàùåíèÿ: 14.06.2015).
8. Ëàöèñ, À.Î. Êàêàÿ íàì ïîëüçà îò òåñòà HPCG. / Ëàöèñ, À.Î., Àíäðååâ Ñ.Ñ.,
   Ïëîòêèíà Å.À., Äáàð Ñ.À. // Ñáîðíèê òåçèñîâ äîêëàäîâ ÍÑÊÔ'2014.  2014.
   URL: http://2014.ns f.ru/TesisAll/4_Systemnoe_i_promezhyto hnoe_PO/06_072_LatsisAO.pdf
   (äàòà îáðàùåíèÿ: 12.06.2015).
9. Êèñåëåâ À.Â., Êèñåëåâ Å.À., Êîðíååâ Â.Â. Àíàëèç ñòðóêòóðû èíîðìàöèîííîãî ãðà-
   à òåñòà HPCG // Íàó÷íûé ñåðâèñ â ñåòè Èíòåðíåò: ìíîãîîáðàçèå ñóïåðêîì-
   ïüþòåðíûõ ìèðîâ: Òðóäû Ìåæäóíàðîäíîé ñóïåðêîìïüþòåðíîé êîíåðåíöèè (22-
   27 ñåíòÿáðÿ 2014 ã., ã. Íîâîðîññèéñê).  Ì.: Èçä-âî Ì Ó, 2014.  C. 4951.
   URL: http://agora.guru.ru/abrau2014/pdf/049.pdf (äàòà îáðàùåíèÿ: 12.06.2015).
10. Ìàêàãîí, Ä.Â. Ñåòè äëÿ ñóïåðêîìïüþòåðîâ. / Ä.Â. Ìàêàãîí, Å.Ë. Ñûðîìÿòíèêîâ //
   Îòêðûòûå ñèñòåìû. ÑÓÁÄ.  2011.   7.  Ñ. 3337.
11. Êîðæ, À.À. Îòå÷åñòâåííàÿ êîììóíèêàöèîííàÿ ñåòü 3D-òîð ñ ïîääåðæ-
   êîé ãëîáàëüíî àäðåñóåìîé ïàìÿòè äëÿ ñóïåðêîìïüþòåðîâ òðàíñïåòàëîïñíî-
   ãî óðîâíÿ ïðîèçâîäèòåëüíîñòè. / À.À. Êîðæ, Ä.Â. Ìàêàãîí, È.À. Æàáèí,
   Å.Ë. Ñûðîìÿòíèêîâ // Ïàðàëåëüíûå âû÷èñëèòåëüíûå òåõíîëîãèè (ÏàÂÒ'2010):
   Òðóäû ìåæäóíàðîäíîé íàó÷íîé êîíåðåíöèè (Óà, 29 ìàðòà  2 àïðåëÿ
   2010 ã.).  ×åëÿáèíñê:     Èçäàòåëüñêèé öåíòð ÞÓð Ó, 2010.  C. 227237.
   URL: http://omega.sp.susu.a .ru/books/ onferen e/PaVT2010/full/134.pdf (äà-
   òà îáðàùåíèÿ: 29.04.2015).
12. Ñèìîíîâ, À.Ñ. àçðàáîòêà ìåæóçëîâîé êîììóíèêàöèîííîé ñåòè ñ òîïîëîãèåé ¾ìíîãî-
   ìåðíûé òîð¿ è ïîääåðæêîé ãëîáàëüíî àäðåñóåìîé ïàìÿòè äëÿ ïåðñïåêòèâíûõ îòå÷å-
   ñòâåííûõ ñóïåðêîìïüþòåðîâ. / À.Ñ. Ñèìîíîâ, È.À. Æàáèí, Ä.Â. Ìàêàãîí // Íàó÷íî-
   òåõíè÷åñêàÿ êîíåðåíöèÿ ¾Ïåðñïåêòèâíûå íàïðàâëåíèÿ ðàçâèòèÿ âû÷èñëèòåëüíîé òåõ-
   íèêè¿ (Ìîñêâà, 28 èþíÿ).  Ìîñêâà: ÎÀÎ ¾Êîíöåðí ¾Âåãà¿, 2011.  C. 1719.
13. Ñèìîíîâ, À.Ñ. Ïåðâîå ïîêîëåíèå âûñîêîñêîðîñòíîé êîììóíèêàöèîííîé ñåòè ¾Àíãàðà¿ /
   À.Ñ. Ñèìîíîâ, Ä.Â. Ìàêàãîí, È.À. Æàáèí, À.Í. Ùåðáàê, Å.Ë. Ñûðîìÿòíèêîâ, Ä.À. Ïî-
   ëÿêîâ // Íàóêîåìêèå òåõíîëîãèè.  2014.  Ò. 15,  1.  Ñ. 2128.
14. Ñëóöêèí, À.È. àçðàáîòêà ìåæóçëîâîé êîììóíèêàöèîííîé ñåòè ÅÑ8430 ¾Àíãàðà¿ äëÿ
   ïåðñïåêòèâíûõ ñóïåðêîìïüþòåðîâ / À.È. Ñëóöêèí, À.Ñ. Ñèìîíîâ, È.À. Æàáèí, Ä.Â. Ìà-
   êàãîí, Å.Ë. Ñûðîìÿòíèêîâ // Óñïåõè ñîâðåìåííîé ðàäèîýëåêòðîíèêè.  2012.   1.
    C. 610.
15. Ìàêàãîí, Ä.Â. Êðèñòàëë äëÿ Àíãàðû / È.À. Æàáèí, Ä.Â. Ìàêàãîí, À.Ñ. Ñèìîíîâ //
   Ñóïåðêîìïüþòåðû.  Çèìà-2013.  C. 4649.

                                               301
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org


16. Èçãàëèí Ñ.Ï., Ñèìîíîâ À.Ñ., Ìèõååâ Â.À. Îòå÷åñòâåííûå ðàçðàáîòêè â îáëàñòè ñóïåð-
  êîìïüþòåðíûõ òåõíîëîãèé. Ïðåäâàðèòåëüíûå ðåçóëüòàòû îöåíêè ïðîèçâîäèòåëüíîñòè
  ÂÊÑ ¾Àíãàðà¿ (ÅÑ8430) // Äîêëàä íà Ìîñêîâñêîì Ñóïåðêîìïüþòåðíîì Ôîðóìå, 2014.
  URL: http://www.osp.ru/net at_files/18/10/07_Ote hestvennye_razrabotki_v_oblasti_superkomp_
  (äàòà îáðàùåíèÿ: 14.06.2015).

17. Feind,   K.   Shared   Memory     A   ess   (SHMEM)     Routines.    Cray   Resear h,    1995.
  URL: https:// ug.org/5-publi ations/pro eedings_attendee_lists/1997CD/S95PROC/303_308.PDF
  (äàòà îáðàùåíèÿ: 29.04.2015).

18. Message Passing Interfa e Forum, MPI: A Message-Passing Interfa e Standard, 1995.
  URL: http://www.mpi-forum.org/do s/mpi-1.1/mpi-11-html/node64.html (äàòà îáðà-
  ùåíèÿ: 29.04.2015).




                                                302
   Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org



Optimized implementation of HPCG benchmark on
supercomputer with “Angara” interconnect
Alexander Agarkov, Alexander Semenov and Alexey Simonov
Keywords: HPCG, "Angara" interconnect, SHMEM, vectorization, OpenMP
The paper presents the optimized implementation of the HPCG benchmark on "Angara"
interconnect developed by "NICEVT". HPCG implements conjugate gradient method with
preconditioner to solve a sparse linear system. The proposed implementation includes
compute node optimizations, such as new sparse matrix storage format, OpenMP-
parallelization and vectorization, as well as interprocess communication optimizations
targeted for "Angara" interconnect by using the SHMEM library instead of MPI. Compute
node optimization includes changing the sparse matrix storage format, OpenMP-
parallelization and vectorization. Obtained performance results on the cluster with "Angara"
interconnect significantly exceed the results of the HPCG 2.4 reference implementation.