6 декабря 2012 в 18.00 часов в Санкт-Петербургском Академическом университете (СПбАУ) состоится технологический семинар, посвященный обзору современного состояния средств поддержки многопоточности в java.
Основные тезисы:
Из-за технических ограничений сложно наращивать частоту процессоров, но зато можно сделать много ядер;
Существует много задач, которые допускают параллельное исполнение каких-то из своих подзадач;
Работа с памятью стала медленнее, чем выполнение инструкций процессора, в результате чего потребовались кеши;
У подзадач могут быть какие-то общие данные, что влечёт необходимость обеспечивать когерентность кешей
Есть trade-off между производительностью и соответствием того, как исполняется код, интуитивным предположениям;
Например, reordering-и, появляющиеся в MESI при добавлении invalidate queue и write buffers;
Разработчики процессоров не могут знать заранее, когда reordering допустим, а когда нет. Это должны решать разработчики софта. Понятие memory model. Пример с memory barriers в терминах MESI.
Причём тут java? Текущие абстракции.
Зачем нужны более высокоуровневые инструменты из JMM: атомарность, взаимное исключение, синхронизация потоков.
О докладчике
Глеб Смирнов. Увлекается многопоточностью в java с 2009 года. Вёл
разработку серверных приложений с высокой степенью параллелизма, включая
платформу для высокочастотной алгоритмической торговли. Последние полтора года работает в Яндексе.
Участие в семинаре бесплатное, но требуется предварительная регистрация
Ресурсы:
Twitter: @setalks
Google group: se-talks@googlegroups.com