Parallel Computing and Scientific Machine Learning
Parallel Computing and Scientific Machine Learning
  • Видео 25
  • Просмотров 211 157
Mixing Differential Equations and Neural Networks for Physics-Informed Learning
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource.
github.com/SciML/SciMLBook
Chris Rackauckas, Massachusetts Institute of Technology
Additional information on these topics can be found at:
sciml.ai/ and other Julia programming language sites
Many of these descriptions originated on www.stochasticlifestyle.com/
Просмотров: 6 566

Видео

Uncertainty Programming: Differentiable Programming Extended to Uncertainty Quantification
Просмотров 2,2 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Global Sensitivity Analysis
Просмотров 10 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
From Optimization to Probabilistic Programming
Просмотров 2,9 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Code Profiling and Optimization (in Julia)
Просмотров 4,4 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
GPU Programming in Julia
Просмотров 5 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Parallel Computing: From SIMD to SIMT
Просмотров 5 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Partial Differential Equations (PDEs), Convolutions, and the Mathematics of Locality
Просмотров 2,6 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Differentiable Programming Part 2: Adjoint Derivation for (Neural) ODEs and Nonlinear Solve
Просмотров 3,3 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Differentiable Programming Part 1: Reverse-Mode AD Implementation
Просмотров 3,5 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Basic Parameter Estimation, Reverse-Mode AD, and Inverse Problems
Просмотров 4,5 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Solving Stiff Ordinary Differential Equations
Просмотров 6 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Forward-Mode Automatic Differentiation (AD) via High Dimensional Algebras
Просмотров 7 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Ordinary Differential Equations 2: Discretizations and Stability
Просмотров 3,4 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
Ordinary Differential Equations 1: Applications and Solution Characteristics
Просмотров 4 тыс.4 года назад
In Fall 2020 and Spring 2021, this was MIT's 18.337J/6.338J: Parallel Computing and Scientific Machine Learning course. Now these lectures and notes serve as a standalone book resource. github.com/SciML/SciMLBook Chris Rackauckas, Massachusetts Institute of Technology Additional information on these topics can be found at: sciml.ai/ and other Julia programming language sites Many of these descr...
The Different Flavors of Parallelism: Parallel Programming Models
Просмотров 4,2 тыс.4 года назад
The Different Flavors of Parallelism: Parallel Programming Models
The Basics of Single Node Parallel Computing
Просмотров 7 тыс.4 года назад
The Basics of Single Node Parallel Computing
How Loops Work 2: Computationally-Efficient Discrete Dynamics
Просмотров 3,9 тыс.4 года назад
How Loops Work 2: Computationally-Efficient Discrete Dynamics
How Loops Work 1: An Introduction to the Theory of Discrete Dynamical Systems
Просмотров 7 тыс.4 года назад
How Loops Work 1: An Introduction to the Theory of Discrete Dynamical Systems
Introduction to Scientific Machine Learning 1: Deep Learning as Function Approximation
Просмотров 14 тыс.4 года назад
Introduction to Scientific Machine Learning 1: Deep Learning as Function Approximation
Introduction to Scientific Machine Learning 2: Physics-Informed Neural Networks
Просмотров 18 тыс.4 года назад
Introduction to Scientific Machine Learning 2: Physics-Informed Neural Networks
Optimizing Serial Code in Julia 1: Memory Models, Mutation, and Vectorization
Просмотров 21 тыс.4 года назад
Optimizing Serial Code in Julia 1: Memory Models, Mutation, and Vectorization
Getting Started with Julia (for Experienced Programmers)
Просмотров 29 тыс.4 года назад
Getting Started with Julia (for Experienced Programmers)
Optimizing Serial Code in Julia 2: Type inference, function specialization, and dispatch
Просмотров 9 тыс.4 года назад
Optimizing Serial Code in Julia 2: Type inference, function specialization, and dispatch
Parallel Computing and Scientific Machine Learning Course: Syllabus
Просмотров 28 тыс.4 года назад
Parallel Computing and Scientific Machine Learning Course: Syllabus

