Архив рубрики: Видео

Видеолекции курса Параллельное программирование

Видеолекции курса Параллельное программирование.

Лектор: Евгений Калишенко.

В курсе будет рассказано про

  • многопоточное программирование на примере
    • С++: POSIX threads, Boost, OpenMP, Intell TBB и
    • Java: threads, java.util.concurrent, Fork/Join framewok
  • теорию параллельных вычислений: алгоритмы консенсуса, атомарные регистры, lock-free и wait-free алгоритмы, шаблоны || программирования
  • вычислительные кластеры (на примере MPI)
  • другие способы повышения производительности (транзакционная память, асинхронный ввод/вывод…)

Репозиторий: http://code.google.com/p/hpcource

Лекция 1. Введение.

  1. Мотивация к применению параллельных вычислений
  2. Закон Амдала
  3. Общий взгляд на высокопроизводительные системы начиная от расширений SSE, через многоядерность к узлам кластеров
  4. Обзор технологий многопоточного программирования
    • Posix threads
    • Java threads, Boost threads
    • OpenMP
    • Intel TBB
    • Java.util.concurrent
    • Fork/Join Framework


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 2. Корректная работа с потоками.

  1. Механизм запуска потока
  2. Корректное завершение потоков
  3. Сравнение различных потоков (POSIX, boost, java)
  4. Обработка исключений


Посмотреть видео на сайте Лекториума

Лекция 3. Примитивы синхронизации.

  1. Необходимость синхронизации: гонки данных
  2. Реализация примитивов синхронизации: алгоритмы Петерсона и Лампорта
  3. Виды мьютексов: рекурсивные/нерекурсивные, читатели/писатели…
  4. Корректные захват/освобождение примитивов
  5. CAS-операции и атомики


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 4. Примитивы синхронизации — 2.

  1. Condition variables: использование wait/notify
  2. Алгоритмы синхронизации: грубая, тонкая


Посмотреть видео на сайте Лекториума

Скачать: Презентация

Лекция 5. Алгоритмы синхронизации.

  1. Алгоритмы синхронизации: оптимистичная, неблокирующая
  2. Классы алгоритмов: lock-free, wait-free
  3. Пулы потоков


Посмотреть видео на сайте Лекториума

Скачать: Презентация

Лекция 6. Ошибки || программирования.

  1. Гонки данных (Data Race)
  2. Взаимная блокировка (Deadlock)
  3. Блокировки при fork многопоточных программ
  4. Инверсия приоритетов


Посмотреть видео на сайте Лекториума

Лекция 7. Атомарные снимки регистров.

  1. SWMR-регистры
  2. Lock-free snapshot
  3. Wait-free snapshot


Посмотреть видео на сайте Лекториума

Лекция 8. OpenMP и Intel TBB.

  1. Обзор OpenMP: параллельные секции, области видимости переменных, ограничения
  2. Обзор Intel TBB: алгоритмы, аллокаторы, деревья задач, планирование


Посмотреть видео на сайте Лекториума

Скачать: Презентация

Лекция 9. Шаблоны || программирования.

  • Структурные шаблоны
    1. Декомпозиция по задачам
    2. Геометрическая декомпозиция
    3. Recursive Data
    4. Pipeline
  • Некоторые программные структуры
    1. Parallel loops
    2. Boss/Worker
  • Разное
    1. Double check
    2. Local Serializer


Посмотреть видео на сайте Лекториума

Скачать: Презентация

Лекция 10. Кластерные вычисления.

  • История и назначение стандарта
  • Обмен сообщениями
    1. С блокировкой
    2. Без блокировки
    3. Отложенные запросы на взаимодействие
    4. Тупиковые ситуации (deadlock)
  • Взаимодействие процессов
    1. Группы и коммуникаторы
    2. Операции коллективного взаимодействия процессов
    3. Редукция
    4. Виртуальные топологии
  • Средства анализа производительности


Посмотреть видео на сайте Лекториума

Скачать: Презентация

