Functional High Performance Financial IT

The world of finance faces the computational performance challenge of massively expanding data volumes, extreme response time requirements, and compute-intensive complex (risk) analyses. Simultaneously, new international regulatory rules require considerably more transparency and external auditability of financial institutions, including their software systems. To top it off, increased product variety and customisation necessitates shorter software development cycles and higher development productivity. In this paper, we report about Hiperfit, a recently etablished strategic research center at the University of Copenhagen that attacks this triple challenge of increased performance, transparency and productivity in the financial sector by a novel integration of financial mathematics, domain-specific language technology, parallel functional programming, and emerging massively parallel hardware. Hiperfit seeks to contribute to effective high-performance modelling by domain specialists, and to functional programming on highly parallel computer architectures in particular, by pursuing a research trajectory informed by the application domain of finance, but without limiting its research scope, generality, or applicablity, to finance. Research in Hiperfit draws on and aims at producing new research in its different scientific fields, and it fosters synergies between them to deliver showcases of modern language technology and advanced functional methods with the potential for disruptive impact on an area of increasing societal importance.

[1]  Ganesh Sittampalam,et al.  Paradise: a two-stage DSL embedded in Haskell , 2008, ICFP 2008.

[2]  Simon L. Peyton Jones,et al.  Runtime support for multicore Haskell , 2009, ICFP.

[3]  Simon L. Peyton Jones,et al.  GUM: a portable parallel implementation of Haskell , 1996, PLDI '96.

[4]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[5]  Rita Loogen,et al.  Parallel Coordination Made Explicit in a Functional Setting , 2006, IFL.

[6]  Sergei Gorlatch,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2002, Springer London.

[7]  Martin Erwig,et al.  Functional Pearls: Probabilistic functional programming in Haskell , 2006, J. Funct. Program..

[8]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[9]  Hans-Wolfgang Loidl,et al.  Seq no more: better strategies for parallel Haskell , 2010 .

[10]  J. W. Backus,et al.  Can programming be liberated from the von Neumann style , 1977 .

[11]  Greg J. Michaelson,et al.  Low Pain vs No Pain Multi-core Haskells , 2009, Trends in Functional Programming.

[12]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[13]  Shail Aditya,et al.  Semantics of pH: A parallel dialect of Haskell , 1995 .

[14]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[15]  Rita Loogen,et al.  Hierarchical Master-Worker Skeletons , 2008, PADL.

[16]  Robert Bigelow,et al.  A status report , 1992, Comput. Law Secur. Rev..

[17]  John H. Reppy,et al.  Manticore: a heterogeneous parallel language , 2007, DAMP '07.

[18]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[19]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[20]  Simon L. Peyton Jones,et al.  Composing contracts: an adventure in financial engineering (functional pearl) , 2000, ICFP '00.

[21]  Kevin Hammond,et al.  Research Directions in Parallel Functional Programming , 1999, Springer London.

[22]  Jakob Grue Simonsen,et al.  Compositional specification of commercial contracts , 2006, International Journal on Software Tools for Technology Transfer.

[23]  Guy E. Blelloch,et al.  Programming parallel algorithms , 1996, CACM.

[24]  Simon L. Peyton Jones,et al.  Data parallel Haskell: a status report , 2007, DAMP '07.

[25]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[26]  M. Erwig,et al.  Probabilistic Functional Programming in Haskell , 2005 .

[27]  Simon L. Peyton Jones,et al.  Regular, shape-polymorphic, parallel arrays in Haskell , 2010, ICFP '10.

[28]  Hans-Wolfgang Loidl,et al.  Algorithm + strategy = parallelism , 1998, Journal of Functional Programming.

[29]  Geoffrey Mainland,et al.  Nikola: embedding compiled GPU functions in Haskell , 2010 .

[30]  Jeff Lewis Cryptol: specification, implementation and verification of high-grade cryptographic applications , 2007, FMSE '07.

[31]  Sergei Gorlatch,et al.  Send-receive considered harmful: Myths and realities of message passing , 2004, TOPL.

[32]  Zoltán Horváth,et al.  Efficient Code Generation from the High-level Domain-specific Language Feldspar for DSPs , 2010, CGO 2010.

[33]  Paul Hudak,et al.  First-class monadic schedules , 2004, TOPL.

[34]  BackusJohn Can programming be liberated from the von Neumann style , 1978 .

[35]  Paul Glasserman,et al.  Monte Carlo Methods in Financial Engineering , 2003 .

[36]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[37]  Marko C. J. D. van Eekelen,et al.  Functional Programming and Parallel Graph Rewriting , 1993 .

[38]  John H. Reppy,et al.  Concurrent programming in ML , 1999 .

[39]  Manuel M. T. Chakravarty,et al.  Accelerating Haskell array codes with multicore GPUs , 2011, DAMP '11.

[40]  Claes Wikström,et al.  Concurrent programming in ERLANG (2nd ed.) , 1996 .

[41]  Simon Marlow,et al.  Comparing and Optimising Parallel Haskell Implementations for Multicore Machines , 2009, 2009 International Conference on Parallel Processing Workshops.

[42]  Henk Sips,et al.  Euro-Par 2009 Parallel Processing, 15th International Euro-Par Conference, Delft, The Netherlands, August 25-28, 2009. Proceedings , 2009, Euro-Par.

[43]  Rita Loogen,et al.  Implementing Parallel Google Map-Reduce in Eden , 2009, Euro-Par.

[44]  Miguel P. Monteiro,et al.  A domain-specific language for parallel and grid computing , 2008, DSAL@AOSD.

[45]  Rita Loogen,et al.  Under Consideration for Publication in J. Functional Programming Parallel Functional Programming in Eden , 2022 .