{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,3,2]],"date-time":"2024-03-02T21:01:26Z","timestamp":1709413286839},"reference-count":69,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2016,6,27]],"date-time":"2016-06-27T00:00:00Z","timestamp":1466985600000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100007398","name":"Danish Council for Strategic Research","doi-asserted-by":"crossref","award":["10-092299"],"id":[{"id":"10.13039\/100007398","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2016,6,27]]},"abstract":"Commodity many-core hardware is now mainstream, but parallel programming models are still lagging behind in efficiently utilizing the application parallelism. There are (at least) two principal reasons for this. First, real-world programs often take the form of a deeply nested composition of parallel operators, but mapping the available parallelism to the hardware requires a set of transformations that are tedious to do by hand and beyond the capability of the common user. Second, the best optimization strategy, such as what to parallelize and what to efficiently sequentialize, is often sensitive to the input dataset and therefore requires multiple code versions that are optimized differently, which also raises maintainability problems.<\/jats:p>\n \n This article presents three array-based applications from the financial domain that are suitable for\n gpgpu<\/jats:sc>\n execution. Common benchmark-design practice has been to provide the same code for the sequential and parallel versions that are optimized for only one class of datasets. In comparison, we document (1) all available parallelism via nested map-reduce functional combinators, in a simple Haskell implementation that closely resembles the original code structure, (2) the invariants and code transformations that govern the main trade-offs of a data-sensitive optimization space, and (3) report target\n cpu<\/jats:sc>\n and multiversion\n gpgpu<\/jats:sc>\n code together with an evaluation that demonstrates optimization trade-offs and other difficulties. We believe that this work provides useful insight into the language constructs and compiler infrastructure capable of expressing and optimizing such applications, and we report in-progress work in this direction.\n <\/jats:p>","DOI":"10.1145\/2898354","type":"journal-article","created":{"date-parts":[[2016,6,27]],"date-time":"2016-06-27T15:39:29Z","timestamp":1467041969000},"page":"1-27","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["FinPar"],"prefix":"10.1145","volume":"13","author":[{"given":"Christian","family":"Andreetta","sequence":"first","affiliation":[{"name":"Nordea Capital Markets, Copenhagen, Denmark"}]},{"given":"Vivien","family":"B\u00e9got","sequence":"additional","affiliation":[{"name":"LexiFi"}]},{"given":"Jost","family":"Berthold","sequence":"additional","affiliation":[{"name":"University of Copenhagen"}]},{"given":"Martin","family":"Elsman","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}]},{"given":"Fritz","family":"Henglein","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}]},{"given":"Troels","family":"Henriksen","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}]},{"given":"Maj-Britt","family":"Nordfang","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}]},{"given":"Cosmin E.","family":"Oancea","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Copenhagen, Denmark"}]}],"member":"320","published-online":{"date-parts":[[2016,6,27]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the Conference on Languages and Compilers for Parallel Computing (LCPC\u201911)","author":"Amini Mehdi","year":"2011","unstructured":"Mehdi Amini , Fabien Coelho , Francois Irigoin , and Ronan Keryell . 2011 . Static compilation analysis for host-accelerator communication optimization . In Proceedings of the Conference on Languages and Compilers for Parallel Computing (LCPC\u201911) . 237--251. Mehdi Amini, Fabien Coelho, Francois Irigoin, and Ronan Keryell. 2011. Static compilation analysis for host-accelerator communication optimization. In Proceedings of the Conference on Languages and Compilers for Parallel Computing (LCPC\u201911). 237--251."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784747"},{"key":"e_1_2_1_3_1","series-title":"Lecture Notes in Computer Science","volume-title":"Foundations of Software Technology and Theoretical Computer Science","author":"Barendsen Erik","unstructured":"Erik Barendsen and Sjaak Smetsers . 1993. Conventional and uniqueness typing in graph rewrite systems . In Foundations of Software Technology and Theoretical Computer Science . Lecture Notes in Computer Science , Vol. 761 . Springer , 41--51. Erik Barendsen and Sjaak Smetsers. 1993. Conventional and uniqueness typing in graph rewrite systems. In Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science, Vol. 761. Springer, 41--51."},{"key":"e_1_2_1_4_1","volume-title":"Basel III: A Global Regulatory Framework for More Resilient Banks and Banking Systems. Bank for International Settlements","author":"Basel Committee on Banking Supervision. 2010.","unstructured":"Basel Committee on Banking Supervision. 2010. Basel III: A Global Regulatory Framework for More Resilient Banks and Banking Systems. Bank for International Settlements , Basel, Switzerland . Basel Committee on Banking Supervision. 2010. Basel III: A Global Regulatory Framework for More Resilient Banks and Banking Systems. Bank for International Settlements, Basel, Switzerland."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_14"},{"key":"e_1_2_1_6_1","volume-title":"Thrust: A productivity-oriented library for CUDA. In GPU Computing Gems Jade Edition, W.-M","author":"Bell Nathan","year":"2011","unstructured":"Nathan Bell and Jared Hoberock . 2011 . Thrust: A productivity-oriented library for CUDA. In GPU Computing Gems Jade Edition, W.-M . W. Hwu (Ed.). Morgan Kaufmann , San Francisco, CA . Nathan Bell and Jared Hoberock. 2011. Thrust: A productivity-oriented library for CUDA. In GPU Computing Gems Jade Edition, W.-M. W. Hwu (Ed.). Morgan Kaufmann, San Francisco, CA."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364527.2364563"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/42675.42676"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1086\/260062"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/227234.227246"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.42122"},{"key":"e_1_2_1_12_1","volume-title":"Prefix Sums and Their Applications","author":"Blelloch Guy E.","unstructured":"Guy E. Blelloch . 1990. Prefix Sums and Their Applications . Carnegie Mellon University, Pittsburgh , PA. Guy E. Blelloch. 1990. Prefix Sums and Their Applications. Carnegie Mellon University, Pittsburgh, PA."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1994.1038"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11222-006-8769-1"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/42288.214372"},{"key":"e_1_2_1_16_1","volume-title":"Algorithms for Minimization without Derivatives","author":"Brent Richard P.","unstructured":"Richard P. Brent . 1973. Algorithms for Minimization without Derivatives . Prentice Hall . Richard P. Brent. 1973. Algorithms for Minimization without Derivatives. Prentice Hall."},{"key":"e_1_2_1_17_1","volume-title":"Interest Rate Models\u2014Theory and Practice: With Smile, Inflation and Credit","author":"Brigo Damiano","unstructured":"Damiano Brigo and Fabio Mercurio . 2006. Interest Rate Models\u2014Theory and Practice: With Smile, Inflation and Credit ( 2 nd ed.). Springer . Damiano Brigo and Fabio Mercurio. 2006. Interest Rate Models\u2014Theory and Practice: With Smile, Inflation and Credit (2nd ed.). Springer.","edition":"2"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926358"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. 119--130","author":"Chicha Y.","unstructured":"Y. Chicha , M. Lloyd , C. Oancea , and S. M. Watt . 2004. Parametric polymorphism for computer algebra software components . In Proceedings of the International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. 119--130 . Y. Chicha, M. Lloyd, C. Oancea, and S. M. Watt. 2004. Parametric polymorphism for computer algebra software components. In Proceedings of the International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. 119--130."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103736.2103740"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0305004100023197"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/876874.878706"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254066"},{"key":"e_1_2_1_24_1","volume-title":"GPU Computing Gems Jade Edition, W.-M","author":"Egloff Daniel","unstructured":"Daniel Egloff . 2011. Pricing financial derivatives with high performance finite difference solvers on GPUs . In GPU Computing Gems Jade Edition, W.-M . W. Hwu (Ed.). Morgan Kaufmann , San Francisco, CA , 309--322. Daniel Egloff. 2011. Pricing financial derivatives with high performance finite difference solvers on GPUs. In GPU Computing Gems Jade Edition, W.-M. W. Hwu (Ed.). Morgan Kaufmann, San Francisco, CA, 309--322."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2677010"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627390"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-04132-2_13"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407931"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364474.2364488"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1964218.1964221"},{"key":"e_1_2_1_31_1","volume-title":"Monte Carlo Methods in Financial Engineering","author":"Glasserman Paul","unstructured":"Paul Glasserman . 2004. Monte Carlo Methods in Financial Engineering . Springer, New York , NY. Paul Glasserman. 2004. Monte Carlo Methods in Financial Engineering. Springer, New York, NY."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-006-0018-x"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926359"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/36.3.238"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1075382.1075385"},{"key":"e_1_2_1_36_1","volume-title":"Exploiting Functional Invariants to Optimise Parallelism: A Dataflow Approach. Master\u2019s Thesis","author":"Henriksen Troels","unstructured":"Troels Henriksen . 2014. Exploiting Functional Invariants to Optimise Parallelism: A Dataflow Approach. Master\u2019s Thesis . DIKU , Copenhagen, Denmark . Troels Henriksen. 2014. Exploiting Functional Invariants to Optimise Parallelism: A Dataflow Approach. Master\u2019s Thesis. DIKU, Copenhagen, Denmark."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2636228.2636238"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502323.2502328"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627388"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/321250.321259"},{"key":"e_1_2_1_41_1","volume-title":"Futures and Other Derivatives","author":"Hull J.","unstructured":"J. Hull . 2009. Options , Futures and Other Derivatives . Prentice Hall . J. Hull. 2009. Options, Futures and Other Derivatives. Prentice Hall."},{"key":"e_1_2_1_42_1","volume-title":"A Programming Language","author":"Iverson Kenneth E.","unstructured":"Kenneth E. Iverson . 1962. A Programming Language . John Wiley & Sons . Kenneth E. Iverson. 1962. A Programming Language. John Wiley & Sons."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2006.85"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1002\/wilj.26"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.2011.41"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1198\/jcgs.2010.10039"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1504176.1504194"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.5555\/647476.727754"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502323.2502330"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863523.1863533"},{"key":"e_1_2_1_51_1","volume-title":"The Definition of Standard ML (Revised)","author":"Milner Robin","unstructured":"Robin Milner , Mads Tofte , Robert Harper , and David MacQueen . 1997. The Definition of Standard ML (Revised) . MIT Press , Cambridge, MA . Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. 1997. The Definition of Standard ML (Revised). MIT Press, Cambridge, MA."},{"key":"e_1_2_1_52_1","volume-title":"Retrieved","author":"Munk Claus","year":"2007","unstructured":"Claus Munk . 2007 . Introduction to the Numerical Solution of Partial Differential Equations in Finance . Retrieved May 10, 2016, from http:\/\/mit.econ.au.dk\/vip_htm\/cmunk\/noter\/pdenote.pdf. Claus Munk. 2007. Introduction to the Numerical Solution of Partial Differential Equations in Finance. Retrieved May 10, 2016, from http:\/\/mit.econ.au.dk\/vip_htm\/cmunk\/noter\/pdenote.pdf."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/2541940.2541964"},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of the International Conference on Parallel Computing (ParCo\u201911)","author":"Nord Fredrik","year":"2011","unstructured":"Fredrik Nord and Erwin Laure . 2011 . Monte Carlo option pricing with graphics processing units . In Proceedings of the International Conference on Parallel Computing (ParCo\u201911) . Fredrik Nord and Erwin Laure. 2011. Monte Carlo option pricing with graphics processing units. In Proceedings of the International Conference on Parallel Computing (ParCo\u201911)."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364474.2364484"},{"key":"e_1_2_1_56_1","volume-title":"Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201915)","author":"Cosmin","unstructured":"Cosmin E. Oancea and Lawrence Rauchwerger. 2015. Scalable conditional induction variable (CIV) analysis . In Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201915) . Cosmin E. Oancea and Lawrence Rauchwerger. 2015. Scalable conditional induction variable (CIV) analysis. In Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201915)."},{"key":"e_1_2_1_57_1","volume-title":"Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA\u201905)","volume":"5","author":"Oancea Cosmin E.","unstructured":"Cosmin E. Oancea , Jason W. A. Selby , Mark Giesbrecht , and Stephen M. Watt . 2005. Distributed models of thread level speculation . In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA\u201905) , Vol. 5 . 920--927. Cosmin E. Oancea, Jason W. A. Selby, Mark Giesbrecht, and Stephen M. Watt. 2005. Distributed models of thread level speculation. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA\u201905), Vol. 5. 920--927."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/1073884.1073921"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926449"},{"key":"e_1_2_1_60_1","unstructured":"James Reinders. 2007. Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism. O\u2019Reilly Media. James Reinders. 2007. Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism. O\u2019Reilly Media."},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/1345206.1345220"},{"key":"e_1_2_1_62_1","volume-title":"Retrieved","author":"Standard Performance Evaluation Corporation","year":"2014","unstructured":"Standard Performance Evaluation Corporation . 2014 . SPEC ACCEL . Retrieved May 10, 2016, from https:\/\/www.spec.org\/accel\/. Standard Performance Evaluation Corporation. 2014. SPEC ACCEL. Retrieved May 10, 2016, from https:\/\/www.spec.org\/accel\/."},{"key":"e_1_2_1_63_1","first-page":"661","article-title":"Gaussian quadratures for the integrals ∫\u221e0 exp( − x2)f(x)dx and ∫b0 exp( − x2)f(x)dx","volume":"23","author":"Steen N. M.","year":"1969","unstructured":"N. M. Steen , G. D. Byrne , and E. M. Gelbard . 1969 . Gaussian quadratures for the integrals ∫\u221e0 exp( − x2)f(x)dx and ∫b0 exp( − x2)f(x)dx . Mathematics of Computation 23 , 661 -- 671 . N. M. Steen, G. D. Byrne, and E. M. Gelbard. 1969. Gaussian quadratures for the integrals ∫\u221e0 exp( − x2)f(x)dx and ∫b0 exp( − x2)f(x)dx. Mathematics of Computation 23, 661--671.","journal-title":"Mathematics of Computation"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1008202821328"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89740-8_1"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2014.6983039"},{"key":"e_1_2_1_67_1","volume-title":"Fundamentals of Matrix Computations","author":"Watkins David","unstructured":"David Watkins . 1991. Fundamentals of Matrix Computations . Wiley , New York, NY . David Watkins. 1991. Fundamentals of Matrix Computations. Wiley, New York, NY."},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.2307\/2347330"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806606"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2898354","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,31]],"date-time":"2022-12-31T07:41:47Z","timestamp":1672472507000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2898354"}},"subtitle":["A Parallel Financial Benchmark"],"short-title":[],"issued":{"date-parts":[[2016,6,27]]},"references-count":69,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2016,6,27]]}},"alternative-id":["10.1145\/2898354"],"URL":"https:\/\/doi.org\/10.1145\/2898354","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,6,27]]},"assertion":[{"value":"2015-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-06-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}