Комментарии

  • @Kruglord
    @Kruglord 6 месяцев назад

    That was a rather abrupt end to the lecture, but I think the material was covered well enough.

  • @9163717884
    @9163717884 7 месяцев назад

    Amazing, I can't thank you enough.

  • @rrr00bb1
    @rrr00bb1 8 месяцев назад

    i got something similar, but this has to work with multi-var calc... so if you define dx as infinitesimal positive, you are saying: dx > 0 and dx*dx -> 0. if you implicitly diff, then you have an operator d[] d[a+b] = d[a] + d[b]. d[a*b] = d[a]*b + a*d[b] then for d[a^b] and d[log_a[b]], the functions are complicated, and don't necessarily handle non-commutative args in general. but if d[a^b] where b is scalar, and d[log_a[b]] where a is scalar, it's easy to define. d[f=a^2 + b^2] = df = 2a da + 2 b db. for df/db: da=0, and db>0, and db*db->0. How does this work on trillion variable calculus?

    • @rrr00bb1
      @rrr00bb1 8 месяцев назад

      trying to include epsilon seems to not help ie: is it: dx=DX*epsilon and dy = DY*epsilon f = x^2 + y^2 df = 2x (DX*epsilon) + 2y (DY*epsilon) df/dx = 2x + 2y * DY/DX

  • @hannahscherer8413
    @hannahscherer8413 10 месяцев назад

    I am really enjoying your lectures. What program are you using for the notes.

    • @rohannr4255
      @rohannr4255 4 месяца назад

      I think its LyX, if you still need it.

  • @turnbull82
    @turnbull82 11 месяцев назад

    Now that Juno is gone what is the best environment to get all these variable value previews?

  • @UriGroisman1962
    @UriGroisman1962 11 месяцев назад

    Hi Chris, great lectures, thanks to made them public. Which software do you use to write math expressions while presenting the lecture?

  • @grayjphys
    @grayjphys Год назад

    So say I have data corresponding to spatiotemporal states like u_i(x,t) where 1<=x<=L and 1<=t<=T and I want some number of iterations of trajectories N so that 1<=i<=N. If I want to store all of the trajectories at every time I should have an array of dimensions size(u) = (N,T,L) so that I can quickly access u_1(x,2) for example. in code it would be u[1,2,:]. ORRR should I reverse the definition so that size(u) = (L,T,N) so u_1(x,2) is given by u[:,2,1]? I'm thinking the latter...

  • @todorantonijevic4833
    @todorantonijevic4833 Год назад

    Flashback from my MSc in Physics 12 years ago. Thank you very much for sharing.

  • @AJ-et3vf
    @AJ-et3vf Год назад

    Great 💯👍 video 👍📸 thank you 💯💯

  • @mattewlefty991
    @mattewlefty991 Год назад

    what's the name of the program on the left side of the screen?

  • @kyung-sukim9518
    @kyung-sukim9518 Год назад

    Amazing video!!! Thank you so much for sharing this. I made my code about x10 times faster just by implementing what Chris says in this first lecture. I didn't know that heap allocation takes so much time. Looking forward to next lectures.

  • @electric_sand
    @electric_sand Год назад

    This guy is fantastic, very clear at explaining things. The conclusion was also super encouraging. Thank you.

  • @pseudospectral2
    @pseudospectral2 Год назад

    😱

  • @tk-ruffian
    @tk-ruffian Год назад

    Glad I chance upon this lecture series because it was very informative! But I can't believe you claim ff8 > ff7 😡

  • @fbf3628
    @fbf3628 2 года назад

    this already super insightful! thank you very much :)

  • @paulgroepler880
    @paulgroepler880 2 года назад

    In the "good old days", LaTex was pronounced "lay-techs".

  • @TarunKumar-en8si
    @TarunKumar-en8si 2 года назад

    Great explanation on dynamic vs static scheduling! I think that is something that should be part of the manual but it is unfortunately not emphasized enough.

  • @grantsmith3653
    @grantsmith3653 2 года назад

    Love the content. Chris Rackauckus is my hero He compared neural nets to Fourier and polynomials bases, but one other basis I wonder about is step functions, which are the basis for boosting. I think those still have the same curse of dimensionality as polynomials and fourier (they don't overcome it like neural nets), but they seem to be fast with a lot of features as well, correct? (I'm thinking xgboost)

  • @aerthnfex
    @aerthnfex 2 года назад

    What IDE / editor are you using? It looks like it has some useful features.

  • @vahidhosseinzadeh4630
    @vahidhosseinzadeh4630 2 года назад

    Great. I have just found this course. It is very interesting. Just is there any notes or notebooks with this course?

    • @scimlorg
      @scimlorg 2 года назад

      All of the notes are at book.sciml.ai/ with source code github.com/SciML/SciMLBook

  • @viniciusviena8496
    @viniciusviena8496 2 года назад

    Incredible lecture. Thank you for sharing

  • @AmitKumar-si3ri
    @AmitKumar-si3ri 2 года назад

    Dear Sir, how to perform different trajectories at the same time parallely in morris method.. As stated in the primer , P∗ is a k-by-k random permutation matrix in which each row contains one element equal to 1, all others are 0, and no two columns have 1’s in the same position. P∗ gives the order in which factors are moved. How to create a different ordered P* matrix each time for each trajectory

  • @SrEngr
    @SrEngr 2 года назад

    I remember academic discussions in 1994 about how something like a dog catching a frisbee was a neural network solving an ode, which was cool. I think that was when they started engaging on the topic.

  • @grayjphys
    @grayjphys 2 года назад

    I am confused as to why there is a const in front of the a2 array if the values can change. Does this just mean that the size of the array can't change?

    • @scimlorg
      @scimlorg 2 года назад

      Good question! Constant variables can be mutated. They cannot be replaced. Re-assigning is not allowed, and for arrays assignment is the change of reference, not the change of values in the array.

    • @grayjphys
      @grayjphys 2 года назад

      @@scimlorg That clears things up. Thank you! The series has been super helpful btw :)

  • @kouhawk4554
    @kouhawk4554 2 года назад

    extremely helpful for freshman like me! 👍

  • @grayjphys
    @grayjphys 2 года назад

    Ugh the slack notification sound gets me every time haha

  • @JZL003
    @JZL003 2 года назад

    Wow this is great, very helpful

  • @pramodhgopalan1141
    @pramodhgopalan1141 2 года назад

    Are we going to have a newer edition of this course?! Can't wait for it!

    • @scimlorg
      @scimlorg 2 года назад

      More videos will be added soon.

    • @sophiawright3421
      @sophiawright3421 2 года назад

      @@scimlorg - hello any update on when more videos will be added - thank you

  • @keeperofthelight9681
    @keeperofthelight9681 2 года назад

    Thanks for organizing the lectures into a playlist now I know how to follow along the roadmap

  • @chadagreene
    @chadagreene 3 года назад

    0:36 Installing Julia 2:40 Setting up an IDE (Atom or VS Code) 9:35 Activate environments 12:55 First .jl script 13:45 Inline help 18:40 PkgTemplates 23:10 Unicode variables and operators 24:30 import, export, and using 26:20 Documentation and further resources

  • @chadagreene
    @chadagreene 3 года назад

    This is absolutely fantastic. Thanks for sharing.

  • @AndreyPudov
    @AndreyPudov 3 года назад

    What editor/IDE are you using?

  • @mertkaracelebi6965
    @mertkaracelebi6965 3 года назад

    Thanks Chris for the amazing lecture

  • @mertkaracelebi6965
    @mertkaracelebi6965 3 года назад

    Amazing lecture again

  • @linkmaster959
    @linkmaster959 3 года назад

    julia is really great, especially for people coming from matlab. makes me wonder why alot of industry is still using python.

  • @linkmaster959
    @linkmaster959 3 года назад

    At 14:11 it says that we can improve the fit by increasing the size of the NN, using more training points, or by training for more iterations. Wouldn't the type of loss function used also have an affect on the performance of the learning algorithm? The first thing I was thinking of is that the sum of squared loss we used isn't exactly the best for use in neural networks. If I recall correctly, sum of squared loss is non-convex with respect to the parameters when using tanh activation functions. So optimization over this loss function is going to give suboptimal results. Maybe this is negligible in the case of this problem but I think that using cross-entropy loss or one of it's derivatives would provide better performance.

    • @debvratvarshney3006
      @debvratvarshney3006 Год назад

      what loss we are using here isn't really important. It's the idea of how to use a physical equation (such as Hooke's Law used in the video) in a loss function.

  • @DiogoSanti
    @DiogoSanti 3 года назад

    Tks for this!

  • @keeperofthelight9681
    @keeperofthelight9681 3 года назад

    Please make a playlists for your neural Odes and differential eqns if you can. You have a lot of hidden gems that needs to be organized

  • @mertkaracelebi9917
    @mertkaracelebi9917 3 года назад

    Incredible lecture.

  • @ChristianLaforte
    @ChristianLaforte 3 года назад

    LOL 36m50s... can't redefine function g... no problem, just rename it gg.

  • @Jmart786
    @Jmart786 3 года назад

    This video is FANTASTIC. As someone who is currently learning about compilers and LLVM, this video provides a lot of insight on how many cool things compliers can do.

  • @Cons-Cat
    @Cons-Cat 3 года назад

    Can you explain to me why an "experienced programmer" needs to be baby walked through setting up an editor? I am "experienced" enough to know what editors I actually like using (for sure not Atom or VS Code lol) and how to figure out how to use them for any programming language I want.

    • @Speak4Yourself2
      @Speak4Yourself2 Год назад

      Good for you. I personally prefer the hand holding. I'm pretty sure the 'experienced programmer' is primarily to encourage beginner programmers to look elsewhere if they're just learning to use Julia, or even programming itself. That being said, as a programmer with 'intermediate' experience, I actually don't have a good grasp of many things covered here, like package development, package management, testing, etc.

  • @AhmedIsam
    @AhmedIsam 3 года назад

    I think there is some confusion with terminlogies that deserves clarification. Broadcasting, vectorization are being interchanged. Where I come from from (deep learning), broadcasting refers to extending an operation to other dimensions of one of two operands that don't have same shapes. Example: a has shape [4, 1] B has shape [4, 10] Then, broadcasting *allows* adding / multiplying such objects. The rationale is: *a* is a vector, *B* is an array of vectors. The addition is to happen between *a* and *columns* of B resulting in a matrix that looks like *B* with all its columns being equal to *a* + original column value. Vectorization: a function designed to work on scalars, give me a version of it that works fast on vectors by feeding the vectors directly instead of looping over their elements and calling the function just as many times. They might be similar at core, but I have noticed that in some specific fields, the disinction is due.

    • @torstenschenkel2110
      @torstenschenkel2110 3 года назад

      Isn't vectorisation just a special case of broadcasting? In which case the usage seems correct to me.

    • @AhmedIsam
      @AhmedIsam 3 года назад

      ​@@torstenschenkel2110 After a second thought, I see you are right, or may be it is the other way around. I claim this because I see that vectorization seem to be something that you explicitly ask for via "." notation, while broadcasting happens spontaneously whenever the dimensions are condusive. This is the case Julia, Numpy, TensorFlow, Pytorch.

  • @munozariasjm
    @munozariasjm 3 года назад

    Thanks for the lecture! By the way I don't quite understand the speed differences between push! and append!. The output is the same, but I suppose the backstage process is different. Regards!

  • @munozariasjm
    @munozariasjm 3 года назад

    Really good lecture! I have only the question of why the "Stochastic dynamical model" isn't modeled more directly as a Markov Chain?

    • @linkmaster959
      @linkmaster959 3 года назад

      Well, with an AR(1) process, u_{n+1} depends only on u_{n} so it satisfies markov property. But with high order autoregressive processes AR(N), u_{n+1} will depend on u_{n}, ..., u{n+1-N}. So I believe that it may not satisfy the Markov Property. I could be wrong though :P

  • @pushpindersinghdhaliwal2051
    @pushpindersinghdhaliwal2051 3 года назад

    What is the name of the software being used for typing math equations?

    • @munozariasjm
      @munozariasjm 3 года назад

      Wondering exactly the same!

    • @oligui17
      @oligui17 3 года назад

      It is LyX, a simplified LaTeX editor

  • @siyaram2855
    @siyaram2855 3 года назад

    How is julia for making highly concurrent web apps?

  • @utopiabinary8258
    @utopiabinary8258 3 года назад

    excellent explanation

  • @franciscovargas2600
    @franciscovargas2600 3 года назад

    It's important to highlight that KL Divergence is NOT the EMT (Earth movers distance) / OT and its NOT a distance. The EMT analogy is confusing because you are using a commonly employed analogy for EMT and applying it to KL which can implicitly confuse the two concepts for a viewer. There is a relationship between the two, argmin_{p(x,y) \in D(pi_0, pi_1)} KL (p(x,y) || N(x,y, s * I )) as s ->0 this KL becomes the EMT between distributions pi_0 and pi_1 using a squared error cost (Wasserstein distance). Where D(pi_0, pi_1) is the set of distributions p(x,y) with pi_0(x) and pi_1(y) as marginals.

  • @dnaviap
    @dnaviap 3 года назад

    Hi! I don't understand what kind of differential equations can be solved with this iterative process, for example in this case you use the Lorenz System but it can be consider a general approach for any differential equation?

    • @munozariasjm
      @munozariasjm 3 года назад

      Hi!, What I think is that we are trying to approach to a general Dynamical System (like a Markov process). Then for example any system with mutating states can be thought like that