Лекция 11. Map/Reduce — теория и практика.

  • Идея Map/Reduce
  • Hadoop
    1. Обзор архитектуры
    2. Примеры задач
    3. Детали реализации
    4. Популярные расширения
  • Другие реализации M/R: достоинства и недостатки
    1. Проблемы Hadoop
    2. Spark
    3. Disco
  • Дополнительно
    1. Что не надо использовать для построения M/R приложений
    2. Отказоустойчивость M/R приложений


Скачать: Презентация

Продолжение следует…

Дополнительные материалы:
Сайт курса.
Видеолекции курса Параллельное программирование (2012).
Видеолекции курса Архитектура ЭВМ и основы ОС (2013).
Курс Параллельное программирование в ЗНУ. Лектор: Бувайло Дмитрий Павлович.

Автор: Roman Brovko

Java 8 Launch Party

Всего неделю назад Oracle выпустил релиз восьмой версии Java платформы, которая является одним из самых значительных обновлений за всю историю Java. JUG.ru приглашает вас на встречу посвященную выпуску новой версии нашей любимой платформы.

a45f0b88-949c-4382-98e5-2b8f888c249f

Программа встречи:

  • Stream API, Сергей Куксенко, Oracle
  • Что нового в JVM, Владимир Иванов, Oracle
  • Type Annotations и новый API даты и времени, Александр Ильин, Oracle
  • Mission Control, Дмитрий Чуйко, Oracle
  • Java SE Embedded 8, Лев Прима, Oracle
  • Поддержка Java 8 в IntelliJ IDEA, Николай Чашников, JetBrains
  • Микрохирургия HotSpot, Владимир Воскресенский, Oracle

 


Посмотреть видео на сайте Лекториума

Автор: Roman Brovko

Видеолекции курса Обзорный курс по анализу данных

Видеолекции курса Обзорный курс по анализу данных.

Лекторы: Юлия Киселева, Алексей Катышев .

Целью курса является знакомство студентов с инструментами data mining, применяемых для больших объемов данных. Говоря большие данные, мы подразумеваем тот факт, что данные не помещаются в память. Data mining — это дисциплина, которая применяет различные алгоритмы для больших объемов данные с целью получения интересных фактов, мы будем фокусироваться на web data mining, то есть рассматривать в качестве примеров web data.


Лекция 1. Введение.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 2. Поиск похожих объектов. MapReduce.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 3. Поиск похожих объектов.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 4. Поиск ассоциативных правил.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 5. Кластеризация.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация
Семинар

Лекция 6. Классификация текста.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 7. Системы рекомендации.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 8. Извлечение информации.

Дополнительные материалы


Скачать: Презентация

Лекция 9. Анализ ссылок.

Дополнительные материалы


Скачать: Презентация

Лекция 10. Анализ ссылок 2.

Дополнительные материалы


Скачать: Презентация

Лекция 11. Анализ данных для Интернет рекламы.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация (часть 1)
Презентация (часть 2)

Видеолекции курса Базы данных

Видеолекции курса Базы данных.

Лекторы: Илья Тетерин, Вадим Цесько, Антон Волохов, Дмитрий Щитинин, Герман Андреев.


Лекция 1. Введение.

  • О лекторе
  • Организация курса
  • Содержание курса
  • Определения и примеры
  • Классификация БД
  • Домашнее задание


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 2. Hash & Cache. CAP.

Hash & Cache:

  • Hash table
  • Архитектуры Web-приложений
  • Cache
  • Distributed cache
  • Memcached
  • Consistent hashing
  • Redis

Consistency, Availability and Partition Tolerance:

  • Remembrance Inc.
  • CAP Theorem
  • Транзакции


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Hash & Cache

CAP

