Company:MatLogica

From HandWiki
Revision as of 13:11, 11 February 2023 by TaniaSmal (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: British software firm


Matlogica Limited is a British software company focusing on algorithmic differentiation that enables multithreading and automatic vectorization using AVX2/AVX-512 for Intel and AMD CPU architectures.[1]

Matlogica’s primary product is AADC, a proprietary library for the C++ programming language that is built with algorithmic differentiation in mind.[2]

History

MatLogica was incorporated in January 2020 by Dmitri Goloubentsev and co-founder Evgeny Lakshatnov in London, UK.[3] Later in the year Intel published a white paper, reporting a 1700x fold reduction in required computation times when using Matlogica's AADC library on a system with 56 Intel Xeon Platinum 8280 processors in XVA pricing calculations.[4]

In August 2022 Matlogica entered into an agreement[5][6][7] with the software company Tachyum to cooperate on projects in the fields of artificial intelligence (AI) and high-performance computing (HPC).

In January 2023, MatLogica was accepted into Accenture's FinTech Innovation Lab London accelerator programme as part of the Future Tech stream. [8]

Products

The company's primary product is AADC, a Just-In-Time (JIT) compiler tailored for complex repetitive calculations and automatic adjoint differentiation (AAD), which seamlessly achieves up to 100x speed-ups while also calculating risks automatically and precisely using AAD.[5][6][7] AADC avoids inefficiencies introduced by traditional high-level programming languages[1] for repetitive calculations such as Monte-Carlo, VaR, or stress-Testing. The AADC compiler was first presented in 2019 at the Intel HPC Workshop.

AADC is used within financial institutions to compute pricing and risks. Other uses include academic work in neural network development.[9][10] In addition to AAD, the library is used to speed up 'forward' repetitive calculations, such as Monte-Carlo simulations.[4]

Technology overview

Traditionally, algorithmic adjoint differentiation is implemented by using a memory tape (Wengert list). Typically, either expression templates or operator overloading is used to record the sequence of elementary operations for each pass of the algorithm. The tape is then used to evaluate the derivatives of interest by applying the chain rule in reverse over the elementary operations (see reverse accumulation). In practice, using the tape slows programs down. The reason is that at every iteration the CPU needs to interpret the sequence of operations held on tape instead of executing such operations directly.

MatLogica uses an operator overloading approach to recording elementary operations during program execution. Instead of using tape, AADC generates optimised machine code[11] at runtime. As the code is going to run on a large set of data points, the compiler converts scalar operations to full SIMD[12] vector operations and processes four AVX2 or eight AVX-512 data samples in parallel. Since only one input sample is recorded, the resulting function is thread-safe and turns non-multithread-safe code into a code that can be safely executed on multicore systems.[13][14] The above-mentioned properties enable MatLogica’s AADC to calculate all the differentials faster than the primal program.[15]

References

  1. 1.0 1.1 "Use Automatic Differentiation to Optimize Parallel Computing". Intel.com. https://www.intel.com/content/www/us/en/developer/articles/technical/new-approach-parallel-automatic-differentiation.html#gs.641atq. Retrieved 2022-07-21. 
  2. "QuantLib in other languages". https://www.quantlib.org/extensions.shtml. 
  3. Find and update company information. "MATLOGICA LIMITED overview - Find and update company information - GOV.UK". Find-and-update.company-information.service.gov.uk. https://find-and-update.company-information.service.gov.uk/company/12390744. Retrieved 2022-07-21. 
  4. 4.0 4.1 https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/xva-pricing-application-financial-services-white-papers.pdf
  5. 5.0 5.1 "Tachyum Signs Memorandum of Understanding with MatLogica". https://finance.yahoo.com/news/tachyum-signs-memorandum-understanding-matlogica-151000652.html. 
  6. 6.0 6.1 Wire, Business. "Tachyum Signs Memorandum of Understanding with MatLogica". https://www.benzinga.com/pressreleases/22/08/b28687746/tachyum-signs-memorandum-of-understanding-with-matlogica. 
  7. 7.0 7.1 Jolly, Andrew (August 30, 2022). "Tachyum Signs MOU with MatLogica". https://www.enterpriseai.news/2022/08/30/tachyum-signs-mou-with-matlogica/. 
  8. "Welcome, the FinTech Innovation Lab London Class of 2023". https://www.fintechinnovationlab.com/news/london/fintechinnovationlablondonclassof2023/. 
  9. Olsson, Roland; Tran, Chau; Magnusson, Lars (2022-06-29). "[2207.03577] Automatic Synthesis of Neurons for Recurrent Neural Nets". arXiv:2207.03577.
  10. Brito, José; Goloubentsev, Andrei; Goncharov, Evgeny (2022-04-11). "[2204.05204] Automatic Adjoint Differentiation for special functions involving expectations". arXiv:2204.05204.
  11. https://ria.ua.pt/bitstream/10773/26588/1/wilmott.pdf
  12. Goloubentsev, Dmitri; Lakshtanov, Evgeny (2019-01-14). "[1901.04200] Remarks on stochastic automatic adjoint differentiation and financial models calibration". arXiv:1901.04200.
  13. "Use Automatic Differentiation to Optimize Parallel Computing". Intel.com. https://www.intel.com/content/www/us/en/developer/articles/technical/new-approach-parallel-automatic-differentiation.html#inpage-nav-2. Retrieved 2022-07-21. 
  14. "New Hpc Paradigm for Object Oriented Languages". https://meetings.siam.org/sess/dsp_talk.cfm?p=112373. 
  15. "AAD: Breaking the Primal Barrier – Wilmott". Wilmott.com. 18 September 2019. https://wilmott.com/aad-breaking-the-primal-barrier/. Retrieved 2022-07-21.