{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:08Z","timestamp":1779836708016,"version":"3.53.1"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"6","license":[{"start":{"date-parts":[[2001,3,1]],"date-time":"2001-03-01T00:00:00Z","timestamp":983404800000},"content-version":"unspecified","delay-in-days":120,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2000,11]]},"abstract":"<jats:p>\n                    We propose a parallel specialized language that ensures portable and cost-predictable \nimplementations on parallel computers. The language is basically a first-order, recursion-less, \nstrict functional language equipped with a collection of higher-order functions or skeletons. \nThese skeletons apply on (nested) vectors and can be grouped into four classes: computation, \nreorganization, communication and mask skeletons. The compilation process is described as \na series of transformations and analyses leading to\n                    <jats:sc>SPMD<\/jats:sc>\n                    -like functional programs which can \nbe directly translated into real parallel code. The language restrictions enforce a programming \ndiscipline whose benefit is to allow a static, symbolic and accurate cost analysis. The parallel \ncost takes into account both load balancing and communications, and can be statically \nevaluated even when the actual size of vectors or the number of processors are unknown. It is \nused to automatically select the best data distribution among a set of standard distributions. \nInterestingly, this work can be seen as a cross-fertilization between techniques developed \nwithin the F\n                    <jats:sc>ORTRAN<\/jats:sc>\n                    parallelization, skeleton and functional programming communities.\n                  <\/jats:p>","DOI":"10.1017\/s0956796800003816","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T09:26:15Z","timestamp":1027761975000},"page":"561-605","source":"Crossref","is-referenced-by-count":4,"title":["Compilation of a specialized functional language for massively parallel computers"],"prefix":"10.1017","volume":"10","author":[{"given":"PASCAL","family":"FRADET","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"JULIEN","family":"MALLET","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2001,3,1]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800003816","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:34:52Z","timestamp":1779834892000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800003816\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2000,11]]},"references-count":0,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2000,11]]}},"alternative-id":["S0956796800003816"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800003816","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2000,11]]}}}