Geheugenmodellen van programmeertalen: problemen, oplossingen en richtingen
Titel en omschrijving vertaald uit het Engels met AI.
- 8 mrt. 2023
- 0 reacties
Maak er iets van
Schrijf je eigen kijk op deze video of zet de discussie open op het forum. De video staat er al in.
Over deze video
Door optimalisaties in compilers en hardware bieden moderne programmeertalen geen sequentieel consistente geheugenmodellen. In plaats daarvan hebben ze zwakke geheugenmodellen die meer gedrag toestaan. Zulke geheugenmodellen moeten een balans vinden tussen prestaties en de garanties die ze softwareontwikkelaars bieden, of anders gezegd: de balans ligt eigenlijk tussen prestaties en gezond verstand. In deze talk introduceren we concurrency met zwak geheugen, bekijken we de eisen die aan geheugenmodellen van programmeertalen worden gesteld, onderzoeken we de modellen die in de industrie worden gebruikt (C11 en Java), inclusief hun nadelen, en bespreken we daarna oplossingen die de academische wereld heeft voorgesteld. We sluiten af met een bespreking van hoe je het beste geheugenmodel kiest voor jouw taal of VM, afhankelijk van je eisen. Spreker: Anton Podkopaev Hij is hoofd van het Programming Languages and Tools Lab bij JetBrains Research. Na zijn promotie aan de Staatsuniversiteit van Sint-Petersburg was hij postdoc bij MPI-SWS. Anton werkt aan rigoureuze wiskundige specificaties en bewijzen voor realistische concurrente systemen, waaronder CPU-architecturen zoals x86, ARM en Power, en talen als C/C++, Java en JavaScript. Zijn professionele interesses zijn onder meer het bewijzen van de correctheid van compilers, het verifiëren van concurrente algoritmen in zwakke geheugenmodellen, het mechaniseren van bewijzen in interactieve theorem provers, en functioneel programmeren. Agenda: 00:00 - Introductie 03:52 - Sequentiële consistentie 06:43 - Peterson's lock 11:11 - Laten we het voorbeeld vereenvoudigen 11:54 - Dekker's lock 23:51 - Tussentijdse conclusie 24:38 - Load buffering 30:30 - Eisen aan geheugenmodellen 34:00 - Correctheid van compileroptimalisaties 35:28 - Efficiënte compilatie naar hardware 36:32 - Eenvoudige modus voor niet-experts 46:01 - Bestaande geheugenmodellen van programmeertalen 48:14 - SC-behoudende optimalisaties in LLM [Marino et al., 2011] 51:45 - End-to-end SC via Volatile JVM [Liu et al., 2017, Liu et al., 2019] 58:26 - Declaratieve (axiomatische) geheugenmodellen 01:09:48 - Out-of-thin-air in het C/C++-geheugenmodel 01:17:23 - po U rf-cycli verbieden 01:20:37 - Undefined behavior en geheugenmodellen 01:27:34 - Afhankelijkheden behouden in LLVM [Ou and Demsky, 2018] Presentatie: https://drive.google.com/file/d/1AXl70iZ5KewQ9ZNlpePN7tIvVBAxROg3/view?usp=sharing #ProgrammingLanguage #MemoryModels
0 reacties
Nog geen reacties. Wees de eerste!
Log in om te reageren.
Inloggen of word lid