{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,6,30]],"date-time":"2024-06-30T00:18:07Z","timestamp":1719706687503},"reference-count":37,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2016,7,15]],"date-time":"2016-07-15T00:00:00Z","timestamp":1468540800000},"content-version":"unspecified","delay-in-days":196,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2016]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We compare two inherently different approaches to implement complex process systems in Eden:<jats:italic>stable process systems<\/jats:italic>and a<jats:italic>compositional<\/jats:italic>approach. A<jats:italic>stable process system<\/jats:italic>is characterised by handling several computation stages in each of the participating processes. Often, processes communicate using streams of data, change behaviour with the different computation phases, and more often than not, exactly one process is allocated to each processor element. In contrast, a complex process system can also be achieved by<jats:italic>skeleton composition<\/jats:italic>of a number of elementary skeletons, such as parallel transformation, reduction, or special communication patterns. In a compositional implementation, each computation phase leads to a new set of interacting processes. When implementing complex parallel algorithms, skeleton composition is usually easier and more flexible, but has a larger overhead from additional process creation and communication. We present case studies of different parallel application kernels implemented as stable systems and using composition in Eden, including a comprehensive description of Eden's features. Our results show that the compositional performance loss can be alleviated by co-locating processes which directly communicate, and by using Eden's remote data concept to enable such direct communication. Moreover, Eden's parallel runtime system handles communication between co-located processes in an optimised way. EdenTV visualisations of execution traces are invaluable to analyse program characteristics and for targeted optimisations towards better process placement and communication avoidance.<\/jats:p>","DOI":"10.1017\/s0956796816000083","type":"journal-article","created":{"date-parts":[[2016,7,15]],"date-time":"2016-07-15T10:06:03Z","timestamp":1468577163000},"source":"Crossref","is-referenced-by-count":1,"title":["Skeleton composition versus stable process systems in Eden"],"prefix":"10.1017","volume":"26","author":[{"given":"M.","family":"DIETERLE","sequence":"first","affiliation":[]},{"given":"T.","family":"HORSTMEYER","sequence":"additional","affiliation":[]},{"given":"R.","family":"LOOGEN","sequence":"additional","affiliation":[]},{"given":"J.","family":"BERTHOLD","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2016,7,15]]},"reference":[{"key":"S0956796816000083_ref35","volume-title":"Iterative Methods for Sparse Linear Systems","author":"Saad","year":"1996"},{"key":"S0956796816000083_ref4","unstructured":"Benoit A. & Cole M. (2002) eSkel \u2014 The Edinburgh Skeleton Library. Available at: http:\/\/homepages.inf.ed.ac.uk\/mic\/eSkel\/ [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref2","volume-title":"Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages. HOPL III","author":"Armstrong","year":"2007"},{"key":"S0956796816000083_ref26","doi-asserted-by":"publisher","DOI":"10.1016\/0167-8191(93)90019-H"},{"key":"S0956796816000083_ref13","doi-asserted-by":"crossref","first-page":"10","DOI":"10.1145\/1248648.1248652","volume-title":"DAMP 2007, Proceedings of the POPL 2007 Workshop on Declarative Aspects of Multicore Programming","author":"Chakravarty","year":"2007"},{"key":"S0956796816000083_ref16","first-page":"73","volume-title":"Practical Aspects of Declarative Languages, 12th International Symposium, PADL 2010","author":"Dieterle","year":"2010"},{"key":"S0956796816000083_ref7","first-page":"73","volume-title":"IFL 2006, 18th Intl. Symposium on the Implementation of Functional Languages","author":"Berthold","year":"2007"},{"key":"S0956796816000083_ref18","doi-asserted-by":"crossref","unstructured":"Ferreira J. F. , Sobral J. L. & Proen\u00e7a A. J. (2006) JaSkel: A Java skeleton-based framework for structured cluster and grid computing. CCGrid 2006, 6th IEEE International Symposium on Cluster Computing and the Grid. IEEE Computer Society, pp. 301\u2013304.","DOI":"10.1109\/CCGRID.2006.65"},{"key":"S0956796816000083_ref19","unstructured":"GHC. (1991\u20132015) The Glasgow Haskell Compiler. Available at: http:\/\/www.haskell.org\/ghc [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref11","first-page":"1","volume-title":"POPL 2005, Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"Chakravarty","year":"2005"},{"key":"S0956796816000083_ref34","first-page":"98","volume-title":"FPCA 1987, Intl. Conf. on Functional Programming Languages and Computer Architecture","author":"Peyton Jones","year":"1987"},{"key":"S0956796816000083_ref28","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-0097-3_4"},{"key":"S0956796816000083_ref32","first-page":"91","volume-title":"Haskell 2010, Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell","author":"Marlow","year":"2010"},{"key":"S0956796816000083_ref17","first-page":"118","volume-title":"Haskell 2011: Proceedings of the 4th ACM Symposium on Haskell","author":"Epstein","year":"2011"},{"key":"S0956796816000083_ref1","unstructured":"Aditya Sh. , Arvind , Augustsson L. , Maessen J.-W. & Nikhil R. S. (1995) Semantics of pH: A parallel dialect of Haskell. In Proceedings of the Haskell Workshop, Hudak P. (ed), YALE Research Report DCS\/RR-1075, Yale University. Available at https:\/\/www.haskell.org\/haskell-workshop\/1995\/HW1995-Proceedings.pdf [Accessed 27 Apr. 2016] pp. 35\u201349."},{"key":"S0956796816000083_ref21","unstructured":"Haskell. (2010) Haskell 2010 Language Report. edited by S. Marlow . Available at: http:\/\/www.haskell.org\/ [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref24","unstructured":"Kuchen H. (2007) The M\u00fcnster Skeleton Library Muesli. Universit\u00e4t M\u00fcnster, Available at: http:\/\/www.wi1.uni-muenster.de\/pi\/forschung\/Skeletons\/ [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref5","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03869-3_91"},{"key":"S0956796816000083_ref6","first-page":"73","volume-title":"Parallel Computing Technologies, 10th International Conference, PaCT 2009","author":"Berthold","year":"2009"},{"key":"S0956796816000083_ref27","doi-asserted-by":"crossref","first-page":"25","DOI":"10.1145\/2364506.2364511","volume-title":"Haskell 2012, Proceedings of the 2012 Haskell Symposium","author":"Lippmeier","year":"2012"},{"key":"S0956796816000083_ref25","unstructured":"Leshchinskiy R. (2008) Vector library. Available at: http:\/\/hackage.haskell.org\/package\/vector [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref36","first-page":"78","volume-title":"PLDI 1996, Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation","author":"Trinder","year":"1996"},{"key":"S0956796816000083_ref8","first-page":"121","volume-title":"Parallel Computing: Architectures, Algorithms and Applications. Proceedings of the International Conference Parco 2007","author":"Berthold","year":"2008"},{"key":"S0956796816000083_ref20","doi-asserted-by":"publisher","DOI":"10.1002\/spe.1026"},{"key":"S0956796816000083_ref29","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796805005526"},{"key":"S0956796816000083_ref31","first-page":"67","volume-title":"Haskell 2010, Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell","author":"Mainland","year":"2010"},{"key":"S0956796816000083_ref9","doi-asserted-by":"publisher","DOI":"10.1145\/227234.227246"},{"key":"S0956796816000083_ref10","unstructured":"Breitinger S. (1998) Design and Implementation of the Parallel Functional Language Eden. Ph.D. thesis, Philipps-University of Marburg, Germany. Available at http:\/\/archiv.ub.uni-marburg.de\/diss\/z1999\/0142\/ [Accessed 27 Apr. 2016]."},{"key":"S0956796816000083_ref15","first-page":"18","volume-title":"IFL 2012, Implementation and Application of Functional Languages, Revised selected papers","author":"Dieterle","year":"2013"},{"key":"S0956796816000083_ref33","first-page":"71","volume-title":"Haskell 2011, Proceedings of the 4th ACM Symposium on Haskell","author":"Marlow","year":"2011"},{"key":"S0956796816000083_ref22","unstructured":"Hewitt C. , Bishop P. & Steiger R. (1973) A universal modular ACTOR formalism for artificial intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence. IJCAI'73. Morgan Kaufmann, pp. 235\u2013245."},{"key":"S0956796816000083_ref23","first-page":"81","volume-title":"Haskell 2009, Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell","author":"Jones","year":"2009"},{"key":"S0956796816000083_ref14","volume-title":"Algorithmic Skeletons: Structured Management of Parallel Computation","author":"Cole","year":"1989"},{"key":"S0956796816000083_ref37","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796897002967"},{"key":"S0956796816000083_ref3","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330070305"},{"key":"S0956796816000083_ref12","first-page":"3","volume-title":"DAMP 2011, Proceedings of the 6th Workshop on Declarative Aspects of Multicore Programming","author":"Chakravarty","year":"2011"},{"key":"S0956796816000083_ref30","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1145\/2633357.2633363","volume-title":"Haskell 2014: Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell","author":"Maier","year":"2014"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796816000083","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,7,3]],"date-time":"2022-07-03T03:52:39Z","timestamp":1656820359000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796816000083\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016]]},"references-count":37,"alternative-id":["S0956796816000083"],"URL":"https:\/\/doi.org\/10.1017\/s0956796816000083","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016]]},"article-number":"e11"}}