The presentation deals with the practical examples of the optimization levels in the context of the C++ language features and dwell upon the data-oriented design evaluation methods.
The presentation materials were co-authored with Oleksandr Markov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) and was delivered by Oleksandr Antsyferov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) at GlobalLogic Kharkiv C++ TechTalk #1 on May 16, 2018.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
According to a well-respected marriage advice site, there are 6 key predictors of divorce: getting married young, living together before marriage, having divorced parents, having a child before marriage, not being married long, and having an income under $25,000. The site claims you can still save your marriage by visiting their website.
The presentation deals with the practical examples of the optimization levels in the context of the C++ language features and dwell upon the data-oriented design evaluation methods.
The presentation materials were co-authored with Oleksandr Markov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) and was delivered by Oleksandr Antsyferov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) at GlobalLogic Kharkiv C++ TechTalk #1 on May 16, 2018.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
According to a well-respected marriage advice site, there are 6 key predictors of divorce: getting married young, living together before marriage, having divorced parents, having a child before marriage, not being married long, and having an income under $25,000. The site claims you can still save your marriage by visiting their website.
ECSS-10 – многофункциональный программно-аппаратный комплекс, предназначенный для построения интегрированных телефонных сетей связи операторского и корпоративного уровня на основе технологии VoIP.
Комплекс представляет собой совокупность программных и аппаратных компонент, разработанных и произведённых компанией Eltex, обеспечивающих высокий уровень
надёжности.
Ежегодная конференция IT UP (Сентябрь_Новосибирск)
предоставить бизнес-потребителям и представителям ИТ-компаний (вендоры, дистрибьюторы, интеграторы) независимую площадку для обсуждения актуальных решений для ИТ-структур в организациях.
http://askbda.ru/results/it/159-iii-ezhegodnaya-regionalnaya-konferenciya-sovremennye-it-resheniya-dlya-kompanij-yeffektivnost-logichnost-i-bezopasnost.html
Запись вебинара: http://ciscoclub.ru/novosti-giperkovergencii
В ходе доклада будут рассмотрены новые возможности гиперконвергентной платформы Cisco HyperFlex, включая расширенный функционал системного программного обеспечения, обновление аппаратной платформы, а также обзор новых валидированных дизайнов, существенно расширяющих спектр сценариев применения HyperFlex.
The document discusses concurrency and synchronization in distributed computing. It provides an overview of Petr Kuznetsov's research at Telecom ParisTech, which includes algorithms and models for distributed systems. Some key points discussed are:
- Concurrency is important due to multi-core processors and distributed systems being everywhere. However, synchronization between concurrent processes introduces challenges.
- Common synchronization problems include mutual exclusion, readers-writers problems, and producer-consumer problems. Tools for synchronization include semaphores, transactional memory, and non-blocking algorithms.
- Characterizing distributed computing models and determining what problems can be solved in a given model is an important area of research, with implications for distributed system design.
The document discusses weakly supervised learning from video and images using convolutional neural networks. It describes using scripts as weak supervision for learning actions from movies without explicit labeling. Methods are presented for jointly learning actors and actions from scripts, and for action learning with ordering constraints. The use of CNNs for object and action recognition in images is also summarized, including work on training CNNs using only image-level labels without bounding boxes.
More Related Content
Similar to Н. Иготти. Виртуализация и виртуальные машины. Лекция 10
ECSS-10 – многофункциональный программно-аппаратный комплекс, предназначенный для построения интегрированных телефонных сетей связи операторского и корпоративного уровня на основе технологии VoIP.
Комплекс представляет собой совокупность программных и аппаратных компонент, разработанных и произведённых компанией Eltex, обеспечивающих высокий уровень
надёжности.
Ежегодная конференция IT UP (Сентябрь_Новосибирск)
предоставить бизнес-потребителям и представителям ИТ-компаний (вендоры, дистрибьюторы, интеграторы) независимую площадку для обсуждения актуальных решений для ИТ-структур в организациях.
http://askbda.ru/results/it/159-iii-ezhegodnaya-regionalnaya-konferenciya-sovremennye-it-resheniya-dlya-kompanij-yeffektivnost-logichnost-i-bezopasnost.html
Запись вебинара: http://ciscoclub.ru/novosti-giperkovergencii
В ходе доклада будут рассмотрены новые возможности гиперконвергентной платформы Cisco HyperFlex, включая расширенный функционал системного программного обеспечения, обновление аппаратной платформы, а также обзор новых валидированных дизайнов, существенно расширяющих спектр сценариев применения HyperFlex.
The document discusses concurrency and synchronization in distributed computing. It provides an overview of Petr Kuznetsov's research at Telecom ParisTech, which includes algorithms and models for distributed systems. Some key points discussed are:
- Concurrency is important due to multi-core processors and distributed systems being everywhere. However, synchronization between concurrent processes introduces challenges.
- Common synchronization problems include mutual exclusion, readers-writers problems, and producer-consumer problems. Tools for synchronization include semaphores, transactional memory, and non-blocking algorithms.
- Characterizing distributed computing models and determining what problems can be solved in a given model is an important area of research, with implications for distributed system design.
The document discusses weakly supervised learning from video and images using convolutional neural networks. It describes using scripts as weak supervision for learning actions from movies without explicit labeling. Methods are presented for jointly learning actors and actions from scripts, and for action learning with ordering constraints. The use of CNNs for object and action recognition in images is also summarized, including work on training CNNs using only image-level labels without bounding boxes.
This document discusses common C++ bugs and tools to find them. It describes various types of memory access bugs like buffer overflows on the stack, heap, and globals that can lead to crashes or security vulnerabilities. Threading bugs like data races, deadlocks, and race conditions on object destruction are also covered. Other undefined behaviors like initialization order issues, lack of sequence points, and integer overflows are explained. The document provides examples of each type of bug and emphasizes that undefined behavior does not guarantee a predictable result. It concludes with a quiz to find bugs in a code sample and links to additional reading materials.
AddressSanitizer, ThreadSanitizer, and MemorySanitizer are compiler-based tools that detect bugs like buffer overflows, data races, and uninitialized memory reads in C/C++ programs. AddressSanitizer instruments loads and stores to detect out-of-bounds memory accesses. ThreadSanitizer intercepts synchronization calls to detect data races between threads. MemorySanitizer tracks initialized and uninitialized memory using shadow memory to find uses of uninitialized values. The tools have found thousands of bugs with low overhead. Future work includes supporting more platforms and languages and detecting additional bug classes.
This document discusses common C++ bugs and tools to find them. It describes various types of memory access bugs like buffer overflows on the stack, heap, and globals that can lead to crashes or security vulnerabilities. Threading bugs like data races, deadlocks, and race conditions on object destruction are also covered. Other undefined behaviors like initialization order issues, lack of sequence points, and integer overflows are explained. The document provides examples of each type of bug and quizzes the reader to find bugs in a code sample. It recommends resources for further reading on debugging techniques and thread sanitizers that can detect races and data races.
This document provides examples and snippets of code for MapReduce, Pig, Hive, Spark, Shark, and Disco frameworks. It also includes two sections of references for related papers and Disco documentation. The examples demonstrate basic MapReduce jobs with drivers, mappers, and reducers in Java, Pig and Hive queries, Spark and Shark table operations, and a Disco MapReduce job.
2. Идеологические моменты
• Можно реализовывать конкретную
архитектуру в ВМ
• И исполнять программы и ОС для этой
архитектуры в ВМ
• Что позволяет
прототипировать новые архитектуры
гибко управлять ресурсами существующих
использовать программы для устаревших
• Сложность в приемлемой
производительности полученной
реализации
• Весь дальнейший курс – о сложностях и их
преодолении 2
3. Немного истории
• 1964 – CP/40, IBM (14 виртуальных машин
одновременно) – полная виртуализация
• 1966 - M44/44X, IBM - паравиртуализация,
виртуальная память
• 1972 – VM/370, IBM – полноценный гипервизор,
используется до сих пор
• 1974 – формальные критерии виртуализирумости
Попека-Голдберга
• 1995 – основание Transmeta, процессоры с бинарным
транслятором
• 1998 – VMWare – первый виртуализатор x86 с
бинарным транслятором
• 2005 – Intel/AMD – расширения x86 для аппаратной
виртуализации
3
4. Основные проблемы
• Производительность (исполнение
инструкций)
• Производительность (доступ к памяти)
• Производительность (выполнение ввода-
вывода)
• Производительность (время отклика
системы)
• Безопасность, стабильность
• Точная поведенческая эмуляция, особенно
для сложных устройств ввода-вывода
4
5. Подходы к решению
• Программное моделирование целевой
архитектуры
• Интерпретация
• Динамическая трансляция
• Непосредственное исполнение инструкций
• Непосредственное использование MMU
• Прозрачная обработка исключений реальной
машины
• Программные модели оборудования
• Непосредственный (безопасный) доступ к
оборудованию
5
6. Критерии Попека-Голдберга
• Критерии полезной виртуализуемости архитектуры
для систем непосредственного исполнения (Java?)
• Необходимы
Эквивалентность
Контроль VMM над ресурсами
Эффективность
• В наборе инструкций
Привилегированные инструкции (P)
Чувствительные (по управлению, по поведению)
инструкции (S)
Все инструкции (A)
• От архитектуры требуются
SP P A
стат.
знач 6
7. Попек-Голдберг и x86
• X86 не удовлетворяет критериям ПГ
• Из-за наличия чувствительных
непривилегированных инструкций (S[GIL]DT,
SMWS, PUSHF, LAR, POP [CS]S, STR)
• Тем не менее, можно создать эффективный
VMM
• Используя механизм бинарной трансляции
• Или расширения архитектуры
виртуализирующие привилегированное
состояние (VT-x, AMD-V)
7
8. Вопросы
• Какие аппаратные компоненты
критичны для реализации VMM?
• В чѐм отличие механизма прерываний
от устройств ввода/вывода в
виртуализированном окружении
• Доступ к памяти – привилегированная
операция или нет?
• Как проверить, удовлетворяет ли
архитектура XYZ критериям ПГ?
8