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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang., 2nd edn. Prentice Hall, Hertfordshire (1996)
Astapov, D.: Parallel Haskell project underway. Blog post (October 2010), http://www.well-typed.com/blog/48
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)
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)
Backus, J.: Can programming be liberated from the von neumann style. Communications of the ACM 21(8), 613–641 (1978)
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)
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)
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)
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)
Blelloch, G.: Programming parallel algorithms. CACM 39(3), 85–97 (1996)
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)
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)
Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. Research Monographs in Parallel and Distributed Computing. MIT Press, Cambridge (1989)
Coutts, D.: Spark visualisation in threadscope. In: Contribution to the Haskell Implementors’ Workshop 2011, Tokyo (September 2011)
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)
Erwig, M., Kollmansberger, S.: Probabilistic functional programming in Haskell. J. of Functional Programming 16(1), 21–34 (2006)
FCIC: The financial crisis inquiry report. Tech. rep., Financial Crisis Inquiry Report Commission (January 2011), http://www.fcic.gov/report
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)
Glasserman, P.: Monte Carlo methods in financial engineering. Applications of Mathematics, vol. 53. Springer, New York (2004)
Gorlatch, S.: Send-receive considered harmful: Myths and realities of message passing. ACM TOPLAS 26(1), 47–56 (2004)
Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, London (2000)
Hughes, J.: Why functional programming matters. The Computer Journal 32(2), 98–107 (1989)
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)
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)
LexiFi: Contract description language (MLFi). Web page and white paper, http://www.lexifi.com/technology/contract-description-language
Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel Functional Programming in Eden. Journal of Functional Programming 15(3), 431–475 (2005)
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)
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)
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)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Computing Surveys 37(4), 316–344 (2005)
Mirani, R., Hudak, P.: First-class monadic schedules. ACM TOPLAS 26(4), 609–651 (2004)
Munshi, A.: The OpenCL Specification. Khronos OpenCL Working Group (2010), http://www.khronos.org/opencl/
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)
Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: Proceedings of POPL 1996, pp. 295–308. ACM, New York (1996)
Plasmeijer, M., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, London (2003)
Reppy, J.H.: Concurrent Programming in ML. Cambridge Univ. Press (1999)
Securities and Exchange Commission: Proposed rule: Asset backed securities (2010), http://www.sec.gov/rules/proposed/2010/33-9117.pdf
Skillicorn, D.B., Talia, D.: Models and languages for parallel computation. ACM Computing Surveys 30(2), 123–169 (1998)
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)
Trinder, P., Hammond, K., Loidl, H.W., Peyton Jones, S.: Algorithm + Strategy = Parallelism. J. of Functional Programming 8(1), 23–60 (1998)
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)
Diderot project. Website (2010), http://diderot-language.cs.uchicago.edu/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)