Skip to main content

Functional High Performance Financial IT

The Hiperfit Research Center in Copenhagen

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7193))

Abstract

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.

Hiperfit (http://hiperfit.dk) is a strategic research center funded by the Danish Council for Strategic Research (DSF) under grant no. 10-092299, founded in cooperation with the following partners from the financial industry: Danske Bank, Jyske Bank, LexiFi, Nordea, Nykredit Bank, and SimCorp.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   72.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aditya, S., Arvind, A.L., Maessen, J.W., Nikhil, R.S.: Semantics of pH: A parallel dialect of Haskell. In: Hudak, P. (ed.) Proceedings of the Haskell Workshop, La Jolla, USA, pp. 35–49 (1995)

    Google Scholar 

  2. Andersen, J., Elsborg, E., Henglein, F., Simonsen, J.G., Stefansen, C.: Compositional specification of commercial contracts. International Journal on Software Tools for Technology Transfer (STTT) 8(6), 485–516 (2006)

    Google Scholar 

  3. Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang., 2nd edn. Prentice Hall, Hertfordshire (1996)

    Google Scholar 

  4. Astapov, D.: Parallel Haskell project underway. Blog post (October 2010), http://www.well-typed.com/blog/48

  5. Aswad, M., Trinder, P., Al Zain, A.D., Michaelson, G., Berthold, J.: Low Pain vs. No Pain Multicore Haskells. In: Horváth, Z., Zsók, V., Achten, P., Koopman, P. (eds.) Trends in Functional Programming (TFP 2009), pp. 49–64. Intellect, Exeter (2010)

    Google Scholar 

  6. Augustsson, L., Mansell, H., Sittampalam, G.: Paradise: A two-stage DSL embedded in Haskell. In: ICFP 2008, Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming, pp. 225–228. ACM, New York (2008)

    Chapter  Google Scholar 

  7. Backus, J.: Can programming be liberated from the von neumann style. Communications of the ACM 21(8), 613–641 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  8. Berthold, J., Dieterle, M., Loogen, R.: Implementing Parallel Google Map-Reduce in Eden. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 990–1002. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  9. Berthold, J., Dieterle, M., Loogen, R., Priebe, S.: Hierarchical Master-Worker Skeletons. In: Hudak, P., Warren, D.S. (eds.) PADL 2008. LNCS, vol. 4902, pp. 248–264. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  10. Berthold, J., Loogen, R.: Parallel Coordination Made Explicit in a Functional Setting. In: Horváth, Z., Zsók, V., Butterfield, A. (eds.) IFL 2006. LNCS, vol. 4449, pp. 73–90. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  11. Berthold, J., Marlow, S., Hammond, K., Al Zain, A.: Comparing and Optimising Parallel Haskell Implementations for Multicore Machines. In: Enokido, T., et al. (eds.) 3rd Int. Workshop on Advanced Distributed and Parallel Network Applications (ADPNA 2009). IEEE (2009); (previously presented at IFL 2008)

    Google Scholar 

  12. Blelloch, G.: Programming parallel algorithms. CACM 39(3), 85–97 (1996)

    Google Scholar 

  13. Chakravarty, M.M., Keller, G., Lee, S., McDonell, T.L., Grover, V.: Accelerating Haskell array codes with multicore GPUs. In: DAMP 2011: Proceedings of the Sixth Workshop on Declarative Aspects of Multicore Programming, pp. 3–14. ACM, New York (2011)

    Chapter  Google Scholar 

  14. Chakravarty, M., Leshchinskiy, R., Jones, S.P., Keller, G., Marlow, S.: Data parallel Haskell: A status report. In: DAMP 2007: Workshop on Declarative Aspects of Multicore Programming, pp. 10–18. ACM, New York (2007)

    Chapter  Google Scholar 

  15. Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. Research Monographs in Parallel and Distributed Computing. MIT Press, Cambridge (1989)

    Google Scholar 

  16. Coutts, D.: Spark visualisation in threadscope. In: Contribution to the Haskell Implementors’ Workshop 2011, Tokyo (September 2011)

    Google Scholar 

  17. Dévai, G., Tejfel, M., Gera, Z., Páli, G., Nagy, G., Horváth, Z., Axelssony, E., Sheeran, M., Vajda, A., Lyckegård, B., Persson, A.: Efficient code generation from the high-level domain-specific language Feldspar for DSPs. In: ODES-8, 8th Workshop on Optimizations for DSP and Embedded Systems, Toronto (April 2010)

    Google Scholar 

  18. Erwig, M., Kollmansberger, S.: Probabilistic functional programming in Haskell. J. of Functional Programming 16(1), 21–34 (2006)

    Article  MATH  Google Scholar 

  19. FCIC: The financial crisis inquiry report. Tech. rep., Financial Crisis Inquiry Report Commission (January 2011), http://www.fcic.gov/report

  20. Fluet, M., Rainey, M., Reppy, J., Shaw, A., Xiao, Y.: Manticore: A Heterogeneous Parallel Language. In: Glew, N., Blelloch, G.E. (eds.) DAMP 2007: Workshop on Declarative Aspects of Multicore Programming, Nice, France, pp. 37–44 (2007)

    Google Scholar 

  21. Glasserman, P.: Monte Carlo methods in financial engineering. Applications of Mathematics, vol. 53. Springer, New York (2004)

    Google Scholar 

  22. Gorlatch, S.: Send-receive considered harmful: Myths and realities of message passing. ACM TOPLAS 26(1), 47–56 (2004)

    Article  Google Scholar 

  23. Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, London (2000)

    Google Scholar 

  24. Hughes, J.: Why functional programming matters. The Computer Journal 32(2), 98–107 (1989)

    Article  Google Scholar 

  25. Keller, G., Chakravarty, M.M., Leshchinskiy, R., Peyton Jones, S., Lippmeier, B.: Regular, shape-polymorphic, parallel arrays in Haskell. In: ICFP 2010: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, pp. 261–272. ACM, New York (2010)

    Chapter  Google Scholar 

  26. Lewis, J.: Cryptol: specification, implementation and verification of high-grade cryptographic applications. In: FMSE 2007: Proceedings of the ACM Workshop on Formal Methods in Security Engineering, p. 41. ACM, New York (2007)

    Chapter  Google Scholar 

  27. LexiFi: Contract description language (MLFi). Web page and white paper, http://www.lexifi.com/technology/contract-description-language

  28. Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel Functional Programming in Eden. Journal of Functional Programming 15(3), 431–475 (2005)

    Article  MATH  Google Scholar 

  29. Mainland, G., Morrisett, G.: Nikola: embedding compiled GPU functions in Haskell. In: Haskell 2010: Proceedings of the Third ACM SIGPLAN Symposium on Haskell, pp. 67–78. ACM, New York (2010)

    Google Scholar 

  30. Marlow, S., Jones, S.P., Singh, S.: Runtime Support for Multicore Haskell. In: ICFP 2009: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming, New York, pp. 65–78 (2009)

    Google Scholar 

  31. Marlow, S., Maier, P., Loidl, H.W., Aswad, M.K., Trinder, P.: Seq no more: Better strategies for parallel Haskell. In: Haskell 2010: Proceedings of the Third ACM SIGPLAN Symposium on Haskell, pp. 91–102. ACM, New York (2010)

    Google Scholar 

  32. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Computing Surveys 37(4), 316–344 (2005)

    Article  Google Scholar 

  33. Mirani, R., Hudak, P.: First-class monadic schedules. ACM TOPLAS 26(4), 609–651 (2004)

    Article  Google Scholar 

  34. Munshi, A.: The OpenCL Specification. Khronos OpenCL Working Group (2010), http://www.khronos.org/opencl/

  35. Peyton Jones, S., Eber, J.M., Seward, J.: Composing contracts: an adventure in financial engineering (functional pearl). In: ICFP 2000: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, pp. 280–292. ACM, New York (2000); (Later extended to a book chapter)

    Chapter  Google Scholar 

  36. Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: Proceedings of POPL 1996, pp. 295–308. ACM, New York (1996)

    Chapter  Google Scholar 

  37. Plasmeijer, M., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)

    MATH  Google Scholar 

  38. Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, London (2003)

    MATH  Google Scholar 

  39. Reppy, J.H.: Concurrent Programming in ML. Cambridge Univ. Press (1999)

    Google Scholar 

  40. Securities and Exchange Commission: Proposed rule: Asset backed securities (2010), http://www.sec.gov/rules/proposed/2010/33-9117.pdf

  41. Skillicorn, D.B., Talia, D.: Models and languages for parallel computation. ACM Computing Surveys 30(2), 123–169 (1998)

    Article  Google Scholar 

  42. Sobral, J.L., Monteiro, M.P.: A domain-specific language for parallel and Grid computing. In: DSAL 2008: Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages, pp. 2:1–2:4. ACM, New York (2008)

    Google Scholar 

  43. Trinder, P., Hammond, K., Loidl, H.W., Peyton Jones, S.: Algorithm + Strategy = Parallelism. J. of Functional Programming 8(1), 23–60 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  44. Trinder, P., Hammond, K., Mattson Jr., J., Partridge, A., Peyton Jones, S.: GUM: a Portable Parallel Implementation of Haskell. In: PLDI 1996, pp. 78–88. ACM, New York (1996)

    Google Scholar 

  45. Diderot project. Website (2010), http://diderot-language.cs.uchicago.edu/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berthold, J., Filinski, A., Henglein, F., Larsen, K.F., Steffensen, M., Vinter, B. (2012). Functional High Performance Financial IT. In: Peña, R., Page, R. (eds) Trends in Functional Programming. TFP 2011. Lecture Notes in Computer Science, vol 7193. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32037-8_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-32037-8_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-32036-1

  • Online ISBN: 978-3-642-32037-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics