{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,6]],"date-time":"2023-10-06T22:15:46Z","timestamp":1696630546372},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"6","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[1998,11]]},"abstract":"Many programming languages support either task parallelism, but few languages provide a uniform framework for writing applications that need both types of parallelism or data parallelism. We present a programming language and system that integrates task and data parallelism using shared objects. Shared objects may be stored on one processor or may be replicated. Objects may also be partitioned and distributed on several processors.Task parallelism is achieved by forking processes remotely and have them communicate and synchronize through objects. Data parallelism is achieved by executing operations on partitioned objects in parallel. Writing task-and data-parallel applications with shared objects has several advantages. Programmers use the objects as if they were stored in a memory common to all processors. On distributed-memory machines, if objects are remote, replicated, or partitioned, the system takes care of many low-level details such as data transfers and consistency semantics. In this article, we show how to write task-and data-parallel programs with our shared object model. We also desribe a portable implementation of the model. To assess the performance of the system, we wrote several applications that use task and data parallelism and excuted them on a collection of Pentium Pros connected by Myrinet. The performance of these applications is also discussed in this article.<\/jats:p>","DOI":"10.1145\/295656.295658","type":"journal-article","created":{"date-parts":[[2002,10,7]],"date-time":"2002-10-07T13:52:47Z","timestamp":1033998767000},"page":"1131-1170","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["A task- and data-parallel programming language based on shared objects"],"prefix":"10.1145","volume":"20","author":[{"given":"Saniya","family":"Ben Hassen","sequence":"first","affiliation":[{"name":"Vrije Univ., Amsterdam, The Netherlands"}]},{"given":"Henri E.","family":"Bal","sequence":"additional","affiliation":[{"name":"Vrije Univ., Amsterdam, The Netherlands"}]},{"given":"Ceriel J. H.","family":"Jacobs","sequence":"additional","affiliation":[{"name":"Vrije Univ., Amsterdam, The Netherlands"}]}],"member":"320","published-online":{"date-parts":[[1998,11]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.485843"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/4434.708258"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/273011.273014"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1996.1265"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.126768"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.467577"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/795698.798351"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/237578.237628"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236341"},{"key":"e_1_2_1_10_1","first-page":"1","article-title":"Hawk: A runtime system for partitioned objects","volume":"12","author":"BEN HASSEN S.","year":"1997","unstructured":"BEN HASSEN , S. , BAL , H. , AND TANENBAUM , t. 1997 . Hawk: A runtime system for partitioned objects . J. Parallel Alg. and Appl. 12 , 1 - 3 (Aug.), 205-230. BEN HASSEN, S., BAL, H., AND TANENBAUM, t. 1997. Hawk: A runtime system for partitioned objects. J. Parallel Alg. and Appl. 12, 1-3 (Aug.), 205-230.","journal-title":"J. Parallel Alg. and Appl."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/645534.656670"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/40.342015"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/169627.169802"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/258612.258690"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/215399.215423"},{"key":"e_1_2_1_16_1","volume-title":"Compositional C~~: Compositional parallel programming. Tech. Rep. CS-TR-92-13","author":"CHANDY K.","year":"1992","unstructured":"CHANDY , K. AND KESSELMAN , C. 1992 . Compositional C~~: Compositional parallel programming. Tech. Rep. CS-TR-92-13 , California Institute of Technology . CHANDY, K. AND KESSELMAN, C. 1992. Compositional C~~: Compositional parallel programming. Tech. Rep. CS-TR-92-13, California Institute of Technology."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/155332.155348"},{"key":"e_1_2_1_18_1","first-page":"474","volume-title":"Proceedings of the 11th International Parallel Processing Symposium","author":"DWARKADAS S.","year":"1997","unstructured":"Cox, A., DWARKADAS , S. , Lu, H., AND ZWAENEPOEL , W. 1997 . Evaluating the performance of software distributed shared memory . In Proceedings of the 11th International Parallel Processing Symposium . Geneva, Switzerland , 474 - 482 . Cox, A., DWARKADAS, S., Lu, H., AND ZWAENEPOEL, W. 1997. Evaluating the performance of software distributed shared memory. In Proceedings of the 11th International Parallel Processing Symposium. Geneva, Switzerland, 474-482."},{"key":"e_1_2_1_19_1","first-page":"29","volume-title":"Proceedings of the International Conference on Parallel Processing.","author":"DHAGAT M.","year":"1995","unstructured":"DHAGAT , M. , BAGRODIA , R. , AND CHANDY , M. 1995 . Integrating task and data parallelism in UC . In Proceedings of the International Conference on Parallel Processing. Vol. II . Oconomowoc, WI , 29 - 36 . DHAGAT, M., BAGRODIA, R., AND CHANDY, M. 1995. Integrating task and data parallelism in UC. In Proceedings of the International Conference on Parallel Processing. Vol. II. Oconomowoc, WI, 29-36."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/237090.237181"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the 1st International Workshop on Parallel Processing. 457-462","author":"FOSTER I.","year":"1994","unstructured":"FOSTER , I. , KESSELMAN , C. , AND TUECKE , S. 1994 . The Nexus task-parMlel runtime system . In Proceedings of the 1st International Workshop on Parallel Processing. 457-462 . FOSTER, I., KESSELMAN, C., AND TUECKE, S. 1994. The Nexus task-parMlel runtime system. In Proceedings of the 1st International Workshop on Parallel Processing. 457-462."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/369028.369104"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.211896"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/M-PDT.1994.329791"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 432-439","author":"HAINES~ M.","year":"1995","unstructured":"HAINES~ M. , HESS~ B. , MEHROTRA~ P. , VAN ROSENDALE~ J. , AND ZIMA~ H. 1995 . Runtime support for data parallel tasks . In Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 432-439 . HAINES~ M., HESS~ B., MEHROTRA~ P., VAN ROSENDALE~ J., AND ZIMA~ H. 1995. Runtime support for data parallel tasks. In Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 432-439."},{"key":"e_1_2_1_27_1","unstructured":"HIGH PERFORMANCE FORTRAN FORUM. 1996. High Performance Fortran language specification draft version 2.0. HIGH PERFORMANCE FORTRAN FORUM. 1996. High Performance Fortran language specification draft version 2.0."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/224056.224073"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/151250.151253"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/645607.661523"},{"key":"e_1_2_1_31_1","first-page":"1","article-title":"High Performance Fortran","volume":"1","author":"LOVEMAN~ D.","year":"1993","unstructured":"LOVEMAN~ D. 1993 . High Performance Fortran . IEEE Parallel Distrib. Tech. 1 , 1 (winter), 25-41. Lu~ H., DWARKADAS~ S., Cox~ A., AND ZWAENEPOEL~ W. 1995. Message passing versus distributed shared memory on networks of workstations. In Supercomputing '95. San Diego, CA. LOVEMAN~ D. 1993. High Performance Fortran. IEEE Parallel Distrib. Tech. 1, 1 (winter), 25-41. Lu~ H., DWARKADAS~ S., Cox~ A., AND ZWAENEPOEL~ W. 1995. Message passing versus distributed shared memory on networks of workstations. In Supercomputing '95. San Diego, CA.","journal-title":"IEEE Parallel Distrib. Tech."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.214440"},{"key":"e_1_2_1_34_1","first-page":"1477","volume-title":"Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications","author":"RUHL~ T.","year":"1996","unstructured":"RUHL~ T. , BAL~ H. , BENSON~ G. , BHOEDJANG~ R. , AND LANGENDOEN~ K. 1996 . Experience with a portability layer for implementing parallel programming systems . In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications . Sunnyvale, CA , 1477 - 1488 . RUHL~ T., BAL~ H., BENSON~ G., BHOEDJANG~ R., AND LANGENDOEN~ K. 1996. Experience with a portability layer for implementing parallel programming systems. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications. Sunnyvale, CA, 1477-1488."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/237090.237179"},{"key":"e_1_2_1_36_1","first-page":"97","article-title":"Run-time and compile-time support for adaptive irregular problems. In Supercomputing '9~","author":"SHARMA~ S.","year":"1994","unstructured":"SHARMA~ S. , PONNUSAMY~ R. , MOON , B. , HWANG~ Y. , DAS , R. , AND SALTZ~ J. 1994 . Run-time and compile-time support for adaptive irregular problems. In Supercomputing '9~ . Washington D.C. , 97 - 106 . SHARMA~ S., PONNUSAMY~ R., MOON, B., HWANG~ Y., DAS, R., AND SALTZ~ J. 1994. Run-time and compile-time support for adaptive irregular problems. In Supercomputing '9~. Washington D.C., 97-106.","journal-title":"Washington D.C."},{"key":"e_1_2_1_37_1","volume-title":"Introduction to Numerical Analysis","author":"STOER~ J.","unstructured":"STOER~ J. AND BULIRSH~ R. 1983. Introduction to Numerical Analysis . Springer-Verlag , New York, NY . STOER~ J. AND BULIRSH~ R. 1983. Introduction to Numerical Analysis. Springer-Verlag, New York, NY."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/263764.263768"},{"key":"e_1_2_1_39_1","first-page":"45","volume-title":"Proceedings of the International Conference on Parallel Processing.","author":"SUNDARESAN~ N.","year":"1995","unstructured":"SUNDARESAN~ N. AND GANNON~ D. 1995 . A thread model for supporting task and data parallelism in object-oriented parallel languages . In Proceedings of the International Conference on Parallel Processing. Vol. II . Oconomowoc, WI , 45 - 49 . SUNDARESAN~ N. AND GANNON~ D. 1995. A thread model for supporting task and data parallelism in object-oriented parallel languages. In Proceedings of the International Conference on Parallel Processing. Vol. II. Oconomowoc, WI, 45-49."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.536935"},{"key":"e_1_2_1_41_1","volume-title":"Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 211- 219","author":"WEST~ E.","year":"1995","unstructured":"WEST~ E. AND GRIMSHAW~ A. 1995 . Braid: Integrating task and data parallelism . In Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 211- 219 . WEST~ E. AND GRIMSHAW~ A. 1995. Braid: Integrating task and data parallelism. In Proceedings of the Symposium on the Frontiers of Massively Parallel Computation. McLean, Virginia, 211- 219."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/88.532138"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/295656.295658","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,31]],"date-time":"2022-12-31T07:33:03Z","timestamp":1672471983000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/295656.295658"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998,11]]},"references-count":40,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1998,11]]}},"alternative-id":["10.1145\/295656.295658"],"URL":"https:\/\/doi.org\/10.1145\/295656.295658","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[1998,11]]},"assertion":[{"value":"1998-11-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}