Architecture of Advanced Numerical Analysis Systems: Designing a Scientific Computing System using OCaml

Автор: literator от 26-12-2022, 19:49, Коментариев: 0

Категория: КНИГИ » ПРОГРАММИРОВАНИЕ

Architecture of Advanced Numerical Analysis Systems: Designing a Scientific Computing System using OCamlНазвание: Architecture of Advanced Numerical Analysis Systems: Designing a Scientific Computing System using OCaml
Автор: Liang Wang, Jianxin Zhao
Издательство: Apress
Год: 2023
Страниц: 471
Язык: английский
Формат: pdf (true), epub
Размер: 22.0 MB

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.

This book introduces Owl, a numerical library we have been developing and maintaining for years. We develop Owl for scientific and engineering computing in the OCaml language. It focuses on providing a comprehensive set of high-level numerical functions so that developers can quickly build up any data analytical applications. Over years of intensive development and continuous optimization, Owl has evolved into a powerful software system with competitive performance compared to mainstream numerical libraries. Meanwhile, Owl’s overall architecture remains simple and elegant. Its small codebase can be easily managed by a small group of developers.

Scientific computing is a rapidly evolving multidisciplinary field that uses advanced computing capabilities to understand and solve complex problems in the real world. It is widely used in various fields in research and industry, for example, simulations in biology and physics, weather forecasting, revenue optimization in finance, etc. One most recent hot topic in scientific computing is machine learning. Thanks to the recent advances in machine learning and deep neural networks, there is a huge demand on various numerical tools and libraries in order to facilitate both academic researchers and industrial developers to fast prototype and test their new ideas, then develop and deploy analytical applications at a large scale.

Take deep neural networks as an example; Google invests heavily in TensorFlow, while Facebook promotes their PyTorch. Beyond these libraries focusing on one specific numerical task, the interest on general-purpose tools like Python and Julia also grows fast. Python has been one popular choice among developers for fast prototyping analytical applications. One important reason is SciPy and NumPy libraries, tightly integrated with other advanced functionality such as plotting, offer a powerful environment which lets developers write very concise code to finish complicated numerical tasks. As a result, most frameworks provide Python bindings to take advantage of the existing numerical infrastructure in NumPy and SciPy.

On the other hand, back before Owl was developed, the support of basic scientific computing in OCaml was rather fragmented. There had been some initial efforts (e.g., Lacaml, Oml, Pareto, etc.), but their APIs were either too low level to offer satisfying productivity or the designs overly focused on a specific problem domain.

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.

Скачать Architecture of Advanced Numerical Analysis Systems: Designing a Scientific Computing System using OCaml








Нашел ошибку? Есть жалоба? Жми!
Пожаловаться администрации
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.