{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,21]],"date-time":"2026-06-21T12:57:00Z","timestamp":1782046620362,"version":"3.54.5"},"reference-count":54,"publisher":"Elsevier BV","issue":"9","license":[{"start":{"date-parts":[[2013,9,1]],"date-time":"2013-09-01T00:00:00Z","timestamp":1377993600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2013,9,1]],"date-time":"2013-09-01T00:00:00Z","timestamp":1377993600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.elsevier.com\/legal\/tdmrep-license"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Parallel Computing"],"published-print":{"date-parts":[[2013,9]]},"DOI":"10.1016\/j.parco.2013.04.012","type":"journal-article","created":{"date-parts":[[2013,4,29]],"date-time":"2013-04-29T05:17:43Z","timestamp":1367212663000},"page":"475-489","update-policy":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":13,"title":["A framework for argument-based task synchronization with automatic detection of dependencies"],"prefix":"10.1016","volume":"39","author":[{"given":"Carlos H.","family":"Gonz\u00e1lez","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Basilio B.","family":"Fraguela","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"78","reference":[{"key":"10.1016\/j.parco.2013.04.012_b0005","doi-asserted-by":"crossref","first-page":"66","DOI":"10.1145\/135226.135230","article-title":"Compiling Fortran D for MIMD distributed-memory machines","volume":"35","author":"Hiranandani","year":"1992","journal-title":"Commun. ACM"},{"issue":"3","key":"10.1016\/j.parco.2013.04.012_b0010","doi-asserted-by":"crossref","first-page":"76","DOI":"10.1109\/99.714604","article-title":"The case for high-level parallel programming in ZPL","volume":"5","author":"Chamberlain","year":"1998","journal-title":"IEEE Comput. Sci. Eng."},{"issue":"9","key":"10.1016\/j.parco.2013.04.012_b0015","doi-asserted-by":"crossref","first-page":"465","DOI":"10.1016\/j.parco.2012.05.002","article-title":"Optimization techniques for efficient HTA programs","volume":"38","author":"Fraguela","year":"2012","journal-title":"Parallel Comput."},{"key":"10.1016\/j.parco.2013.04.012_b0020","doi-asserted-by":"crossref","unstructured":"E. Chan, E.S. Quintana-Ort\u00ed, G. Quintana-Ort\u00ed, R. van de Geijn, Supermatrix out-of-order scheduling of matrix operations for SMP and multi-core architectures, in: Proc. 19th ACM Symp. on Parallel Algorithms and Architectures, SPAA\u201907, 2007, pp. 116\u2013125.","DOI":"10.1145\/1248377.1248397"},{"key":"10.1016\/j.parco.2013.04.012_b0025","doi-asserted-by":"crossref","unstructured":"E. Chan, F.G. Van Zee, E.S. Quintana-Ort\u00ed, G. Quintana-Ort\u00ed, R. van de Geijn, Satisfying your dependencies with Supermatrix, in: Proc. 2007 IEEE Int. Conf. on, Cluster Computing, CLUSTER\u201907, 2007, pp. 91\u201399.","DOI":"10.1109\/CLUSTR.2007.4629221"},{"key":"10.1016\/j.parco.2013.04.012_b0030","doi-asserted-by":"crossref","unstructured":"E. Chan, F.G. Van Zee, P. Bientinesi, E.S. Quintana-Ort\u00ed, G. Quintana-Ort\u00ed, R. van de Geijn, Supermatrix: a multithreaded runtime scheduling system for algorithms-by-blocks, in: Proc. 13th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, PPoPP\u201908, 2008, pp. 123\u2013132.","DOI":"10.1145\/1345206.1345227"},{"key":"10.1016\/j.parco.2013.04.012_b0035","unstructured":"W.W. Carlson, J.M. Draper, D.E. Culler, K. Yelick, E. Brooks, K. Warren, Introduction to UPC and language specification, Technical Report CCS-TR-99-157, IDA Center for Computing Sciences, 1999."},{"key":"10.1016\/j.parco.2013.04.012_b0040","unstructured":"J. Reinders, Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, O\u2019Reilly, 2007."},{"key":"10.1016\/j.parco.2013.04.012_b0045","unstructured":"OpenMP Architecture Review Board, OpenMP Program Interface Version 3.1, July 2011, interrefhttps:\/\/2.zoppoz.workers.dev:443\/http\/www.openmp.orgurl<https:\/\/2.zoppoz.workers.dev:443\/http\/www.openmp.org>."},{"issue":"3","key":"10.1016\/j.parco.2013.04.012_b0050","doi-asserted-by":"crossref","first-page":"284","DOI":"10.1177\/1094342009106195","article-title":"Hierarchical task-based programming with StarSs","volume":"23","author":"Planas","year":"2009","journal-title":"Int. J. High Perform. Comput. Appl."},{"key":"10.1016\/j.parco.2013.04.012_b0055","doi-asserted-by":"crossref","unstructured":"J. Perez, R. Badia, J. Labarta, A dependency-aware task-based programming environment for multi-core architectures, in: 2008 IEEE Int. Conf. on Cluster Computing, 2008, pp. 142\u2013151.","DOI":"10.1109\/CLUSTR.2008.4663765"},{"issue":"3","key":"10.1016\/j.parco.2013.04.012_b0060","doi-asserted-by":"crossref","first-page":"292","DOI":"10.1007\/s10766-009-0101-1","article-title":"A proposal to extend the OpenMP tasking model with dependent tasks","volume":"37","author":"Duran","year":"2009","journal-title":"Intl. J. Parallel Program."},{"issue":"5\u20136","key":"10.1016\/j.parco.2013.04.012_b0065","doi-asserted-by":"crossref","first-page":"440","DOI":"10.1007\/s10766-010-0135-4","article-title":"Extending OpenMP to survive the heterogeneous multi-core era","volume":"38","author":"Ayguad\u00e9","year":"2010","journal-title":"Intl. J. Parallel Program."},{"key":"10.1016\/j.parco.2013.04.012_b0070","series-title":"Proc. Second Int. Scientific Computing in Object-Oriented Parallel Environments (ISCOPE98)","first-page":"223","article-title":"Arrays in Blitz++","author":"Veldhuizen","year":"1998"},{"key":"10.1016\/j.parco.2013.04.012_b0075","doi-asserted-by":"crossref","unstructured":"E. Anderson, Z. Bai, J. Dongarra, A. Greenbaum, A. McKenney, J. Du Croz, S. Hammerling, J. Demmel, C. Bischof, D. Sorensen, LAPACK: a portable linear algebra library for high-performance computers, in: Proc. 1990 ACM\/IEEE Conf. on Supercomputing, Supercomputing \u201990, 1990, pp. 2\u201311.","DOI":"10.1109\/SUPERC.1990.129995"},{"issue":"9","key":"10.1016\/j.parco.2013.04.012_b0080","doi-asserted-by":"crossref","first-page":"820","DOI":"10.1145\/361573.361582","article-title":"Solution of the matrix equation AX+XB=C [F4]","volume":"15","author":"Bartels","year":"1972","journal-title":"Commun. ACM"},{"issue":"4","key":"10.1016\/j.parco.2013.04.012_b0085","doi-asserted-by":"crossref","first-page":"422","DOI":"10.1145\/504210.504213","article-title":"FLAME: formal linear algebra methods environment","volume":"27","author":"Gunnels","year":"2001","journal-title":"ACM Trans. Math. Softw."},{"key":"10.1016\/j.parco.2013.04.012_b0090","unstructured":"National Science Foundation, Department of Energy, BLAS, 2011, <https:\/\/2.zoppoz.workers.dev:443\/http\/www.netlib.org\/blas\/>."},{"key":"10.1016\/j.parco.2013.04.012_b0095","unstructured":"K. Goto, GotoBLAS2, , accessed: 16 Feb 2013, <https:\/\/2.zoppoz.workers.dev:443\/http\/www.tacc.utexas.edu\/tacc-projects\/gotoblas2>."},{"issue":"5\u20136","key":"10.1016\/j.parco.2013.04.012_b0100","doi-asserted-by":"crossref","first-page":"341","DOI":"10.1007\/s10766-010-0140-7","article-title":"Comparison of OpenMP 3.0 and other task parallel frameworks on unbalanced task graphs","volume":"38","author":"Olivier","year":"2010","journal-title":"Intl. J. Parallel Program."},{"key":"10.1016\/j.parco.2013.04.012_b0105","series-title":"Elements of Software Science","author":"Halstead","year":"1977"},{"key":"10.1016\/j.parco.2013.04.012_b0110","doi-asserted-by":"crossref","first-page":"308","DOI":"10.1109\/TSE.1976.233837","article-title":"A complexity measure","volume":"2","author":"McCabe","year":"1976","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/j.parco.2013.04.012_b0115","unstructured":"P. Totoo, H.-W. Loidl, Parallel Haskell implementations of the N-body problem, Conc. and Comp.: Practice and Experience, submitted for publication."},{"key":"10.1016\/j.parco.2013.04.012_b0120","series-title":"Programming Erlang: Software for a Concurrent World","author":"Armstrong","year":"2007"},{"issue":"2\u20133","key":"10.1016\/j.parco.2013.04.012_b0125","doi-asserted-by":"crossref","first-page":"202","DOI":"10.1016\/j.tcs.2008.09.019","article-title":"Scala actors: unifying thread-based and event-based programming","volume":"410","author":"Haller","year":"2009","journal-title":"Theor. Comput. Sci."},{"issue":"12","key":"10.1016\/j.parco.2013.04.012_b0130","doi-asserted-by":"crossref","first-page":"71","DOI":"10.1145\/2096148.2034685","article-title":"A monad for deterministic parallelism","volume":"46","author":"Marlow","year":"2011","journal-title":"SIGPLAN Not."},{"key":"10.1016\/j.parco.2013.04.012_b0135","doi-asserted-by":"crossref","unstructured":"S. Peyton Jones, Harnessing the multicores: Nested data parallelism in Haskell, in: Proc. Sixth Asian Symp. on Programming Languages and Systems, APLAS\u201908, 2008, pp. 138\u2013138.","DOI":"10.1007\/978-3-540-89330-1_10"},{"key":"10.1016\/j.parco.2013.04.012_b0140","doi-asserted-by":"crossref","unstructured":"A. Prokopec, P. Bagwell, T. Rompf, R. Odersky, A generic parallel collection framework, in: Proc. 17th Int. Conf. on Parallel Processing, Euro-Par\u201911, 2011, pp. 136\u2013147.","DOI":"10.1007\/978-3-642-23397-5_14"},{"key":"10.1016\/j.parco.2013.04.012_b0145","series-title":"Algorithmic Skeletons: Structured Management of Parallel Computation","author":"Cole","year":"1991"},{"key":"10.1016\/j.parco.2013.04.012_b0150","series-title":"Abstract Machine Models for Highly Parallel Computers","author":"Rabhi","year":"1995"},{"issue":"1","key":"10.1016\/j.parco.2013.04.012_b0155","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1017\/S0956796897002967","article-title":"Algorithm+strategy=parallelism","volume":"8","author":"Trinder","year":"1998","journal-title":"J. Funct. Program."},{"issue":"3","key":"10.1016\/j.parco.2013.04.012_b0160","doi-asserted-by":"crossref","first-page":"431","DOI":"10.1017\/S0956796805005526","article-title":"Parallel functional programming in Eden","volume":"15","author":"Loogen","year":"2005","journal-title":"J. Funct. Program."},{"issue":"12","key":"10.1016\/j.parco.2013.04.012_b0165","doi-asserted-by":"crossref","first-page":"1135","DOI":"10.1002\/spe.1026","article-title":"A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers","volume":"40","author":"Gonz\u00e1lez-V\u00e9lez","year":"2010","journal-title":"Softw. Pract. Exp."},{"key":"10.1016\/j.parco.2013.04.012_b0170","series-title":"Programming F# 3.0","author":"Smith","year":"2012"},{"issue":"9","key":"10.1016\/j.parco.2013.04.012_b0175","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1145\/1631687.1596563","article-title":"Runtime support for multicore Haskell","volume":"44","author":"Marlow","year":"2009","journal-title":"SIGPLAN Not."},{"issue":"11","key":"10.1016\/j.parco.2013.04.012_b0180","doi-asserted-by":"crossref","first-page":"91","DOI":"10.1145\/2088456.1863535","article-title":"Seq no more: better strategies for parallel Haskell","volume":"45","author":"Marlow","year":"2010","journal-title":"SIGPLAN Not."},{"key":"10.1016\/j.parco.2013.04.012_b0185","series-title":"Programming Symposium","first-page":"362","article-title":"First version of a data flow procedure language","volume":"vol. 19","author":"Dennis","year":"1974"},{"issue":"11","key":"10.1016\/j.parco.2013.04.012_b0190","doi-asserted-by":"crossref","first-page":"48","DOI":"10.1109\/MC.1980.1653418","article-title":"Data flow supercomputers","volume":"13","author":"Dennis","year":"1980","journal-title":"Computer"},{"issue":"5","key":"10.1016\/j.parco.2013.04.012_b0195","doi-asserted-by":"crossref","first-page":"773","DOI":"10.1109\/5.381846","article-title":"Dataflow process networks","volume":"83","author":"Lee","year":"1995","journal-title":"Proc. IEEE"},{"key":"10.1016\/j.parco.2013.04.012_b0200","unstructured":"G. Kahn, The semantics of a simple language for parallel programming, in: IFIP Congress, 1974, pp. 471\u2013475."},{"issue":"9","key":"10.1016\/j.parco.2013.04.012_b0205","doi-asserted-by":"crossref","first-page":"1235","DOI":"10.1109\/PROC.1987.13876","article-title":"Synchronous data flow","volume":"75","author":"Lee","year":"1987","journal-title":"Proc. IEEE"},{"issue":"6","key":"10.1016\/j.parco.2013.04.012_b0210","doi-asserted-by":"crossref","first-page":"1390","DOI":"10.1137\/0114108","article-title":"Properties of a model for parallel computations: determinacy, termination, queueing","volume":"14","author":"Karp","year":"1966","journal-title":"SIAM J. Appl. Math."},{"issue":"4","key":"10.1016\/j.parco.2013.04.012_b0215","doi-asserted-by":"crossref","first-page":"590","DOI":"10.1145\/321479.321485","article-title":"Scheduling parallel computations","volume":"15","author":"Reiter","year":"1968","journal-title":"J. ACM"},{"issue":"5","key":"10.1016\/j.parco.2013.04.012_b0220","doi-asserted-by":"crossref","first-page":"511","DOI":"10.1016\/S0022-0000(71)80013-2","article-title":"Marked directed graphs","volume":"5","author":"Commoner","year":"1971","journal-title":"J. Comput. Syst. Sci."},{"key":"10.1016\/j.parco.2013.04.012_b0225","doi-asserted-by":"crossref","unstructured":"L. Snyder, The design and development of ZPL, in: Proc. Third ACM SIGPLAN Conf. on History of Programming Languages, HOPL III, 2007, pp. 8-1\u20138-37.","DOI":"10.1145\/1238844.1238852"},{"key":"10.1016\/j.parco.2013.04.012_b0230","unstructured":"A. de Vega, D. Andrade, B.B. Fraguela, An efficient parallel set container for multicore architectures, in: Int. Conf. on Parallel Computing, ParCo 2011, 2011, pp. 369\u2013376."},{"key":"10.1016\/j.parco.2013.04.012_b0235","doi-asserted-by":"crossref","first-page":"389","DOI":"10.1016\/j.parco.2003.12.002","article-title":"Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming","volume":"30","author":"Cole","year":"2004","journal-title":"Parallel Comput."},{"issue":"7\u20138","key":"10.1016\/j.parco.2013.04.012_b0240","doi-asserted-by":"crossref","first-page":"604","DOI":"10.1016\/j.parco.2006.06.001","article-title":"Quaff: efficient C++ design for parallel skeletons","volume":"32","author":"Falcou","year":"2006","journal-title":"Parallel Comput."},{"key":"10.1016\/j.parco.2013.04.012_b0245","unstructured":"C.H. Gonz\u00e1lez, B.B. Fraguela, An algorithm template for domain-based parallel irregular algorithms, Intl. J. Parallel Program, in press."},{"key":"10.1016\/j.parco.2013.04.012_b0250","series-title":"Programming with POSIX Threads","author":"Butenhof","year":"1997"},{"key":"10.1016\/j.parco.2013.04.012_b0255","unstructured":"K.H. Randall, Cilk: Efficient multithreaded computing, 1998."},{"issue":"2","key":"10.1016\/j.parco.2013.04.012_b0260","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/289918.289920","article-title":"Co-array Fortran for parallel programming","volume":"17","author":"Numrich","year":"1998","journal-title":"SIGPLAN Fortran Forum"},{"issue":"10","key":"10.1016\/j.parco.2013.04.012_b0265","doi-asserted-by":"crossref","first-page":"227","DOI":"10.1145\/1639949.1640106","article-title":"The design of a task parallel library","volume":"44","author":"Leijen","year":"2009","journal-title":"SIGPLAN Not."},{"key":"10.1016\/j.parco.2013.04.012_b0270","series-title":"Parallel Programming with Microsoft.NET \u2013 Design Patterns for Decomposition and Coordination on Multicore Architectures","author":"Campbell","year":"2010"}],"container-title":["Parallel Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/api.elsevier.com\/content\/article\/PII:S0167819113000562?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/api.elsevier.com\/content\/article\/PII:S0167819113000562?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2025,9,29]],"date-time":"2025-09-29T05:30:03Z","timestamp":1759123803000},"score":1,"resource":{"primary":{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/linkinghub.elsevier.com\/retrieve\/pii\/S0167819113000562"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,9]]},"references-count":54,"journal-issue":{"issue":"9","published-print":{"date-parts":[[2013,9]]}},"alternative-id":["S0167819113000562"],"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/j.parco.2013.04.012","relation":{},"ISSN":["0167-8191"],"issn-type":[{"value":"0167-8191","type":"print"}],"subject":[],"published":{"date-parts":[[2013,9]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"A framework for argument-based task synchronization with automatic detection of dependencies","name":"articletitle","label":"Article Title"},{"value":"Parallel Computing","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/j.parco.2013.04.012","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"Copyright \u00a9 2013 Elsevier B.V. All rights reserved.","name":"copyright","label":"Copyright"}]}}