$30 off During Our Annual Pro Sale. View Details »

Maszyna BEAM - wykład AGH 2021

Maszyna BEAM - wykład AGH 2021

Wykład dotyczący maszyny wirtualnej Erlanga wygłoszony dla kierunku Informatyka na wydziale IEiT AGH w Krakowie.

Michał Ślaski

June 01, 2021
Tweet

More Decks by Michał Ślaski

Other Decks in Programming

Transcript

  1. BEAM
    maszyna wirtualna Erlang
    a

    Michał Ślaski @michalslaski

    View Slide

  2. PLAN WYKŁADU
    • Erlangowy styl programowania współbieżneg
    o

    • Złożoność systemów komputerowyc
    h

    • Systemy współbieżne i rozproszon
    e

    • Maszyna BEAM

    View Slide

  3. O MNIE
    • AGH'200
    5

    • SFI'2009 '201
    7

    • Tech Lead'2012

    @ Erlang Solutions
    Programowanie współbieżne
    w języku Erlang
    Akademia Górniczo-Hutnicza w Krakowie
    18 grudnia 2007
    Michał Ślaski
    [email protected]
    © 1999 – 2007 Erlang Training and Consulting Ltd

    View Slide

  4. JĘZYKI FUNKCYJNE
    • Rachunek lambda - lata 30. XX wiek
    u

    • LISP 1958 - rekurencja i G
    C

    • Scheme 1970 -
    𝝀
    -calculu
    s

    • Miranda 1985 - ewaluacja leniw
    a

    • Erlang 1986 - przetwarzanie współbieżn
    e

    • Elixir 2012 - nowoczesne wzorce projektowe

    View Slide

  5. JĘZYKI FUNKCYJNE
    • typy funkcyjne i funkcje wyższego rzęd
    u

    • funkcje czyste i zmienne niemutowaln
    e

    • rekurencja i ewaluacja leniw
    a

    • wyrażenia (nie instrukcje
    )

    • dopasowywanie wzorca

    View Slide

  6. HISTORIA WSPÓŁBIEŻNOŚCI
    • Komputer - lata 40. - Alan Turin
    g

    • Actor Model - lata 70. - Carl Hewit
    t

    • Communicating Sequential Processes - lata 70.

    - Tony Hoar
    e

    • Erlang - lata 80. - Joe Armstrong

    View Slide

  7. JOE ARMSTRONG

    View Slide

  8. OBSERWACJA ARMSTRONGA
    • In order to implement a concurrent language,

    you have to do three things at a very primitive leve
    l

    • message passing should be extremely fas
    t

    • context switching should be extremely fas
    t

    • and there should be a built-in error processing
    mechanism

    View Slide

  9. MATERIAŁY
    • Let's #TalkConcurrency

    Panel Discussion with Sir Tony Hoare,

    Joe Armstrong and Carl Hewit
    t

    • The Mess We're In

    by Joe Armstrong

    View Slide

  10. 2021+
    • Wielordzeniowe CPU - systemy współbieżn
    e

    • Chmura i mgła - systemy rozproszon
    e

    • 5G - systemy miękkiego czasu rzeczywistego

    View Slide

  11. SYSTEM ROZPROSZONY
    Vizceral - inżynieria intuicyjna w Net
    fl
    ixie

    View Slide

  12. SYSTEM ROZPROSZONY
    Vizceral - inżynieria intuicyjna w Net
    fl
    ixie

    View Slide

  13. BEAM
    • zwięzły kod (concise code
    )

    • odporność na błędy programów (reliability
    )

    • wykorzystanie wielu rdzeni CPU (utilisation
    )

    • sprawiedliwy podział zasobów (latency
    )

    • możliwość śledzenia wykonania (traceability)

    View Slide

  14. BEAM 2017

    View Slide

  15. BEAM 2021

    View Slide

  16. PRODUKTY OPEN SOURCE
    • MongooseI
    M

    • RabbitM
    Q

    • VerneM
    Q

    • CouchD
    B

    • Riak

    View Slide

  17. MONGOOSEIM
    • serwer komunikatora XMPP
    • wsparcie dla Geo Distributio
    n

    • zastosowanie powyżej 10k użytkownikó
    w

    • wdrożenia w nk.pl, ooVoo, Grindr

    View Slide

  18. COUCHDB
    • baza danych zorientowana na dokument
    y

    • język zapytań w JavaScript używa MapReduc
    e

    • replikacja multi-maste
    r

    • zastosowania w BigData i Mobil
    e

    • wdrożenia w LHC, Apple

    View Slide

  19. VERNEMQ
    • Broker MQT
    T

    • Realizuje głównie wzorzec PubSu
    b

    • zastosowanie w platformach Io
    T

    • wdrożenia w Siemens, Volkswagen

    View Slide

  20. RIAK
    • Rozproszona baza danych typu K
    V

    • Replikacja danych na N węzłach w klastrz
    e

    • Replikacja multi-datacente
    r

    • zastosowania w składowaniu krytycznych danyc
    h

    • wdrożenia w brytyjskiej i duńskiej służbie zdrowia

    View Slide

  21. RABBITMQ
    • Broker protokołów AMQP, STOMP i MQT
    T

    • Kon
    fi
    guracje kolejek: replikacja, persystencj
    a

    • Zastosowania w architekturach mikroserwisó
    w

    • wdrożenia w około 35,000
    fi
    rm

    View Slide

  22. • program do modelowania obiektów
    trójwymiarowych
    WINGS 3D

    View Slide

  23. LIVEBOOK
    • Interaktywny notatnik dla Nx + Axo
    n

    • Wspólna praca z kodem i wykresami

    View Slide

  24. ERLANG 24.0
    • JIT dla architektury x86-6
    4

    • Linux perf - pro
    fi
    lowanie wydajnośc
    i

    • Intel LBR - śledzenie wykonania program
    u

    • WebView - uniwersalne appki na każdy OS

    View Slide

  25. JIT + LBR + PERF

    View Slide

  26. PERF + SPEEDSCOPE

    View Slide

  27. CO DALEJ?
    • Erlang the Movi
    e

    • Erlang the Movie II


    • Erlang 2
    5

    • JIT dla ARM6
    4

    • Frame Pointers

    View Slide