Лекция 3. Distributed Commit.

  • 2PC & 3PC
  • Отношение happens-before: Lamport Timestamps & Vector Clocks
  • Протокол Raft
  • Альтернативное домашнее задание


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 4. Cassandra.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 5. MongoDB is a web-scale.

  • Введение: терминология

  • API: декларированные цели, особенности, запросы

  • Устройство хранилища: работа с ФС, сложные запросы, индексы

  • Репликация

  • Шардирование: выбор ключа

  • Секретный ингредиент

  • Заключение: выводы, материалы


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 6. Haystack.
Лекция «Haystack» про хранение фоток в Facebook по статье «Finding a Needle in Haystack: Facebook's Photo Storage»:

  • Введение: материалы, мотивация, цифры, характер запросов, основные цели
  • Background: типичная архитектура, предыдущее решение на NFS + NAS
  • Архитектура: новая версия, задача, подход, компоненты (Directory, Cache, Store)
  • Детали реализации: Store-файл, запросы, индекс, оптимизации
  • Заключение: нагрузка
  • Домашнее задание: промежуточные итоги, feature requests, общие замечания, тулзы


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 7. HDFS.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 8. HBase.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 9. ZooKeeper.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 10. Lucene.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 11. Graph DB.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Презентация

Лекция 12. Multidimensional indexing.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 13. STM.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Дополнительные материалы:
Видеолекции курса Базы данных (2012).

Автор: Roman Brovko

Видеолекции Архитектура ЭВМ и основы ОС

Видеолекции курса Архитектура ЭВМ и основы ОС.

Лекторы: Кирилл Кринкин, Михаил Кринкин.

Курс предназначен для всех, кто уже имеет опыт разработки на языках высокого уровня и интересуется базовыми механизмами работы компьютера, образующими программный стек от аппаратуры до уровня интерфейсов операционной системы. Основная цель курса – познакомиться с архитектурой различных процессоров (Intel, ARM), понять как аппаратные компоненты связаны с программными, рассмотреть базовые механизмы операционной системы (реализация многозадачности, управление памятью, межпроцессные коммуникации), освоить на практике инструменты и методы системного программирования.

Лекция 1. Введение. История развития ВТ. Аппаратное и системное программное обеспечение.


Посмотреть видео на сайте Лекториума

Лекция 2. Архитектура ЭВМ. Процессоры. Системы команд и модели вычислений. CISC. RISC. Виртуальные машины.


Посмотреть видео на сайте Лекториума

Лекция 3. Системообразующие компоненты. Аппаратная архитектура.
Чипсеты. Шины. Микроконтроллеры (классификация, обзор семейств).


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 4. Ассемблер в Linux.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 5. Архитектура программного стека. Основные компоненты ОС. Понятие ресурсов.
Сходства и различия современных операционных систем: windows, linux, qnx, iOS, Android. Управление процессами и потоками. Диспетчеризация.


Посмотреть видео на сайте Лекториума

Лекция 6. Управление памятью в операционной системе.


Посмотреть видео на сайте Лекториума

Дополнительные материалы

Лекция 7. Межпроцессное взаимодействие и примитивные сетевые возможности.


Посмотреть видео на сайте Лекториума

Лекция 8. Система команд ARM.


Посмотреть видео на сайте Лекториума

Лекция 9. Загрузчик.


Посмотреть видео на сайте Лекториума

Дополнительные материалы


Скачать: Презентация

Лекция 10. IPC: сокеты.


Посмотреть видео на сайте Лекториума

Лекция 11. Компоновка и загрузка программ.


Посмотреть видео на сайте Лекториума

Лекция 12. Операционные системы.


Посмотреть видео на сайт
е Лекториума

Дополнительные материалы:
Скачать Краткое введение в reverse engineering для начинающих
Ассемблер в Linux для программистов C
Видеолекции курса Параллельное программирование (2012).
Видеолекции курса Параллельное программирование (2014).
Таненбаум Э.Современные операционные системы. 3-е изд. — СПб.: Питер, 2010. — 1120 с.
Таненбаум Э., Вудхалл А. Операционные системы. Разработка и реализация (+CD). Классика CS. 3-е изд. — СПб.: Питер, 2007. — 704 с: ил.
Руководство по созданию простой UNIX-подобной ОС

Автор: Roman Brovko