45

0)1-) 2 354# 6- 7 8989 :73 ; :7 )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� ��� ������� ����������� ��������������! ��"�#�$�

%'&)(+*-,/.�01&32'4$576�8:9<;<=?>@8A6CB)D�EFG2357H)8JIK(MLNE@LNO7OP8JOQ*

R ;SN8A8UTNLV2W93LXTVLN2Y>

*ZD�6�[3&3>@8JE19]\A578A2^\J8_4`8A\ba^235P\XLVOc018J[dD�E?>*$9Yef4g0hejiYklefi�m9]8J[3>@8J6 R 8AE-kNi�iYk

n�odpcqsrdtuosvxwzy�{}|d~s~/�Q�N�u�<�/~/�

Page 2: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

����������� �

���� ����������������� �!�#"$� %&���'��(*)+�!�,%!�.-/�0)1-�)�2�3"54#�6-�7�����8989���:73�;���:7�<,�=7:�>���)+�!�#�:���@?A-/�B4,��������� �!�4#�6-�7�����8989���:7DCE�F��"G�D�D�/%H�I%!80�����J�<K80L!�!�H-+?M4,��������� �!�N4#�6-�7�����8989���:7POQ-/�,%!)R�S<TO!)�%')1-U"VCWN2�Q%=�XOQ-/�,%!)R�S<TO!)�%X�!�#�DLY� ��<D%=�!�6%�)1-[Z��S��)+�J4,��������� �!�D4#�6-�7�����8\%�LQ�/%=���]-/�^�_��� %!)R�S�RLY<K)1���`%Q2,���6���8a�!8a-/�Sb^8a-Y�:�!�;Cdc^<D��"fegchWi�3j %U�F��"lk=m�� %n�o�!<:�p)R��8a�a%!b=%!)1�!8q?A-/�d�N��"rm\�!�#�DLY�s���:7o��))1-9�S<:�t-/�^�_Z��R�:��u/���!�.�!)Rba-+?����QOQ2:��)1�QO!)R<K�6�Q%3��� O!�s<,�����:79� �!)gZv-/�6w=%\-+?xZv-/�6w=%!)y��)R�.-/�,%Qm{z��Q-/Z�<K� ?O!�s<D%!)1�!�Q%\���#�9%Q2,���Q���08a�!8a-/�!b080�:OQ2:��� �Q%YC

k

Page 3: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

�������������

� {Jvdt �lo��`p��Nt � osv �

� ������� q��lospMv�� �k���� (MLNE@LNO7OP8JO [^E D! �E@LV6�6 5P2" _O LN2# �&)L$ �8J=%�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� )k�� k FG( *+* =1[^E 8JI^8A\J8A= = D�E =,�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� -

k�� k���� 9][^O757> ej*.�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� �uik�� k�� k .1*/�'�&�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� �!�

k�� m FG( * �'�'�&�'�&�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� �!�k�� m#��� 4$a^8:F-(+*�OPLN2" �&)L0 �81�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� �lkk�� m#� k 4$a^82 E D�2Y> 8A2^I �'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� ��3k�� m#� m 4$a^8 E &^2�>@576�8-= ;<= > 8A6 �'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� � 4k�� m#�65 72^8Ue = 5PI38AI'LN2^I�498ZD ef= 57I^8AI'\AD�6 6�&^235P\XL >@5PDN2:�'�&�'�'�'�'�'�&�'�&�'� ��)

� y�p<;>=@?BADCE� qsv �DFm#��� F1= 5P2# %�&)(+* �'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� � -m#� k 4$a^8_%'&^( *�= ;<= > 8A6C6�D<I^8JO �&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� � G

m#� k���� *ZD�6 6�&^2^57\XLV> 5PD�2 > a^E 8ALNI1�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� � G

| y�p<;>=H=_oJILK osv<A]vst�C �^|5"��� Mf2^5 >@5PLNOP5ONXLV> 5PD�2P�&�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k055"� k Q 8J> =gLN2^I'(x&]>@=R�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k05

5"� k���� SDT!U D�[d8JE@LV> 5PD�2@�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k055"� k�� k VXW�U D�[d8JE@LV> 5PD�2@�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k!3

5"� m 9<;<2^\ba3E D�2^5ONXLV> 5PD�2Y�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k!35"� m#��� ZhLNE E 5P8JEhD�[s8AE LV>@57D�2[�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k!)5"� m#� k \GDN> 5O2 ;#]_^ LN57>ZD�[s8AE@L >@5PDN2 �'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k$-

Page 4: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

5"�65 %'8J6�DNE ;�%'LN2)L$ �8J6�8J2Y>-LV2^I��QD<\���= �&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� k$G5"�65"��� �-;<2)LN6 5P\ %'8J6�DNE ; �'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� m�i5"�65"� k �QD]\���= �'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� m�m

5"� 3 4`8AE 6�572)LV>@57D�2.�&�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� m!G5"� 4 %'&^( *�018J= >@E 5P\U>@5PDN2^= �'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� m!G

5"� 4#��� 9<>@E 5P\U>1LN2^I�018JO L��]8JI �&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� m!G5"� 4#� k p�K � q�� o���� A��<� t �'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5Yi5"� 4#� m B 5P2^LNO ZhLVE E 578AEg( E D<\A8J= = 5P2" �&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5Yi

