{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,27]],"date-time":"2023-10-27T08:43:10Z","timestamp":1698396190428},"reference-count":33,"publisher":"Wiley","issue":"8","license":[{"start":{"date-parts":[[2006,10,27]],"date-time":"2006-10-27T00:00:00Z","timestamp":1161907200000},"content-version":"vor","delay-in-days":3983,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Concurrency: Pract. Exper."],"published-print":{"date-parts":[[1995,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Our toolkit for the design and implementation of parallel functional programs supports the stepwise development of parallel programs from a high level sequential specification to an optimised parallel implementation. The toolkit is used as follows:\n<jats:list list-type=\"explicit-label\">\n<jats:list-item><jats:p>The algorithm to be implemented is specified in a functional language. The program is debugged and tested using an interpreter.<\/jats:p><\/jats:list-item>\n<jats:list-item><jats:p>The program is compiled for a sequential machine. Its performance is analysed and improved.<\/jats:p><\/jats:list-item>\n<jats:list-item><jats:p>Annotation\u2010driven transformations are applied to the program to indicate parallel tasks. Simulations at task level, basic block level and bus transaction level make it possible to analyse the parallel performance of the program at three levels of detail.<\/jats:p><\/jats:list-item>\n<jats:list-item><jats:p>When the performance is optimised using the simulators, the program is executed on a genuine parallel machine.<\/jats:p><\/jats:list-item>\n<\/jats:list><\/jats:p><jats:p>Several programs have been developed with the toolkit. A program that simulates tidal flow in an estuary of the North sea is presented as a case study to demonstrate the merits of the toolkit when developing complex parallel programs.<\/jats:p><jats:p>The toolkit not only supports the design of parallel applications, it also allows the study of important concepts in parallel computer architecture. These include the behaviour of cached memory systems, bus protocols, scheduling algorithms and memory management algorithms.<\/jats:p>","DOI":"10.1002\/cpe.4330070803","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T15:12:07Z","timestamp":1163776327000},"page":"765-793","source":"Crossref","is-referenced-by-count":6,"title":["A toolkit for parallel functional programming"],"prefix":"10.1002","volume":"7","author":[{"given":"Pieter H.","family":"Hartel","sequence":"first","affiliation":[]},{"given":"Rutger F. H.","family":"Hofman","sequence":"additional","affiliation":[]},{"given":"Koen G.","family":"Langendoen","sequence":"additional","affiliation":[]},{"given":"Henk L.","family":"Muller","sequence":"additional","affiliation":[]},{"given":"Willem G.","family":"Vree","sequence":"additional","affiliation":[]},{"given":"L. O.","family":"Hertzberger","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,27]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.98"},{"key":"e_1_2_1_3_2","volume-title":"Introduction to Functional Programming","author":"Bird R. S.","year":"1988"},{"key":"e_1_2_1_4_2","volume-title":"The Implementation of Functional Programming Languages","author":"Peyton Jones S. L.","year":"1987"},{"key":"e_1_2_1_5_2","first-page":"201","volume-title":"2nd Functional Programming Languages and Computer Architecture, LNCS","author":"Turner D. A.","year":"1985"},{"key":"e_1_2_1_6_2","unstructured":"D. A.Turner Miranda System Manual Research Software Ltd 23 St Augustines Road Canterbury Kent CT1 1XP UK April1990."},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380240202"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-55984-1_26"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-56891-3_12"},{"key":"e_1_2_1_10_2","volume-title":"Functional Programming for Loosely\u2010Coupled Multiprocessors","author":"Kelly P. H. J.","year":"1989"},{"key":"e_1_2_1_11_2","unstructured":"W. G.Vree Design considerations for a parallel reduction machine PhD thesis Department of Computer Systems University of Amsterdam December1989."},{"key":"e_1_2_1_12_2","unstructured":"W. G.VreeandP. H.Hartel \u2018Communication lifting: fixed point computation for parallelism \u2019J. Funct. Program. (to be published) also Technical report CS\u201092\u201007 Department of Computer Systems University of Amsterdam 1994."},{"key":"e_1_2_1_13_2","first-page":"471","volume-title":"Information Processing","author":"Kahn G.","year":"1974"},{"key":"e_1_2_1_14_2","unstructured":"R. F. H.Hofman Scheduling and grain size control PhD thesis Department of Computer Systems University of Amsterdam May1994."},{"key":"e_1_2_1_15_2","first-page":"193","volume-title":"Open Bus Systems '92, Z\u00fcrich, Switzerland","author":"Muller H. L.","year":"1992"},{"key":"e_1_2_1_16_2","first-page":"363","volume-title":"Parallel Processing and Applications","author":"Vree W. G.","year":"1987"},{"key":"e_1_2_1_17_2","unstructured":"A. W.Heemink Storm surge prediction using Kalman filtering PhD thesis Twente Technical University September1986."},{"key":"e_1_2_1_18_2","unstructured":"P. J.van der Houwen \u2018Finite difference methods for solving partial differential equations \u2019 Mathematical centre tracts 20 Mathematical Centre Amsterdam 1968."},{"key":"e_1_2_1_19_2","unstructured":"P. H.HartelandW. G.Vree \u2018Experiments with destructive updates in a lazy functional language \u2019Comput. Lang. (to be published); also Technical Report CS\u201093\u201005 Department of Computer Systems University of Amsterdam 1994."},{"key":"e_1_2_1_20_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-18317-5_9"},{"key":"e_1_2_1_21_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330050503"},{"key":"e_1_2_1_22_2","doi-asserted-by":"crossref","first-page":"28","DOI":"10.1007\/3-540-51285-3_31","volume-title":"2nd Parallel Architectures and Languages Europe (PARLE), LNCS 365\/366","author":"Hey A. J. G.","year":"1989"},{"key":"e_1_2_1_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/158439.158908"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1993.1050"},{"key":"e_1_2_1_25_2","doi-asserted-by":"crossref","first-page":"286","DOI":"10.1007\/3540512845_46","volume-title":"2nd Parallel Architectures and Languages Europe (PARLE), LNCS 365\/366","author":"Darlington J.","year":"1989"},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/31.3.229"},{"key":"e_1_2_1_27_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/35.2.138"},{"key":"e_1_2_1_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/135226.135231"},{"key":"e_1_2_1_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/2.67190"},{"key":"e_1_2_1_30_2","volume-title":"KSR Technical Summary","author":"Kendall Square Research","year":"1992"},{"key":"e_1_2_1_31_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330050705"},{"key":"e_1_2_1_32_2","first-page":"435","volume-title":"Supercomputing","author":"Beguelin A.","year":"1991"},{"key":"e_1_2_1_33_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330020404"},{"key":"e_1_2_1_34_2","unstructured":"J.Jeuring Theories for algorithm calculation PhD thesis Department of Computer Science University of Utrecht The Netherlands 1992."}],"container-title":["Concurrency: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fcpe.4330070803","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cpe.4330070803","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,26]],"date-time":"2023-10-26T04:10:55Z","timestamp":1698293455000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cpe.4330070803"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1995,12]]},"references-count":33,"journal-issue":{"issue":"8","published-print":{"date-parts":[[1995,12]]}},"alternative-id":["10.1002\/cpe.4330070803"],"URL":"https:\/\/doi.org\/10.1002\/cpe.4330070803","archive":["Portico"],"relation":{},"ISSN":["1040-3108","1096-9128"],"issn-type":[{"value":"1040-3108","type":"print"},{"value":"1096-9128","type":"electronic"}],"subject":[],"published":{"date-parts":[[1995,12]]}}}