Персональные инструменты
 

Многопоточное программирование (Евгений Кирпичёв на ADD-2010) — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м (1 версия)
м (Примечания)
 
(не показано 9 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{ActualBanner2}}
 
 
 
== Аннотация ==
 
== Аннотация ==
 +
[[Категория:Евгений Кирпичёв]]
 
<blockquote>
 
<blockquote>
[http://antilamer.moikrug.ru/ Евгений Кирпичёв] из компании <tt>Grid Dynamics</tt> поделился своими знаниями, опытом и мыслями о многопоточном и распределенном программировании:
+
[[:Категория:Евгений Кирпичёв|Евгений Кирпичёв]] из компании <tt>Grid Dynamics</tt> поделился своими знаниями, опытом и мыслями о многопоточном и распределенном программировании:
  
 
* Корректность: Формальные методы (и хорошо забытая, но очень полезная "линейная темпоральная логика"), а также несколько паттернов, помогающих порою резко упростить разработку и повысить корректность многопоточных и распределенных систем.
 
* Корректность: Формальные методы (и хорошо забытая, но очень полезная "линейная темпоральная логика"), а также несколько паттернов, помогающих порою резко упростить разработку и повысить корректность многопоточных и распределенных систем.
Строка 13: Строка 12:
 
{{vimeoembed|18091813|720|405}}
 
{{vimeoembed|18091813|720|405}}
  
 
+
{{ActualBanner2}}
  
 
== Подкаст ==
 
== Подкаст ==
Строка 19: Строка 18:
  
 
== Презентация ==
 
== Презентация ==
[[Файл:Многопоточное программирование (Евгений Кирпичёв на ADD-2010).pdf|center|640px]]
+
[[Файл:Многопоточное программирование (Евгений Кирпичёв на ADD-2010).pdf|left|page=-12|300px]]
  
== Стенограмма ==
+
<!-- == Стенограмма ==
 
<blockquote>
 
<blockquote>
 
Стенограмму по видеозаписи записал [[User:StasFomin|Стас Фомин]].
 
Стенограмму по видеозаписи записал [[User:StasFomin|Стас Фомин]].
</blockquote>
+
</blockquote> -->
  
 
== Примечания ==
 
== Примечания ==
 
* [http://addconf.ru/event.sdf/ru/add_2010/authors/141/177 страничка доклада на сайте конференции]
 
* [http://addconf.ru/event.sdf/ru/add_2010/authors/141/177 страничка доклада на сайте конференции]
 +
* [http://www.lektorium.tv/speaker/?id=2843 Лекции Евгения по ФП, параллельному программированию и всему такому]
 +
 +
{{include-review|ADD 2010: Отчет Алексеева Алексея/Евгений Кирпичев. Многопоточное программирование}}
  
 
<references/>
 
<references/>
Строка 33: Строка 35:
 
{{replicate-from-custiswiki-to-lib}}
 
{{replicate-from-custiswiki-to-lib}}
 
[[Категория:ADD-2010]]
 
[[Категория:ADD-2010]]
 +
[[Категория: Параллельное программирование (доклады)]]

Текущая версия на 00:51, 20 ноября 2011

Аннотация

Евгений Кирпичёв из компании Grid Dynamics поделился своими знаниями, опытом и мыслями о многопоточном и распределенном программировании:

  • Корректность: Формальные методы (и хорошо забытая, но очень полезная "линейная темпоральная логика"), а также несколько паттернов, помогающих порою резко упростить разработку и повысить корректность многопоточных и распределенных систем.
  • Cutting-edge технологии: Что интересного и революционного есть в некоторых современных функциональных языках (Haskell, Erlang, Clojure, F#), и что уже стало или вот-вот станет мейнстримом.

Видео


Подкаст

Презентация

Многопоточное программирование (Евгений Кирпичёв на ADD-2010).pdf


Примечания

Многопоточное программирование (Евгений Кирпичёв на ADD-2010)

Был интересный доклад в формате лекции, что мне сильно понравилось.

  1. Гораздо лучше меня рассказал про структуру Крипке, темпоральные логики. Рассказал про LTL-логику и пример нескольких утверждений. К сожалению, дал неправильные данные, о сложности верификации LTL-логики, мне даже пришлось поправить:). К сожалению, на определениях все и закончилось. Рассказал про Spin и Java PathFinder. Последняя утилита вроде находит по java-программе все dead-lock-и.
  2. Далее рассказывал, как небольшими изменениями в дизайне можно снизить сложность многопоточного ПО. Я и так, практически, всех шаблонов придерживался интуитивно.
    Что запомнилось:
    • Если надо организовать отправку писем — сделайте абстрактную многопоточную очередь, и используйте ее. Ровно так месяца три назад я и сделал.
    • Можно использовать догоняющую стратегию, сделав инфраструктуру для исполнения догоняющих заданий. Это наши Job-ы.
    • Были антипатерны, такие, что в жизни я их не встречал. Вообще, я согласен, что большая часть сложности многопоточных программ очень сильно снижается правильной организацией системы.
  3. Было что-то про векторизацию. Интересный факт — набор ассоциативных операций можно векторизовать, точнее не сам набор операций (с этим все понятно), а последовательный возрастающий фрагменты вычислений (лениво расписывать). Так самая быстрая сортировки — векторный radix-sort. Было очень интересно, но докладчик не стал углубляться, и опять остановился на уровне определений. Еще код в Хаскеле тоже местами векторизуется.
  4. Что-то про функциональное программирование. Там с параллелизмом все круто — ну мы и не сомневались особо. Рассказывал про STM (Software transaction memory). Это дается бесплатно в ФП, но в обычных языках практически невозможно.

Мне понравилось, что доклад был в стиле лекции. Но не хватало полноценных разборов алгоритмов, оценок, доказательств, ну хоть на пальцах.



Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.