Owl Scientific Computing
This article, Owl Scientific Computing, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
Original author(s) | Liang Wang |
---|---|
Developer(s) | Community project |
Initial release | 2016 |
Stable release | 0.10.0
/ 3 October 2020[1] |
Written in | OCaml, C |
Operating system | Cross-platform |
Type | Numerical analysis |
License | MIT |
Owl is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge. The source code is licensed under the MIT License and can be accessed from the Github repository [2].
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.
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:
- N-dimensional array (both dense and sparse)
- Various number types: float32, float64, complex32, complex64, int16, int32, and etc.
- Linear algebra and full interface to CBLAS and LAPACKE
- Algorithmic differentiation (or automatic differentiation)
- Neural network module for deep learning applications
- Dynamic computational graph
- Parallel and distributed computation engine
- Advanced math and statistics functions (e.g., hypothesis tests, MCMC, etc.)
- Zoo system for efficient scripting and code sharing
- JavaScript and unikernel backends
- Integration with other frameworks such as TensorFlow and PyTorch
- GPU and other accelerator frameworks
References
- ^ "Releases – owlbarn/owl". Retrieved 1 November 2020 – via GitHub.
- ^ Owlbarn GitHub repository, https://github.com/owlbarn/owl. Retrieved 2 November 2020.