� p�ILIL�"��� |`�3���� *Z&^E E 8J2�>1=?>bLV> 8:D02x%'&)(+* �&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5"�3�� k %'&^( *�4M8J= >@572" R�'�(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5"�3�� m %'&^( *�(MD�E?>@5P2# �(�&�'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5"�3��65 0g8AO78XLN= 8Mf2#2 D�E 6�LV> 5PD�2 �'�'�&�'�&�'�'�&�'�(�&�'�&�'�'�&�'�&�'�'�'�'�'�&�'�&�'� 5�k

k

Page 5: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� � ������������� �� ���

(MLNE@LVOPOP8JO \JD�6 [^&3>@572" 8 D�E ��= D�2�>@a38�[^E 572^\A57[^OP8�D$21I^57T<5PI35P2" WL R 5 >bLV= � 572Y>@D L 2�&^6 R 8AE}D$2= 6 LVOPOP8JEg= & R >@LN= ��=�cLN2^I >@a38A2W8 �]8J\A&3> 5P2" > a^8A= 8�= & R >bLN= �<= 572K[)LNE LNOPO78AOcD�2 6 &^O7> 5P[^O78:[3E D<\A8A= =?e572" W8AO78A6 8A2Y>@= � 4$a^57=}5P=�I3D�2^8�5P2 D�E I^8AE�> DWE 8JI^&^\A8�8 �38J\A&3> 5PD�2 >@576�80� (MLNE@LVOPOP8JO \JD�6 [^&3>@572" [3O LV> 2 D�E 6 =G\ALN2 R 8 \AO LV= = 5 H)8AIW572WL TVLNE 578J>f;'D$2�8ZLu;<= � 72^8�8ZLu;'>@D�\JO LN= = 5O2 ;�> a^8A6 5P=-DN2 >@a^8R LN= 57=}D$21a^D 8 I^5 � 8JE 8A2Y> [^E D]\J8A= = 5P2# 8JOP8J6�8J2�> =}5P2Y>@8JE@LN\U> 8g57> a 8XLN\ba#DN>@a38AE � 498ZD \ADN6�6 D�28ZLX;<=Z[^E D]\J8A= = D�E = 5P2Y>@8JE@LN\U>hLVE 8 R ;�6 8A= =@L$ N8G[)LV= = 572" _LN2^I R ; &^= 5P2" _L:= a)LNE 8AI�LNI3I^E 8J= =Z= [)LN\J8$�Mf2 L�6 8A= = L$ �8 [)LN= = 572" �LNE \ba^5 >@8J\J>@&3E 8�Q> a^8 [^E D<\A8J= = 572" �8AO78A6 8A2Y>@= 5P2Y> 8AE@LV\J>8g57> a 8XLN\ba DN>@a38AER ;}= 8A2^I35P2" 6 8A= = L$ �8J=+DuTN8AE+LN2 5P2Y>@8JE \JD�2^2^8J\J>@57D�2 2^8J> 8 D�E ��� B 5O �&^E 8+��� ��Mf2 L = a^LNE 8JI�6 8A6 D�E ;LVE \ba^5 >@8A\U>@&^E 8�Q[^E D]\J8A= = 5P2# �8JOP8J6�8J2�> = 5P2Y>@8JE@LN\U> 8g57> aW8XLN\ba DN> a^8AE R ;K= a)LNE 5P2" �L�= 5P2" �O78�d\AD�6}e6 D�2�6 8A6 D�E ;�� B 5O �&^E 8:k�� �

Processing

Element

1

Processing

Element

Processing

Element

1 n 2

LocalMemory Memory

LocalLocalMemory

Interconnection Network

. . .

. . .

B 5O �&^E 8 ��, %'8A= =@L$ �8:[)LN= = 572" LNE \ba^5 >@8J\J>@&3E 8$�.�TVLNE 5P8J>f; D$2z= D$2 > 8hLVE 8 6 8A\ba^LN2^5P= 6�=g= &^[^[sD�E >g>@a38A= 8 LNE \ba357>@8J\J> &^E 8J= �Z4$a38}%'8J= =@L0 �8 (MLN= = 5P2" Mf2Y> 8AE 2 LV\A8�� %'( M���� ��� 5P=$L�O75 R E LNE ; D02�2 &32^\J> 5PD�2^=Z&^= 8JI�> D}I^D}[)LNE LNOPO78AO/\ADN6�[^&]>@5P2# �D�2�6 8A= = L$ �8[^LN= = 5P2" [^O L > 2 D�E 6�= � %K(�M 57=>8g57I^8AO ;�&^= 8AI 8g57>@a�* LN2^I�B�7 0 4g0g. \![^E D! �E LN6�6 5P2# KO LV2]e N&)L$ �8J= D�2 L�TVLNE 578J>f; D$2h6�8J= =@L0 �8 [)LV= = 572" [^OPLV> 2 DNE 6 = = &^\ba LN=_2^8J> 8 D�E �<= D$298 D�E ��= >@LV>@57D�2^=LV2^I Z 8AD 8g&^OO2z\AOP&3= >@8JE = �$%K(�Mh\ALN2KLVOP= D R 8:&3= 8AIKD�2'= a)LNE 8AIK6 8A6 D�E?; [^OPLV> 2 D�E 6�= � 7 [s8A2)%K(57=+L_\ADNOPOP8J\J> 5PD�2}D$2 \AD�6 [^5PO78AE I^57E 8J\J>@5 T�8J= &^= 8AI > D_I3D [)LNE LNOPO78AO^\JD�6 [^&3>@572" D�2 = a)LNE 8AI 6 8A6 D�E ;LVE \ba^5 >@8A\U>@&^E 8A= �+4$a38'7 [s8A2)%K(�\JD�6�[35POP8JE I35PE 8J\J> 57T�8J=gLNE 8LNI^I^8JI�> D}L * [^E D! NE@LN6 >@D}8 �][^OPD�5 >[^LNE@LNO7OP8JOP5P= 6 D�2�= a)LNE 8AI'6�8J6�D�E?; [3O LV> 2 D�E 6 = �

Z DN>@a�>@a^8_[)LNE@LVOPOP8JOQ\AD�6 [^&3> 5P2" [^OPLV> 2 D�E 6�=gLV2^I 6 8A\ba)LN235P= 6 =1&^= 8JIK>@D�[^E D! NE@LN6 > a^8A6 a)LXT�8m

Page 6: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

Processing

Element

1

Processing

Element

Processing

Element

1 n 2

Shared Memory

. . .

B 5 �&3E 8 k], 9]a^LNE 8JI'6 8A6 D�E ; LNE \ba^57> 8A\J> &^E 80�

= D�6 8KLNI]TNLV2�>@L$ �8J= LN23I I^57=@LNI3TVLN2Y>@L$ �8A= � 72^8'6�LN572�LVI3TVLN2Y>bL$ �8�D$2G>@a^8'6�8J= =@L0 �8'[^LN= = 5P2" LVE \ba^5 >@8A\U>@&^E 8�5P=157> =GO7D 8�\AD�=?>\ADN6�[)LVE 8AI'>@D 8 �][d8J2^= 5 T�8}\A&3= >@DN6 R &35PO7>G= a^LNE 8JI 6�8J6�DNE ;�6�L e\ba35P2^8J= � 72 >@a38GDN> a^8AE a)LN2^I�>@a^81[^E D$ �E@LN6 6 5P2" 5P2Y> 8AE 2 LV\A8 2 D�EZL:6�8J= = L$ �8-[^LN= = 5P2" LNE \ba^5 >@8J\Ue> &^E 8}E 8���&^57E 8A= > a^8}&^= 8JE >@D�\ADN2^\A8J2�> E@LV> 8 D�2 5P2Y>@8JE [^E D]\J8A= = D�E \ADN6�6�&32^5P\ALV>@57D�2K>@a�&^= \JD�6�[3OP5 e\ALV>@572" >@a38$[^E D R OP8A6�= D�O T<5P2" >@LN= ���z4$a^8g= a)LNE 8JI�6 8A6 D�E?; [^E D! �E LN6�6 5P2# -5P2Y> 8AE 2 LV\A8$[^E DlT<57I^8A=L� �OPD R LNOQLNI3I^E 8J= == [)LN\A8:T<5P8 8 D$2 > a^8 =?;]=?>@8J6 LN23I'>@a�&^= 2 E 8J8A=G> a^8:&^= 8JE 2 E DN6!8 �][^OP57\A5 >g6�8J=?e= L$ �8 [)LN= = 572" "�

4$a38 I35P= > E 5 R &3>@8JI = a)LNE 8AI 6�8J6�DNE ; � � 9^%��-[^LNE@LNI35 �6 D$2+[)LNE@LVOPOP8JO [^E D! �E LN6�6 5P2# [^E DlT<57I^8A=> a^8 LNI3TVLN2Y>@L$ �8A=$D02c= a)LNE 8AI�6�8J6�DNE ; [^E D$ �E@LN6 6 5P2" :D�2�6�8J= = L$ �8[)LV= = 572" [^O L > 2 D�E 6�= � � 9^%[3E DuT<5PI^8J=-L �O7D R LNO 6 8A6 D�E?; T<5P8 8 D$2ME 8J6�DN> 8 6�8J6�D�E?;!� 4$a^57=1L R = > E@LN\U>@57D�2'a35PI^8J=1E 8 2 8JE 8A23\A8A=> DWE 8J6�DN> 8�6�8J6�DNE ; LN2^I a^8JOP[^=�> a^8�&^= 8JE}>@DW\ADN2^\A8J2�> E@LV> 8�D�2 >@a^8�LN\U>@&)LVOh[^E D R OP8J6 > D R 8= D�O7TN8AI � B 5O �&^E 8 m � �

F12^57H^8AI�( LNE LNOPO78AO* � k �5P=�LN2 8 �]> 8A2^= 5PD�2 >@D > a^8 *C[3E D! �E LN6 6�572" OPLN2" �&)L0 �8 2 D�E�[)LVE@LNO7OP8AO[3E D! �E LN6 6�572" "� .GO7> a^D�&" �a F-(+*C57= R LV= 8AI D�2 > a^8W= a^LNE 8JI�6 8A6 D�E?;�6 D<I^8AO 2 D�E [)LVE@LNO7OP8AO\JD�6 [^&3>@572" YFG(+*#D��d8AE =x> a^8��)8 �35 R 5PO757>f;_D$2 R 8J5P2" :L R OP8Z> D:E &^2 D�2 I^5P=?>@E 5 R &3> 8AI}= a^LNE 8JI�6 8A6}eDNE ;W6�LN\ba^572^8A= � 4$a35P= 5P= I^DN2^8 R ; I38JH)2^572" 'L�\JOP8ALNE E &^2 >@576�8�=?;<= >@8J6 5P2Y>@8JE 2 LN\J8$� 4$a^8 E &^2> 5P6 8}= ;<= > 8A6 5P=> a^8 5P2Y>@8JE 2 LN\J8 R 8J> 8 8A8J2 F-(+* LV2^I > a^8 a)LNE I#8hLVE 8 [^O LV> 2 D�E 6P�}4$a^8 = a)LVE 8AI6 8A6 D�E?;'\JD�2^=?>@E &3\J>@= 572 F-(+*�LVE 8�>@E LN2^= O LV> 8AI >@D�2 &32^\J> 5PD�2W\ALNOPO7=-I^8UH)2^8AI R ;K> a^8}E &^2 > 5P6 8=?;<= >@8J6 5P2Y> 8AE 2 LV\A8$�:4$a^8�� D R D$2 > a^8}E &32 > 5P6 8 =?;]=?>@8J6 5P=-> D�5P6 [^OP8J6�8J2Y>G> a^8}= a)LVE 8AI 6 8A6}eDNE ;�\JD�2^= > E &^\U>@=1D$2 F-(+*�572'L � 9^% 8J2�T<57E D�2^6 8A2Y>g>@a�&^=16�L ��5P2" FG( * [dDNE >bL R OP8DuTN8AE1O LNE �8

5

Page 7: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

LocalMemory Memory

LocalLocalMemory

Interconnection Network

1

Element

Processing

2

Element

Processing

n

Element

Processing

Shared Memory

. . .

. . .

B 5O �&^E 8m3, �5P= > E 5 R &3>@8JI�= a)LVE 8AI'6�8J6�DNE ; LNE \ba^5 >@8J\J>@&3E 8$�

2�&^6 R 8JE1D02 [^OPLV> 2 DNE 6 = �

4$a381576�[sD�E?>bLN2Y>xLN= [d8J\J> = D$2s[)LVE@LNO7OP8AO][^E D$ �E@LN6 6 5P2" LVE 8$a^D 8 > a^8$>bLN= ��5P= I357T<5PI^8JI Ya^D 8 I^LV>bL57=�I^57= >@E 5 R &]>@8AI#LN23I a^D 8 >@a38�8 �]8A\J&3>@57D�2 5P=}= ;<2^\ba3E D�2^5ONA8JI � Mf2#F-(+* > a^8�>bLN= � 57=�I^57T<57I^8AILV6�D�2# �LP �E D�&^[ D$2+>@a^E 8XLNI3= � . FG(+*�>@a3E 8XLVI 57= D$2 >@8J2 8 �<&357TVLNOP8J2Y>:> D�L�[3E D<\A8A= = D�E � FG(+*I3D]8J=�2^DV>�I38XLNO 8g57> a#> a^8�I^8J>@LN5PO7= D$2 LN\U>@&)LVO$[^E D<\A8J= = 6�LN2)L0 �8A6 8A2Y>E��F-(+* LV= = &36�8J= > a)LV>DV>@a^8JE1= D$2 > 8ZLNE 8 [^E DlT<57I^8A=1[^E D<\A8J= =g6�LN2)L$ �8J6�8J2Y>E�

FG(+*�LNI^I3E 8A= = 8J=:> a^8}5P= = &^8 D$2+I)LV>@L I^57T<57= 5PDN2 R ;K[^E DuT<5PI35P2" R &35PO7>?ef572KO LV2" �&)L$ N8�\AD�23= >@E &^\J> = �4$a38A= 8�O LN2# �&)L$ �8}\JD�2^=?>@E &3\J>@=_8A2)L R OP8 I)LV>@L�> D R 8 I^5P=?>@E 5 R &3> 8AI LN6 D�2" �L�= 8J>_D$2Z> a^E 8ALNI^=_LV>\JD�6 [^5PO78 >@576�80��4$a^5P=2 E 8A8A= > a^8 &^= 8JE'2 E D�6 I^DN5P2" �8 �][^O75P\J57> 6 8A= =@L$ �8 [)LV= = 572" �>@D�I^5P=?>@E 5 R &3> 8I^LV>bL}LV>hE &^2�>@576�80� F-(+* 5P2Y>@E D]I^&3\A8A=gL�238 8�>f;][s8 ��&)LNOP5 H)8AE ������� T�� 5P2�D�E I^8AE >@D I^5P=?>@E 5 R &3> 8I^LV>bL#�M. I)LV>bL D R � 8A\J> ��&)LNO757H)8JI LN= ������� T��}5P= = a^LNE 8JI LN6 D�2" :LNO7O]> a^E 8ALNI^= � 4$a381I^LV>bL D R � 8J\J>\ALN2 R 8�L'= \XLNOPLNE DNE�L'TN8A\J> D�E � Mf2 >@a^8 \XLN= 8 D$2gLK= \XLNOPLNE M>@a^8 LN\J> &)LNO+I)LV>bL'D R � 8A\U>}E 8J= 57I^8A=572 > a^8 6�8J6�D�E?;WD$2 >@a^E 8XLNI i#��Mf2 > a^8 \XLN= 8 D$2hL�T�8J\J> D�E:> a^8 8JOP8J6�8J2�> = LVE 8 I^5P=?>@E 5 R &3> 8AI 5P2E D�&^2^I'E D R 5P2B2 LN= a35PD�2'LN6 D�2" }>@a^8 >@a3E 8XLVI^= �$FG(+* LNOP= D�[3E DuT<5PI^8J=-LN2�D�[3> 5PD�2^LNO��� ���� ����� T[^LNE@LN6 8J> 8AE 8ga^57\ba'= [d8J\A57H^8A=-I^LV>bL O LX;�DN&3>15P2�>@a^8:\XLV= 8:D$2 TN8A\J> D�E = �h.�T�8J\J>@DNE ��&)LNO757H)8JI 8g5 >@aL���� ���� ����� T�D02Vz#57=$I^5P=?>@E 5 R &3> 8AI�LN6 D�2" �> a^E 8ALNI^=$= D > a)LV> Z 8JOP8A6 8A2Y> =gLNE 8 D�2�> a^E 8ALNI�i z�8JOP8A6 8A2Y> =GLVE 8 D�2�>@a^E 8XLNI �:LN2^I�= D D�2 �

FG(+* LNOP= D [^E DlT<57I^8A= R &^5PO > ef572�\AD�2^=?>@E &^\J> =+2 D�E1= ;<2^\ba^E D�2^5 NALV>@57D�2 �14$a^8A= 8�\ADN2^= > E &^\U>@=572^\AO7&^I^8L >@D�6 5P\1= ;<2^\ba^E D�2^5ONXLV> 5PD�2 = &^\ba�LN=$L R LNE E 5P8AE LN2^I�L_= [^O757> R LNE E 5P8JEZ\ADN2^= 57= >@572" �D$2��� _U ����� LN2^I

3

Page 8: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� ��� UJ� .-I3I^57> 5PD�2)LVOPO7;�ZFG(+* a)LN= O75 R E LNE ;L2 &^2^\J> 5PD�23= 2 D�E = a)LVE 8AI 6 8A6 D�E?;#LNOPO7D]\ALV>@57D�2 LN2^II38XLNO7OPD<\XLV> 5PD�2 �

*ZDN6�[)L �J* = 576�[3OP8A6 8A2Y>@LV>@57D�2WD$2gFG( * I38JH)2^8J=}LK\JOP8XLVE:572Y>@8AE 2 LN\A8 R 8U> 8Z8J8A2 FG( *"\JD�6�[35POP8JI\JD]I38}LN2^I > a^8}E &^2 > 5P6 8 =?;]=?>@8J6 � 4$a^57=5P2Y>@8JE 2 LN\J8�5P=G>@a^8�=?>bLNE?>@572" [sD�5P2Y>+2 DNE->@a^8 I^8A= 5 �2WD$2%�&)(+*+�V4$a^8+E 8J= 8ALNE \ba�I3D�2^8+a^8AE 8 2 D<\A&^= 8A=`D�2_> a^8 576�[3OP8A6 8A2Y>@LV>@57D�2D$2^L1E &^2_> 5P6 8 = ;<= > 8A6 2 D�EFG(+*#D�2 I^57= >@E 5 R &]>@8AI 6 8A6 D�E ; [^O L > 2 D�E 6�= �M4$a^57= 5P6 [^OP8J6�8J2Y>bLV> 5PD�2_&^= 8J=h%K(�M LN2^I�( > a^E 8ALNI^=O75 R E LNE 578A= �

4

Page 9: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� ��� ������� ��� ���

��� ������������������J�������������+������� �!���

.�O LVE �8 2�&^6 R 8AEGD$2zOPLN2" �&^L$ �8A=g57=GLXTVLN57O L R O78 2 D�Eg[)LNE LNOPO78AO [^E D! �E LN6�6 5P2# "�x4$a^8A= 8�O LN2# �&)L$ �8J=LVE 8z>@a38 E 8A= &^O7>cD02]E 8A= 8XLNE \ba 8��dD�E?>@= R DN>@a R ; \JD�6�6 8AE \A5PLNO TN8A2^I3D�E =MLN2^I LN\ALNI^8J6�57\zE 8J= 8XLVE \ba^8JE = �4$a38 E 8ALN= D�2 2 DNE�>@a38 8 �]5P=?>@8J2^\A8WD$2 = D 6 LV2�;#OPLN2" �&)L0 �8A=�5P=�> a^8 8g57I^8'TVLNE 5P8J>f;�D$2 [)LVE@LNO7OP8AO\JD�6 [^&3>@572" �LVE \ba^5 >@8A\U>@&^E 8A=�LN23I [)LNE LNOPO78AOg[^E D$ �E@LN6 6 5P2" [)LNE LNI^5 N6�= �#"xLN\ba [)LNE LNOPO78AOg[^E DVe NE@LN6 6�572" O LN2# �&)L$ �8:5P=GI^8A= 5 �238AI 8g57> aK>@a38� �DYLNOcD$2 R 8A572" 6 D�= >G8%$ \J5P8A2Y> DN2 L [)LNE?>@5P\J&^O LVE[^LNE@LNO7OP8JO+\JD�6 [^&3>@572" WLNE \ba^57> 8A\U>@&^E 8�&^= 572" WL [)LNE?>@57\A&^OPLNE_[3E D! �E LN6 6�572" '[^LNE@LNI35 �6P� Mf2�>@a35P== 8A\U>@5PDN2�8Z8 R E 5P8 �^; I35P= \J&^= =hTVLNE 5PD�&3=h[)LNE LNOPO78AO/[^E D$ �E@LN6 6 5P2" :[)LNE LNI^5 N6�= LN2^I�O LV2" �&)L$ N8A=ZI38Ue= 5 �238AI�>@D = &^[3[dD�E?>g>@a^8J6�� m � �

& Mf6�[^O75P\J57> LN2^I 8 �][^OP57\A57> [)LNE LNOPO78AO/[^E D! �E@LV6�6 5P2" � 5 � ,�Mf2 >@a^8-5P6 [^OP57\A57>x[^LNE@LNO7OP8JOs[3E D! �E LN6}e6�572" K[)LVE@LNI^5O �6 [^E D! NE@LN6 =�LNE 8 I^8UT�8AO7D�[s8AI#&^= 572" L = 8 �<&38A2Y>@5PLNOh[^E D! �E@LV6�6 5P2" �O LV2]e �&)L$ �8-LN2^I > a^8->bLV= � D$2c6 L �<572" 5 >h[)LVE@LNO7OP8AO/57=ZOP8 2 >Z> D >@a^8-\AD�6 [^5PO78AE ��\GD 5P2#2 D�E 6 L >@5PDN25P=z[)LV= = 8JI�> D>@a^8$\JD�6�[35POP8JE 8 �3[3OP5P\J57> O7;_L R D�&3>xa^D 8#>@a^8g[^E D! �E@LV6�= a^D�&^O7I R 8$6�LNI^8$[)LNEjeLNOPO78AO �M4$a^8 � D R D$2`>@a^8 [)LNE LNOPO78AO75 NA572" :\AD�6 [^5PO78AE 5P=h>@D I^5 T<5PI^8> a^8 [^E D! NE@LN6 5P2Y>@D R O7D]\���=LN2^I I^D:I^8A[s8A2^I38A2^\U; LV2)LNO7;<= 5P=xLN6 D�2" > a^D�= 8 R O7D]\���= >@D 57I^8A2Y>@5�2 ; 8ga^57\ba R OPD<\��<=x\ALN2 R 8[)LNE@LVOPOP8JOP5ONA8AI � 9]&^\ba L >bLV= �K57=2^DN> LNOO8ZLX;]= 8ALN= ; LN2^I 8%$ \J5P8A2Y>:LN23IWI^8A[s8A2^I3=:DN2Wa^D 8>@a^8= 8���&^8J2�> 5 LNO [^E D! NE@LN6 5P=Z\AD<I^8AI ��'GLN= �V8AO7O �63 � 57=$L [)LVE@LNO7OP8AO/[^E D! �E LN6�6 5P2# _OPLN2" �&)L0 �8>@a)LV>g= &^[^[sD�E > =G576�[3OP5P\J57>+[)LNE LNOPO78AOd[^E D! NE@LN6 6�572" "�Mf2 >@a^88 �][^OP57\A57> [)LNE LNOPO78AO/[^E D! �E@LV6�6 5P2" [)LVE@LNI^5O �6 >@a^8-[^E D! NE@LN6 6�8JE 8 �][^OP57\A57> O7;}= [d8J\Ue57H)8J=�a^D 8 >@a^8 [3E D! �E LN6 5P=:>@D R 8 [)LNE LNOPO78AO75 NA8JI LV6�D�2# WL �E D�&^[�D$21[^E D]\J8A= = D�E = � .-28 �][^OP57\A5 > [^E D! �E LN6�6 5P2# GOPLN2" �&)L0 �8Za)LV=z6�8J\ba)LN2^57= 6 = >@DLN\ba^5P8UT�8$[)LVE@LNO7OP8AO75P= 6 R &^57O7>z572Y>@D>@a^8 OPLN2" �&)L0 �8$�M9]&^\ba:6 8A\ba)LN235P= 6 = 572^\AO7&^I^8 \ADN2^= > E &^\U>@=�2 D�E 6 8A= =@L$ �8x[)LV= = 572" l= ;<2^\ba3E DVe2^5 NALV>@57D�2WLN2^I [^E D]\J8A= = 6�LN2)L$ N8A6 8A2Y>E� 9]0 � 5�� 57= LN2 8 �3LN6 [^OP8}D$2ZLN2 8 �][^O75P\J57> [)LVE@LNO7OP8AO[^E D! NE@LN6 6�572" OPLN2" �&^L$ �8$�Mf6�[^O75P\J57>�[^LNE@LNO7OP8JOh[^E D$ �E@LN6 6 5P2" OPLN2" �&^L$ �8A= LVE 8�8XLN=?; >@D &^= 8 R &3>�= & � 8JE>2 E D�6 O7D�88%$ \A578A2^\U;!�!" �3[3OP5P\J57>$[^LNE@LNO7OP8JOd[^E D! �E LN6�6 5P2# �O LN2# �&)L$ �8J=h8A2^L R OP8 [3E D! �E LN6 6�8JE =Z> D}D�[]e>@5P6 5 NJ8'> a^8W[^E D$ �E@LN6 >bL �<572" �>@a38 LNE \ba^5 >@8J\J>@&3E 8W5P2Y> D \AD�2^= 5PI^8JE@LV> 5PD�2 R &3>�>@a^8U; LNO7= D5P2^\JE 8XLV= 8 >@a^8 \JD�6�[3OP8 �]5 >f; 5P2�[^E D! �E LN6�6 5P2# "�

& 9]a)LNE 8AIK6 8A6 D�E?;�LN2^I'6�8J= =@L0 �8_[^LN= = 5P2" �[)LNE@LVOPOP8JO [^E D! �E@LV6�6 5P2" 3, 4$a^8 = a)LNE 8JIK6 8A6}eD�E ;�[)LVE@LNO7OP8AO [^E D! NE@LN6 6�572" }[)LNE LNI^5O �6 5P= R LN= 8AI DN2K= a^LNE 8JIWLNI^I^E 8A= =-= [^LN\A8 LNE \ba^5 >@8J\Ue>@&^E 8A= �Mf2W= &^\ba LNE \ba357>@8J\J> &^E 8J= L \AD�O7OP8J\J>@57D�2KD02x[^E D<\A8J= = DNE = a)LN=LN\A\J8A= = > D�L \ADN6�6 D�2[dD<D�O D02Z6 8A6 D�E ; 8ga^5P\ba \XLV2 R 8 LN\A\J8A= = 8AI LN2^I &^[sI)LV>@8JI R ; LVOPO ��7[d8J2/%K( 57= L�= 8J>D$2Q\ADN6�[^57OP8JE+I35PE 8J\J> 57T�8J= > a)LV>h\ALN2 R 8-&^= 8AI > D = [s8A\J5O2 ; = a^LNE 8JI�6�8J6�D�E?; [)LNE LNOPO78AOP57= 6�5P2B�7 0 4g0g. \�LN2^I�* ]�*)(*(�[^E D$ �E@LN6 = �z9]5P23\A8-> a^8= a^LNE 8JI�6�8J6�D�E?; 6�D<I^8AOsD$2c[)LVE@LNO7OP8AO

)

Page 10: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

[^E D! NE@LN6 6�572" �= LuTN8A=-> a^8:8��dD�E >GD$2z6 8A= =@L$ N8_[)LV= = 572" /O LV2" �&)L$ N8A=gD$2 >@8J2'= 5P6�&3O LV> 8>@a^8= a)LNE 8AI 6 8A6 D�E?; 6�D<I^8AOgD�2 I^5P=?>@E 5 R &3> 8AI 6 8A6 D�E?; LNE \ba357>@8J\J> &^E 8J= � .G2 8 �3LN6 [^O78'D$2= &^\ba'O LN2" N&)L$ �857=$.1* �64�� �+F-(+*�57=gL I38A= \J8A2^I^LN2Y>-D$2M.1*+�Mf2 > a^8�6�8J= = L$ �8�[)LN= = 572" [)LNE@LVOPOP8JOZ[^E D! �E LN6�6 5P2# K[)LNE LNI^5O �6 572^I^5 T]57I^&)LNO+[^E D]\J8A= = D�E =a)LXT�8-O7D]\ALNO)6 8A6 D�E ;$� � LV>@L:8 �3\ba^LN2" �81>bL �V8A=Z[3O LN\J81> a^E D�&# �a 8 �3[3OP5P\J57>x6 8A= =@L$ �8J= �+%'8J=?e=@L$ �8g[)LV= = 572" :[^E D! NE@LN6 6�572" -\ALN2 R 8gI^D�238 R DN>@a D�2 = a^LNE 8JI LN2^I I^57= > E 5 R &3>@8JI�6 8A6 D�E ;6 LN\ba35P2^8J= � . \-9�MZ*,8g5 >@a�%K(�M+5P=$LN2�8 �3LN6�[3OP8D$2ML�6 8A= =@L$ �8 [^LN= = 5P2" }[^E D! �E LN6�6 5P2# O LN2" N&)L$ �80�

& � LV>bL�[)LNE@LVOPOP8JOP57= 6 LN23I \AD�2Y>@E D�OZ[^LNE@LNO7OP8JOP5P= 6', � LV>@LK[)LNE LNOPO78AOP57= 6 57=�LN\ba35P8JTN8AI R ;�LV=?e= 5 N2^5P2" _I)LV>@L 8AO78A6 8A2Y>@=Z> D�I^5 � 8JE 8A2Y>$[3E D<\A8A= = D�E =$8 �]8A\J&3>@572" �>@a38=@LN6 8-\JD]I38$� . = 5P2" �O785P2^=?>@E &3\J>@57D�2 = > E 8ALN6 > a^8A2�8 �]8A\J&3>@8J='DN2�LVOPO1[^E D<\A8J= = DNE = � � L >bL [)LVE@LNO7OP8AOGO LN2# �&)L$ �8J=[^E DuT<5PI^8�\JD�2^=?>@E &3\J>@= 2 D�E I)LV>bL I35P= > E 5 R &3>@57D�2�LV2^I [)LNE@LVOPOP8JO DN[d8JE@LV> 5PD�2^= � 4$a^8AE 8�57=�2^D8 �][^OP57\A5 >_6 8A= =@L$ N8 [)LN= = 5P2# 5P2YT�DNO7T�8JI LN2^I LVOPOx\AD�6 6�&^235P\XL >@5PDN2 238A8AI38AI >@DWLV\ba^5P8UT�8�L[)LNE@LVOPOP8JO D�[s8AE LV>@57D�2�5P= R &^5PO > ef572 � *�� � ) �c57=gLN2�8 �3LN6 [^OP8 D02zL I)LV>@L [^LNE@LNO7OP8JO O LV2" �&)L$ N8$�*ZD�2Y>@E DNOh[)LNE LNOPO78AOP57= 6 572YT�D�O T�8A= 8 �38J\A&3> 5PD�2 D$216�&3O7>@57[^OP8 5P23= >@E &^\J> 5PD�2 = >@E 8XLN6 =}D�2 I^5�2 e2 8AE 8J2Y>}[^E D<\A8J= = D�E = � 4$a^8 5P2^=?>@E &3\J>@57D�2�=?>@E 8ALN6 =�\XLN2 8 D�E � D�2 > a^8�=@LV6�8�I)LV>bL DNE D�2I^5 �d8AE 8A2Y>1I)LV>bL�� .-2�8 �3LN6 [^OP8 D$2M\ADN2�> E D�OQ[^LNE@LNO7OP8JOP5P= 6 5P=$[^57[d8JOP572^5P2" #�

� � � ���� � ������� ��� ���,� �>��

FG(+* R 8AOPDN2" �= > Dg> a^8 \AOPLN= =QD02][^LNE@LNO7OP8JOVOPLN2" �&)L0 �8A= R LV= 8AI:D�2> a^8xI^5P=?>@E 5 R &3> 8AI = a^LNE 8JI_6 8A6 D�E ;6 D<I^8AO �h4$a^8 [3E D! �E LN6 6�8JE$5P= �57TN8A2'> a^8_T<578 8�D$2�8ZD�E ��5P2" DN2 L�= a)LNE 8AI 6 8A6 D�E ;�LNE \ba^5 >@8J\Ue> &^E 80� Mf2Y>@8AE 2)LNO7O7;�>@a^8 \ADN6�[^57OP8JELN2^I E &32 > 5P6 8�= ;<=?>@8A6 >@L �N8 \ALNE 8 D$2 = 576�&^O L >@5P2# L�= a)LVE 8AI6 8A6 D�E?; 6�D<I^8AO/57E E 8J= [s8A\U>@57TN8D$2Q> a^8-&^23I^8AE O7;<5P2" [^O LV> 2 D�E 6P��Mf2 >@a^57=Z= 8A\J> 5PD�2 8Z8I35P= \J&^= = >@a^8[3E 8AI38A\A8J= = D�E = D$2gFG(+* v�RCR�YC .1* LN23I 9][^O757> *+� Z DN>@a�D02h>@a^8J= 8�OPLN2" �&)L0 �8A=_LNE 8�8 �<>@8J2^= 57D�2^=> D >@a38�. \-9�M1* O LN2" N&)L$ �8��6-��M> D = &^[3[dD�E?>>@a38�I^5P=?>@E 5 R &3> 8AI'= a)LNE 8AI 6 8A6 D�E ;�[^E D! �E LN6�6 5P2# 6 D<I^8AO � �cLN2" N&)L$ �8J=}5P2�>@a35P= �8J2^E 8�\XLV2 R 8�\ADN6�[)LVE 8AI D�2 > a^8 R LN= 5P=}D$2G= 8UT�8AE LNO$\ADN6�6 D�2\ba^LNE@LN\U>@8JE 5P=?>@57\A= � G � �

& *ZD�2Y>@E DNO^6�D<I^8JO ,c4$a^8$\ADN2�> E D�O36�D<I^8AO]I^8JH^2^8A=+a^D 8 \JD�2Y>@E D�O �)D 8g=xI^&^E 5P2" 8 �38J\A&3> 5PD�2 D$2L[^E D! NE@LN6P��Mf2�> a^8$\XLV= 8$D$2sL= 8���&^8A2Y> 5 LNO^[3E D! �E LN6�>@a^8$\JD�2Y>@E DNO �)D 8�= >bLVE >@=xL >� ��� �� �LN2^I 2 D�O7OPD 8g=_= 8���&^8J2�> 5 LNO7O7; >@DK> a^8 8J2^I D$2g>@a^8 [^E D! NE@LN6P� Mf2�> a^8 \XLV= 8�D$21L [)LVE@LNO7OP8AO[^E D! NE@LN6 8ga^8AE 8�6 &^O7> 5P[^O78_[^E D]\J8A= = 5P2# �8JOP8J6�8J2�> =:LNE 8}LXTVLN57O L R O78&2 D�E-8 �]8A\J&3>@57D�2 Q>@a^8JE 8\XLN2 R 8�L TNLVE 5P8U>f;�D$2x\AD�2Y> E D�O �)D 8g= �(72^8 \AD�6 6�DN2 LN[^[3E DYLN\baK5P=G> a^8 6�LN=?>@8AEje 8 D�E �V8AE6�D<I^8AO 8ga^8AE 8KL = 572" �OP8 6 LN=?>@8JE \JD�2Y>@E D�OP=�> a^8 �^D�8 LN6 D�2" LW= 8J>�D$2 8ZDNE �N8JE = � 4$a^8\AD�2Y>@E D�O �)D 8 6�D<I^8JO)&^= 8JIR2 D�E+O LN2" N&)L$ �8J=+I35P= \J&^= = 8AI�572 > a^5P=x= 8J\J> 5PD�2�5P=Z93(+%�� � 9<5P2" �O78(xE D! �E LN6 %'&^O7> 5P[^O78 � LV>bL � � Mf2 > a^5P=�6�D<I^8JOGLVOPOg[^E D<\A8J= = 5P2" 8JOP8A6 8A2Y> = 8 �]8J\A&3> 8 >@a^8=@LN6 8 \AD<I^8 R &3> 8g57> a�I^5 �d8AE 8A2Y>1I)LV>bL}= 8J>@= �

-

Page 11: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

& Q O7D R LNO = a)LNE 8AI LVI^I^E 8J= =G= [)LN\J8N,9MfE E 8J= [s8A\J> 57TN8�D$2 > a^8:&^2^I^8JE O7;<572" LVE \ba^5 >@8A\U>@&^E 8�/>@a^8J= 8O LN2" N&)L$ �8J=hLN= = &^6 8->@a388 �]5P=?>@8J2^\A8 D$2ML \JD�6 6�D�2�[dD<D�OsD$2c6 8A6 D�E ; = a^LNE 8JI'LV6�D�2# �LNO7O[^E D<\A8J= = 572" �8AO78A6 8A2Y>@= 572�TND�O7TN8AI 5P2 > a^8}\AD�6 [^&3>@LV>@57D�2 � %'8A\ba^LN2^5P= 6�=:LN23I \JD�2^=?>@E &3\J>@=LNE 8_[^E DuT<5PI^8JI >@D LN\A\J8A= = LV2^IW&^[sI)LV>@8_6�8J6�DNE ;!�14$a^8}LVI^I^E 8J= = = [)LN\A8 \XLN2W=?>@D�E 8 R DN>@a= >bL >@5P\ LN23I I3;<2)LV6�57\}= >@E &^\J> &^E 8J= ��.GOP= D�576�[sD�E >@LN2Y> >@D�2^DN> 8 57= >@a)LV>:8ALN\ba [^E D]\J8A= = D�ED�8g23=$L [)LNE?>hD$2Q> a^8 �O7D R LNOsLNI3I^E 8J= =h= [)LN\A8LN2^I�\XLV2�LN\A\J8A= =$57>$LV=Z5O2 57> 8hLN=ZOPD<\XLNO � 4$a^8LN\J> &)LNOQE 8ALNOP5ONXLV> 5PD�2 D$2M> a^8( �OPD R LNO LVI^I^E 8J= =G= [)LN\J8 5P=gOP8 2 >$>@D}>@a^8 &^23I^8AE O7;<5P2" E &^2�> 5P6 8= ;<= > 8A6P�+4$a38& �O7D R LNO LNI^I^E 8A= =G= [)LN\A8:a)LN=$> a^82 D�OPO7D�8g572" \ba^LNE@LN\U>@8JE 5P=?>@57\A= �

�(MD�572Y>@8AE =A,x(`D�5P2Y>@8JE =+5P2 >@a^8J= 8GO LN2" N&)L$ �8J= LVE 8gD$2 > 8 D >f;<[s8A= � �QD<\XLNO/[sD�5P2Y> 8AE = > a)LV>[dDN5P2Y>g>@D D R � 8A\U>@=G5P2�>@a^8:OPD<\XLNO LNI^I^E 8A= =G= [)LV\A8_LN2^I NOPD R LVO [dDN5P2Y>@8JE = 2 D�EgD R � 8A\U>@=5P2�>@a38' NOPD R LVO LNI^I3E 8A= =G= [)LN\J8$�+4$a^8A= 8_\ALN2 R 82 &^E > a^8AEg\JO LN= = 57H^8AI�LN=A,

��QD<\XLNO [sD�572�> 8AE =1[sD�572�> 5P2" _>@D >@a^8 OPD<\XLVO LNI^I3E 8A= =G= [)LN\J8$�

��QD<\XLNO [sD�572�> 8AE =1[sD�572�> 5P2" _>@D >@a^8( �O7D R LNO LNI^I^E 8A= =1= [^LN\A80�

�Q OPD R LNO [sD�5P2Y> 8AE =$[sD�572�> 5P2" �> D}>@a^8 OPD<\XLVOQLNI^I^E 8A= =G= [)LN\A80�

�Q OPD R LNO [sD�5P2Y> 8AE =$[sD�572�> 5P2" �> D}>@a^8( �O7D R LNOQLVI^I^E 8J= =g= [^LN\A80�

�9]a)LNE 8AI�= \XLNOPLNE+TVLNE 5 L R OP8A=J, �cLN2" N&)L$ �8J=Z= &3[^[dDNE >@572" �L& �OPD R LNO/LNI^I^E 8A= =$= [)LN\J8[^E DVeT<5PI^8 \ADN2^= > E &^\U>@=g>@D ��&)LNOP5�2 ;�L}= \ALNO LVEh>@D R 8 572�> a^8( �OPD R LNO LVI^I^E 8J= =1= [)LV\A8$�

�9]a)LNE 8AIKTN8A\U>@D�E = ]NLNE E@LX;<=A,$.GI^I^57> 5PD�2^LNO = ;<2Y>bLV\J>@57\&2 8ALV>@&^E 8A=-LNE 8:[^E DuT<5PI38AI'> D = &^[]e[dDNE >QT�8J\J> D�E =c5P2> a^8 �OPD R LNOVLNI^I^E 8A= =`= [^LN\A80� 4$a^8� �8J2^8AE LNO�LN[^[3E DYLN\ba 57= >@DgLNO7OPD<\XLV> 8LN2 8���&)LNO)2�&^6 R 8JE+D02 8JOP8A6 8A2Y> = D�2 LNOPO][^E D<\A8J= = 572" :8AOP8J6�8J2Y>@= R &3>x> a^8$&^= 8JEx5P=xLNO7= D �57TN8A2 > a^8D�[]>@5PDN2 D$2 > E ;<5P2# �L_TVLNE 5P8J>f; D$2 8hLX;<=$5P2 LNE E Lu; I^8J\AOPLNE@LV> 5PD�2 >@D�LN\ba^5P8UT�8D�[3> 5P6�LNO LNO7OPD<\XLV> 5PD�2�= > E@LV> 8 N;$�

�9]a)LNE 8AI I3;<2)LN6 5P\ 6�8J6�D�E?; LNOPO7D]\ALV>@57D�2 ,�4$a^8B N8A2^8JE@LNO$LV[^[^E D�LN\ba >@D I^DW> a^5P=_5P=8XLN\ba [^E D]\J8A= = 5P2# 8AO78A6 8A2Y>}LNO7OPD<\XLV> 8A=_LN2�8 �<&^LNO e = 5 NJ8AI R OPD<\�� D02g6�8J6�D�E?; 8ga^5P\ba>@D! N8J>@a38AE R 8J\AD�6 8 > a^8 �OPD R LNO LNI^I3E 8A= =K= [)LN\A80�C9]&^\ba 6�8J6�D�E?; \XLV2�>@a38A2 R 8D�[s8AE@L >@8AI�D�2�&^= 572" > �OPD R LNO [sD�572�> 8AE = �

& 9<;<2^\ba^E DN2^5 NALV>@57D�2 ,g9<;<2^\ba3E D�2^5ONXLV> 5PD�2'6�8J\ba)LN2^57= 6 =-LVE 8 238A8AI38AI >@D LXT�D�57IKE@LV\A8 \JD�2^I^5 e>@5PDN2^=gLN2^I�I^8ALNI^OPD<\���= 8ga^8A2'6�&^O7> 5P[^O78G[3E D<\A8A= = 572" �8JOP8J6�8J2�> =1LN\A\J8A= =g>@a38 �OPD R LNO 6 8A6}eD�E ;$�4$a^8A= 8}6�8J\ba)LN2^57= 6 =LNE 8 8J57>@a38AE-[3E DuT<5PI^8JI LN= R &35PO7>?ef572'\JD�2^= > E &^\U>@= D�E-LN=-O75 R E LNE ;2 &^2^\J> 5PD�23= � *ZDN6�6 D�2^O ; [3E DuT<5PI^8JI#=?;<2^\ba^E DN2^5 NALV>@57D�2 6�8J\ba)LN2^57= 6 = LNE 8 R LNE E 5P8AE = LN2^IOPD<\��<= �

& 9][^OP5 > e [^a)LN= 8 LN= = 5O �2^6 8A2Y>X,g.-2 LV= = 5O �2^6 8A2Y>DN[d8JE@LV> 5PD�2'5P2YT�D�O T<5P2" >@a^8� NOPD R LVOMLVI^I^E 8J= == [)LN\J8�a)LN=�> 8 DW[^a)LN= 8A=�+> a^8�\AD�6 [^&3>@LV>@57D�2 [3a)LN= 8�LV2^I >@a^8 \JD�6 6�&^2^57\XLV> 5PD�2 [^a)LN= 8$�4$a^8 \AD�6 6�&^2^57\XLV> 5PD�2'[^a)LN= 8�a^LN= a^5 Na^8AE OPLV>@8J2^\J;'>@a)LN2W> a^8}\AD�6 [^&3>@LV>@57D�2W[^a)LV= 8$� M 2= &^\ba LN= = 5 �2^6 8A2Y> =_LVE 8 5P6 [^OP8J6�8J2Y>@8AIW= 8���&^8J2�> 5 LNO7O7;'>@a^8JE 8 5P= OPDN= = D$2 8%$ \A578A2^\U; = 572^\A8>@a^8�[^E D]\J8A= = D�E E 8J6 LN572^=}5PI3OP8R8ga^57OP8 > a^8�E 8A6 DN> 8�LN\A\J8A= = 5P=�>@L ��5P2" [^OPLN\A80� 4$a^8�> 8ZD

G

Page 12: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

[^a)LN= 8A= \XLV2 R 8hDuT�8JE OPLN[^[s8AI R ;�[^E DlT<57I^5P2" -\AD�2^=?>@E &^\J> = 8ga35P\ba 5P2^5 >@5PLV>@8x\ADN6�6�&32^5P\ALV>@57D�2LN2^I \ADN2^= > E &^\U>@=�>@a^LV>�8ZLN57>&2 D�E�57> = \JD�6�[3OP8J> 5PD�2 � ZZ8J> 8 8A8J2#> a^8 > 8 D \AD�2^=?>@E &^\J> =�>@a^8[^E D<\A8J= = DNE \XLN2 I^D DN> a^8AE�8ZD�E � >@a�&^= a35PI^572" ->@a38$O LV> 8A2^\U; D$2sE 8A6 DN>@8h6 8A6 D�E?; LV\A\A8J= = 8A= �

���7��� � K � � tJ� =9<[^OP5 > e?* 57= L [)LNE LNOPO78AO`8 �<>@8J2^= 57D�2 >@D�*�I^8JTN8AOPDN[d8JI L >:F* ZZ8AE �N8AO78J; � G�� �&M > [^E DuT<5PI38A= &^= 8 2 &^O8JOP8J6�8J2�> =GD02z= a^LNE 8JI 6�8J6�DNE ;�)6 8A= =@L$ N8_[)LV= = 572" �LN2^IKI^LV>bL [)LNE LNOPO78AO [^E D! �E LN6�6 5P2# }6�D<I^8AO7=572_> a^8h\ADN2�> 8 �<>xD$2^> a^8g*�O LV2" �&)L$ N8$� 9][^OP5 > ej* 5P=`>@a^8ZD�OPI^8J= > D$2)>@a^8+>@a^E 8A8hOPLN2" �&^L$ �8A=MI^5P= \A&^= = 8JI572�>@a^57=$= 8A\U>@57D�2 � M >g5P=h>@LNE �8U>@8JIP2 D�Eh> a^8 4$a^5P2 �<572" �%KLN\ba^572^8A=-*ZD�E [dD�E LV>@57D�2�*$%�e 3��

& *ZD�2Y>@E DNO 6 D]I^8JO ,z4$a38 \AD�2Y>@E D�O 6 D<I^8AOJ2 D�E$9][3OP57>?e?* 57=g93(+%����3.GOPOs>@a^8[3E D<\A8A= = 572" 8AOP8 e6�8J2�> =h8 �]8J\A&3> 8>@a^8= LN6 8-\AD<I^80��"xLN\ba�8JOP8J6�8J2�>Z6 LX;�8ZDNE � D�2 >@a38=@LN6 8D�E I^5 �d8AE 8A2Y>I)LV>bLlef= 8U>@= �x9][^O757> ej* [^E DuT<5PI38A= TVLNE 5PL R OP8J=z= &3\ba LN=�V��������LV2^I�� V������_>@D H)2^I >@a38h>@DN>@LNO2<&36 R 8JEZD$2 [^E D<\A8J= = 5P2" �8JOP8J6�8J2�> =Z[^E 8A= 8A2Y>gLN2^I >@a^8G5P2^I357T<5PI^&^LNO)[^E D<\A8J= = 5PI^8J2�> 57H)\ALV>@57D�22<&36 R 8JE �

& Q O7D R LNO LNI^I^E 8A= =g= [)LN\A8V,�"xLN\ba�[^E D]\J8A= = D�Ega)LN=1LN\J\A8A= =1> D}>@a^8 8A2Y> 5PE 8 NOPD R LVO = [^LN\A8_LN2^I8XLN\ba�[^E D<\A8J= =1D 8g2^=-L}[)LVE >gD$2 57>�D8ga^5P\ba�57>g\ALN2'LN\A\J8A= =GLN=gOPD<\XLVO ��(MD�572Y>@8AE =A, Q OPD R LVO)[dD�572Y>@8AE =$LNE 8-I^8J\AO LVE 8AI�8g5 >@a > a^8 �V8J; 8ZDNE I� �� � � �#�+(`D�5P2Y>@8JE =\XLN2 R 8}D$2ZLN2Y;K>f;<[d8 8 �3\J8A[3> > a^8 2 &^2^\J> 5PD�2 >f;<[s8$��.GI^I^5 >@5PDN2)LNOPO ;� 9][^O757> ej* a)LN= L>f;<[d8 D$2^[sD�5P2Y> 8AEc\XLNO7OP8JI_LV=M= [^E 8ALNI [sD�5P2Y> 8AE =`I^8J\AO LVE 8AI(8g57> a_> a^8 ����� T � � �V8J; 8ZDNE I �4$a^8:I^5 �d8AE 8A2^\J8 R 8J> 8 8A8J2'>@a38& �O7D R LNO LN2^I�>@a^8 = [^E 8ALNIK[sD�5P2Y> 8AE$5P=h> a)LV>GL}= [^E 8XLNI[dDN5P2Y>@8JEM[sD�5P2Y> =M>@D-LG\JD�OPO78A\J> 5PD�2:D$2)I^LV>bL157>@8J6�=`D�2 LG[^E D]\J8A= = D�E LN23I�LN2�572^\AE 8A6 8A2Y>6 L �N8A=157>h[dD�572Y>$>@D}>@a^8 \JD�OPO78A\J> 5PD�2�D02 I)L >bL}57> 8A6 =$5P2�2^8 �]>G[^E D]\J8A= = D�E �

�.-E E@LX;<=A, 9][^O757> ej* \XLNO7OP=9 NOPD R LVO LNE E@LX;<=gLN=$= [3E 8XLVI'LVE E@LX;<= �x4$a^8U;�LNE 8I^8A\JO LNE 8AI R ;5P2^= 8AE?>@5P2# L = 5P2# �OP8 = [3E 8XLVI^8AE1>@D E 5 �aY>1D$2z> a^8_LNE E Lu;�I35P6 8A2^= 5PD�2^= �$B)D�Eg8 �3LN6 [^OP8 ��� ������ � ����+8ga^8JE 8���� 5P=$>@a^8_= [^E 8XLNI38AE �14$a^8_I^5P6 8A2^= 5PD�23=1DN2'>@a38 OP8 2 >1= 5PI38_D$2L = [3E 8XLVI^8AE LNE 8 = [^E 8ALNI LN\AE D�= = LVOPOc[^E D<\A8J= = D�E = � 4$a^8}I^5P6 8A23= 5PDN2^=GDN2 E 5O �aY>= 57I^8I^8JH^2^8_[s8AEg[^E D]\J8A= = D�Eg= & R ejLNE E@LX;<= �

��-;<2)LN6 5P\ 6 8A6 D�E?; LNOPO7D]\ALV>@57D�2 , �-;<2)LV6�57\�6 8A6 D�E ; LNO7OPD<\XLV> 5PD�2 LN23I�I^8XLVOPOPD<\XLle>@57D�2 5P= I3D�2^8x&^= 572" $OP5 R E@LVE ; 2 &^2^\U>@5PDN2^=�� � ��� ����� T � � � ��� ����� T � � � ���� �� � �DU� _W��DU�� � �DU � �DT ��U � � �T �!�zLV2^I � ��� �"��� T � � ��� T T #�� � �$� ����� T � � ��� U � �!�

& 9<;<2^\ba^E DN2^5 NALV>@57D�2 , 9][^OP5 > ej* [3E DuT<5PI^8J=+[3E 5P6 57> 57TN8A=z= &^\ba LN= � U � �:LV2^I ������� T � �x4$a^8� U � � [^E 576�5 >@5 T�8+5P=z&^= 8AI >@D ��&)LNO75O2 ; L+2 &^2^\U>@5PDN2�8ga^5P\ba 5P=M>@a^8J2�8 �38J\A&3> 8AI�LV>@DN6�57\XLNO7O7;D�2'> a^8_[3E D<\A8A= = D�E 8ga^5P\ba'D 8g2^=G> a^8& NOPD R LVOQD R � 8A\U>E�$4$a^8_[)LNE?>@5P\J&^O LVE �OPD R LNOQD R � 8J\J>G5P=>@a^8hD R � 8A\U>xD�2�8ga^5P\ba}> a^8 2 &^2^\U>@57D�2 LN\J> = �x9<[^OP5 > e?* LNOP= D [^E DuT<5PI^8J= >@a38$\AD�6 6�DN2 R LNE E 5P8JE

�ui

Page 13: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

= ;<2^\ba^E D�2^5 NALV>@57D�2 [^E 576�5 >@5 T�8 ������� T � ��FG= 572" W>@a^8J= 8�[^E 576�5 >@5 T�8A= &^= 8JE = \XLN2 R &^57OPI LTNLVE 5P8U>f; D$2MDN> a^8AEg= ;<2^\ba3E D�2^5ONXLV> 5PD�2�D�[s8AE LV>@57D�2^= �& 9][^OP5 > e [^a)LN= 8KLN= = 5O �2^6 8A2Y>X, 4$a^57= 5P= >@a^8 6 D�=?> [^E D�6�572^8A2Y>�2 8XLV> &^E 8KD$2_9][^O757> ej*�2 E DN68ga^5P\ba >@a^8 2)LV6�8�2 D�E> a^8 O LN2# �&)L$ �8 5P= I^8JE 57TN8AI � 4$a^8 DuT�8JE OPLN[ 572 \AD�6 [^&3>@LV>@57D�2 LN2^I\AD�6 6�&^2^57\XLV> 5PD�2 [^a)LV= 8A= D$21LN2 LN= = 5O �2^6 8A2Y>}D�[s8AE LV>@57D�2 572L �O7D R LNOx= [^LN\A8 57= I^DN2^8 R ;= [^O757> > 5P2" �> a^8_LN2KLV= = 5O �2^6 8A2Y>15P2Y>@D > 8 D D�[s8AE LV>@57D�2^= � .�2^8 8�=?;<6 R DNO<2 DNEGLV= = 5O �2^6 8A2Y>5P=$5P2Y> E D<I^&^\A8JI � � �x4$a^8 � � 6�LNE ��=h>@a38 R 8 N5P2^2^572" }D$2`\ADN6�6�&32^5P\ALV>@57D�2 8ga^5PO78 L ��� � �D�[d8JE@LV> 5PD�2�57=$&^= 8JI'> D I38J>@8JE 6 5P2^8 \JD�6 [^OP8U>@5PDN2�D$2 \JD�6 6�&^2^57\XLV> 5PD�2 �

���7���7� ��=

.1* � 4��d5P=$LN2 8 �<>@8J2^= 57D�2�>@D * <>@a)LV>h= &^[^[sD�E?>@=Z> a^8= a^LNE 8JI'LVI^I^E 8J= =$= [)LN\A8 [^LNE@LNO7OP8JOs[3E D! �E LN6}e6 5P2# �6�D<I^8JO-D�2 I^57= >@E 5 R &]>@8AI = a)LNE 8JI 6�8J6�D�E?; LVE \ba^5 >@8A\U>@&^E 8A= �1M >�5P= >bLVE �8U>@8AI,2 D�E�*ZE@LX;0g8A= 8XLNE \ba * =-4gm ��LN2^I�4gm " �

& *ZD�2Y>@E DNO)6�D<I^8AO ,c4$a^8g\AD�2Y>@E D�O)6 D]I^8JO�2 D�E .1* 5P=+93(+%����Y.1* [^E DuT<5PI38A= TVLNE 5PL R OP8J=z= &3\baLN=V�������� LN2^I �� V������K>@D�H)2^I >@a38 > DN>bLVOz2�&^6 R 8AE D$2 [^E D<\A8J= = 572" �8AOP8J6�8J2Y>@= [^E 8J= 8J2�>LN2^I�5P2^I357T<5PI^&^LNO [^E D]\J8A= =G57I^8A2Y>@5 H)\XL >@5PDN2�2<&36 R 8JE = �

& Q O7D R LNOMLNI^I^E 8A= =:= [)LN\J8N, 4$a^8}\JD�2^\A8J[3>:D$2 �OPD R LNOMLNI^I^E 8A= = = [)LN\A8 E 8A6�LN5P2^=-\AD�2^= 5P=?>@8A2Y>8g57>@a�> a^8 I^5P= \A&^= = 5PDN2'572�[3E 8JT<57D�&^=g= 8J\J>@57D�2^= �

�(MD�572Y>@8AE =A, Q OPD R LNOQ[dDN5P2Y>@8JE =GLNE 8:I^8A\JO LNE 8AI 8g5 >@a�>@a^8 �N8U;D8 D�E I � � � UJ� Mf2Y> 8AE 2^LNOPO ;L:[sD�572�> 8AE a)LV=x> 8 D \JD�6 [dD�238A2Y>@=��> a^81[^E D<\A8J= = DNE+2�&^6 R 8JEZLN23I > a^8gOPD<\XLNO)LVI^I^E 8J= =D�2�>@a)LV>g[3E D<\A8A= = D�E �

�.-E E@LX;<=A, �57= >@E 5 R &]>@8AI LNE E LX;]=�LVE 8 I^8J\AOPLNE 8JI 5P2 8ga^57\ba D�2^8WI^576�8J2^= 57D�2 D02 >@a^8LNE E LX;�5P=gL 6�&^O >@5P[3OP8-D02�V�������"�

& 9<;<2^\ba^E DN2^5 NALV>@57D�2 , .1*�[^E DuT]57I^8A=$> a^8 ����� � T � \ADN2^= > E &^\U> 2 D�E$=?;<2^\ba^E DN2^5 NALV>@57D�2 �

��� � ��

FG(+* � k �M5P=GI^5PE 8A\J> O7;�I^8JE 57TN8AI 2 E DN6 .1*+� M >5P=GI^8A= 5 �238AIW>@D I3D [)LNE LNOPO78AOc[^E D$ �E@LN6 6 5P2" 5P2 *&3= 5P2# >@a^8-= a)LNE 8AI�6 8A6 D�E ; 6 D<I^8AO �zF-(+* �5 T�8A=hL_T<5P8 8�D$2 >@a^8&32^I^8AE O7;<5P2# �6 LV\ba^5P2^8G6�D<I^8JOLV= D�2^8}a)LXT<5P2" �L�\ADNOPOP8J\J> 5PD�2 D02+> a^E 8ALNI^= >@a^LV> = a)LVE 8 L� �OPD R LNOzLVI^I^E 8J= = = [^LN\A80�}4$a^E 8ALNI^=:5P2FG(+* >@8JE 6 5P2^DNOPD! N; LNE 8 &^= &)LVOPO7; = ;<2^D�2Y;<6 D�&^= 8g57>@a�[^E D]\J8A= = 8A= �

�!�

Page 14: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

���7��� � � r<A��B; = � �)v`qsp<�^q�A& *ZD�2Y>@E DNO 6 D]I^8JO ,h4$a38}\AD�2Y>@E D�O`6�D<I^8AO<2 D�E-F-(+* 5P= 9]( % ��� 4$a^8}&^= 8AE= 8A8J=>@a^8}FG(+*[^E D! NE@LN6�>@D R 8$L-\JD�OPO78A\U>@5PDN2 D$2)> a^E 8ALNI^=z>@a^LV> = a^LNE 8$L\JD�6 6�D�2& �OPD R LNO]LNI^I^E 8A= = = [)LN\J8$�.-I^I^5 >@57D�2)LNO7O7;�)8ALN\baW>@a^E 8XLNIWa^LN=57> =-D 8g2W[^E 57TVLV>@8_= [)LV\A8 LN2^IW[^LNE >-D$2 >@a^8 �OPD R LNO`LNI]eI^E 8J= =1= [)LN\J88ga^5P\ba'57>$\ALN2KLV\A\A8J= =GLN=gOPD<\XLNO �

& Q O7D R LNO LNI^I^E 8A= =1= [^LN\A8V,�9]a)LNE 8AI = \ALNO LVEA, F-(+*C572Y>@E D<I^&^\J8A=�L 238 8 �V8J; 8 D�E I � � ��� T���> D �<&^LNOP5�2 ;�I^LV>bL

}

void main(void) {

}

void main(void) {

Global

Local

Thread 0 Thread 1

Memory layout

Thread 0 Thread 1

i

shared int i; shared int i;

BM5 �&^E 85^, .�= a)LVE 8AI�= \ALNO LVE$5P2�F-(+*+�D R � 8J\J>@= 572�>@a^8B �O7D R LNOZLNI^I^E 8A= =}= [)LN\J8$��.!= a)LNE 8AI = \ALNO LNE 5P=}6�LN5P2Y>bLV5P2^8JI�LN= L= 572" �OP81D R � 8J\J>Z5P2R NOPD R LVO)= [)LN\J8$��Mf2�BM5 �&^E 8 5 <> a^8GTVLNE 5 L R O78 � 5P= L_= a^LNE 8JI = \ALNO LNE �M >-57=1LNOPO7D]\ALV>@8JI�572�>@a^E 8XLNIKi#* =1OPD<\XLVOQ6�8J6�D�E?;� R &3>LVOPO >@a3E 8XLVI^=G\ALN2 LV\A\A8J= =G57>GLN=OPD<\XLNO �

�9]a)LNE 8AI LNE E Lu;s,K9]a)LNE 8AI�LNE E LX;]=�LNE 8�TN8A\U>@D�E =�572: �O7D R LNO = [)LV\A8$� F-(+* E 8���&^5PE 8A=LV> e OP8ALN= >-D�2^8�I^576�8J2^= 57D�2 D$2 > a^8 LNE E@LX;'> D R 8�������������� "xLN\baW> a^E 8ALNIWa^D�O7I^= LN28���&)LNO$= a)LNE 8�D02G> a^8�LNE E Lu; 5P2 57> =�OPD<\XLVOhLNI^I3E 8A= =�= [)LN\J8$� 4$a�&^= 5P2 >@a^8�\ALN= 8�D$2L �Je I^5P6 8A23= 5PDN2)LNO = a)LNE 8JIWLNE E@LX; 8g57>@a�������������8JOP8A6 8A2Y> =G8ALN\baK>@a3E 8XLVI a)LN=GD�2^88AO78A6 8A2Y>�D 8g2^8AI OPD<\XLVOPO7; � B 5 N&^E 8 3�� ��4$a^5P=�[3E D�[s8AE?>f; 5P= I^8JH)238AI�LN=t�� ���)gb_�. $ 2^5 >f; I^8U>@8JE 6 5P2^8J= 5P2 8ga^5P\ba�>@a^E 8XLNI * = O7D]\ALNO$6�8J6�DNE ;#L [)LVE >@57\A&^OPLNE = a)LVE 8AI57> 8A6 E 8A= 57I^8A= �

�lk

Page 15: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

} }

void main(void) { void main(void) {

One element per thread

Global

Local

Thread 0 Thread 1

Memory layout

Thread 0 Thread 1

a[0] a[1]

shared int a[THREADS]; shared int a[THREADS];

B 5O �&^E 83],+9]a)LNE 8AI'LNE E LX;�8g57> a�= 5P2" NOP8 I^576�8J2^= 57D�2�LN2^I R OPD<\���= 5ONA8 �!�

F-(+* LNOP= Da)LN=xLN2}DN[3>@57D�2)LNO R O7D]\���= 5ONA8$[)LVE@LN6 8J> 8AE�8ga35P\ba 5P=M&^= 8JI 572 LNE E LX; I^8J\AOPL eE@LV> 5PD�23= �M> D \AD�2Y>@E D�O^>@a381I35P= > E 5 R &3>@57D�2}D$2sI)LV>@L:8JOP8J6�8J2�> = �z4$a381I38 2 LN&^O > R OPD<\���= 5ONA85P=��!� .G=_= a^D 8g2�5P2 B 5O �&^E 8�4�L'6�&3O7>@57I^5P6 8A23= 5PDN2)LNOMLNE E Lu; 8g5 >@a R OPD<\���= 5ONA8 D$2 �LN2^IKk}> a^E 8ALNI^=1a)LN=1LN2�8���&)LNOQ2�&^6 R 8JEGD$2M8AO78A6 8A2Y>@=g=?>@D�E 8AIKDN2 R DN> a�> a^E 8ALNI^=15P2LNO7> 8AE 2)LV>@8 DNE I^8JE �B 5 N&^E 8 )= a3D�8g= L 6�&^O >@5PI35P6 8A2^= 5PD�2)LVO]LVE E@LX;&8g57>@a R O7D]\���= 5 NA8gD$2 k LN2^I k->@a^E 8XLNI3= �Mf2}>@a^57=z\XLN= 8 R DV>@a�>@a3E 8XLVI^= a)LXT�81L8���&)LVO^2�&^6 R 8AEzD$2s8JOP8A6 8A2Y> = R &3>z> a^8$D�E I38AE 572" 5P=g\ba)LN2# �8AI �

�9]a)LNE 8AI'[dD�572Y>@8AEJ,xF-(+*�= &^[^[sD�E > =$>@a^82 D�O7OPD 8g5P2" &2 D�&^E$>f;<[d8J=1D02z[sD�5P2Y>@8JE = �

� ��U � � U ��� ����� �� �� � � � � �DU#T � � � �DU � � U �� �� � � � � U � ���� � ��� T�� � �DU$� � U ��� ����� �� �� � � � � �DU#T � � � �DU � �� U� ��� � � � � � U � ���� ��U � � ����� T � � U ��� ���� � ����� T � � � �DU#T � � � �DU � � U �� �� � � � � U � ���� � ��� T�� � �DU$� � � ��� T�� � U �� ����� � � ��� T�� � � ��U#T � � � �DU � � U ��� � � � � � U ����

. = a)LNE 8JI [sD�5P2Y>@8JE�57=�572Y>@8AE 2)LNO7O7;�E 8A[^E 8A= 8A2Y>@8JI R ; L > a^E 8ALNI 2�&^6 R 8AE LN2^I#>@a^8OPD<\XLNOhLNI^I^E 8A= = 5 > [dD�572Y>@=�>@D#� (MD�572�> 8AE LNE 57>@a36�8U>@5P\�= &^[3[dD�E?>@= R O7D]\��V8AI�LN2^I#&^2]eR OPD<\��N8JI LNE E LX;�I^5P=?>@E 5 R &3> 5PD�2 �Z.-I^I^5 >@57D�2)LNO7O7;�3= a)LNE 8AI [sD�572�> 8AE =G\ALN2 R 8 \XLV= >572Y>@DOPD<\XLNO [dD�572Y>@8AE = R &3>12^DN>$T<57\A8 T�8JE =@L��

�um

Page 16: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

a[0] a[1]

a[3]

a[5]

a[6]

a[4]Global

}

void main(void) {

shared int a[4][THREADS];

}

void main(void) {

4 elements per thread

Local

Thread 1Thread 0

Memory layout

Thread 0 Thread 1

a[2]

a[7]

shared int a[4][THREADS];

B 5O �&^E 8(43,+9]a)LNE 8AI'LNE E LX;�8g57> a�6 &^O7> 5P[^O78-I^576�8J2^= 57D�2�LN2^I R OPD<\���= 5ONA8>�!�

��-;<2)LN6 5P\ 6 8A6 D�E ; LNOPO7D]\ALV>@57D�2 ,F-(+*�D��d8AE = 2 &^2^\J> 5PD�23=h>@D�LNOPO7D]\ALV>@8 �OPD R LNO 6 8A6 D�E ; I3;<2)LN6 5P\ALNOPO ;!�

� � ��� T�� � � � ��W � � ��� � � � � ���� ��� ����� T U ����� ���� � � ����� T U �� � U#T � � �� � ��� T�� � � � ��W � � � ��� � ���� �� ����� T U �� �� ���� � � ����� T U �� � U#T � �!�� � ��� T�� � � � ��W � � �� �� � � � ���� �� ����� T U ����� ���� � � ����� T U �� � U#T � �!�� � � ��� T T � ����� T � � � � � � U � �!�

��� ����� ���� � � � W �"T � � ��� ���� � ������ �� � U#T � � �DW �"T � � � U#T � � T � �� ���� ���

4$a^5P=Q\ALN2 R 8 I3D�2^8 \ADNOPOP8J\J> 57T�8JO7; R ; LNOPOl>@a3E 8XLVI^=cD�E R ; = 572" �O78M>@a3E 8XLVI ��W � � ��� � � � � ���� ��5P=$L�23D�2]ef\JD�OPO78A\U>@57TN8 2 &^23\J>@57D�2�LNO7OPD<\XLV> 5P2" := a^LNE 8JI�6 8A6 D�E?;!��W � � � ��� � ���� ��}57=hL\AD�O7OP8J\J>@5 T�8'2 &^2^\J> 5PD�2 LVOPOPD<\XL >@5P2# = a)LNE 8AI 6�8J6�DNE ;!� W � � �� �� � � � ���� ���57=L 23D�2]e\AD�O7OP8J\J>@5 T�8�2 &^2^\J> 5PD�2 8ga^5P\ba#LNO7OPD<\XLV> 8A=:= a)LNE 8AI 6 8A6 D�E ; a)LXT<5P2# WL $ 2^57>f; >@D'>@a^8\XLNO7OP572" >@a^E 8XLNI ��W � � ��� T TKI^8ALNOPO7D]\ALV>@8J= I3;<2)LN6 5P\ALNOPO ; LNO7OPD<\XLV> 8AIW= a)LNE 8JI 6 8A6}e

�E5

Page 17: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

a[4]

a[1]

void main(void) {

}

void main(void) {

}

4 elements per thread and blocksize 2

Global

Local

Memory layout

Thread 0 Thread 1

Thread 0 Thread 1

a[0]

a[5]

a[2]

a[3]

a[6]

a[7]

shared [2] int a[4][THREADS]; shared [2] int a[4][THREADS];

B 5O �&^E 8')],+9]a)LNE 8AI'LNE E LX;�8g57> a�6 &^O7> 5P[^O78-I^576�8J2^= 57D�2�LN2^I R OPD<\���= 5ONA8_k��

D�E ;$�& 9<;<2^\ba^E DN2^5 NALV>@57D�2 ,F-(+*�D��d8AE = R OPD<\���5P2" LN2^I�2^DN2]e R O7D]\���572" }>f;][s8A=1D$2M= ;<2^\ba^E D�2^5ONXLV> 5PD�2�6 8A\ba)LN235P= 6 = �W � � ������� T � �!���������� ���� � � � � � � ��� �� ����� U � �� � �W � � �� _U ����� �!����� � � � � U ������� T � � U ��� U$���W � � � ��� U �!����� � � � � U ����� � T � T ��� ���

4$a^8�LNI3TVLN2Y>bL$ N8�D02-2^DN2]e R O7D]\���572" = ;<2^\ba^E D�2^5 NALV>@57D�2 5P=}>@a^LV>}>@a^8�&^= 8AE \XLN2#I^D OPD<\XLVO8ZD�E � R 8 2 D�E 8(8ZLN5 >@5P2# �2 D�Eh>@a^8 =?;]23\ba^E D�235 NXL >@5PDN2�> D \JD�6 [^OP8U>@8$�

���7���7� � r<A�� �losvdt A<v��4$a38H)E =?>g= >@8J['572� �8J2^8AE LV>@572" L}F-(+*�8 �]8A\A&]>bL R O78 5P=Z> D�>@E LN2^= OPLV>@8G>@a^8 FG( * \AD<I^8> D}. \9DM* \AD<I^8$� 4$a35P=�>@E@LV2^= OPLV>@57D�2 5P=�I^D�238 R ; >@a^8H?S�6-/�)+�!�#�$� 4$a^8 2 E D�2Y>@8J2^I 57='L = DN&^E \J8Ue > DVe= D�&^E \A8G> E@LN23= O L >@D�E >@a^LV> > E@LN23= O L >@8A=+FG( * \JD�2^=?>@E &3\J>@= >@D \ALNOPO7=z>@D:>@a^81E &^2�>@5P6 8$= ;<=?>@8A6P�+B)D�E8 �3LN6�[3OP8� 8XLN\ba�E 8ALNI D�E 8gE 57>@8'LN\J\A8A= =�> D 2^DN2]efO7D]\ALNOh6 8A6 D�E ; 57=}>@E@LV2^= OPLV>@8JI#> D L \XLNO7Oh>@D> a^8 �T$U D�E � WDU 2 &^2^\U>@5PDN2^=_E 8A= [d8J\J>@5 T�8JO7;!�KB 5 N&^E 8�-K= a^D 8g=}LN2 8 �3LN6�[3OP8 D$2gF-(+*"\AD<I^8�5P2

��3

Page 18: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

a[1] = 2;

One element per thread

Global

Local

Thread 0 Thread 1

Memory layout

a[0] a[1]

}

if(MYTHREAD==0) {

}

shared int a[THREADS]; shared int a[THREADS];

void main(void) { void main(void) {

int b;

if(MYTHREAD==1) {

}

}

b

b = a[0];

put(destination thread = 1, location = a[1], data = 2);

b = get(source thread = 0, location = a[0]);

Thread 0 Thread 1

B 5 �&3E 8(-3,xFG( * >@D * > E@LN23= O L >@5PDN2�8 �3LN6 [^OP80�

8ga35P\ba E 8 2 8JE 8J2^\A8J=:> D�23D�2]efO7D]\ALNO 6 8A6 D�E?;WLNE 8�>@E@LV2^= OPLV>@8JI > D #T$U LV2^I � WDU 2 &^23\J>@57D�2 \XLNO7OP= �*ZDN6�[)L � 5P= [^E DuT<5PI^572" &3=�>@a38A5PE�F-(+* \JD�6�[35POP8JE � 4$a35P= \JD�6 [^5PO78AE}6�L �N8J= &^= 8 D$2*" I^57= D�2�8J= 5O �2 Q E D�&^[ * = 2 E D�2Y>@8J2^I�>@D I^D}>@a^8_F-(+* >@D�* > E@LN2^= O LV> 5PD�2 �

���7���7� � r<A � p`v t�� I A C �<CJt ADIM >157=1576�[sD�E?>bLN2Y>h> D 23DN>@8 >@a)L >1> a^8:F-(+*�> D * >@E@LV2^= OPLV>@57D�2�= a^D 8g2 572�B 5 �&3E 8(- D�E$5P2�DN>@a38AE8 �3LN6�[3OP8A=Z8AOP= 8 8ga^8JE 8 5P2�>@a^57=hI^D<\A&^6 8A2Y>$57= R LN= 8AI�D�2�*ZD�6 [)L ��* =gF-(+* \JD�6 [^5PO78AE � F-(+*p4�!�%=�ZI^D<8A=g2^DN>1I^57\J>@LV>@8 a^D 8�>@a^8 OPD 8 8AEgO LX;N8AE =g= a^D�&^O7I�576�[3OP8A6 8A2Y>gFG(+*�\ADN2^= > E &^\U>@= �4$a38 #T$U LN2^I � WDU 2 &^2^\U>@57D�2^=572K>@a^8�> E@LN23= O L >@8AIK\AD<I^8 LNE 8 D�2^8Ue = 57I^8AIW\JD�6�6 &^2^5P\ALV>@57D�2�D�[]e8JE@LV> 5PD�23= � 4$a^8 D�2^8 ef= 5PI^8JI�6 8J> a^D<I�D02 \JD�6�6 &^2^5P\ALV>@57D�2�LN23I�5 >@=$\JD�&^2Y>@8JE [)LNE?>GLNE 8 8 �3[3O LN572^8AI= & R = 8���&^8A2Y> O7;!�

� 4

Page 19: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

���7��� | � v<A�� CE� �<A��,�)v�� ��� o^� CE� �<A��,��oJI I p`v�� �!�3t�� osv. �E D�&^[ D$2 [^E D<\A8J= = 8J=h8 �]8J\A&3> 5P2" }L:[)LNE LNOPO78AO)[^E D! �E@LV6 2^8A8JI >@D 8 �]\ba)LN2" �8-I)LV>bL_LN2^I \JD�2Y>@E D�O572#2 D�E 6 LV> 5PD�2 � 4$a^8 \AD<I^8 5P2 B 5O �&^E 8>-�57= LN2 8 �3LN6�[3OP8}D$2ZI)LV>bL R 8A572" �8 �]\ba)LN2" N8AI R 8J> 8 8A8J2> 8 D}\AD<D�[s8AE LV>@572" �FG( * >@a3E 8XLVI^= � 4$a^8JE 8 LNE 8-> 8 D R LN= 57\-= \ba^8A6 8A=$>@D 8 �]\ba)LN2" N8 5P2#2 D�E 6 L >@5PDN2R 8J> 8 8A8J2WL}= 8J2^I^8AEGLN2^I'L}E 8J\A8A5 T�8JE �Mf2 > 8 DVef= 5PI^8JI \AD�6 6�&^2^57\XLV> 5PD�2 R DN>@a >@a38 = 8J2^I^8AE LN23I#E 8A\J8A57TN8AE LNE 8�LN\J> 57TN8AO7; 5P2YT�DNO7T�8JI 5P2> a^8�8 �3\ba^LN2" �8 D$2x6 8A= =@L$ �8J= � .-2W8 �3LN6�[3OP8�D$2 > a^5P=LNE 8:>@a^8 %K(�M 2 &^2^\U>@57D�2^= DV�� � T � �KLN2^IDV�� �#T �"� � . DV�� �#T �"� I^D]8J=+> a^8 � D R D$2 [sD�O7OP5P2# D�2}>@a^81E 8J\A8J57T�8JE = 5PI^8 8ga^57OP8h> a^8 �V�� � T ���57=g&^= 8JI'>@D = 8J2^I I)L >bL R ;�> a^8 = 8J2^I^8AE �$4$a^8:I^5P= LNI3TVLN2Y>bL$ N8:D02 >@a35P=g= \ba^8J6�8:5P=$> a^8:> 5P6 8 OPD�=?>572B8hLN5 >@572" LV>$>@a38:E 8A\J8A57TN8AE �Mf2 D�2^8Ue = 57I^8AI�\JD�6 6�&^2^57\XLV> 5PD�2 cD�23O7; >@a^8�= 8J2^I^8AE D�E_> a^8 E 8A\A8J57TN8AE�57=�LN\U>@57TN8AO ; 5P2YT�D�O T�8JI 5P26 8A= =@L$ N8 8 �]\ba)LV2" �8$� 4$a35P=-= \ba^8A6 8�57=-8%$ \J5P8A2Y> 8ga^8A2 > a^8�E 8J\A8J57T�8JEI^D<8A=G2^DN> ��2^D 8 R 8 2 D�E 8Uea^LN2^I 8ga^5P\ba�= 8J2^I^8AEg>@D O75P= > 8A2�>@D#�

��)

Page 20: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

UPC Code

UPC Intermediate Code in C

UPC executable code

EDG UPCfrontend compiler

CompilerC

MuPC RTSObject Code

MPI Library

+

pthread Library

B 5 �&3E 8(G3, 4$a^8 R 5O [^5P\U>@&^E 8N, 6�&^[s\A\0�

� � ��� � � � ���

4$a38 �DYLNOsD$2M%'&^( * 57= >@D 8A2)L R OP8G> a^88 �38J\A&3> 5PD�2�D02cF-(+* [^E D! NE@LN6 = DN2�LN2Y; [3O LV> 2 D�E 6"> a)LV>= &^[^[sD�E > =g%K(�M+LN2^I�(z> a^E 8ALNI^= � 9]DN6�8G8 �3LN6 [^OP8J=ZD$2Q> a^8->bLVE �8U>h[^OPLV> 2 D�E 6�=x572^\AO7&^I^8 Z 8AD 8g&^OO2\JOP&^=?>@8JE = Z2^8J> 8 D�E ��= D02+8 D�E ��= >@LV>@57D�2^=�LN2^I�= a)LNE 8AI�6�8J6�D�E?; 6�LN\ba^5P238A= = &^\ba LV= > a^8K93F+\" 2Y>@8JE [^E 5P= 8$�

�)�� � � ������� � �

%�&)(+*�[^E DuT<5PI38A= DW � ��� LN2^I DW � � � W���\AD�6 6�LN2^I^=gLN23I�> a^8_%'&)(+*�OP5 R E@LVE ;�� B 5O �&^E 8 G � �4$a38:&3= 8AE1E 8 ��&^5PE 8A=$>@a^82 D�O7OPD 8g5P2# �= D$2 > 8ZLNE 8 LN23I�a^LNE I#8ZLNE 8_\JD�6�[sD�2^8J2Y>@=$>@D &^= 8�%'&^( *+�

& . F-(+* \ADN6�[^57OP8JE \XLV[)L R O78 D$23I3D�5P2" 1FG( *W>@DG* > E@LN23= O L >@5PDN2 \AD�2#2 DNE 6 5P2" Z> DG*ZD�6�[^L ��* =5P2Y>@8JE 2 LN\J8$�& 4$a^8_%K(�M$LN2^I�(z>@a^E 8XLNI'OP5 R E@LNE 5P8J= �& 4$a^8_%'&)(+*�OP5 R E@LVE ;�3LN2^I�>@a^8 DW � ��� LV2^I �W � � � W��'= \AE 57[3>@= �& .-2Y;�a)LNE I#8ZLNE 8:[^O L > 2 D�E 6�8g5 >@a�>@a^8:L R DuT�8:= D$2 > 8ZLNE 8:\JD�6 [dD�238A2Y>@= �

4$a38 �^D�8 D$2 8UT�8J2�> =-572B �8A2^8JE@LV> 5P2" L F-(+*�8 �]8A\A&]>bL R O78_57=gLN= 2 D�OPO7D 8g= � B 5O �&^E 8��ui � �

& 4$a^8 2 E D�2Y> 8J2^I >@E LN2^= O LV> 8A=�FG(+* \AD<I^8 572�> D'8 ��&^57TVLNO78A2Y>�572�> 8AE 6�8JI^5 LV> 8�* \AD<I^8�8g5 >@a\XLNO7OP=Z> D > a^8:0 419 �

� -

Page 21: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

where filename.c is the UPC code file

The resulting executable a.out can be executed as

where n is the number of processors

mupcc filename.c libmupc.a

and libmupc.a is the run time system library.

mupcrun −n n a.out

B 5O �&^E 8 �ui3,xFG= 5P2" �%'&^( *+�

& 4$a^8 572Y>@8AE 6�8JI^5 L >@8+* \JD]I^8x57=`\JD�6 [^5PO78AI:LN2^I:OP572 �N8JI'8g5 >@a >@a^8Z%'&)(+* E &^2_> 5P6 8 = ;<= > 8A6OP5 R E@LNE?;!�& 4$a^8 E 8A= &^O7> 5P2" �D�&]>@[^&3>:57=>@a^8 F-(+*�8 �]8A\A&]>bL R O78 8ga^5P\ba \XLN2 R 8 8 �]8A\A&]>@8AI &^= 572" �>@a^8�W � � � W���\JD�6 6 LN23I �

�) � ��� � � � �� ���i��� ��� � � � ���

"xLN\ba FG( * >@a3E 8XLVI 572K>@a38}&^= 8JE [^E D! NE@LN6 5P=576�[3OP8A6 8A2Y> 8AIWLN=L�FG2^5 � [^E D]\J8A= =:572 %'&)(+*+�"xLN\ba %'&)(+* [^E D]\J8A= =+5P=+L_%K(�Mz[^E D]\J8A= = 8ga^5P\ba = [^L 8g23= > 8 D�(z>@a^E 8XLNI3= �x4$a^8g> 8ZD ( > a^E 8ALNI^=LVE 8x\XLNO7OP8JI:> a^8XOQ-/8989<:��.O���)R�.-/�1> a^E 8ALNI�LN23I:> a^8a�N��"�>@a3E 8XLVI � 4$a^8+\ADN6�6�&32^5P\ALV>@57D�2 >@a^E 8XLNI57= >@a^8 ( > a^E 8ALNI > a)LV>_a)LN2^I3OP8A= >@a38 6 8A= = L$ �8 [)LN= = 5P2# "��4$a^8 �N��"�>@a3E 8XLVI E &32^=_> a^8�&3= 8AE * =FG(+*�\AD<I^8$�Z4$a^8A= 8_> 8 D�>@a3E 8XLVI^=-572�> 8AE LN\J> 8g57> a'8ALN\ba DN> a^8AEg&^= 5P2" >@a^8[7�� -�LQ���]6�8J6�D�E?;!� M >@=576�[sD�E?>bLN2Y> > D 2^DN>@8$> a^8gI^5 �d8AE 8A2^\J8 R 8J> 8 8A8J2 FG( *+* =+\AD�2^\J8A[3>+D$2�� = a)LNE 8JI��:6�8J6�D�E?;�LV2^I}>@a^8L R DuT�8 6 8A2Y>@57D�2^8AI� �O7D R LNO� 6 8A6 D�E ;$� 4$a38R �O7D R LNOM6�8J6�D�E?;W5P=> a^8 [d8JE:[3E D<\A8A= = 6 8A6 D�E ;8ga35P\ba�> a^8g> 8ZD:>@a^E 8XLNI^=+5P2�L [^E D<\A8J= =Z\ALN2 LV\A\A8J= = �+.GOPO3> a^8-%K(�MxLN\J> 57T<57>f;}57=x\AD�23H^2^8AI >@D >@a^8\JD�6 6�&^2^57\XLV> 5PD�2K> a^E 8ALNI >@D'LN\ba^5P8UT�8 >@a^E 8XLNI =@L_2 8J>f;!��B 5O �&^E 8B�$� = a^D 8g=_> a^8 = ;<= > 8A6 6�D<I^8JOI38A= \JE 5 R 8JIKL R DuT�80�

���7��� � =_oJI I pMv�� �!�]t�� osv tlr<�_A ���4$a38�\AD�6 6�&^2^57\XLV> 5PD�2 >@a3E 8XLVI#57= 576�[^O78A6 8A2Y>@8JI LN=}LV2 5P23H)2357>@8�OPD<D�[ = 8AE?T]57\A572" >@a^8 D�&3> NDVe572" = 8A2^I E 8 ��&^8A=?>@= LN2^I >@a38 5P2^\JD�6 5P2" 'E 8A\J8A5 T�8�E 8 ��&^8A=?>@= � 4$a^8�\ADN6�6�&32^5P\ALV>@57D�2 R 8J> 8 8A8J2> a^8 F-(+* >@a^E 8XLNI LN23I > a^8}\ADN6�6�&32^5P\ALV>@57D�2'> a^E 8ALNIW5P= LV\ba^5P8UT�8AI >@a3E D�&" Na NOPD R LVOM6 8A6 D�E ;� B 5 N&^E 8>�lk�� �g498ZD�=?>@E &3\J>@&3E 8A=� D�2^8'2 D�Eg>@a^8_= 8A23I E 8 �<&38A= > = LN2^IK> a^8 DV>@a^8JE 2 D�Eg>@a^8_E 8J\A8A5 T�8E 8���&^8J= >@=-LNE 8 = a)LNE 8AI R ; > a^8 > 8ZD >@a3E 8XLVI^= �4$a38 \AD�6 6�&^235P\XL >@5PDN2 > a^E 8ALNI�= >@LNE > = R ; [dD�=?>@572" 2^D�2<e R O7D]\���5P2# 'E 8���&^8A=?>@=�> D E 8J\A8A5 T�8 I^LV>bL2 E D�6 LVOPO > a^8�[^E D<\A8J= = D�E = 5P2YTND�O7TN8AI#5P2�>@a38�8 �]8A\A&]>@5PDN2�D$21>@a38�[^E D! NE@LN6P� 9]& R = 8 �<&38A2Y>@O ;�5 >

� G

Page 22: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

User Code

Thread Thread

User Code

Thread

InitUPC UPC

Init

ProgramUPC

FinalizeFinalizeUPC

UPC

Thread

MPI_Init()

MPI_Finalize()MPI_Finalize()

MPI_Init()

Communication Communication

mupcrun −n 2 upc_hello_world

B 5O �&^E 8 �!��,+%'&)(+*�=?;<= >@8J6C6�D<I^8AO �

kNi

Page 23: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

8J2Y>@8AE =}LN2 5P23H)2357>@8 OPD<D�[ 8ga^8AE 8 5 > = 8AE T<57\A8A=_>@a^8�5P2^\JD�6�572" �LN2^I D�&3> ND�5P2" �\ADN6�6�&32^5P\ALV>@57D�2E 8���&^8J= >@= ��72WE 8A\J8A5 T]572" �LN2W5P23\AD�6 5P2" E 8���&^8J= > c> a^8}\ADN6�6�&32^5P\ALV>@57D�2'> a^E 8ALNI [^E D<\A8J= = 8J=_5 >LV2^I LV> >@a^8g8J2^I�D02d> a^8g[^E D<\A8J= = 572" :[dD�=?>@=xL 2^8 8 E 8J\A8A5 T�8gE 8 ��&^8A=?> > D:O75P=?>@8A2 2 E D�6�> a^8g[^E D<\A8J=?e= D�E 8g57>@a>8ga^57\ba 57>xOPLN= >+\JD�6�6 &^2^5P\ALV>@8JI � .GOP= D �5P2 D�E I^8JE+> D LXTND�5PI >@a^8 8ZLN= > 8-D$2Q*h(+F�\J;<\AO78A=R ; O7D]D�[35P2" �2^8J8AI^O78A= = O7; 572W>@a^8 \XLN= 8�D02Z2^D�\ADN6�6�&32^5P\ALV>@57D�2 LN\J> 57T<57>f;�Q>@a^8 \ADN6�6�&32^5P\ALV>@57D�2> a^E 8ALNI�;<578AOPI3=zT�D�O7&^2Y>bLNE 5PO7;�X �57T<572" 6�D�E 81*h(xF�\U;]\JOP8J= >@D >@a38GFG(+*#>@a^E 8XLNI � 4$a^8G\JD�6 6�&^2^5 e\ALV>@57D�2�>@a^E 8XLNIK> 8AE 6�572)LV>@8J=1L02 >@8JEGE 8A\A8J57T<5P2# H)235P= aKE 8���&^8J= > =+2 E D�6CLVOPO >@a38_DN> a^8AE1[^E D]\J8A= = D�E =572YT�D�O T�8AI�5P2�> a^8 8 �]8A\J&3>@57D�2 �4`D 57= = &^8KL [^&3> ]V= 8J2^I E 8���&^8A=?> >@a38KFG( * >@a^E 8XLNI�OPD<\��<= >@a38'= 8A2^I =?>@E &^\J> &^E 8 hH)OPO7= 572 >@a^8E 8���&^8J= > [)LNE LN6 8J>@8JE =GLN2^I &32^OPD<\���=57> 2 D�Eg>@a^8_\AD�6 6�&^2^57\XLV> 5PD�2�>@a3E 8XLVIK>@D E 8XLNI �G4$a^8 \AD�6}e6 &^2^5P\ALV>@57D�2�> a^E 8ALNI�[d8JE 57D]I^57\XLNO7O7;}O7D]\���=Z> a^8 = 8J2^I�= >@E &^\J> &^E 8> D}\ba^8A\���2 DNEhLN2Y; DN&3>@=?>bLN2^I35P2" = 8A2^I E 8���&^8J= > = 2 E D�6�>@a^8GF-(+*�>@a3E 8XLVI ��Mf2 > a^8G\ALN= 81D$2cL 2^8 8 = 8A23I E 8 �<&38A= > ]> a^8G\JD�6 6�&^2^5 e\ALV>@57D�2'> a^E 8ALNI = 8A2^I^=G>@a^8_E 8���&^8J= >> D�> a^8 E 8A6 DN>@8_[^E D<\A8J= = DNE-&^= 5P2" L R OPD<\���5P2" %K(�Mg= 8J2^I �4$a38AE 8_LNE 8 m >f;<[s8A=1D$2 = 8A2^I�E 8 ��&^8A=?>@= �

& 9]8A2^I E 8A6 DN>@8V, 4$a^57=�5P= L�E 8���&^8J= >�>@D 8gE 57> 8K>@D�> a^8 E 8J6�DV>@8 [^E D]\J8A= = D�E * =�6 8A6 D�E ;$�%'&)(+* 5P6 [^OP8J6�8J2�> =$>@a^57= R ;�= 8A23I^5P2" �>@a^8�I^LV>bL >@D > a^8 E 8A6 DN>@8:[^E D<\A8J= = D�E&^= 5P2" >@a^8R OPD<\���5P2" %K(�Mh= 8A2^IP2 &^2^\U>@5PDN2 �

& 018J\JT E 8A6 DN>@8V,Q4$a^5P=c5P= L1E 8���&^8A=?>M> DgE 8XLVI:I^LV>bL92 E DN6�>@a38+E 8A6 DN>@8 [3E D<\A8A= = D�E * =`6 8A6 D�E ;$�%'&)(+*�5P6 [^O78A6 8A2Y>@=Z> a^8 E 8J6�DN> 8 E 8ALNI^=g&^= 572" �L}> 8 DVe [^a)LN= 8_[^E DN>@D<\ADNO �& B 5P2^57= a , 4$a^5P=g5P=gL}E 8���&^8A=?>G> D > 8AE 6�572)LV>@8-8 �]8A\J&3>@57D�2 �

4`D1\AD�6 6�&^2^57\XLV> 8z>@a^8+5P23\AD�6 5P2" $E 8A\J8A57TN8 E 8���&^8J= >@=M>@D$>@a^8 F-(+* > a^E 8ALNI >@a^8x\ADN6�6�&32^5P\ALV>@57D�2> a^E 8ALNI�&^= 8J=$>@a^8 E 8J\A8J57T�8 =?>@E &3\J>@&3E 8$� \1DN>1LNOPOs5P23\AD�6 5P2" E 8A\J8A5 T�8 E 8 �<&38A= > =-LVE 8 2^8J8AI^8JI�> D R 8\JD�6 6�&^2^57\XLV> 8AI 8g57> a >@a38�FG(+*�>@a^E 8XLNI ��72^O7; > a^8 I)LV>bL�E 8 ��&^8A=?>@8AI R ;W> a^8 FG(+*�>@a^E 8XLNI2 E D�6CE 8J6�DN> 8 [^E D]\J8A= = D�E = 2^8A8JI^=>@D R 8�\JD�6�6 &^2^5P\ALV>@8JIK>@D�>@a^8}FG(+* > a^E 8ALNI � 4$a^8JE 8 LNE 8 5>f;<[s8A=1D$2ME 8A\J8A5 T�8:E 8���&^8J= > = �

& � LV>bL3,Q4$a35P= 57=`LGE 8 ��&^8A=?>z>@D 8gE 57> 8+> DG> a^8ZO7D]\ALNOY[^E D<\A8J= = D�E * =z6 8A6 D�E ; 2 E D�6�>@a^8+E 8J6�DV>@8[^E D<\A8J= = DNE = � 4$a35P=x5P= 576�[^O78A6 8A2Y>@8JI R ;�8gE 5 >@5P2# >@a^8gI)LV>@L LV>+LN2�LN[^[^E D�[^E 5PLV>@8ZOPD<\XLV> 5PD�2 �

& 018J\JTs, 4$a35P= 57= L�E 8 ��&^8A=?>�>@D E 8ALNI > a^8 OPD<\XLVOG[^E D]\J8A= = D�E * =�6 8A6 D�E ;�LN23I = 8A23I >@a^8\AD�2Y>@8J2Y>@=g>@D}>@a^8 E 8A6 DN>@8 [^E D]\J8A= = D�E �& 018J\JT E 8J[^O7;s, 4$a^57=:57= L�E 8���&^8J= >�572^I^57\XLV> 5P2" E 8A[^O ; >@D�>@a38 O7D]\ALNOz[^E D]\J8A= = D�E * =:E 8 �<&38A= >>@D E 8ALNI�> a^8 E 8J6�DN> 8 6�8J6�DNE ;!�& B 5P2^57= a , 4$a^5P=g5P=gL�> 8AE 6 5P2^LV>@57D�2 E 8 ��&^8A=?> 2 E D�6 >@a38:E 8A6 DN>@8 [3E D<\A8A= = D�E �

k��

Page 24: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

Post n non−blocking MPI receiveskeep_polling = n

to listen from n processors

While keep_polling true

If Send_RemoteSend Data request to remote processor using a Blocking sendUnlock send_struct

If Recv_RemoteSend Recv request to remote processor using a Blocking sendUnlock send_struct

If FinishSend Finish request to remote processor using a Blocking sendUnlock send_struct

If lock failed or no request

Check requestIf lockedTry locking send_struct

Check if incoming requests from remote processorsLock recv_structIf Data request

Receive data and storeUnlock recv_struct

If Recv requestRead data and send Recv_Reply request using a Blocking sendUnlock recv_struct

If Recv_ReplyReceive data and store Unlock recv_struct

If FinishDecrement keep_pollingUnlock recv_struct

Post a new non−blocking MPI receive for the last processor communicated withYield communication threadDone While

// Outgoing Requests// Write request TO remote processor

// Read request to remote processor

// Request to terminate communication thread

// Incoming Requests

// Write request FROM remote processor

// Read request FROM remote processor

// Receive Data FROM remote processor

// Process finish request FROM remote processor

BM5 �&^E 8 �lk],+*ZD�6 6�&^235P\XL >@5PDN2 >@a^E 8XLNI

k�k

Page 25: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

4$a38 LV\J>@&^LNO�= 8J2^I_LN2^I:E 8A\J8A5 T�8xD�[s8AE@L >@5PDN2^=QLNE 8 8 �][^O LV5P2^8JI:572 I^8J>@LN5PON5P2>@a38 2 DNOPOPD 8g572" Z= 8A\J> 5PD�23= �4$a38 [^E 576�8>2 8XL >@&^E 8 D$2$> a^8 \ADN6�6�&32^5P\ALV>@57D�2W>@a^E 8XLNI 57= 5 >�57=_I^8J= 5O �2^8AI�> D R 8 \ADN6�[^O78J> 8AO7;23D�2]e R OPD<\��<572" �8g57> a�2^D 8ZLN5 >@5P2# -5P2YTND�O7TN8AI 2 D�E`>@a^8 \AD�6 [^O78J>@57D�2:D$2/L-\JD�6�6 &^2^5P\ALV>@57D�2 E 8 �<&38A= >L > >@a38 E 8J6�DN> 8 8J2^I � 4$a^57=�6 5 �aY>:= D�&32^I \AD�2Y>@E LNI^57\J>@DNE ; OPD<D ��5P2" 'LV>_>@a^8 &3= 8 D$2 R OPD<\��<572" %'( M = 8J2^I^=15P2 >@a38:\JD�6 6�&^2^57\XLV> 5PD�2 >@a^E 8XLNI R &3>$>@a^8 R O7D]\���572" }= 8J2^I^=15P2�%K(�MZI3D 23DN> 8hLV57>2 DNEGLV2 LN\���2^D 8gOP8JI" �6 8A2Y>+2 E D�6 > a^8_E 8A6 DN>@8:[^E D]\J8A= = D�E = �$4$a^8 23D�2]e R OPD<\��<572" \ba)LNE LN\J> 8AE 57= > 5P\D02M> a^8 \AD�6 6�&^2^57\XLV> 5PD�2�>@a^E 8XLNI�5P=h> a^8 8A= = 8A2^\J8 D$2`>@a38 %�&)(+*�E &^2�>@576�8-= ;<= > 8A6P�

kNm

Page 26: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� � ��� � ����� �L��� �����

� �� � � �y���+������F{� �����

4$a38 *ZDN6�[)L ��F-(+*�E &^2�>@5P6 8=?;]=?>@8J6 572Y>@8AE 2 LN\A8 I^8J\AOPLNE 8J=� �DU ��V������� � � � U�#� � � � LN=->@a38�5P2^5 >@5PLNOP5ONXLV> 5PD�2�2 &^2^\J> 5PD�2 �4$a^5P=G5P=1>@a^8 H^E = > 2 &^2^\U>@5PDN2K>@DR 8 \ALNOPO78AI 8ga^8A2 L�F-(+* 8 �]8J\A&3>@L R OP8 5P=15P2YT�D �V8AI �G4$a^8 572^57> 5 LNO75 NALV>@57D�2�>@LN= ��I^D<8A=1>@a^8 � D R D$2R & � 8JEzLNO7OPD<\XLV> 5PD�2 %K(�MQ5P2^5 >@5 LVOP5 NALV>@57D�2LV2^I = [)LE8g2^5P2" -D$2^>@a38hF-(+*�LN23I_>@a38Z\ADN6�6�&32^5P\ALV>@57D�2> a^E 8ALNI �(M > 57=I^8A= 5 �238AI LN2^IW576�[3OP8A6 8A2Y> 8AIK> D R &^5PO7IK>@a38�= ;<= > 8A6 6 D<I^8AO`= a^D 8g2 5P2WBM5 �&^E 8�$�!�

� � �N���p�� � �x�,�

|!�7��� � SDT$U oJK�A ���3t�� osv.G2 LV> > 8A6 [3>z> D E 8XLVI}I)LV>bL=?>@D�E 8AI}572}E 8A6 DN> 8Z6 8A6 D�E ;_E 8J= &^O >@=z572 >@a^8$572YT�D<\XLV> 5PD�2�D02s> a^8 SDT$UDN[d8JE@LV> 5PD�2 �h%'&)(+* 5P6 [^OP8J6�8J2Y>@=h>@a38�SDT$U�D�[d8JE@LV> 5PD�2�&^= 5P2" L > 8 DVef[3a)LN= 8 [^E DN> D]\JD�O � BM5 �&^E 8�Xm � � 4$a^8}6 DN>@5 TVLV>@57D�2P2 DNE->@a^57=[^E DN>@D<\AD�O`5P=G>@D�6�LN5P2Y>bLV5P2'> a^8�2^DN2]e R O7D]\���572" 2)LV> &^E 8}D02 >@a^8\JD�6 6�&^2^57\XLV> 5PD�2 >@a^E 8XLNI � �&38G>@D�> a^5P=+>@a^8 \JD�6 6�&^2^57\XLV> 5PD�2 >@a^E 8XLNI�I3D]8J=h2^DN>$238A8AI�> D 8hLV57>2 DNEz>@a^8g\ADN6�[^O78J> 5PD�2�D02d> a^8 S�T$U D�[s8AE LV>@57D�2 �[sD�= = 5 R O7;�5O �2^D�E 5P2" -5P2^\JD�6�572" E 8���&^8A=?>@= 2 E D�6�>@a^8DV>@a^8JE1[3E D<\A8A= = D�E = �+4$a^8'SDT!U D�[d8JE@LV> 5PD�2�[^E D]\J8A8JI^=-LV=92 D�OPO7D�8g= �

& (xa^LN= 8���,+%KL ��572" }>@a^8 E 8 ��&^8A=?>�9<>@8J[ ��,�4$a38�F-(+* > a^E 8ALNI R &^57OPI^=:>@a^8�E 8A\A8J57TN8�E 8���&^8J= >�LN2^I =?>@D�E 8A=}5 >�5P2 >@a^8 �OPD R LNOs6�8J6�D�E?;!�z4$a38 F-(+* > a^E 8ALNI >@a38A2B8hLV57>@= 2 D�EZ>@a38 � E 8J\A8J57T�8 I3D�2^8 � �)L$ �>@DR 8 = 8J>E�

�9<>@8J[�k],M4$a^8-\JD�6�6 &^2^5P\ALV>@57D�2�>@a3E 8XLVI D<\A\XLV= 5PDN2)LNOPO ;�\ba^8J\���=Z>@a^8 �O7D R LNO)6 8A6 D�E ;2 D�E�D�&]>@= >@LN2^I^572" WFG( * E 8 ��&^8A=?>@= � M 2157>�I38J>@8J\J> = L E 8���&^8J= > 5 >�[^E D]\J8A= = 8A= 57>�LN=I^8A= \AE 5 R 8AIK572�>@a^8 2^8 �]>1=?>@8A[ �

�9<>@8J[ m], 4$a^8g\ADN6�6�&32^5P\ALV>@57D�2_> a^E 8ALNI�= 8A2^I3=x> a^8gE 8J\A8A5 T�8gE 8 ��&^8A=?> > D > a^8$E 8J6�DV>@8[^E D<\A8J= = D�E �

& (xa^LN= 8 k],x0g8A\A8J57T<5P2# > a^8 E 8J[^O7;�9<>@8J[>5^,M4$a38hE 8J6�DN> 8h[^E D]\J8A= = D�E * = \ADN6�6�&32^5P\ALV>@57D�2:> a^E 8ALNI}I^8U>@8A\U>@=+LN2�572^\ADN6�572" E 8J\A8A5 T�8:E 8 �<&38A= > � M >1E 8A[^O75P8A=98g5 >@a�>@a38:E 8���&^8J= >@8JI I)LV>@L#�

k05

Page 27: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

Remote ProcessorLocal Processor

Lock send_struct

Unlock send_structlocation = addressrequest = Recv_Remote + Recv

Unlock send_struct

remote processorSend Recv request toRecv_Remote:

While keep_polling trueLock send_structif locked

Check request

send_structrecv_struct

Get(ptr, remote)

1 2

While keep_polling trueLock send_structif locked

Check request

Wait on recv_struct.donereturn data

else check incoming requests

Recv:Read DataSend Data + Recv_Reply backUnlock recv_struct

else check incoming requestsLock recv_structLock recv_struct

Recv_Reply:Receive data

Unlock recv_structrecv_struct.done = 1

3

4

5

UPC Thread Communication Thread Communication Thread

B 5O �&^E 8 �Xm3, SDT!U D�[d8JE@LV> 5PD�2

�9<>@8J[P3],z4$a^8-OPD<\XLNO/[^E D]\J8A= = D�E * =$\ADN6�6�&32^5P\ALV>@57D�2 > a^E 8ALNI I^8U>@8J\J>@=gL_E 8A[3O7; >@D:>@a^8E 8J\A8A5 T�8�E 8���&^8J= > LV2^I E 8A\A8J57TN8A= > a^8�I^LV>bL#�RM >_> a^8A2 = 8J> =_> a^8 E 8A\A8J57TN8 I^D�238 �/L0 >@a�&^=18A2^I35P2" }>@a38_FG(+*�>@a^E 8XLNI * = 8ZLN57> �

|!�7���7� VXWDU oJK�A ���3t�� osv4$a38 VXW�U_D�[s8AE LV>@57D�2 57= = 576�[3OP8AEc>@a^LN2�>@a^8 SDT!U_D�[s8AE LV>@57D�2 �<^ E 57>@8J=M> D E 8A6 DN> 8 6 8A6 D�E ;:E 8A= &3O7>572�>@a^8 5P2YTND]\ALV>@57D�2�D$2`>@a^8VXWDU�D�[d8JE@LV> 5PD�2 � B 5 N&^E 8�� 5 � �4$a38 F-(+* >@a^E 8XLNI R &^57OPI^=1>@a^8 = 8A23I E 8���&^8J= >:LN2^IW=?>@D�E 8A= 5 >5P2 �OPD R LNOc6�8J6�D�E?;!�4$a38}\AD�6}e6 &^2^5P\ALV>@57D�2W>@a^E 8XLNI I^8U>@8A\U>@= > a^8 E 8 �<&38A= >}LN2^I = 8A23I^=_> a^8�I^LV>bL�>@D�>@a^8 E 8J6�DN> 8 [^E D<\A8J= = DNE �%�8XLN2X8ga^57OP8�<>@a^8F-(+* > a^E 8ALNI \JD�2Y>@5P2�&^8J=h>@a^8-8 �]8A\J&3>@57D�2�8g57> a^D�&3> 8hLN5 >@572" &2 D�E+>@a^8-\AD�6 [^OP8 e> 5PD�2�D02 >@a38(VXWDUJ�

� �� � � ��� � ����� � �F{� �����

FG(+* [3E DuT<5PI^8J=Z> 8ZD}>f;<[s8A=hD$2 R LNE E 5P8AE \AD�23= >@E &^\J> =A,+L_>f;<[^57\XLNO R LNE E 5P8JEZLN23I�L � = [3OP57> � R LVE E 578AE ���V� ����� � T � 57= L R O7D]\���5P2# �= ;<2^\ba^E D�2^5ONXLV> 5PD�2 \ADN2^= > E &^\U>E��. \XLNO7OG> D�>@a^8 ��V� ����� � T �

k!3

Page 28: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

Remote ProcessorLocal Processor

Lock send_struct

Unlock send_structlocation = addressrequest = Send_Remote

Unlock send_struct

remote processorSend Data request to

While keep_polling trueLock send_structif locked

Check request

send_structrecv_struct

Put(ptr, remote)

1 2

While keep_polling trueLock send_structif locked

Check request

else check incoming requests

Data:Write Data

Lock recv_struct

3

Send_Remote:

Unlock recv_struct

UPC Thread Communication Thread Communication Thread

B 5O �&^E 8 � 5^,�VXW�U D�[d8JE@LV> 5PD�2

Remote ProcessorLocal Processor

Lock send_struct Lock send_structrequest = Barrier request = BarrierUnlock send_struct Unlock send_struct

While keep_polling trueLock send_structif lockedCheck request

Barrier:

Unlock send_structremote processorSend Barrier request to

else check incoming requests else check incoming requests

While keep_polling trueLock send_structif lockedCheck request

Barrier:Send Barrier request toremote processorUnlock send_struct

Lock recv_struct Lock recv_struct

Barrier: Barrier:

Unlock recv_struct Unlock recv_structdecrement Barrier_done decrement Barrier_done

send_struct send_struct

12

3

4

5

6

Wait on Barrier_done Wait on Barrier_done

decrement Barrier_done decrement Barrier_done

Communication Thread Communication ThreadUPC ThreadUPC Thread

Barrier_done = n − 1 Barrier_done = n − 1

BM5 �&^E 8���3], � ������� T � D�[s8AE LV>@57D�2

k$4

Page 29: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

R OPD<\��<=}&32�> 5PO$LVOPO > a^8�DN>@a38AE}[^E D]\J8A= = D�E = 8 �]8J\A&3> 5P2" W>@a38�[3E D! �E LN6 LVOP= DW\ALNOPO ��V�� ������� T � �4$a38 � = [3OP57> � R LNE E 5P8AEG5P=-L�= 8 ��&^8A2^\J8 D$2 > 8ZD�\JD�2^=?>@E &3\J>@=� ��V� �� 0U ����� LN23I ��V�� � ��� UJ�4$a^8\1DN>@5�2 ;}\ADN2^= > E &^\U>$LN2^23D�&^2^\J8A=hL [^E D]\J8A= = D�E * =Z572Y>@8A2Y>+>@D_= ;<2^\ba^E D�2^5 NJ8 8g5 >@a DV>@a^8JE+[3E D<\A8A= = D�E = �4$a38�^ LN57>\AD�2^=?>@E &^\J> R OPD<\���= &^2Y>@5POzLNOPO > a^8 DN>@a38AE [^E D<\A8J= = D�E =:a)LXT�8 \XLNO7OP8JI \1DN>@5�2 ;K572W>@a^8J5PE\JD�E E 8A= [dD�23I^5P2" R\GDN> 5O2 ;Ye ^ LN5 >G= 8���&^8J2^\A80�4$a^8 > 8 DVef=?>@8J[ = ;<2^\ba^E D�2^5ONXLV> 5PD�2 [3E D<\A8AI3&^E 8�57=GI38Ue= 5 �238AI�>@DK5P6 [^E DuT�8 8%$ \A578A2^\U; R ; LNO7OPD 8g5P2# 'O7D]\ALNO�8ZD�E � > D R 8 I^D�2^8 R 8J> 8 8A8J2#> a^8B\GDV>@5O2 ;LV2^I�> a^8^�LV57>$\JD�2^= > E &^\U>@= �

|!�7��� � ���"���_� A ��oJK�A ���3t�� osv%�&)(+*#5P6 [^O78A6 8A2Y>@= > a^8 ��V�� � ����� T � D�[d8JE@LV> 5PD�2}&3= 5P2# _LV2�LVOPO e >@DVefLNOPO�> D �N8J2�8 �]\ba)LN2" �81[^E DVe> D]\JD�O � B 5O �&^E 8'� 3�� � "xLN\ba [^E D<\A8J= = DNEZ5P2357>@5PLNOP5ONA8J= L:TVLNE 5 L R O78 8g57>@a L:TVLNO7&^8G8 ��&)LNO/>@D_> a^8g>@DN>@LNO2�&^6 R 8JE D$2QF-(+*�>@a^E 8XLNI3= � [3E D<\A8A= = D�E = �xe �!� ^ a38A2^8UT�8AE >@a^8-F-(+* \AD<I^81\XLNO7OP= ��V�� ������� T � > a^81E &^2 > 5P6 8g= ;<= > 8A6 = 8A23I^=$L R LNE E 5P8JE E 8���&^8A=?>h>@D_LNO7O^>@a^8G[^E D<\A8J= = DNE =Z572YT�D�O T�8AI 5P2 >@a^8G\AD�6}e[3&3>bLV> 5PD�2 � 72 > a^8}E 8J\A8A57[3> D$2 L R LNE E 578AE-E 8���&^8J= >_LV> >@a38�E 8J6�DN> 8�[^E D]\J8A= = D�E Q> a^8}E &^2 > 5P6 8=?;<= >@8J6 I^8J\AE 8A6 8A2Y>@= > a^8�TVLNO7&^8 D$2gL R LNE E 5P8AE TVLNE 5PL R O78 R ; D�2^80�'4$a38�F-(+*�>@a3E 8XLVI LV>:>@a^8O7D]\ALNOz[^E D]\J8A= = D�E(8hLV57>@=:&^2Y>@57Oz>@a^8 TVLNOP&38}D$2Z> a^8 R LNE E 5P8AE TVLNE 5 L R O78�5P= 2^DV>_8 ��&)LNOx>@D�D�2^8H�RCR�YC &32�> 5PO LNOPOs>@a^8 DN> a^8AE$[3E D<\A8A= = D�E =g8A2^\JD�&^2Y>@8JE1> a^8A57E R LNE E 5P8JE = � 7 23\A8>@a35P=$5P=hLN\ba^5P8UT�8JI�> a^8 8hLV57>\JD�6 [^OP8U>@8A=gLV2^I�> a^8:F-(+* > a^E 8ALNI^=1D�2�LNOPOd>@a^8 [^E D]\J8A= = D�E =1\XLV2'\JD�2Y>@5P2�&^8 > a^8A57E$8 �]8A\J&3>@57D�2 �

& 9<>@8J[ �N, 4$a^8 F-(+*�> a^E 8ALNI D�2W>@a^8}O7D]\ALNO [^E D]\J8A= = D�E \XLVOPOP=G>@a^8 R LNE E 578AE �_4$a^8 R LNE E 5P8JE2 &^2^\J> 5PD�2 R &^57OPI^=$> a^8 R LVE E 578AEgE 8 ��&^8A=?> LN2^I'= >@DNE 8A=G57>16 8A6 D�E ;$�Z4$a^8 R LNE E 5P8JE 2 &32^\J> 5PD�2= 8A23I^=z>@a^57= R LVE E 578AE`E 8 �<&38A= >x> D LNOPOY> a^8h[^E D]\J8A= = D�E = �z4$a^8 R LVE E 578AEcTVLNE 5PL R OP8+5P=M5P2^5 >@5PLNOP5ONA8AI>@D�> a^8:2<&36 R 8JE-D$2 [^E D<\A8J= = D�E = �G4$a^8 F-(+*�>@a3E 8XLVI 8hLV57>@=1&^2Y>@57OQ>@a^57= R LNE E 5P8AEgTVLNE 5PL R O78TNLVOP&^8 57=$2^DN>g8���&)LVOc> D>NA8AE D"�

& 9<>@8J[�k],z4$a^8G\AD�6 6�&^235P\XL >@5PDN2 > a^E 8ALNI I^8U>@8A\U>@=$L:E 8 �<&38A= > 2 E D�6">@a38F-(+* >@a3E 8XLVI�LN2^I= 8A23I^=1> a^8 R LNE E 5P8JE$E 8 �<&38A= >1>@D LNO7O >@a38:E 8A6 DN>@8> a^E 8ALNI^= �

& 9<>@8J[ m3, 4$a^8 E 8J6�DN> 8 [^E D<\A8J= = DNE * =K\ADN6�6�&32^5P\ALV>@57D�2 >@a^E 8XLNI�I^8U>@8A\U>@=KLN2�572^\ADN6�572" R LNE E 5P8JE$E 8���&^8J= >-LN2^I�I^8J\AE 8J6�8J2Y>@=-5 >@= R LVE E 578AEhTVLNE 5 L R O78 R ;�D�2^80�

& 9<>@8J[ 5^,G4$a38�E 8J6�DN> 8�[^E D]\J8A= = D�E * = F-(+* >@a3E 8XLVI a357>@=G57> =-D 8g2 R LNE E 5P8JE 2 &^23\J>@57D�2W\XLVOPO �M >gE 8A[s8XL >@=g>@a^8 =@LV6�8 [^E D]\J8AI^&3E 8:5P2�= > 8A[ �!�

& 9<>@8J[ 3],+9]LN6�8 LV=1=?>@8J[Wk��& 9<>@8J[ 43,+9]LN6�8 LV=1=?>@8J[ m#�

.G=-L E 8J= &^O >� R ;�>@a^8 >@576�8> a^8 R LNE E 5P8AE$TVLNE 5 L R O78A=$D�2KLNOPOd>@a^8:[^E D<\A8J= = D�E =-LNE 8'NA8JE D )>@a38_&^= 8AE\JD]I38:DN2'LVOPO > a^8 [^E D<\A8J= = DNE =1a)LXT�8:a^57>h> a^8A57E R LNE E 5P8JE =�^>@a�&^=1LN\ba^578JT<5P2" = ;<2^\ba3E D�2^5ONXLV> 5PD�2 �

k!)

Page 30: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

Remote ProcessorLocal Processor

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

12

Communication ThreadCommunication Thread

Unlock send_structremote processor

Notify:Send Notify request to

Lock recv_structelse check incoming requests

Unlock send_structremote processor

Wait:Send Wait request to

Unlock recv_struct

Unlock recv_structdecrement notify_varNotify:

Wait:decrement wait_var

Unlock send_structremote processor

Notify:Send Notify request to

Lock recv_structelse check incoming requests

Unlock send_structremote processor

Wait:Send Wait request to

Unlock recv_struct

Unlock recv_structdecrement notify_varNotify:

Wait:decrement wait_var

Notify

Wait

previous synchornizationare done.

synchronization phaseare not of same value,return error.

sync all gets & puts

Unlock send_struct

for i = 0 to n − 1Lock send_struct

Wait until all waits inprevious synchornizationare done.

If all waits in previoussynchronization phaseare not of same value,return error.

sync all gets & puts

Unlock send_structrequest = Notifyfor i = 0 to n − 1Lock send_struct

wait_var = n − 1

Wait until all notifies in

If all notifies in previous

notify_var = n − 1

request = Wait

Notify

Wait

previous synchornizationare done.

synchronization phaseare not of same value,return error.

sync all gets & puts

Unlock send_struct

for i = 0 to n − 1Lock send_struct

Wait until all waits inprevious synchornizationare done.

If all waits in previoussynchronization phaseare not of same value,return error.

sync all gets & puts

Unlock send_structrequest = Notifyfor i = 0 to n − 1Lock send_struct

wait_var = n − 1

Wait until all notifies in

If all notifies in previous

notify_var = n − 1

request = Wait

6

4

7

8

9

3

10

11

5

12

send_struct send_struct

notify_var = size − 1wait_var = size − 1 wait_var = size − 1

notify_var = size − 1

UPC Thread UPC Thread

BM5 �&^E 8�� 43, \1DN>@5�2 ; D�[s8AE LV>@57D�2

|!�7���7� �'o)t�� � ����� ��� t}o�K�AD���3t � osv%�&)(+*+* = LNOO �D�E 57>@a36 2 D�E 576�[3OP8A6 8A2Y> 5P2" �>@a38�\GDV>@5O2 ;#]_^ LN5 > D�[s8AE LV>@57D�2 5P= = a^D 8g2 5P2�BM5 �&^E 8�E4#�

& 9<>@8J[ ��,z4$a^8G&^[s\ 2^DN> 5O2 ; E DN&3>@572^8G57= \ALNOPO78AI>8g57> a TVLNOP&^812 �x*hLVOPOP572" :&^[d\ 2^DN> 5O2 ; 6�LNE ��=>@a^8 R 8 N5P2^2^572" D02+L 2^8 8�= ;<2^\ba3E D�2^5ONXLV> 5PD�2W[3a)LN= 80�(Mf2^= 57I^8 >@a38�E D�&]>@5P238�Q%�&)(+*�H)E = >\ba^8A\���=Z5�2dLN2Y;}&^[s\ 8ZLN57> = 2 E D�6�> a^8$[^E 8JT<5PD�&3=+=?;<2^\ba^E DN2^5 NALV>@57D�2 [^a)LN= 8GLVE 8g[d8J2^I^572" "� M 2;�8A=�^>@a^8J2'%'&)(+* R OPD<\��<=$572 &^[s\ 2^DN> 5O2 ; &^2Y>@57O LNO7Od[3E 8JT<57D�&^=$&^[s\ 8ZLN57> =$LNE 8\AD�6 [^O78J>@80�7 23\A8'LNOPOh[s8A23I^5P2" 8ZLN57> =�LVE 8�\AD�6 [^O78J>@8 $%'&^( * \ba^8A\���= 5�2LNO7Oh>@a^8�[^E 8JT<5PDN&^=�8ZLN5 >@=a)LNIW>@a^8 = LN6�8�TVLNO7&^8$� M 2Z2^D c> a^8A2 %'&)(+*�E 8J> &^E 23= LN2 8JE E DNE �}B)D�O7OPD 8g5P2" �>@a^8J= 8}> 8ZD\ba^8A\���=�%'&)(+* \XLVOPOP= FG( *h0M419 Q 8U>@.-O7O 9<;<2^\'LN2^I F-(+*h0 419 ( &3>@.GOPO 9<;<2^\ � 8ga^5P\baLNE 8'2^D]DN[ * = 2 D�E %�&)(+* � �h. 2 >@8AE >@a^57=�%'&^( * R &^57OPI^= L � \+7 4 MjB�� ��E 8���&^8A=?>�>@D R 8R E DYLVI^\XLN=?>g>@D LNOPOdE 8J6�DN> 8 [^E D<\A8J= = DNE = �

k$-

Page 31: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

& 9<>@8J[�k], 4$a38 \JD�6 6�&^2^57\XLV> 5PD�2K> a^E 8ALNI D�2W>@a^8 OPD<\XLVO [^E D]\J8A= = D�E:D]\J\XLN= 5PD�2)LVOPO7;�\ba^8J\���=>@a^8 �O7D R LNO/6 8A6 D�E ;�2 D�EhDN&3>@=?>bLN2^I35P2" �E 8���&^8J= >@= 2 E DN6 > a^86�LN5P2 > a^E 8ALNI ��Mf2�>@a35P=h\ALN= 857>hH)23I^=-L � \+74 MjB � � E 8 �<&38A= > �

& 9<>@8J[�m3,z4$a^8 \JD�6�6 &^2^5P\ALV>@57D�2 >@a^E 8XLNI�8 �]> E@LN\U>@=h> a^8E 8J6�DV>@8-[3E D<\A8A= = D�EZ2<&36 R 8JE 2 E DN6>@a^8�E 8���&^8J= >E� 4$a38A2 57>G= 8J2^I^=>@a38�E 8 �<&38A= > > D >@a38�E 8J6�DN> 8 [^E D]\J8A= = D�ET<5 L %K(�M Mf= 8A2^I\XLNO7O � 4$a38K\ADN6�6�&32^5P\ALV>@57D�2 >@a^E 8XLNI�D�2�> a^8KE 8A6 DN>@8�[^E D]\J8A= = D�E E 8A\J8A57TN8A= > a^8 � \ 7Ge4 MjB � � E 8���&^8J= > LN23IK[^E D]\J8A= = 8A= 5 > R ;�I^8A\JE 8J6�8J2�> 5P2" �>@a^8_2^DN>@5�2 ; TVLNEGTVLNE 5 L R O78 8ga^5P\ba5P=$= 8U>g>@D}TVLNOP&^8 = 5 NJ8 e ��"2 D�E$8JTN8AE ;�238 8�=?;]23\ba^E D�235 NXL >@5PDN2�[3a)LN= 80�

& 9<>@8J[ 5 �3 LN2^I 43,-4$a38A= 8 = > 8A[^=:LNE 8}=@LN6 8}LN=:9�>@8A[3=���`k LN2^I m#� 4$a38J;WD<\A\J&^E 8ga^8A2&^[d\ 2^DN> 5O2 ; 57=$\XLNO7OP8JI�DN2�> a^8 E 8J6�DN> 8 [^E D<\A8J= = D�E �& 9<>@8J[ )<,�4$a^8 &^[s\ 8hLV57>�E D�&3>@572^8 57=�\XLNO7OP8AI:8g57>@a TVLNO7&^8 2 � %�&)(+*CH)E = >�\ba^8J\��<='5O2LN2Y;�&^[s\ 2^DN> 57H)8J=�2 E D�6 >@a38�\A&^E E 8A2Y> = ;<2^\ba3E D�2^5ONXLV> 5PD�2 [^a^LN= 8�LNE 8�[d8J2^I^5P2# "�LM 2g;�8J= >@a^8J2�%'&)(+* R O7D]\���=�5P2�&^[s\ 8ZLN57>�&^2Y>@57O LNOPO-[^E 8UT]57D�&^=�&^[s\ 2^DN> 57H)8J='LVE 8 \AD�6 [^O78J>@80�7 23\A8LVOPO)[s8A2^I^572" 23DN>@5 H)8A=ZLNE 81\AD�6 [^O78J>@8 ^%�&)(+* \ba^8A\���=g5O2 LNOPO^> a^8-[^E 8JT<5PDN&^=Z2^DV>@57H^8A=a)LNIW>@a^8 = LN6�8�TVLNO7&^8$� M 2Z2^D c> a^8A2 %'&)(+*�E 8J> &^E 23= LN2 8JE E DNE �}B)D�O7OPD 8g5P2" �>@a^8J= 8}> 8ZD\ba^8A\���=�%'&)(+* \XLVOPOP= FG( *h0M419 Q 8U>@.-O7O 9<;<2^\'LN2^I F-(+*h0 419 ( &3>@.GOPO 9<;<2^\ � 8ga^5P\baLNE 8G2^D]DN[ * = 2 D�E$%�&)(+* � �3. 2 >@8JE >@a35P=$%�&)(+* R &^5PO7I^=ZL � ^W.+Mf4 �}E 8���&^8J= >$>@D R 8 R E DYLVI]e\XLN=?>1> D LNOPO E 8A6 DN>@8 [3E D<\A8A= = D�E = �

& 9<>@8J[L-3, 4$a38 \JD�6 6�&^2^57\XLV> 5PD�2K> a^E 8ALNI D�2W>@a^8 OPD<\XLVO [^E D]\J8A= = D�E:D]\J\XLN= 5PD�2)LVOPO7;�\ba^8J\���=>@a^8 �O7D R LNO/6 8A6 D�E ;�2 D�EhDN&3>@=?>bLN2^I35P2" �E 8���&^8J= >@= 2 E DN6 > a^86�LN5P2 > a^E 8ALNI ��Mf2�>@a35P=h\ALN= 857>hH)23I^=-L � ^ .+Mf4 � E 8���&^8J= > �

& 9<>@8J[ G3,z4$a^8 \JD�6�6 &^2^5P\ALV>@57D�2 >@a^E 8XLNI�8 �]> E@LN\U>@=h> a^8E 8J6�DV>@8-[3E D<\A8A= = D�EZ2<&36 R 8JE 2 E DN6>@a^8hE 8���&^8J= >E� 4$a38A2}57> = 8J2^I^=z>@a38hE 8 �<&38A= >x> D->@a^8ZE 8A6 DN> 8Z[^E D]\J8A= = D�EzT<5 LLV2 %K(�M�Mf= 8A2^I\XLNO7O �z4$a^8:\ADN6�6�&32^5P\ALV>@57D�2 >@a3E 8XLVI'D�2�>@a38:E 8A6 DN>@8 [^E D]\J8A= = D�E1E 8J\A8A5 T�8J=1> a^8 � ^W.+Mf4 �E 8���&^8J= >_LN2^IW[3E D<\A8A= = 8J=:5 > R ; I38A\AE 8A6 8A2Y>@572" >@a38�8hLN5 > TVLNEGTNLVE 5 L R OP8(8ga^5P\ba 57=-= 8U> >@DTNLVOP&^8 = 5 NA8e ���2 D�E$8JTN8AE ;�238 8�=?;]23\ba^E D�235 NXL >@5PDN2'[^a^LN= 8 5P23= 5PI38 &^[d\ 2^DN>@5�2 ;!�

& 9<>@8J[ �ui ��!�GLN2^I �lk],M4$a^8A= 8-= > 8A[^=ZLNE 81=@LV6�81LN=Z9<>@8J[^= ) �-:LN2^IRG#�z4$a^8U; D]\J\A&^E 8ga^8A2&^[d\ 2^DN> 5O2 ; 57=$\XLNO7OP8JI�DN2�> a^8 E 8J6�DN> 8 [^E D<\A8J= = D�E �

� � � � � �J��� � ��� ����� ����� �� � � �i���&�

4$a38�*ZD�6 [)L � F-(+*�E &32�> 5P6 8 = ;<= > 8A6C5P2Y>@8JE 2 LN\J8 I^8A\JO LNE 8A=1L = 8J>GD$2�2 &^2^\J> 5PD�23= 2 DNE1I];]2^LN6�57\6 8A6 D�E?;�LNO7OPD<\XLV> 5PD�2 LN2^IB2 &^2^\U>@5PDN2^= 2 D�E$OPD<\���5P2" LN23I'&^23OPD<\��<572" }>@a^8 6 8A6 D�E ;$�

k$G

Page 32: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

|!� |!� � ? �cv<��I � �'y ADI o����FG(+*�I38A\AOPLNE 8J=G> a^E 8J8&2 &^2^\U>@57D�2^= 2 DNEGI3;<2)LV6�57\_6 8A6 D�E ;�LVOPOPD<\XL >@5PDN2�LN2^IWL 2 &32^\J> 5PD�2�>@D 2 E 8A86 8A6 D�E?;!�� ����� T � �� � � � W � � ��� � � � � ���� �� ����� T U ����� ���� � � ����� T U �� � U#T � �!�� ����� T � �� � � � W � � � ��� � ���� �� ����� T U ����� ���� � � ����� T U �� � U"T � �!�� ����� T � �� � � � W � � �� �� � � � ���� ��� ����� T U ����� ���� � � ����� T U �� � U#T � � �� � � W � � ��� TDT � ��� � T�� � � � � �!�

4$a38>@a^E 8A8 LNO7OPD<\XLV> 5PD�2>2 &^2^\U>@57D�2^=ZE 8J> &^E 2�L = a)LNE 8JI�[dD�572Y>@8AE ��Mf2Y>@8JE 2)LNO7O7; L = a^LNE 8JI�[sD�572�> 8AE 5P=576�[3OP8A6 8A2Y> 8AI�LN=1L}= > E &^\U>@&^E 8'8g5 >@a�m�H)8AO7I^=A,� � e��5PE?>@&)LVO .-I3I^E 8J= =U � e+4$a^E 8ALNI \1&^6 R 8AE��� e (xa^LN= 8

4$a38�6�LN5P2WE 8���&^57E 8A6 8A2Y>'2 D�E I3;<2)LN6 5P\ 6 8A6 D�E ; LNOPO7D]\ALV>@57D�2K57= � . R OPD<\�� D$2Z6�8J6�D�E?;WLNO7OPDVe\ALV>@8JIKLV\AE DN= =$>@a^E 8XLNI3=G= a^D�&^O7I�=?>bLNE?>GLV>$>@a^8 = LN6�8TVL � T<5PE > &)LNOQLVI^I^E 8J= = � �"�

4$a35P= E 8���&^57E 8J6�8J2�> �&^57I^8A=}> a^8'I38A= 5O �2 D02I3;<2)LN6 5P\�6 8A6 D�E ;�LNOPO7D]\ALV>@57D�2�572 %'&^( *+�+4$a^8LV[^[^E D�LN\ba_>@L �N8J2 R ;_%'&)(+* 5P=c= 5P6 [^OP80�`.h>`572^57> 5 LNO75 NXL >@5PDN2%'&^( * E 8A= 8AE TN8A= L1[sD]DNOYD$2^6 8A6 D�E ;DN2 LNO7O^>@a^E 8XLNI3=+> D = 8JE TN8F-(+* I3;<2)LV6�57\16 8A6 D�E?;}LNO7OPD<\XLV> 5PD�2}E 8���&^8A=?>@= �+4$a38-I^8 2 LN&^O7>x= 5 NJ8GD$2> a^5P=g[sD]DNOQ5P= - % Z+�d4$a38_\JD�2^= >@LN2Y>-> a)LV>1= 8U>@=G> a^5P=$TVLNO7&^8 5P=G% "+% Z ��7 *��>�/.G2�;�6 8A6 D�E ;LVOPOPD<\XL >@5PDN2 E 8 �<&38A= >�6 LNI38 R ; LN2Y; F-(+*�>@a3E 8XLVI T<5 L�&^[s\ �OPD R LNO LNOPO7D]\ D�E_&3[d\ LVOPO LNOPO7D]\ 5P=E D�&3> 8AI�>@a^E D�&" �a�>@a^E 8XLNI'i#�x4$a^E 8XLNI'i 6�LN572�>@LN5P23=hL}TNLVE 5 L R OP8 R LN= 8 TVL�8ga^57\baK[sD�5P2Y>@=h> D}>@a^8H^E = >�2 E 8A8hO7D]\ALV>@57D�2 572 >@a38$[dD<D�O �`&^[s\ O7D]\ALNO LNOPO7D]\+5P=z576�[3OP8A6 8A2Y> 8AI &3= 5P2# 6 LNO7OPD<\+LN2^I 5P=MI^D�2^8O7D]\ALNOPO ; D�2�>@a^8 \XLVOPOP572" > a^E 8ALNI �x&^[s\ 2 E 8J8:57=gL}2^D]DN[ 2 DNE1%'&)(+*+�p<K � q�� o ��� �� � o��&3[d\ NOPD R LVO LNOPO7D]\x5P=MLG23D�2]ef\JD�OPO78A\U>@57TN8 DN[d8JE@LV> 5PD�2 5 � 8$�MLN2Y;:>@a^E 8XLNI�\ALN2�\ALNOPOY5 > 572^I^8A[s8A23I^8A2Y>@O ;LV2^I LNOPO7D]\ALV>@8:6�8J6�DNE ;KLN\AE D�= = LNO7OM> a^E 8ALNI^= �_.-= = &^6 8 L�F-(+*�LV[^[^OP57\XLV> 5PD�2P8g57> a k�> a^E 8ALNI^=2�&^6 R 8JE 8AI�i LN23IY� LV= = a^D 8g2�5P2 B 5O �&^E 8L��)���4$a^E 8XLNIY�W\XLVOPOP=�&^[s\ �O7D R LNO LNO7OPD<\$��4$a^8= 8���&^8J2^\A8_D$2 8UT�8J2�> =G> a)LV>1D]\J\A&^E =g5P=A,

& 9<>@8J[ ��, &3[d\ NOPD R LVO LVOPOPD<\-57=$\XLNO7OP8JI�D�2�> a^E 8ALNI �!�& 9<>@8J[ k],z> a^8 E 8 �<&38A= > �D<8A=$>@D�%'&^( *�0 419�DN2�> a^E 8ALNI �!�& 9<>@8J[ m3,z%'&)(+* 0 419}D�2 >@a^E 8XLNIP�g[dDN= >@=+L E 8 �<&38A= >+>@D > a^E 8ALNI i>@D:LNO7OPD<\XLV> 8h6 8A6 D�E ;$�

m�i

Page 33: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

4

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

upc_global_allocWhile keep_polling trueLock send_structif lockedCheck request

send_struct

Global_Alloc: Global_Alloc:

Lock send_structrequest = Global_Allocunlock send_struct 2

Send Global_Alloc requestto thread 0unlock send_struct

base_va

Lock recv_structelse check incoming requests

Lock recv_structelse check incoming requests

Global_Alloc: Global_Alloc:

increment base_vareturn old base_va

va = address returned by thread 0

unlock recv_struct

unlock recv_struct

BM5 �&^E 8 ��)], Q OPD R LNO .GOPOPD<\D�[s8AE LV>@57D�2

& 9<>@8J[ 5^,:%�&)(+* 0 419WD�2 > a^E 8ALNI i�572^\AE 8A6 8A2Y>@= > a^8 R LN= 8 TNL�TVLNOP&38 R ;K>@a^8 LN6 D�&^2Y>D$2+6�8J6�D�E?;�E 8���&^8J= > 8AI LN2^IWE 8U>@&^E 2^= >@a^8 D�OPI R LN= 8 TVL TVLNO7&^8$� 4$a^E 8XLNI i�LNO7= D \ba^8J\���=5O2E 8���&^8J= >@8JI TVLNOP&^8�I^D<8A=�2^DN> 8 �]\J8A8AI > a^8 LXTVLN57O L R O78 6 8A6 D�E ;�ZI^8U>@8AE 6�572^8AI R ; >@a^8% "+% Z ��7:*���\AD�2^=?>bLN2Y> �

& 9<>@8J[ 3],�%�&)(+* 0 419 D�2#> a^E 8ALNI ��= 8J> = TVL 8���&)LNOh> D > a^8�LNI^I^E 8A= =�E 8J>@&3E 2^8JI:2 E DN6>@a^E 8XLNI'i LN2^I�57>$= 8J>@=�)>@a���i LN2^I�[^a�� i��

& 9<>@8J[ 43, &3[d\ NOPD R LVO LVOPOPD<\-E 8J> &^E 2^= �

p<K � �� � � � � o��&3[d\ LVOPO LNOPO7D]\$57=+L_\ADNOPOP8J\J> 57T�81D�[s8AE LV>@57D�2 Y5 � 8$�zLNOPO^> a^E 8ALNI^=Z6 &^= >Z\XLNO7O)57>ZLN2^I�> a^8AE 8-57= 576�[^O75P8JI=?;<2^\ba^E DN2^5 NALV>@57D�2 �x%'8J6�DNE ; 5P= LNO7OPD<\XLV> 8AI LN\AE D�= =ZLNOPO^> a^E 8ALNI^= � 4$a^8-= 8���&^8A23\A8D$2 8JT�8J2Y>@=Z> a)LV>D<\A\J&^E =g57= � B 5O �&^E 8 �E- � �

& 9<>@8J[ ��, .G= = &^6�8:&^[s\ LNO7O LNOPO7D]\57=$\XLNO7OP8JI H)E =?>GDN2�> a^E 8ALNI �:LN23I�> a^8A2�D�2�>@a^E 8XLNI'i#�& 9<>@8J[ k],}%�&)(+* 0M419 D�2 >@a^E 8XLNI ��[dDN= >@= LN2�LVOPO LNOPO7D]\}E 8���&^8J= > LN\JE D�= =�LNO7Oz>@a^E 8XLNI3= �&^[d\ LNOPO LNO7OPD<\ R O7D]\���= &^2Y> 5POz5 > a)LN= a^8ALNE I LNO7O LVOPOPD<\:E 8���&^8J= > ='2 E D�6 LNO7O DN> a^8AE> a^E 8ALNI^=

m#�

Page 34: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request 2

Lock recv_structelse check incoming requests

Lock recv_structelse check incoming requests

unlock recv_struct

All_Alloc:All_Alloc:

send_structbase_va

upc_all_allocLock send_structrequest = All_Allocunlock send_struct

all_alloc_var > 0

upc_all_allocLock send_structrequest = All_Allocunlock send_struct

all_alloc_var > 0

unlock send_struct

All_Alloc:

to thread 0unlock send_struct

All_Alloc:wait until wait until

all_alloc_var = size − 1 all_alloc_var = size − 1

Send All_Alloc request

All_Alloc_Reply:

decrement all_alloc_var

return old base_vaincrement base_va

unlock recv_struct

decrement all_alloc_varva = address returned by thread 0unlock recv_struct

decrement all_alloc_var

4

5

6

B 5 N&^E 8 � -], .-OPOd.-O7OPD<\D�[s8AE@L >@5PDN2

LN2^I >@a^E 8XLNI:iha)LV=QE 8J> &^E 238AI_L$TVLNO75PI1TNL��M4$a^8 %'&^( * 0 419&^= 8J=`LZTNLVE 5 L R OP8 LNOPO LNOPO7D]\ TVLNE��4 'G0 " . � 9 e �-> D �N8J8A[�>@E LN\���D02 >@a^8-2<&36 R 8JEhD$2`LNO7O LNOPO7D]\gE 8 ��&^8A=?>@=$57>Za)LN= a^8XLNE I �

& 9<>@8J[Km3, %'&^( *�0 419�DN2�> a^E 8ALNIKi �8U>@=g>@a^8:LNO7O LNOPO7D]\GE 8���&^8J= > 2 E D�6 >@a^E 8XLNI �_LV2^I'5 >I^8A\JE 8A6 8A2Y> =Z57> =+LNOPO LNOPO7D]\ TVLNE �x9]& R = 8���&^8J2Y>@O7;�#8ga^8J2 >@a^81&^= 8AEZ\JD]I38GD�2 >@a^E 8XLNI i:\ALNOPO7=57>@=g&^[s\ LVOPO LNOPO7D]\ 2 &32^\J> 5PD�2 s%�&)(+* 0 419�DN2'>@a3E 8XLVIKi [dD�=?>@=1LN2KLNOPO LNO7OPD<\E 8 �<&38A= >G>@DLNOPOs>@a^E 8XLNI^=GLNO7D�2" �8g57> a�>@a^8 TVL#�

& 9<>@8J[ 5^, 7 23\A8�%'&)(+* 0 419 D�2 8ALN\ba�>@a3E 8XLVI a)LN=�a^8ALNE I LVOPO LNOPO7D]\ TVLNE}LVOPO LNOPO7D]\ E 8Ue�<&38A= > = LV2^I a)LN=:L TNLVOP5PI'TNL Q8XLN\ba D$2x>@a^8J6 = 8U>@= TNL�8 �<&^LNOz>@D�>@a38 LNI^I^E 8A= =:E 8U>@&^E 2^8AI2 E D�6 >@a^E 8XLNI'i LN2^I�= 8J> = )>@a���i LN23I'[^a�� i#�

& 9<>@8J[ 3], &3[d\ LVOPO LNOPO7D]\GE 8U>@&^E 2^= �

p<K � � o �!�� �� � o��&3[d\ O7D]\ALNO LNO7OPD<\5P=gL}2^D�2<ef\ADNOPOP8J\J> 57T�8-D�[d8JE@LV> 5PD�2 �x%'&)(+*�576�[^O78A6 8A2Y>@=ZOPD<\XLNO LNOPO7D]\G&^= 572" }>@a^86�LNO7OPD<\ � � 2 &^2^\U>@57D�2 � 4$a38�= a)LNE 8AI#[dD�572Y>@8AE�H^8AOPI3= LNE 8�= 8J> >@D > a^8B2 D�OPO7D�8g572" 'TVLNO7&^8A=J, TVL �TVLNO7&^8 E 8U>@&^E 2^8AI R ;�6 LVOPOPD<\��>@a ��\ALNOPO75P2" _>@a^E 8XLNI�2�&^6 R 8AE1LN2^I�[^a�� i � B 5O �&^E 8�� G � �p<K � � ��A A

mYk

Page 35: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

&3[d\ 2 E 8A8 57=GL}2^D<D�[B2 D�E1%'&^( *+�

|!� |!�7� �xo��_� CFG(+*�[^E DlT<57I^8A=g>@a^82 D�O7OPD 8g5P2# �OPD<\�� 2 &^23\J>@57D�2^=� ����� T � �� � � � W � � ��� � � � �� ���� � ���� ���#� � � �!�� ����� T � �� � � � W � � � ��� �� ���� � ���� �� #� � � �!�� � � W � � �� ���� � � � U ������� T�� �� � � � �!�� � � W � � W����� ���� ������� T�� � � � � �!�� � � W � � �� ���� � ��� � T�� � � � � �!�� �DU W � � �� ���� � UDU#T � U� � ����� T�� � � ��� � �

4$a38x> 8 DgOPD<\��-LVOPOPD<\XL >@5PDN2 2 &^2^\U>@57D�2^= E 8J>@&3E 2_Lh= a)LNE 8AI:[dDN5P2Y>@8JE >@DgLN2 D R � 8A\J>cD02]>f;<[s8 &^[d\ OPD<\�� > �.G2_576�[sD�E?>bLN2Y> I35P= > 5P2^\U>@57D�2 R 8U> 8Z8J8A2 > a^8x6�8J6�DNE ; LVOPOPD<\XL >@5PDN2 2 &^2^\U>@57D�2^=cLN2^I:OPD<\��LVOPOPD<\XL >@5PDN22 &32^\J> 5PD�2^=15P=g>@a^LV>-6 8A6 D�E?;�5P=GLNOPO7D]\ALV>@8JI�D�2^O7; D�2'> a^E 8ALNIWi�572�> a^8 \ALN= 8_D$2 O7D]\���LVOPOPD<\XL >@5PDN22 &32^\J> 5PD�2^= �%�&)(+* 6 L �V8A=+&^= 81D$2 ( > a^E 8ALNI 6 &3>@8 �38J=+> D_576�[3OP8A6 8A2Y>xO7D]\���= � 4$a^8G&3[d\ O7D]\�� 572^57>�2 &32^\J> 5PD�257=$&^= 8JI'> D 572^57> 5 LNO75 NJ8-(z>@a3E 8XLVI'6�&]>@8 �]8J=GD�2�> a^E 8ALNIKi��&3[d\ O7D]\���LN2^I &^[s\ &32^OPD<\�� LNE 815P6 [^OP8J6�8J2Y>@8AI &^= 5P2" ( > a^E 8ALNI O7D]\�� LN23I &^2^O7D]\�� E D�&3>@572^8A=+D�2> a^E 8ALNI'i#� &^[s\ OPD<\�� LV> > 8A6 [3>g5P=$> a^8 2^D�2]e R OPD<\���5P2" �TN8AE = 5PD�2�D$2M&^[s\ OPD<\��p<K � q�� o ��� � o���� �� � o��&3[d\ NOPD R LVO OPD<\�� LVOPOPD<\+5P=zL23D�2]ef\JD�OPO78A\U>@57TN8ZD�[s8AE LV>@57D�2�� B 5 �&3E 8+�EG � ��M >@= D�[s8AE LV>@57D�2�57= = 576�57O LNE> D &^[d\ �OPD R LNO LNOPO7D]\0� .-= = &^6 8'L FG(+* LN[^[^O75P\ALV>@57D�2�a)LN=�k >@a^E 8XLNI3= 2�&^6 R 8JE 8AI i LN2^I �!�4$a3E 8XLVI �:\XLNO7OP=h&3[d\ NOPD R LVO OPD<\�� LVOPOPD<\$�M4$a^8:= 8���&^8J2^\A8_D$2M8JT�8J2Y>@=G> a)LV>1D<\A\A&3E =g5P=J,

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ NOPD R LVO O7D]\�� LNO7OPD<\$�& 9<>@8J[ k],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_[sD�=?>@=1L �OPD R LNO OPD<\�� LVOPOPD<\-E 8���&^8J= >1>@D >@a^E 8XLNI�i#�& 9<>@8J[ m3,1%'&)(+*�0 419KD�2K> a^E 8ALNIWi &^[sI)LV> 8A=> a^8 R LV= 8 TVL R ;K> a^8 = 5 NJ8�D$2x&^[s\ O7D]\�� >LN2^I�E 8U>@&^E 2^=1> a^8 D�OPI R LV= 8 TVL#�

& 9<>@8J[P53,+%'&)(+*�0 419 D�2 > a^E 8ALNI � E 8J\A8A5 T�8J=1> a^8 R LN= 8 TVL 2 E D�6 >@a^E 8XLNI�i LN2^I�= 8J> =gTVL� R LN= 8 TVL ^>@a � i LN23I'[^a � i��

& 9<>@8J[ 3], &3[d\ NOPD R LVO O7D]\�� LVOPOPD<\E 8J>@&3E 2^= �

m�m

Page 36: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

4

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

send_struct

Lock send_structreq = Global_Lock_Allocunlock send_struct 2

to thread 0unlock send_struct

base_va

Lock recv_structelse check incoming requests

Lock recv_structelse check incoming requests

increment base_vareturn old base_va

va = address returned by thread 0

unlock recv_struct

unlock recv_struct

upc_global_lock_alloc

Global_Lock_Alloc:

Global_Lock_Alloc: Global_Lock_Alloc:

Global_Lock_Alloc:Send Global_Lock_Alloc request

B 5O �&^E 8 � G3, Q OPD R LVO �QD]\���.GOPO7D]\GD�[d8JE@LV> 5PD�2

p<K � �� � � o���� �� � o��&3[d\ LVOPO OPD<\�� LNOPO7D]\_5P= L�\JD�OPO78A\J> 57TN8�D�[s8AE@L >@5PDN2 � B 5O �&^E 8�kNi � � 4$a^8 = 8 ��&^8A2^\J8 D$2+8UT�8A2Y> =:> a)LV>D<\A\J&^E =g57=A,

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ LVOPO OPD<\�� LNOPO7D]\0�& 9<>@8J[ k],z%'&)(+* 0 419 D�2}>@a^E 8XLNI �g[dD�=?>@= L LNOPO OPD<\�� LNOPO7D]\ZE 8���&^8J= >hLN\AE D�= =+LNO7O3>@a^E 8XLNI3= �&^[d\ LNOPO O7D]\�� LNO7OPD<\ R O7D]\���=h&32�> 5POd57>ha^LN=ha^8ALNE I�LNO7O O7D]\�� LVOPOPD<\1E 8���&^8J= > = 2 E D�6 LNOPOsDN>@a38AE>@a^E 8XLNI^=-LN2^I�>@a^E 8XLNIKi a)LV=-E 8U>@&^E 2^8AI L TVLNO75PI�TVL#�h4$a^8�%'&)(+*�0 419�&^= 8A=-L TVLNE 5PL R O78LNOPO OPD<\�� LNOPO7D]\ TVLNE � 4 '-0 "x. � 9 e �G>@D �N8A8J[ >@E LN\���D02 >@a^8G2�&^6 R 8AEZD02cLNOPO O7D]\�� LNO7OPD<\E 8���&^8J= > =-57>ha)LN=ga^8XLVE I �

& 9<>@8J[�m3, %'&)(+*"0 419 D�2 > a^E 8ALNI�i �8J> =:> a^8�LNOPO OPD<\�� LNOPO7D]\}E 8���&^8J= > 2 E D�6 > a^E 8ALNI �LN2^I 5 > I^8A\JE 8J6�8J2�> =�57> =:LNOPO OPD<\�� LNOPO7D]\ TVLNE ��9]& R = 8���&^8J2�> O7;� 8ga^8A2 >@a^8 &^= 8JE \JD]I^8 D�2>@a^E 8XLNIWi \XLNO7OP=g57> =G&3[d\ LVOPO OPD<\�� LNOPO7D]\ 2 &^23\J>@57D�2 %'&)(+*�0 419�DN2K>@a^E 8XLNI i�[sD�= > =LN2LNOPO OPD<\�� LNOPO7D]\GE 8 �<&38A= >1>@D�LNO7Od>@a3E 8XLVI^=1LNOPD�2# >8g5 >@a�TVL#�

& 9<>@8J['53,�7 23\A8+%'&)(+* 0M419-D�2 8XLN\ba >@a^E 8XLNI a)LV=Qa^8XLNE I � LNOPO O7D]\�� LNO7OPD<\ TVLNE �gLNOPO O7D]\�� LNO7OPD<\E 8���&^8J= > =-LN23I�a^LN=gL�TNLVOP5PI�TNL ^8XLN\ba�D$2c>@a38A6 = 8J>@=$TVL}8���&)LNOd>@D}>@a^8 R LN= 8 TVL}E 8U>@&^E 2^8AI2 E D�6 >@a^E 8XLNI'i LN2^I�57>g= 8U>@=�^>@a���i LN2^I�[^a�� i��

m$5

Page 37: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request 2

Lock recv_structelse check incoming requests

Lock recv_structelse check incoming requests

unlock recv_struct

send_structbase_va

Lock send_struct

unlock send_struct

all_alloc_var > 0

unlock send_struct

to thread 0unlock send_struct

wait until

return old base_vaincrement base_va

unlock recv_struct

va = address returned by thread 0unlock recv_struct

4

5

6

upc_all_lock_alloc

request = All_Lock_Alloc

All_Lock_Alloc:

All_Lock_Alloc:

All_Lock_Alloc_Reply:

Send All_Lock_Alloc request

all_lock_alloc_var = size − 1all_lock_alloc_var = size − 1

All_Lock_Alloc:decrement all_lock_alloc_var decrement all_lock_alloc_var

decrement all_lock_alloc_var

Lock send_struct

unlock send_struct

wait until

upc_all_lock_alloc

request = All_Lock_Alloc

all_lock_alloc_var > 0All_Lock_Alloc:

B 5 �&3E 8:kNi3, .GOPO �QD<\�� .-O7OPD<\D�[s8AE LV>@57D�2

& 9<>@8J[ 3], &3[d\ LVOPO OPD<\�� LNOPO7D]\GE 8J> &^E 23= �

p<K � � o �_� � v�� t&3[d\ O7D]\�� 572^57>x57=+L:2^DN2]ef\JD�OPO78A\J> 57TN8$D�[d8JE@LV> 5PD�2 � B 5 �&3E 81k���� � 4$a^57= 2 &32^\J> 5PD�2 5P2357>@5PLNOP5ONA8J=zL OPD<\��LVOPOPD<\XL >@8AI R ;WLN2Y; D02+> a^8}FG( *�OPD<\��'LNOPO7D]\ALV>@57D�2P2 &32^\J> 5PD�2^= �(M > 5P=6�LN2^I^LV>@D�E?;�>@D�5P2357>@5PLNOP5ONA88ALN\ba�OPD<\�� R 8 2 D�E 8 &3= 5P2# �5 >92 D�Eh>@a38 H^E = >g> 5P6 8&^2^I^8JE%�&)(+*+�

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ O7D]\�� 572^57> �& 9<>@8J[ k],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_[sD�=?>@=1L}OPD<\�� 572^57>hE 8���&^8J= >1>@D}>@a3E 8XLVIKi#�& 9<>@8J[�m],z%'&^( *#0 419�D�2�>@a3E 8XLVI�i\ba38A\���=Z5�2)>@a^8$O7D]\��:5P= LVOPE 8ALNI3;_5P2^5 >@5PLNOP5ONA8AI V572 8ga^5P\ba\XLN= 8:5 >gE 8U>@&^E 2^=g5P6 6�8JI^5 LV> 8AO ;!�& 9<>@8J[ 53,LM 2:>@a^8WO7D]\��#5P= 23DN>�5P2357>@5PLNOP5ONA8JI�5 >�5P= 572^57> 5 LNO75 NJ8AI#&^= 572" �>@a^8 (z> a^E 8ALNI OPD<\��5P2^5 >@5 LVOP5 NALV>@57D�2 2 &^2^\U>@5PDN2 �& 9<>@8J[�3],�72^\J8h>@a^8ZOPD<\��:57= 572^57> 5 LNO75 NA8JI:> a^E 8ALNI iG> 8AOPO7=M> a^E 8ALNIB�Z>@a^LV> OPD<\�� 5P2^5 >@5PLNOP5ONXLV> 5PD�25P=$\ADN6�[^O78J> 8$�

mX3

Page 38: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

4

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

send_struct

Lock send_struct

unlock send_struct 2

Lock recv_structelse check incoming requests

Lock recv_structelse check incoming requests

lock_init

Lock_Init:

Lock_Init:

Lock_Init:

Lock_Init:

req = Lock_Init

Send Lock_Init requestto thread 0unlock send_struct

if lock not initializedinitialize and return

unlock recv_structelse return error

unlock recv_struct

B 5 N&^E 8:k��N, �cD<\���Mf2^5 >gD�[s8AE@L >@5PDN2

& 9<>@8J[ 43, &3[d\ O7D]\�� 572^57>ZE 8J> &^E 23= �

p<K � � o �_�&3[d\ O7D]\��W57= &^= 8AI�> D OPD<\�� LKOPD<\�� LNOPO7D]\ALV>@8JI R ; L F-(+*"OPD<\�� LNOPO7D]\ALV>@57D�2WE D�&]>@5P238�� BM5 �&^E 8kNk�� �

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ O7D]\����& 9<>@8J[ k],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_[sD�=?>@=1L}OPD<\�� E 8 ��&^8A=?>->@D}> a^E 8ALNIKi��& 9<>@8J[�m3,�M 2cOPD<\�� 5P= 2 E 8J8�)%�&)(+*�0 419 D�2 >@a^E 8XLNI i OPD<\���= >@a38OPD<\�� &^= 572" >@a38(z>@a^E 8XLNIOPD<\��>2 &32^\J> 5PD�2 LN2^I E 8J>@&3E 2^=h= &^\A\J8A= =g> D >@a3E 8XLVI �!��M 2Q> a^8OPD<\�� 5P= LNOPE 8XLNI];�O7D]\��V8AI > a^8A2>@a^E 8XLNI'i}E 8J> &^E 23= 2 LN57OP&^E 8G> D > a^E 8ALNI �!�

& 9<>@8J[:5^,'%'&^( * 0 419#D�2 > a^E 8ALNI ��E 8U>@&^E 2^= = >bL >@&^= >@DW>@a38'&^[s\ O7D]\�� 2 &^2^\J> 5PD�2 � M 2= >bL >@&^=�57= = &^\J\A8J= =�>@a^8J2 >@a^8W&^[s\ O7D]\��%2 &^2^\U>@5PDN2 E 8U>@&^E 2^= � Mf2 \XLN= 8 D022 LN5PO7&^E 8 h>@a^8&^[d\ OPD<\��B2 &^2^\J> 5PD�2 R OPD<\���=-D�2WL TNLVE 5 L R OP8 >@a^LV>572^I^5P\ALV>@8J=-L�\ba)LN2" �8 5P2'> a^8�=?>bLV> &^=-D$2>@a^8 O7D]\���� � 4$a35P= TVLNE 5 L R O78�57=�6 D]I^5 H)8AI 8ga^8A2^8UT�8JE�LV2�; >@a^E 8XLNI &^23OPD<\��<= = D�6 8 OPD<\�� >@a�&^= &^[s\ OPD<\��'I38J>@8J\J> =:> a^8 = >bL >@&^= \ba)LV2" �8 LN2^I >@E 5P8A=> D�OPD<\�� L$ �LN5P2 E 8A[s8XL >@5P2# >@a^8L R DuTN8:\U;<\AOP80� �

m!4

Page 39: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

3

4

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

send_struct

Lock send_struct

unlock send_struct

Lock recv_structelse check incoming requests

to thread 0unlock send_struct

unlock recv_struct

else check incoming requests

lock

req = Lock

Lock:Send Lock request

Lock:if lock is not lockedlock and return successelse return failure

Lock recv_structLock:

else return failureif success return success

unlock recv_struct

Lock:

Wait until reply receivedif success returnelse wait until changelock status

2

B 5O �&^E 8 k�k], �QD]\�� D�[d8JE@LV> 5PD�2

& 9<>@8J[ 3], &3[d\ O7D]\���E 8U>@&^E 2^=G8JE E D�E$5O2c>@a38:O7D]\�� 5P=$2^DN>g572^57> 5 LNO75 NJ8AI �

p<K � pMv � o��_�&3[d\ &32^OPD<\���57= &^= 8AI >@D &^2^O7D]\���L OPD<\�� LVOPOPD<\XL >@8AI R ; LN2 F-(+*!OPD<\�� LVOPOPD<\XL >@5PDN2�E D�&3>@572^8� B 5 N&^E 8 kVm � �

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ &32^OPD<\����& 9<>@8J[ k],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_[sD�=?>@=1LN2�&^2^O7D]\�� E 8���&^8J= >1>@D}>@a^E 8XLNI'i#�& 9<>@8J[ m], %'&)(+*�0M419WDN2 >@a^E 8XLNI i�E 8J\A8A5 T�8J= > a^8}&^2^O7D]\��'E 8 �<&38A= > LN2^IW\ba38A\���= 5�2 >@a^8E 8���&^8J= > 5P2" > a^E 8ALNI D 8g2^=-> a^8 O7D]\���� M 2z> a^8_> a^E 8ALNI I^D<8A=G2^DN>D 8g2K> a^8 O7D]\�� />@a^8J2WLN28AE E D�E$5P=$E 8J> &^E 2^8JI �

& 9<>@8J[ 5^, M 2$>@a38 E 8 ��&^8A=?>@5P2# >@a^E 8XLNI�D 8g2^=_>@a^8�OPD<\�� > a^8A2 %'&)(+* 0 419 D�2 > a^E 8ALNI i&^2^OPD<\���=�>@a^8�O7D]\�� &^= 572" >@a38�( > a^E 8ALNI &^2^O7D]\�� 2 &^2^\J> 5PD�2 LV2^I >@8AO7OP= > a^E 8ALNI ��L R D�&3>= &^\J\A8A= = 2 &^O`&^2^O7D]\���572" "�

& 9<>@8J[ 3],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_E 8A[sD�E > =g= >bL >@&^=$>@D}> a^8 &^[d\ &^2^OPD<\�� 2 &32^\J> 5PD�2 �

mX)

Page 40: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

4

3

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

send_struct

Lock send_struct

unlock send_struct 2

Lock recv_structelse check incoming requests

to thread 0unlock send_struct

unlock recv_structelse return error

unlock

req = Unlock

Unlock:Send Unlock request

Unlock:if lock owned by callerunlock and return

Unlock:

Lock recv_structelse check incoming requests

unlock recv_structUnlock:

Wait until unlocked

unlockedbroadcast req = unlocked

B 5O �&^E 8 kNm3, �QD<\���&^2^OPD<\�� DN[d8JE@LV> 5PD�2

& 9<>@8J[ 4], 4$a^8 &^[s\ &32^OPD<\��:2 &^23\J>@57D�2 > a^8A2 [sD�= > =�L�OPD<\�� &32^OPD<\��N8JI�6 8A= =@L$ N8 >@D LNO7O>@a^E 8XLNI^=g= D > a)LV>1LNO7O >@a^E 8XLNI3= 8ZLN5 >@5P2# �>@D OPD<\�� = DN6�8 O7D]\���\XLN2�E 8U>@E ; >@D OPD<\��J�& 9<>@8J[ )], &3[d\ &32^OPD<\�� E 8J>@&3E 2^= �

p<K � � o �_� �3tXt ADILKct&3[d\ O7D]\�� L > >@8J6�[]>g5P=h>@a38:23D�2]e R OPD<\��<572" }T�8JE = 57D�2�D$2 &3[d\ OPD<\��R2 &^2^\U>@5PDN2 � B 5 N&^E 8 k_5 � �

& 9<>@8J[ ��, 4$a3E 8XLVIL� \XLNO7OP=h&3[d\ O7D]\�� LV> >@8J6�[3> �& 9<>@8J[ k],+%�&)(+* 0 419�D�2�>@a^E 8XLNI �_[sD�=?>@=1L�>@E ; OPD<\�� E 8���&^8J= >1>@D}>@a^E 8XLNI'i#�& 9<>@8J[ m3,BM 21>@a38�O7D]\�� 5P=�2 E 8A8�h%'&)(+* 0 419�D�2 >@a3E 8XLVI�i OPD<\���=�>@a^8�O7D]\�� &^= 572" W>@a^8( > a^E 8ALNI OPD<\�� 2 &^2^\U>@57D�2 LN2^I E 8J> &^E 23=�= &^\J\A8J= =�>@D'>@a^E 8XLNI �$� M 2$>@a38 OPD<\�� 5P=_LNOPE 8XLNI];OPD<\��N8AI�>@a38A2�>@a^E 8XLNI'i}E 8J> &^E 23= 2 LN57OP&^E 8->@D}> a^E 8ALNI �$�

& 9<>@8J[ 5^, &3[d\ O7D]\�� LV> >@8J6�[3>gE 8J> &^E 2^= �& 9<>@8J[ 3], &3[d\ O7D]\�� LV> >@8J6�[3> 8 D�&^O7I�E 8J> &^E 2�5P2�8JE E DNE$5O2`>@a^8 OPD<\�� 57=$2^DN>15P2357>@5PLNOP5ONA8JI �

m!-

Page 41: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

1

3

4

UPC Thread Communication Thread

Thread 0Local Processor

UPC Thread Communication Thread

Thread 1Remote Processor

send_struct

While keep_polling trueLock send_structif lockedCheck request

While keep_polling trueLock send_structif lockedCheck request

send_struct

Lock send_struct

unlock send_struct

Lock recv_structelse check incoming requests

to thread 0unlock send_struct

unlock recv_struct

else check incoming requests

lock

Lock:

if lock is not lockedlock and return successelse return failure

Lock recv_struct

else return failureif success return success

unlock recv_struct

Wait until reply receivedif success return

2

req = Lock_Attempt

Send Lock_Attempt request

Lock_Attempt:

Lock_Attempt:

else return failureLock_Attempt:

BM5 �&^E 8 k05^, �QD<\���LV> >@8A6 [3>gD�[s8AE LV>@57D�2

� �� � �B� ������{�������

4$a38 *ZDN6�[)L ��F-(+*�E &^2�>@5P6 8=?;]=?>@8J6 572Y>@8AE 2 LN\A8 I^8J\AOPLNE 8J=� �DU ��V������� ��� � � #� � � � LN=h> a^8>@8JE 6 5P2)L >@5PDN2 2 &^2^\U>@57D�2 � 4$a^57=92 &^2^\J> 5PD�2�I3D]8J=g> a^8 � D R D$26 8A6 D�E?; I^8ALNOPO7D]\ALV>@57D�2 LN23I %K(�M+H)2)LNO75 NXL >@5PDN2 �

� �� � � �� � ���:�,� � � � �������

|!����� � dt �_� �Nt>�)v�����A � � ��AD�

%�&)(+*�\A&3E E 8J2Y>@O7;KI^D<8A= 2^DN> = &^[^[sD�E >->@a^8}E 8AO L �38JI \AD�2^= 5P=?>@8A23\J;W6 D]I38AO � .GOPO DN[d8JE@LV> 5PD�2^=-5P2%�&)(+*�LNE 8 =?>@E 57\J> �.-O7O`DN[d8JE@LV> 5PD�2^=G5P2 %'&)(+*�LVE 8 R O7D]\���572" R ;'I^8A= 5 �2 �-4$a^5P=6 8XLV2^=G> a)LV>LV2�;�E 8 2 8AE 8A2^\J8>@D E 8A6 DN>@8G6�8J6�DNE ; 5P=+\AD�6 [^O78J>@8JI R 8 2 D�E 8-2^8 �]>hD�2^8=?>bLNE?>@= <>@a�&^=h6�L ��5P2# �LNO7OE 8 2 8JE 8A23\A8A= = > E 5P\U>E��M > = 576�[sD�E?>bLN2Y>z> D_2^DV>@8g>@a)LV>x> a^5P=xI^8J= 5 N2�57=+572 \AD�2#2 DNE 6�LN2^\A8$> D:> a^8-FG(+*=?>bLN23I)LNE I �

m!G

Page 42: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

|!�����7� p<K � q�� o ��� A��<� t%�&)(+*�\J&^E E 8A2Y>@O ;�I^D]8J=-2^DV>= &3[^[dDNE >-> a^8 &3[d\ �OPD R LNO 8 �]57>-OP5 R E@LNE?;�2 &^2^\U>@5PDN2 � M >5P=GL�6 &^O7> 58 �]57> 2 &^23\J>@57D�2 � 4$a^8}\ALNOPO75P2" >@a3E 8XLVIW\XLN&^= 8A= LNO7O`> a^E 8ALNI^=> D�8 �]57> 8ga^57\ba 8 D�&^O7IW= >@LNE >G>@a^8J5PEH^2)LNO R LNE E 5P8AEZ[^E D<\A8J= = 572" "� 4$a^8 E 8XLN= D�2'%'&)(+*�I3D]8J=h2^DN>$= &^[^[sD�E >$> a^5P= 2 &^2^\J> 5PD�2�57= R 8A\XLV&^= 8> a^5P= 2 &^2^\J> 5PD�2W57= 2^DN> [^LNE > D$2x> a^8 F-(+*�=?>bLN23I)LNE I � .-O7= D�5 > 5P=23DN>:L = 5O �2^57H^\XLN2Y> OPLN2" �&)L0 �82 8ALV>@&3E 8$�

|!�����7� � � v��� ���"���0� A � ;'�lo��!ADCECE� v`q%�&)(+* I^D<8A= 2^DN>�= &^[^[sD�E > H)2)LNO R LNE E 5P8JE_[^E D]\J8A= = 5P2# "�W. H)2)LVO R LVE E 578AE_6 LV> \ba^8A=�LNOPO+DN>@a38AER LNE E 5P8AE =LN23I R OPD<\���= &^2Y>@5POMLNO7OMDN> a^8AEG>@a^E 8XLNI^= E 8XLN\ba > a^8A57E-H)2)LVO R LNE E 578AE � �`LV\��KD$2+= &3[^[dDNE >2 DNE H)2)LNO R LNE E 5P8JEz[^E D]\J8A= = 5P2" 57=zI^&^8h> D>@a^8gL R = 8A23\A8gD$2/H)2)LNO R LNE E 5P8JEz[^E D]\J8A= = 5P2" 572 >@a^8gFG(+*=?>bLN23I)LNE I �

5Yi

Page 43: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� � � � � � ���

��� � ����������p�:�,{� � ��� � � ��

FG(+* D�� 8JE =M57>@= 8AO�2)LN= LG= 576�[3OP8z;�8U> [sD�8 8AE 2 &^O<[)LNE@LVOPOP8JOY[^E D$ �E@LN6 6 5P2" $OPLN2" �&)L0 �8$�`4$a^8Z= &^\A\J8A= =D02zFG( * I^8A[s8A23I^=gD�2�57>@=gLXTVLN57O L R 57OP5 >f; LN\AE D�= =1L�8g5PI38TNLVE 5P8U>f; D$2`[^OPLV> 2 DNE 6 = �x*ZD�6 [)L ��* =gE &^2> 5P6 8h= ;<=?>@8A6 572Y>@8AE 2 LN\A8$57= I^8A= 5 �238AI>8g57>@a}> a^8 �DYLNO]D$2 [sD�E?>bL R 57OP5 >f;!�M%'&)(+* LNI3D�[3>@=z> a^8g=@LN6 8 NDYLNO LV2^I�a)LN= R LN= 8AI�57>@=ZI^8A= 5 �2�LN2^I�576�[^O78A6 8A2Y>bL >@5PDN2 LNE D�&^2^I�[^& R OP5P\JO7; LXTNLV5PO L R OP81OP5 R E@LNE 5P8J=2 DNEK%'( M LN2^I�( > a^E 8ALNI^= � ^ 8 a)LXTN8 = &3\A\A8J= = 2 &^OPO ; 5P6 [^OP8J6�8J2�> 8AI�%'&)(+* \JD�2#2 D�E 6�572" �>@D*ZDN6�[)L �J* =hE &^2 >@576�8G= ;<= > 8A6 572Y>@8AE 2 LN\A80� 4$a^8 = ;<=?>@8A6 a)LN= R 8A8J2�> 8A=?>@8AI�= &^\A\J8A= = 2 &^OPO ; D�2�>@a^8*ZDN6�[)L � .-O7[^a)L}[^OPLV> 2 D�E 6 �

� � � � �� � �����������

Mf2 >@a35P= = 8J\J>@57D�2 8Z8 R E 578 �^;WI38A= \JE 5 R 8 >@a^8}> 8A= > 5P2" �8��dD�E?>_I3D�2^8>2 D�E:%'&)(+*+� %'&)(+*�>@8J= > 5P2" 8ZLN=+\XLNE E 578AI D�&3> LN=+LN2 5P23I^8A[s8A2^I38A2Y>Z[3E D � 8J\J> R ;}L %'57\ba^5 �LN2 4M8J\baR �E LNI^&)LV> 8g= >@&3I^8A2Y> � 5PLN2Q 5 LV[ �c8J8$� %'&)(+*�> 8A=?>@5P2# >8ZLN=1\XLNE E 578AI�D�&3>g572�> a^E 8J8_[3a)LN= 8J= �

& FG2^5 >$>@8A=?>@572" ^, 4$a^57=1572YT�D�O T�8A=$> 8A= > 5P2" 572^I^57T<57I^&)LNO %'&)(+* 2 &^2^\U>@57D�2^= �& B/&32^\J> 5PD�2)LVOh>@8A=?>@572" ^,K4$a35P= 5P2YT�D�O T�8J=�>@8J= > 5P2" >@D = 8A8'5O2 %'&)(+* 5P6 [^OP8J6�8J2Y>@= LNOPO >@a^8F-(+* \JD�2^=?>@E &3\J>@= \JD�E E 8A\J> O7;$� 4$a35P= 8ZLN= I^D�2^8 R ; >@8J= >@572" %'&)(+*18g57>@a�> a^8 Q 8AD�E �8^�LN= a^5P2# N>@D�2�F12^57TN8AE = 57>f; > 8A=?>G= &^57> 8$�

& Mf2�> 8 �E LV>@57D�2 > 8A= > 5P2" 3, 4$a^57= 5P2YTND�O7TN8A= =?>@E 8J= =�LN23I T�D�O7&^6�8'>@8A=?>@572" %'&)(+*+� �xDNOP&^6 8>@8A=?>@572" �576�[3OP5P8J= 3H^2^I^5P2# �D�&]>1> a^8:&^[^[s8AE1OP5P6 57>ZD�2KI^LV>bLN= 8J> =-LN23IK2�&^6 R 8AE1D$2 > a^E 8ALNI^=%'&)(+*�\XLV2'= &^[^[sD�E > �

��� � � �� �J�,� �����

72^8 D$2$>@a^8�I^8A= 5 �2 NDYLNOP=:D$2G%'&^( * 8ZLN=�>@DK[dD�E?>�5 >�LN\JE D�= =}L'TVLNE 5P8J>f; D$2g[3O LV> 2 D�E 6 = ��.-=6 8A2Y> 5PD�2^8JI [^E 8JT<5PDN&^= O ; %�&)(+* a^LN= R 8A8A2 = &^\J\A8A= = 2 &^O7O7;�5P6 [^OP8J6�8J2Y>@8AI LN2^I > 8A=?>@8AI�DN2 .-O7[^a)L[3O LV> 2 D�E 6 = �x*Z&3E E 8J2Y>@O7;R8Z8_LNE 8> 8A=?>@5P2# %'&^( * D�2K9]&^2'LN2^I ZZ8AD 8g&^O�2 \JOP&^=?>@8AE = �

5"�

Page 44: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� � � �����B�� � � � � �J� � {� �����

%�&)(+* 5P=�I^8UT�8AO7D�[s8AI LV='LV2 D�[s8A2�= D�&3E \A8 [^E D � 8A\U>E�!%�&)(+*+* ='= D�&^E \A8 \AD<I^8 LN2^I�I^8A= 5 �2I3D]\J&^6�8J2Y>bLV> 5PD�2�LNE 8 LuTVLN57O L R OP8L >

� � ��

W � ��

�UXW�

T��!W

5�k

Page 45: 0)1-) 2 354# 6- 7 8989 :73 ; :7  )+ ! # : @?A-/ B4, ! · 2019. 7. 9. · Local Memory Memory Local Local Memory Interconnection Network 1 Element Processing 2 Element

� ���!� ������ �

� � � %KLNE \h9<2^5PE�Y9<> 8JT�8 7> >@D N9<> 8JT�8J2 'G&^= =?e �Q8JI^8AE 6 LN2 �� LXT]57I'^ LNO �N8AE��LN23I S�LN\�� �D�2" YLVE E@L��cn�����AWN2�0">-/8�4#� �!)1���&� ?A�!�Q�!� OQ� � 4$a^8�%PMf4 ( E 8J= = <� G$G!G#�

� k �(^ 5PO7OP5PLN6H^ �+*hLNE O7= D�2 hSN8J= = 8 % � �E@LV[d8JE � LuT<57I " � *Z&^O7OP8AE� �:L >@aY; �+8AO75P\�� �" &" N8A2^8ZZE D]D ��=�]LV2^I � LNE 8A2 ^ LNE E 8A2 ��Mf2�> E D<I^&^\U>@5PDN2 > D�F-(+* LV2^I �cLN2" N&)L$ �8G018 2 8AE 8A2^\J8$�`*$*$9�e4g0he G!G e ��3!) 3%KLX; �umB� G!G$G#�

� m � �57[^5P2 � &^6�LNE ).G2)LN2Y>@a Q E LN6�L ^.-23= a�&^O Q &^[]>bL /LN23I Q 8AD�E �8 �:LVE ;<[^5P= ��S�)g�6-Y��<O!)g�.-/�)1-n4,��������� �!��OQ-/8�4#<:)g���:7� �`�!� %�7�� ���#� ���#���sb=%!� %o-+?I��� 7:-/�S��) 2:8\% � ZZ8A2 � LN6�572�]�*Z&^6 6 5P2" �=( & R O75P= a35P2" '1D�&^= 8 �Mf2^\$� s018JI#8 D]D<I'\J57>f;�/*hLNOP5�2 D�E 235 L �\GDuT�8J6 R 8AE'� G!G�m#�

� 5�� �572^\A8J2Y>+^ �sB)E 8A8Ja �1.�\JD�6�[^LNE 57= 5PDN2'D$2�Mf6�[^O75P\U>1LN2^I " �][^OP57\A5 >G[^LNE@LNO7OP8JOQ[^E D! NE@LN6 6�572" "��-/<K�S�#���r-+?������������ �!�����#���X� %!)R�S�RLY<K)1���I">-/8�4#<:)g���:7� � m$5 � ���U, 3Ni e 4X3�� 3.-[3E 5PO � G!G!4#�

�63 � %KLNE � (�� SND�238A=}LN23I ( LN&^O'G&^I)L �J� Mf6 [^O75P\A5 >_LN2^I 8 �][^O75P\J57>_[)LNE@LVOPOP8JOx[^E D! NE@LN6 6�572" �5P2'-LV= �N8JOPO �14`8A\ba32^5P\ALNO 0g8A[sD�E?> �+. � "xF ] � *$9"]N010$e G!-Yk ��8A[^LNE > 6�8J2�>GD$2+*ZDN6�[^&]>@8AE9]\A5 e8A23\A8� � LNO78 FG2357T�8JE = 57>f;�<� G$G�m#�

� 4 �(^ 5PO7OP5PLN6,^ �N*hLVE OP= D�2�LV2^I}SN8J= = 8$% ���E@LN[s8AE � �57= > E 5 R &3>@8JI � LV>@L1.G\A\J8A= = 5P2:.1*+��Mf2��V� ?S) 2� "rc �T�;7!4#�;�����Tb 8�4-=%!��<:8 -/� �>�!��� O!� 4#� �Q%0���#�I�>���:O!)R�.OQ�Q%'-+?`����������� �!�{�>�6-�7�����8989���:7�[)L$ N8A=1m!G��D5X) � G$GX3��

�6) � Q &3; ���c9�>@8A8JOP8 SNE �QLN2^I S#� 01D�= 8$� *���,.G2 " �<> 8A2^I^8JI * �cLN2" �&)L0 �8 2 D�E � L >bL (MLNE@LNO7OP8JO( E D! NE@LN6 6�572" "�Mf2U�>�Q-=OQ�Q�������:7/%0-+?9)�2���N�QOQ-/�#���S�)+�!�S�#��)R�.-/�#���v">-/�A?A�!�6�!� OQ�]-/���T<=4�!���OQ-/8�4#<:)g���:7�3TND�OP&36�8:k 3[)L$ �8J=-k��J� 4 /%'Lu; � G!-X)��

� - �:. \-9�M ej( E D! �E@LV6�6 5P2" O LN2" N&)L$ �8J=?e?*+� M?9"7(]�9 "+* G!-!G$G /%KLX;�kNiNi�i#�� G � � LXT<5PI�*Z&^OPO78AE� .G2^I^E 8AL �&^= = 8ALN& g9]8U>@a *ZD�[d8J2,Q D�OPI3= >@578A2 +.-E?T<5P2^I � E 5P= a^2)LN6 &^E > a�;�

9<> 8JT�8J2 �Q&^6 8J> >@L `4$a^5PE = >@8J2 T�DN2 " 5P\��N8J2 LN23I � LV>@a38AE 572^8 �+8AO75P\�����( LVE@LNO7OP8AO [3E D! �E LN6}e6 5P2" }572K9<[^OP5 > e?*+��Mf2o�>�6-=OQ�Q�������:7/%`-+?��T< 4�!�6OQ-/8�4#<:)g���:7�����)[)L$ �8J=-k04Yk �3k!)Vm �\GDuTN8A6 R 8AE��3le � G�� G!GNm#�

5Ym