Параллельная обработка и виртуальные машины
| English | Русский |
|---|---|
| virtual machines/ˈvɜːtʃuːəl məˈʃiːnz/ | виртуальные машины |
| parallelism/ˈpærəlelɪzəm/ | параллелизм |
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | масштабно параллельная обработка |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | распределенная память |
| hypervisor/ˌhaɪpəˈvaɪzə/ | гипервизор |
| sandboxing/ˈsændbɒksɪŋ/ | песочница |
| bytecode/ˈbaɪtkəʊd/ | байт-код |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | компиляция «при необходимости» (JIT) |
Один компьютер, притворяющийся сорока
- Компания раньше покупала один физический сервер на каждое приложение: один для почты, один для веб-сайта, один для бухгалтерии. Каждый работал примерно на 8% от своей мощности, но потреблял полную мощность в стойке, требующей охлаждения.
- Затем серверы перестали быть машинами и стали файлами. Сорок ** виртуальных машин ** теперь работают на трёх физических хостах, каждая из которых убеждена, что у неё есть собственный процессор, память и диски.
- Экономия касается не только электроэнергии. Виртуальную машину можно сделать снимком перед рискованным изменением, скопировать на другой хост во время работы и уничтожить, если она была скомпрометирована.
- Этот урок посвящён ** параллелизму ** и виртуальной машине: как эти две архитектуры систем различаются, а также что даёт и стоит VM.
Параллельные архитектуры, кратко
- ** Параллелизм ** означает множество обрабатывающих элементов, работающих одновременно. Таксономия Флинна называет формы: ** SIMD ** выполняет одну инструкцию над множеством данных, а ** MIMD ** выполняет разные инструкции на разных данных.
- ** Массово-параллельная ** машина доводит MIMD до тысяч процессоров, каждый со своей ** распределённой памятью **, общающихся посредством сообщений.
- Скорость больше не достигается повышением частоты тактового сигнала, которая ограничена тепловыделением, а достигается выполнением большего числа задач одновременно. Каждая архитектура на этой странице является ответом на этот вызов.

Разные инструкции, разные данные, одновременно
SIMD означает:
Single Instruction, Multiple Data — например, GPU, выполняющий одну операцию на тысячах пикселей.
Сопоставьте каждую категорию Флинна с примером.
Флинн классифицирует по количеству параллельно выполняемых потоков инструкций и данных: SISD, SIMD, MIMD (и редкий MISD).
Massively parallel компьютер использует:
Massively parallel системы (суперкомпьютеры) связывают тысячи процессоров с распределённой памятью через быструю сеть.
Что такое виртуальная машина
- ** Виртуальная машина ** — это ** программное эмуляция целого компьютера **. Программы, работающие внутри неё, видят процессор, память и диски, которые выглядят настоящими, но предоставляются и управляются программным обеспечением хоста.
- Существует два типа, и экзамен различает их: ** системная VM ** запускает полноценную гостевую операционную систему, а ** процессная VM ** запускает портативный код одной программы.
- Ни одна из них не является эмуляцией более быстрой машины. Цель VM — изоляция и переносимость, а не скорость.
Лаборатория вычислительных концепций
Классифицируйте конкретные примеры по вычислительной идее, которую они демонстрируют.
Что такое виртуальная машина?
Суть в эмуляции и изоляции, а не в скорости. Системная VM запускает целую гостевую ОС; процессная VM выполняет байткод одной программы.
Системные виртуальные машины
- ** Гипервизор ** — это программное обеспечение, создающее и управляющее виртуальными машинами, разделяющее реальные процессоры, память и диски хоста между ними и сохраняющее каждую из них изолированной от остальных.
- Каждая VM загружает ** свою собственную гостевую операционную систему **, поэтому один хост может одновременно работать под управлением Windows, Linux и старой легаси-системы.
- Применение: запуск различных операционных систем на одной машине; ** консолидация серверов **, замена множества недогруженных физических серверов одним хостом; ** песочница ** (sandboxing), чтобы рискованное или ненадёжное ПО работало изолированно и не могло получить доступ к хосту; а также снимки, позволяющие откатить машину к известному состоянию.

