?

Log in

No account? Create an account

elizarov


Блог Романа Елизарова


Previous Entry Share Next Entry
Доклад про многопоточные алгоритмы на BitByte 2014
elizarov

Через неделю после предыдущего доклада в Москве я выступил с его расширенной версией в Санкт-Петербурге, на конференции BitByte 2014. В формате "мастер класс" у меня было полтора часа на выступление. Сильно больше материала представить у меня не получилось, но, в дополнение к основным теоритическим предпосылкам, я успел затронуть вопрос построения линеаризуемых алгоритмов и основы теории алгоритмов без блокировки.

Моей задачей было заинтересовать слушателей теорией параллельного программирования и, судя по некоторым отзывам, цель была достигнута. Несколько человек, подошедших ко мне после выступления, явно хотели знать больше, и, я надеюсь, займутся самообразованием в этой области. А для сотрудников Devexperts я прочитаю в этом году целый курс из 8 лекций, в котором будет весь этот материал и много, много еще всего. Большую часть материала я возьму из курса лекций, который я читаю в ИТМО, но будет и много нового. Я подготовлю отдельную лекцию исключительно про JMM, где я подробно разберу структуру JMM и научу коллег доказывать и анализировать корректность кода по JMM. Несколько лекций будет посвящено практическим алгоритмам. В плане стоит отдельная лекция только про очереди и отдельная лекция только про хеш-таблицы. Там я не только расскажу и объясню все фундаментальные "классические" многопоточные построения на списках, но и современные достижения в области алгоритмов на массивах которые, как известно и о чем я уже писал, существенно превосходят списочные структуры по производительности на практике.

Слайды с доклада:

В дополнение к учебникам и работам, которые я давал в предыдущей заметке, хочется порекомендовать совершенно прорывную работу М. Херлихи, которая совершила переворот в области алгоритмов без ожидания, выстроив всё в красивую и строгую теорию.

M. Herlihy. Wait-Free Syncrhonization. 1991. Именно там обоснована необходимость аппаратной поддержки особого класса операций — универсальных операций, таких как CompareAndSet, и доказано что без них невозможно реализовать без ожидания очень широкий класс практически полезных объектов.


  • 1
1. Огромное спасибо за лекцию!
2. Курс лекций для сотрудников Devexperts - будет ли возможность ознакомиться с ним, не будучи сотрудником Devexperts?

присоединяюсь к вопросу 2.

Нет, но те или иные кусочки этого курса я наверняка в будущем буду рассказывать на каких-нибудь конференциях. В общем это намек на то, что я не откажусь выступить на каком-нибудь из мероприятий, которые вы будете организовывать в будущем. В качестве бонуса, я дам вам самим возможность выбрать.

Супер!

Тогда, пользуясь случаем, приглашаю выступить в Питере на Joker 2014 в октябре!

А ещё мы хотим устроить на JUG что-то типа Concurrency Day. А может, вообще -- конференцию по многопоточному программированию. И не обязательно на Java. Как тебе такая мысль? Тема-то дико интересная и важная.

Всегда пожалуйста. Этот курс лекций в Devexperts не планируется делать открытым, но ничего не мешает вам стать сотрудником Devexperts. У нас полно вакансий.

.. в этом и смысл выступлений.

1. Как один из тех кто подошел после выступление с вопросами,могу подтвердить что структурированной теоретической информации действительно мало по парралельным и распределенным алгоритмам. А жаль, нет ничего практичнее хорошей теории.
2. Как учившийся и в Дагестанской Универе и СПбГУ в конце 90-х могу подтвердить что преподавалось тогда все в этой области computer science совершенно формально, без огонька ))
3. Большое спасибо за информацию к размышлению.

Роман, добрый день!

У вас в описаниях докладов есть множество ссылок на интересную литературу. А можете посоветовать что-то для Джава программиста для лучшего понимания самых основ: устройство процессора, JVM, ОС - то есть вещи, которые нужны для понимания того как собственно выполняется программа
? Что-то между электроникой и исходным кодом.

И второе, есть ли где-то в общем доступе ваши лекции по Джаве, в каком-либо виде? Я пока встречал только видеозаписи на Jug.ru.

Ущите учебники по соотвествующим предметом, а лучше поступите и окончите вуз по программисткой специальности. Там вас всему этому научат.

  • 1