Jump to content

Owl Scientific Computing

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Bilorv (talk | contribs) at 22:54, 15 November 2020 (Bilorv moved page Draft:Owl Scientific Computing to Owl Scientific Computing: Publishing accepted Articles for creation submission (AFCH 0.9.1)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Original author(s)Liang Wang
Developer(s)Community project
Initial release2016 (2016)
Stable release
1.0.0 / 11 November 2020; 4 years ago (2020-11-11).[1]
Written inOCaml, C
Operating systemCross-platform
TypeNumerical analysis
LicenseMIT

Owl is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge[2]. The System Research Group (SRG) in the department recognises Owl as one of the representative systems developed in SRG in the 2010s[3]. The source code is licensed under the MIT License and can be accessed from the Github repository [4].

The library is mostly designed and developed in the functional programming language OCaml. As an unique functional programming language, OCaml offers runtime efficiency, flexible module system, static type checking, intelligent garbage collector, and powerful type inference. Owl inherits these features directly from OCaml. With Owl, users can write succinct type-safe numerical applications in a concise functional language without sacrificing performance. It speeds up the development life-cycle, and reduces the cost from prototype to production use. The system serves as the de-facto tool for computation intensive tasks in OCaml[5].

History

Owl was developed when Dr. Liang Wang was working as a Post-Doc in the OCaml Labs[6]. Owl originated from a research project which studied the design of synchronous parallel machines for large-scale distributed computing in July 2016. Back then the libraries for numerical computing in OCaml ecosystem were very limited and the tooling was fragmented at that time. In order to test various analytical applications, many numerical functions has to be implemented, from very low level algebra and random number generators to the high level stuff like algorithmic differentiation and deep neural networks. These code snippets started accumulating. These functions were later taken out and wrapped into a standalone library named Owl.

Owl's architecture undertook at least a dozen of iterations in the beginning, and some of the architectural changes are quite drastic. After one-year intensive development, Owl was capable of doing many complicated numerical tasks. e.g. image classification. Dr Liang Wang held a tutorial at the CUFP 2017 to demonstrate data science in OCaml[7]. In 2018, Dr. Richard Mortier gave a talk about Owl in the Alan Turing Institute[8].

The Owl project is research oriented, and supports research of numerical computing in multiple related topics. In 2018, a paper titled Data Analytics Service Composition and Deployment on Edge Devices is accepted at the ACM SIGCOMM 2018 Workshop on Big Data Analytics and Machine Learning for Data Communication Networks[9]. Two talks are also accepted at the OCaml Workshop of the International Conference on Functional Programming 2019, on the topics of numerical ordinary differential equation solving[10], and executing Owl computation on GPUs[11]. An internship in the OCaml Labs investigates the topic of image segmentation and related memory optimisation in Owl[12].

Features

Owl has implemented many advanced numerical functions atop of its implementation of n-dimensional arrays. Compared to other numerical libraries, Owl is unique in many perspectives, e.g. algorithmic differentiation and distributed computing have been included as integral components in the core system to maximise developers' productivity. The current features of Owl include:

See also

References

  1. ^ "Releases – owlbarn/owl". Retrieved 2020-11-11 – via GitHub.
  2. ^ "Owl, Scientific Computing for OCaml". Retrieved 2020-11-11.
  3. ^ "System Research Group". Retrieved 2020-11-11.
  4. ^ Owlbarn GitHub repository, https://github.com/owlbarn/owl. Retrieved 2020-11-01.
  5. ^ "OCamlverse: Machine Learning, Scientific Computing and Data Science". Retrieved 2020-11-05.
  6. ^ "OCaml Labs". Retrieved 2020-11-01.
  7. ^ "Owl: Data Science in OCaml". CUFP Tutorials. 2017. Retrieved 2020-11-01.
  8. ^ "The design of functional numerical software". Alan Turing Institute. 2018. Retrieved 2020-11-05.
  9. ^ "BIG-DAMA Workshop 2018 Programme". ACM. 2018. Retrieved 2020-11-05.
  10. ^ "OwlDE: making ODEs first-class Owl citizens". OCaml Workshop, ICFP 2019. 2019. Retrieved 2020-11-11.
  11. ^ "Executing Owl Computation on GPU and TPU". OCaml Workshop, ICFP 2019. 2019. Retrieved 2020-11-11.
  12. ^ "Personal Webpage, Pierre Vandenhove". 2018. Retrieved 2020-11-05.


Category:Array programming languages Category:Free mathematics software Category:Free science software Category:Numerical analysis software for Linux Category:Numerical analysis software for MacOS Category:Numerical programming languages Category:OCaml (programming language) scientific libraries Category:Software using the MIT license