YoVDO

The Design of Functional Numerical Software - Dr. Richard Mortier, University of Cambridge

Offered By: Alan Turing Institute via YouTube

Tags

OCaml Courses Scientific Computing Courses Functional Programming Courses Parallel Computing Courses Deep Neural Networks Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the design and architecture of Owl, an OCaml library for scientific computing, in this comprehensive lecture by Dr Richard Mortier from the University of Cambridge. Delve into the library's unique features, including algorithmic differentiation, deep neural networks, data-flow programming, and parallel computing. Learn how Owl enables programmers to write concise yet fast code with advanced OCaml features like static type checking. Discover the library's versatility in running on various backends, including CPU, GPU, and even compiled into JavaScript for browser execution. Gain insights into current research focuses and future development plans, such as synchronous parallel machines and browser deployment. Examine the motivating application Databox, and understand Owl's core architecture, including indexing, slicing, and the functor stack. Investigate advanced topics like laziness, incremental computation, and GPGPU programming. Explore the library's expressiveness through examples like implementing Google Inception v3 in just 150 lines of code. Dive into actor-based parallel and distributed processing, with a focus on neural network examples and synchronous parallel machines. Analyze different synchronization methods, step distribution, and scalability considerations. Conclude with an overview of ongoing integration efforts with the App Development Kit.

Syllabus

Intro
Why, What, When, Where?
Motivating Application: Databox
Owl's Architecture
Indexing & Slicing
Core Functor Stack
Advanced Uses of Algorithmic Differentiation
Laziness & Dataflow
Incremental Computation
GPGPU Programming
Expressiveness
Google Inception v3 in 150 LOC
Actor, Parallel and Distributed Processing
Owl & Actor: Neural Network Example
Actor & the Synchronous Parallel Machine
Barrier Synchronisation
Three Main Schemes: A 10,000 Foot View
Simple Analytical Model
Decomposing Synchronous Parallel Machine
Key Insights from System Decomposition
Probabilistic Synchronous Parallel
Sampling Primitive
Adding the Completeness Dimension
Reducing Sample Size
Revisit System Decomposition
Comparing Synchronisation Methods
Step Distribution
Effect of Sample Size
Tightening Bounds
Scalability
Ongoing: Integration with App Development Kit


Taught by

Alan Turing Institute

Related Courses

Introduction to Functional Programming in OCaml
Paris Diderot University via France Université Numerique
Type-Driven Development: Designing with Types
Pluralsight
ReasonML Programming - Full Course for Beginners
freeCodeCamp
OCaml
Exercism
ReasonML
Exercism