Skip to main content

Introducing new learning courses and educational videos from Apress. Start watching

  • Book
  • Open Access
  • © 2023

Architecture of Advanced Numerical Analysis Systems

Designing a Scientific Computing System using OCaml

  • Covers the design of a complex computation system, Owl, developed with OCaml

  • Includes detailed explanations and code to illustrate various aspects of implementing a practical system

  • Written by Owl's designers and developers themselves

  • Provides step-by-step guide on how to construct advanced computing functionalities such as neural networks

Buying options

Softcover Book USD 49.99
Price excludes VAT (USA)

Table of contents (11 chapters)

  1. Front Matter

    Pages i-xiii
  2. Introduction

    • Liang Wang, Jianxin Zhao
    Pages 1-8Open Access
  3. Core Optimizations

    • Liang Wang, Jianxin Zhao
    Pages 9-48Open Access
  4. Algorithmic Differentiation

    • Liang Wang, Jianxin Zhao
    Pages 49-85Open Access
  5. Mathematical Optimization

    • Liang Wang, Jianxin Zhao
    Pages 87-119Open Access
  6. Deep Neural Networks

    • Liang Wang, Jianxin Zhao
    Pages 121-147Open Access
  7. Computation Graph

    • Liang Wang, Jianxin Zhao
    Pages 149-189Open Access
  8. Performance Accelerators

    • Liang Wang, Jianxin Zhao
    Pages 191-213Open Access
  9. Compiler Backends

    • Liang Wang, Jianxin Zhao
    Pages 215-228Open Access
  10. Composition and Deployment

    • Liang Wang, Jianxin Zhao
    Pages 229-241Open Access
  11. Distributed Computing

    • Liang Wang, Jianxin Zhao
    Pages 243-279Open Access
  12. Testing Framework

    • Liang Wang, Jianxin Zhao
    Pages 281-291Open Access
  13. Back Matter

    Pages 293-472

About this book

This unique open access book applies the functional OCaml programming language to numerical or computational weighted data science, engineering, and scientific applications. This book is based on the authors' first-hand experience building and maintaining Owl, an OCaml-based numerical computing library. 

You'll first learn the various components in a modern numerical computation library. Then, you will learn how these components are designed and built up and how to optimize their performance. After reading and using this book, you'll have the knowledge required to design and build real-world complex systems that effectively leverage the advantages of the OCaml functional programming language.

What You Will Learn

  • Optimize core operations based on N-dimensional arrays
  • Design and implement an industry-level algorithmic differentiation module
  • Implement mathematical optimization, regression, and deep neural network functionalities based on algorithmic differentiation
  • Design and optimize a computation graph module, and understand the benefits it brings to the numerical computing library
  • Accommodate the growing number of hardware accelerators (e.g. GPU, TPU) and execution backends (e.g. web browser, unikernel) of numerical computation
  • Use the Zoo system for efficient scripting, code sharing, service deployment, and composition
  • Design and implement a distributed computing engine to work with a numerical computing library, providing convenient APIs and high performance

Who This Book Is For
Those with prior programming experience, especially with the OCaml programming language, or with scientific computing experience who may be new to OCaml. Most importantly, it is for those who are eager to understand not only how to use something, but also how it is built up.


  • open access
  • programming language
  • OCaml
  • scientific computing
  • computational
  • debugging
  • open source
  • source
  • code
  • numerical
  • data science
  • big data
  • owl
  • functional
  • math
  • scientific
  • engineering

Authors and Affiliations

  • Helsinki, Finland

    Liang Wang

  • Bejing, China

    Jianxin Zhao

About the authors

Liang Wang is the Chief AI Architect at Nokia, the Chief Scientific Officer at iKVA, a Senior Researcher at the University of Cambridge, and an Intel Software Innovator. He has a broad research interest in artificial intelligence, machine learning, operating systems, computer networks, optimization theory, and graph theory.

Jianxin Zhao is a PhD graduate from the University of Cambridge, supervised by Prof. Jon Crowcroft. His research interests include numerical computation, high-performance computing, machine learning, and their application in the real world.

Bibliographic Information

Buying options

Softcover Book USD 49.99
Price excludes VAT (USA)