Knowledge

Partitioned global address space

Source 📝

119:, PGAS programming models frequently offer one-sided communication operations such as Remote Memory Access (RMA), whereby one processing element may directly access memory with affinity to a different (potentially remote) process, without explicit semantic involvement by the passive target process. PGAS offers more efficiency and scalability than traditional shared-memory approaches with a flat address space, because hardware-specific 1405: 106:
The various languages and libraries offering a PGAS memory model differ widely in other details, such as the base programming language and the mechanisms used to express parallelism. Many PGAS systems combine the advantages of a
731: 821: 673: 134:) augments the programming model with facilities for both local and remote asynchronous task creation. Two programming languages that use this model are 276: 60: 586:. Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’05) (2005). 802: 1069: 1092: 257: 244: 177: 981: 51:
in order to improve performance. A PGAS memory model is featured in various parallel programming languages and libraries, including:
1087: 1064: 595:
Katherine Yelick, Paul Hilfinger, Susan Graham, Dan Bonachea, Jimmy Su, Amir Kamil, Kaushik Datta, Phillip Colella, and Tong Wen,
666: 1059: 874: 357: 249: 64: 608:
Katherine Yelick, Susan Graham, Paul Hilfinger, Dan Bonachea, Jimmy Su, Amir Kamil, Kaushik Datta, Phillip Colella, Tong Wen,
1435: 1166: 1029: 327: 311: 1390: 1224: 842: 762: 527:
John Bachan, Scott B. Baden, Steven Hofmeyr, Mathias Jacquelin, Amir Kamil, Dan Bonachea, Paul H. Hargrove, Hadia Ahmed. "
169: 135: 68: 316: 1430: 1409: 1355: 815: 659: 266: 1334: 1129: 1014: 976: 826: 716: 270: 236: 190: 139: 72: 32: 204: 80: 1350: 1329: 1274: 1161: 1151: 1124: 986: 321: 112: 1304: 930: 869: 782: 625:
Culler, D. E., Dusseau, A., Goldstein, S. C., Krishnamurthy, A., Lumetta, S., Von Eicken, T., & Yelick, K.
544: 1219: 1365: 1360: 810: 531:", In 33rd IEEE International Parallel & Distributed Processing Symposium (IPDPS'19), May 20–24, 2019. 1104: 1036: 940: 832: 787: 629:. In Supercomputing'93: Proceedings of the 1993 ACM/IEEE conference on Supercomputing (pp. 262-273). IEEE. 280: 164: 894: 1196: 1156: 1109: 1099: 837: 757: 696: 547:. Proceedings of the 7th International Conference on PGAS Programming Models. pp. 54–66. PGAS’13 (2013), 198: 48: 1136: 1024: 1019: 1009: 996: 792: 599:, The International Journal Of High Performance Computing Applications, August 1, 2007, 21(3):266-290 388: 1299: 1254: 1080: 1075: 1054: 920: 1324: 1173: 1146: 971: 935: 925: 726: 706: 701: 682: 515: 194: 160: 56: 40: 884: 39:
abstraction that is logically partitioned, where a portion is local to each process, thread, or
1370: 1046: 1004: 899: 298: 294: 1380: 1179: 1114: 961: 777: 772: 767: 736: 253: 20: 1244: 1184: 1119: 966: 956: 889: 721: 711: 558:
Global arrays: A nonuniform memory access programming model for high-performance computers
405:"An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C" 361: 151: 116: 52: 879: 511: 1375: 1191: 848: 741: 404: 227:
template library for distributed data structures with support for hierarchical locality
370:- provides a software infrastructure for PGAS languages over high-performance networks 1424: 1264: 1141: 214: 120: 84: 44: 36: 354: 233:
a family of libraries supporting parallel scientific computing on distributed arrays
211:
library developed by Cray, providing a close analog to Fortran coarray functionality
864: 642:
Proceedings of Languages and Compilers for Parallel Computing (LCPC'18). Oct 2018.
613: 155: 100: 417:"An Introduction to the Partitioned Global Address Space (PGAS) Programming Model" 482: 189:
template library that provides PGAS communication operations designed to support
35:
paradigm. PGAS is typified by communication operations involving a global memory
1385: 392: 570: 115:) with the data referencing semantics of shared memory systems. In contrast to 626: 596: 529:
UPC++: A High-Performance Communication Framework for Asynchronous Computation
123:
can be explicitly exposed in the semantic partitioning of the address space.
1259: 1234: 609: 597:"Parallel Languages and Compilers: Perspective from the Titanium Experience" 571:
DASH: Data Structures and Algorithms with Support for Hierarchical Locality
640:
GASNet-EX: A High-Performance, Portable Communication Library for Exascale
583: 556:
Nieplocha, Jaroslaw; Harrison, Robert J.; Littlefield, Richard J. (1996).
481:
Tarek El-Ghazawi, William Carlson, Thomas Sterling, and Katherine Yelick.
441: 1309: 1289: 1214: 291: 287: 470: 466: 428: 416: 349: 217:
a library supporting parallel scientific computing on distributed arrays
47:
space may have an affinity for a particular process, thereby exploiting
1314: 1294: 1269: 904: 96: 1284: 1279: 651: 582:
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, et al.
557: 455:
Coarray support in gfortran as specified in the Fortran 2008 standard
469:
17th Annual International Conference on Supercomputing (ICS), 2003.
498:, Lawrence Berkeley National Lab Tech Report LBNL-6623E, Nov 2013. 391:, Encyclopedia of Parallel Computing, Springer, (2011): 1539-1545. 262: 224: 208: 186: 643: 639: 532: 528: 499: 495: 465:
W. Chen, D. Bonachea, J. Duell, P. Husbands, C. Iancu, K. Yelick.
230: 92: 111:
programming style for distributed memory systems (as employed by
1319: 1249: 1239: 584:
X10: an object-oriented approach to nonuniform cluster computing
173: 108: 655: 220: 88: 1229: 1206: 569:
K. Furlinger, C. Glass, A. Knupfer, J. Tao, D. Hunich, et al.
454: 240: 350:
An Introduction to the Partitioned Global Address Space Model
616:, edited by David Padua, (Springer: 2011) Pages: 2049-2055 367: 355:
Programming in the Partitioned Global Address Space Model
197:
supercomputers, including Remote Memory Access (RMA) and
283:
that supports efficient access to a global address space
342: 182: 76: 16:
Parallel programming model paradigm in computer science
403:
Cristian Coarfă; Yuri Dotsenko; John Mellor-Crummey,
95:. The PGAS paradigm is now an integrated part of the 389:"PGAS (Partitioned Global Address Space) Languages." 1343: 1205: 1045: 995: 949: 913: 857: 801: 750: 689: 518:, edited by Pavan Balaji, MIT Press, November 2015. 467:
A Performance Analysis of the Berkeley UPC Compiler
43:. The novelty of PGAS is that the portions of the 560:. The Journal of Supercomputing. 10 (2): 169–189. 573:. Euro-Par Parallel Processing Workshops (2014). 444:. SIGPLAN Fortran Forum 29(2), 10–27 (July 2010) 431:. ACM SIGPLAN Fortran Forum 17(2), 1–31 (1998). 269:developed at UC Berkeley to support scientific 163:an explicitly parallel SPMD dialect of the ISO 667: 496:UPC Language and Library Specifications, v1.3 393:https://doi.org/10.1007/978-0-387-09766-4_210 154:now an integrated part of the language as of 128:asynchronous partitioned global address space 8: 172:a parallel language originally developed by 674: 660: 652: 483:UPC: distributed shared memory programming 516:Programming Models for Parallel Computing 429:Co-array Fortran for parallel programming 380: 471:https://doi.org/10.1145/782814.782825 442:Coarrays in the Next Fortran Standard 7: 614:Encyclopedia of Parallel Computing 265:an explicitly parallel dialect of 14: 252:a parallel language developed by 239:a parallel language developed by 1404: 1403: 126:A variant of the PGAS paradigm, 25:partitioned global address space 875:Analysis of parallel algorithms 644:https://doi.org/10.25344/S4QP4W 627:Parallel programming in Split-C 533:https://doi.org/10.25344/S4V88H 500:https://doi.org/10.2172/1134233 485:. John Wiley & Sons, 2005. 328:Cache-only memory architecture 273:on large-scale multiprocessors 1: 822:Simultaneous and heterogenous 103:which standardized coarrays. 1410:Category: Parallel computing 317:Non-blocking synchronization 279:a parallel extension of the 368:GASNet Communication System 290:Epiphany architecture is a 1452: 717:High-performance computing 301:addressable between cores. 271:high-performance computing 191:high-performance computing 33:parallel programming model 1399: 1351:Automatic parallelization 987:Application checkpointing 510:Bradford L. Chamberlain, 427:Numrich, R.W., Reid, J., 322:Non-uniform memory access 1366:Embarrassingly parallel 1361:Deterministic algorithm 638:Bonachea D, Hargrove P. 1081:Associative processing 1037:Non-blocking algorithm 843:Clustered multi-thread 281:C programming language 165:C programming language 1436:Programming paradigms 1197:Hardware acceleration 1110:Superscalar processor 1100:Dataflow architecture 697:Distributed computing 199:Remote Procedure Call 49:locality of reference 1076:Pipelined processing 1025:Explicit parallelism 1020:Implicit parallelism 1010:Dataflow programming 1300:Parallel Extensions 1105:Pipelined processor 1431:Parallel computing 1174:Massively parallel 1152:distributed shared 972:Cache invalidation 936:Instruction window 727:Manycore processor 707:Massively parallel 702:Parallel computing 683:Parallel computing 360:2010-06-12 at the 258:DARPA HPCS project 245:DARPA HPCS project 178:DARPA HPCS project 161:Unified Parallel C 57:Unified Parallel C 41:processing element 1418: 1417: 1371:Parallel slowdown 1005:Stream processing 895:Karp–Flatt metric 299:scratchpad memory 295:network on a chip 1443: 1407: 1406: 1381:Software lockout 1180:Computer cluster 1115:Vector processor 1070:Array processing 1055:Flynn's taxonomy 962:Memory coherence 737:Computer network 676: 669: 662: 653: 646: 636: 630: 623: 617: 606: 600: 593: 587: 580: 574: 567: 561: 554: 548: 541: 535: 525: 519: 508: 502: 494:UPC Consortium, 492: 486: 479: 473: 463: 457: 451: 445: 438: 432: 425: 419: 413: 407: 401: 395: 387:Almasi, George. 385: 346: 345: 343:Official website 254:Sun Microsystems 99:language, as of 21:computer science 1451: 1450: 1446: 1445: 1444: 1442: 1441: 1440: 1421: 1420: 1419: 1414: 1395: 1339: 1245:Coarray Fortran 1201: 1185:Beowulf cluster 1041: 991: 982:Synchronization 967:Cache coherence 957:Multiprocessing 945: 909: 890:Cost efficiency 885:Gustafson's law 853: 797: 746: 722:Multiprocessing 712:Cloud computing 685: 680: 650: 649: 637: 633: 624: 620: 607: 603: 594: 590: 581: 577: 568: 564: 555: 551: 543:T. A. Johnson: 542: 538: 526: 522: 509: 505: 493: 489: 480: 476: 464: 460: 452: 448: 439: 435: 426: 422: 414: 410: 402: 398: 386: 382: 377: 362:Wayback Machine 341: 340: 337: 308: 297:processor with 152:Coarray Fortran 148: 117:message passing 53:Coarray Fortran 17: 12: 11: 5: 1449: 1447: 1439: 1438: 1433: 1423: 1422: 1416: 1415: 1413: 1412: 1400: 1397: 1396: 1394: 1393: 1388: 1383: 1378: 1376:Race condition 1373: 1368: 1363: 1358: 1353: 1347: 1345: 1341: 1340: 1338: 1337: 1332: 1327: 1322: 1317: 1312: 1307: 1302: 1297: 1292: 1287: 1282: 1277: 1272: 1267: 1262: 1257: 1252: 1247: 1242: 1237: 1232: 1227: 1222: 1217: 1211: 1209: 1203: 1202: 1200: 1199: 1194: 1189: 1188: 1187: 1177: 1171: 1170: 1169: 1164: 1159: 1154: 1149: 1144: 1134: 1133: 1132: 1127: 1120:Multiprocessor 1117: 1112: 1107: 1102: 1097: 1096: 1095: 1090: 1085: 1084: 1083: 1078: 1073: 1062: 1051: 1049: 1043: 1042: 1040: 1039: 1034: 1033: 1032: 1027: 1022: 1012: 1007: 1001: 999: 993: 992: 990: 989: 984: 979: 974: 969: 964: 959: 953: 951: 947: 946: 944: 943: 938: 933: 928: 923: 917: 915: 911: 910: 908: 907: 902: 897: 892: 887: 882: 877: 872: 867: 861: 859: 855: 854: 852: 851: 849:Hardware scout 846: 840: 835: 830: 824: 819: 813: 807: 805: 803:Multithreading 799: 798: 796: 795: 790: 785: 780: 775: 770: 765: 760: 754: 752: 748: 747: 745: 744: 742:Systolic array 739: 734: 729: 724: 719: 714: 709: 704: 699: 693: 691: 687: 686: 681: 679: 678: 671: 664: 656: 648: 647: 631: 618: 601: 588: 575: 562: 549: 536: 520: 503: 487: 474: 458: 446: 433: 420: 408: 396: 379: 378: 376: 373: 372: 371: 365: 352: 347: 336: 335:External links 333: 332: 331: 325: 319: 314: 307: 304: 303: 302: 284: 274: 260: 247: 234: 228: 218: 212: 202: 180: 167: 158: 147: 144: 15: 13: 10: 9: 6: 4: 3: 2: 1448: 1437: 1434: 1432: 1429: 1428: 1426: 1411: 1402: 1401: 1398: 1392: 1389: 1387: 1384: 1382: 1379: 1377: 1374: 1372: 1369: 1367: 1364: 1362: 1359: 1357: 1354: 1352: 1349: 1348: 1346: 1342: 1336: 1333: 1331: 1328: 1326: 1323: 1321: 1318: 1316: 1313: 1311: 1308: 1306: 1303: 1301: 1298: 1296: 1293: 1291: 1288: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1268: 1266: 1265:Global Arrays 1263: 1261: 1258: 1256: 1253: 1251: 1248: 1246: 1243: 1241: 1238: 1236: 1233: 1231: 1228: 1226: 1223: 1221: 1218: 1216: 1213: 1212: 1210: 1208: 1204: 1198: 1195: 1193: 1192:Grid computer 1190: 1186: 1183: 1182: 1181: 1178: 1175: 1172: 1168: 1165: 1163: 1160: 1158: 1155: 1153: 1150: 1148: 1145: 1143: 1140: 1139: 1138: 1135: 1131: 1128: 1126: 1123: 1122: 1121: 1118: 1116: 1113: 1111: 1108: 1106: 1103: 1101: 1098: 1094: 1091: 1089: 1086: 1082: 1079: 1077: 1074: 1071: 1068: 1067: 1066: 1063: 1061: 1058: 1057: 1056: 1053: 1052: 1050: 1048: 1044: 1038: 1035: 1031: 1028: 1026: 1023: 1021: 1018: 1017: 1016: 1013: 1011: 1008: 1006: 1003: 1002: 1000: 998: 994: 988: 985: 983: 980: 978: 975: 973: 970: 968: 965: 963: 960: 958: 955: 954: 952: 948: 942: 939: 937: 934: 932: 929: 927: 924: 922: 919: 918: 916: 912: 906: 903: 901: 898: 896: 893: 891: 888: 886: 883: 881: 878: 876: 873: 871: 868: 866: 863: 862: 860: 856: 850: 847: 844: 841: 839: 836: 834: 831: 828: 825: 823: 820: 817: 814: 812: 809: 808: 806: 804: 800: 794: 791: 789: 786: 784: 781: 779: 776: 774: 771: 769: 766: 764: 761: 759: 756: 755: 753: 749: 743: 740: 738: 735: 733: 730: 728: 725: 723: 720: 718: 715: 713: 710: 708: 705: 703: 700: 698: 695: 694: 692: 688: 684: 677: 672: 670: 665: 663: 658: 657: 654: 645: 641: 635: 632: 628: 622: 619: 615: 611: 605: 602: 598: 592: 589: 585: 579: 576: 572: 566: 563: 559: 553: 550: 546: 540: 537: 534: 530: 524: 521: 517: 513: 507: 504: 501: 497: 491: 488: 484: 478: 475: 472: 468: 462: 459: 456: 450: 447: 443: 437: 434: 430: 424: 421: 418: 412: 409: 406: 400: 397: 394: 390: 384: 381: 374: 369: 366: 363: 359: 356: 353: 351: 348: 344: 339: 338: 334: 329: 326: 323: 320: 318: 315: 313: 310: 309: 305: 300: 296: 293: 289: 285: 282: 278: 275: 272: 268: 264: 261: 259: 255: 251: 248: 246: 242: 238: 235: 232: 229: 226: 222: 219: 216: 215:Global Arrays 213: 210: 206: 203: 200: 196: 192: 188: 184: 181: 179: 175: 171: 168: 166: 162: 159: 157: 153: 150: 149: 145: 143: 141: 137: 133: 129: 124: 122: 121:data locality 118: 114: 110: 104: 102: 98: 94: 90: 86: 85:Global Arrays 82: 78: 74: 70: 66: 62: 58: 54: 50: 46: 45:shared memory 42: 38: 37:address space 34: 30: 26: 22: 950:Coordination 880:Amdahl's law 816:Simultaneous 634: 621: 604: 591: 578: 565: 552: 539: 523: 506: 490: 477: 461: 449: 436: 423: 411: 399: 383: 156:Fortran 2008 131: 127: 125: 105: 101:Fortran 2008 28: 24: 18: 1386:Scalability 1147:distributed 1030:Concurrency 997:Programming 838:Cooperative 827:Speculative 763:Instruction 545:Coarray C++ 415:Tim Stitt, 312:Concurrency 205:Coarray C++ 81:Coarray C++ 1425:Categories 1391:Starvation 1130:asymmetric 865:PRAM model 833:Preemptive 610:"Titanium" 453:GCC wiki, 375:References 256:under the 243:under the 176:under the 1125:symmetric 870:PEM model 440:J. Reid: 1356:Deadlock 1344:Problems 1310:pthreads 1290:OpenHMPP 1215:Ateji PX 1176:computer 1047:Hardware 914:Elements 900:Slowdown 811:Temporal 793:Pipeline 358:Archived 306:See also 292:manycore 288:Adapteva 263:Titanium 250:Fortress 195:exascale 146:Examples 65:Fortress 1315:RaftLib 1295:OpenACC 1270:GPUOpen 1260:C++ AMP 1235:Charm++ 977:Barrier 921:Process 905:Speedup 690:General 277:Split-C 97:Fortran 61:Split-C 31:) is a 1408:  1285:OpenCL 1280:OpenMP 1225:Chapel 1142:shared 1137:Memory 1072:(SIMT) 1015:Models 926:Thread 858:Theory 829:(SpMT) 783:Memory 768:Thread 751:Levels 512:Chapel 364:(2003) 330:(COMA) 324:(NUMA) 170:Chapel 136:Chapel 69:Chapel 1255:Dryad 1220:Boost 941:Array 931:Fiber 845:(CMT) 818:(SMT) 732:GPGPU 231:SHMEM 201:(RPC) 183:UPC++ 132:APGAS 93:SHMEM 77:UPC++ 1320:ROCm 1250:CUDA 1240:Cilk 1207:APIs 1167:COMA 1162:NUMA 1093:MIMD 1088:MISD 1065:SIMD 1060:SISD 788:Loop 778:Data 773:Task 286:The 267:Java 221:DASH 185:, A 174:Cray 138:and 109:SPMD 91:and 89:DASH 29:PGAS 1335:ZPL 1330:TBB 1325:UPC 1305:PVM 1275:MPI 1230:HPX 1157:UMA 758:Bit 241:IBM 237:X10 225:C++ 209:C++ 193:on 187:C++ 140:X10 113:MPI 73:X10 19:In 1427:: 612:, 514:, 223:a 207:a 142:. 87:, 83:, 79:, 75:, 71:, 67:, 63:, 59:, 55:, 23:, 675:e 668:t 661:v 130:( 27:(

Index

computer science
parallel programming model
address space
processing element
shared memory
locality of reference
Coarray Fortran
Unified Parallel C
Split-C
Fortress
Chapel
X10
UPC++
Coarray C++
Global Arrays
DASH
SHMEM
Fortran
Fortran 2008
SPMD
MPI
message passing
data locality
Chapel
X10
Coarray Fortran
Fortran 2008
Unified Parallel C
C programming language
Chapel

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.