Стойка с хостами, каждый из которых содержит множество виртуальных машин
Гипервизор используется для:
Гипервизор управляет системными VM, позволяя нескольким гостевым операционным системам делить один физический компьютер.
Системная VM (управляемая гипервизором) запускает целую гостевую операционную систему, тогда как процессная VM, такая как JVM, выполняет только байткод одной программы.
Системные VM делят один физический компьютер между несколькими гостевыми ОС; процессные VM обеспечивают принцип «напиши один раз, работай везде» для одной программы.
Программное обеспечение, которое создает и управляет несколькими системными VM на одном хосте, называется ____.
Он разделяет реальное аппаратное обеспечение хоста между гостями и сохраняет изоляцию каждого, что и делает возможным создание песочниц и консолидацию.
Процессные виртуальные машины
- ** Процессная VM **, также называемая языковой VM, выполняет ** одну программу **, написанную на портативном ** байтовом коде **, а не машинном коде хоста. Java Virtual Machine и .NET CLR являются примерами.
- Преимущества: ** переносимость **, поскольку одинаковый байтовый код работает везде, где есть VM («напиши один раз, запускай везде»); ** безопасность во время выполнения , так как VM проверяет действия кода; и ** компиляция «по мере необходимости» (just-in-time) горячего кода в нативные инструкции, благодаря чему долгие программы приближаются к нативной скорости.
- Недостатки: дополнительный слой между программой и аппаратным обеспечением, и VM должна быть установлена до того, как программа сможет запуститься вообще.
Каковы преимущества процессной (языковой) VM, такой как JVM? Выберите все подходящие варианты.
VM должна присутствовать; это цена портативности. Портативность, безопасность и JIT — это преимущества.
Разобранный пример: какой тип VM
- Команда безопасности хочет открыть подозрительные вложения в письмах без риска для корпоративной сети. ** Системная VM **: гостевая ОС изолирована гипервизором, поэтому вредоносное ПО не может добраться до хоста, а после проверки восстанавливается снимок, чтобы удалить всё, что он сделал.
- Разработчик хочет, чтобы одна скомпилированная программа работала под Windows, macOS и Linux без повторной компиляции. ** Процессная VM **: программа компилируется в байтовый код, и VM каждой платформы выполняет её.
- Назовите тип, затем свойство — изоляцию или переносимость, которое требуется данной ситуации.
Расставьте последствия отказа одного физического хоста в правильном порядке.
Консолидация концентрирует риски: один хост становится единой точкой отказа для всего, что он содержит. Это ограничение масштабируемости.
Разобранный пример: преимущества и ограничения
- Объясните два преимущества и два недостатка использования виртуальных машин для замены физических серверов компании. [4]
- Преимущества: несколько серверов работают на одном физическом хосте, поэтому снижаются затраты на оборудование, электроэнергию и охлаждение; и каждая VM изолирована, поэтому скомпрометированный или упавший сервер не влияет на остальные, и его можно восстановить из снимка.
- Недостатки: VM ** делят ** реальные процессоры, память и диски хоста, поэтому производительность ниже, чем у выделенного оборудования, и одна загруженная VM может лишить ресурсов другие; и если хост выходит из строя, ** все ** VM на нём падают одновременно.
- По два каждого, и каждый пункт должен быть следствием, а не просто меткой.
Потерянные баллы
- ** Гипервизор ** управляет системными VM; это не гостевая операционная система и не собственная ОС хоста.
- Процессная VM выполняет ** байтовый код **, который не является машинным кодом. Именно это делает её переносимой.
- Ограничение VM — это ** общие ресурсы и единая точка отказа **, а не «это сложно».
- «Песочница» (sandboxing) требует своего следствия: рискованное ПО ** изолировано от хоста **, поэтому оно не может повредить его или получить к нему доступ.
Вы поняли
- параллелизм преодолевает ограничение тактовой частоты: SIMD — одна инструкция на многие данные, MIMD — множество инструкций, масштабируемый параллелизм — тысячи процессоров с распределённой памятью
- виртуальная машина — программная эмуляция целого компьютера
- системная виртуальная машина запускает полную гостевую ОС под управлением хипервизора: различные операционные системы на одном компьютере, консолидация серверов, песочница, снимки состояния
- процессная виртуальная машина запускает переносимый байт-код с безопасностью во время выполнения и компиляцией «на лету»; недостатки: дополнительный слой абстракции, общие ресурсы хоста и зависимость от одного узла (при его отказе падают все ВМ)