Compiling OCaml memory model for Power (Egor Namakonov, ISPRASOPEN-2019) — различия между версиями

Материал из 0x1.tv

 
;{{SpeakerInfo}}: {{Speaker|Егор Намаконов}}
<blockquote>
В настоящее время для языков программирования и процессоров активно разрабатываются модели памятиCurrently, направленные на решение различных проблем многопоточного программированияmemory models are actively being developed for programming languages and processors aimed at solving various problems of multi-threaded programming.

ТакThus, модель памяти языкаthe OCaml memory model (OCamlMM) позволяет избежать
неопределённого поведения, вызванного гонками по данным. 

Для применения этой модели на практике необходимо доказать корректность её компиляции в распространённые архитектуры процессоров. На данный момент это выполнено для моделейallows to avoid undefined behavior caused by data races.

For application of this model in practice it is necessary to prove correctness of its compilation into widespread processor architectures. At the moment it is done for x86 иand ARMv8 models, но не дляbut not for Power.

Для того, чтобы упростить доказательство корректности компиляцииIn order to simplify the proof of OCamlMM в модельcompilation into Power model, предлагается построить схему компиляцииit is suggested to build OCamlMM в промежуточную модель памятиcompilation scheme into Intermediate Memory Model (IMM).

This model has already been proven to compile correctly into the 

Для этой модели уже доказана корректность компиляции в модель Power и другие архитектурыmodel and other architectures, поэтому доказательство корректности компиляцииso the proof of OCamlMM в модельcompiling correctly into the Power сводится к доказательству корректности компиляции OCamlMM в IMM.

В данной работе предложена схема компиляции OCamlMM в IMM и доказана её корректность. В этой схеме используются барьеры памяти и инструкцииmodel comes down to the proof of OCamlMM compiling correctly into IMM.

This paper suggests the OCamlMM compilation scheme in IMM and proves it correctly. In this scheme memory barriers and compare-and-swap, которые позволяют исключить поведение, допустимое instructions are used, which allow to exclude the behavior allowed by IMM и запрещённое модельюand prohibited by OCaml model.

Полученная схема компиляции даёт корректную схему компиляцииThe resulting Compilation Scheme gives the correct OCamlMM в модельCompilation Scheme for the Power model. Кроме
того, при таком подходе доказать корректность компиляцииIn addition, with this approach, you can prove that OCamlMM в другую архитектуру можно, доказав корректность компиляцииwas compiled correctly to another architecture by proving that IMM в эту архитектуру.was compiled correctly to that architecture.

Translation of http://0x1.tv/20191205AI
</blockquote>

{{VideoSection}}
{{vimeoembed|378873556|800|450}}
{{youtubelink|}}{{letscomment}}

{{SlidesSection}}
[[File:Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf|left|page=-|300px]]

{{----}}
[[File:{{#setmainimage:Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- * [ Talks page on site] -->
<!-- <blockquote>[©]</blockquote> -->
* https://github.com/weakmemory/imm/
{{fblink|2471046253148381}}                                          
{{vklink|1526}}                                          
<references/>





<!-- topub -->



{{stats|disqus_comments=1|refresh_time=2020-01-28T14:04:09.133996|vimeo_plays=34|youtube_plays=0}}

[[Категория:ISPRASOPEN-2019]]
[[Категория:Верификация]]
[[Категория:Draft]]

Версия 00:05, 5 февраля 2020

Докладчик
Егор Намаконов.jpg
Егор Намаконов

Currently, memory models are actively being developed for programming languages and processors aimed at solving various problems of multi-threaded programming.

Thus, the OCaml memory model (OCamlMM) allows to avoid undefined behavior caused by data races.

For application of this model in practice it is necessary to prove correctness of its compilation into widespread processor architectures. At the moment it is done for x86 and ARMv8 models, but not for Power.

In order to simplify the proof of OCamlMM compilation into Power model, it is suggested to build OCamlMM compilation scheme into Intermediate Memory Model (IMM).

This model has already been proven to compile correctly into the Power model and other architectures, so the proof of OCamlMM compiling correctly into the Power model comes down to the proof of OCamlMM compiling correctly into IMM.

This paper suggests the OCamlMM compilation scheme in IMM and proves it correctly. In this scheme memory barriers and compare-and-swap instructions are used, which allow to exclude the behavior allowed by IMM and prohibited by OCaml model.

The resulting Compilation Scheme gives the correct OCamlMM Compilation Scheme for the Power model. In addition, with this approach, you can prove that OCamlMM was compiled correctly to another architecture by proving that IMM was compiled correctly to that architecture.

Translation of http://0x1.tv/20191205AI

Видео

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019).pdf
Компиляция модели памяти OCaml в Power (Егор Намаконов, ISPRASOPEN-2019)!.jpg

Примечания и ссылки





Plays:34   Comments:1