Виртуальные ядра процессора что это
Где то утверждают что это по сути и есть ядро (или поток ядра). И например при технологии Hyper-Threading система определяет физическое ядро как два виртуальных.
Кто то утверждает что виртуальный процессор может эмулироватся программно молл виртуальный процессор можно сравнить с операционной системой. Поток по отношению к нему выступает как процесс, подобно тому, как сам виртуальный процессор является процессом с точки зрения операционной системы.
Еще говорят что при создании виртуальной машины можно для нее выделять виртуальные процессоры
ТАК ЧТО ТАКОЕ ВИРТУАЛЬНЫЙ ПРОЦЕССОР
Заключение
Надеюсь выяснили — виртуальное ядро процессора, это поток. Когда проц поддерживает потоки — значит на 1 ядро идет 2 потока. Windows эти потоки видит как ядра. 4 ядерный процессор с потоками операционкой виден как 8 ядерный.
1 поток слабее 1 ядра. Но 2 потока — быстрее 1 ядра, но слабее 2 ядер. Результат — процессор с потоками или такими вот виртуальными ядрами начинает работать попросту быстрее.
Кстати потоки эти появились еще в Пентиум 4, а до этого были только в серверных процах.
Ребята, я надеюсь эта информация была полезной. Удачи вам и добра, берегите себя и до новых встреч!
Если вы когда-то внимательно просматривали содержимое установочного меню Биоса, то наверняка могли заметить опцию СРU Нуреr Thrеаding Тесhnоlоgу. Кроме того, скорее всего, вы думали о том, что же это такое (гиперпоточность или сверхпоточность) и для чего нужна такая функция, а еще как включить виртуальные ядра. Итак, Нуреr Thrеаding представляет собой относительно новую технологию, которую разработала такая компания, как Intеl для процессоров с архитектурой Пентиум. Как показывает практика, применение такой технологии дало возможность в большинстве случаев повысить уровень производительности ЦПУ примерно от 20 до 30%.
Начну с результатов ESXi
На сервер установлена версия ESXi сервера 5.1-1483097.
Про логику работы ESXi + Hyperthreading на Хабре опубликован интересный материал «Оптимизация работы виртуальной инфраструктуры на базе VMWare vSphere», рекомендую к ознакомлению.
Несколько экспериментов с размерами vcpu, технология intel HT активна, воспроизводился тестовый ролик с качеством 480p.
Как видно из результатов, при использовании 8 потоков на терминальном сервере удалось запустить еще одну копию фильма и получить средний прирост в 20%. А вот разница между виртуальными процессорами и виртуальными ядрами в случае одного физического процессором незаметна.
Нагрузку я фиксировал с VM, если фиксировать с хоста — цифры будут другими, по какой-то причине хост сервер фиксирует отличный от VM результат. Вот как это выглядит при работе реальных пользователей:
В следующих тестах я буду выключать HT в биосе и воспроизводить ролики с качеством 480р, 720р и 1080р.
Результаты Hyper-V 2012
На сервер установлена ОС ws2012 R2 Standart и установлены все обновления на момент тестирования.
Тестовая VM портировалась с платформы VMware на платформу Microsoft.
Показания производительности снимались с хоста:
Виртуальное ядро процессора — как работает?
На самом деле все просто. Процессор работает себе, трудится, все хорошо. Но в работе могут быть паузы, например:
- Произошел промах при запросе к кэшу.
- Неверное предсказание события.
- Ожидание результата предыдущей инструкции.
Это примерные причины, по которым процессор может простаивать доли секунды, скорее всего они вам непонятны, но вы не обращайте внимание)) Даже доли секунды в процессорном времени — это значительно, особенно если таких простоев много. Что делать? Все просто. Изначально все что выше написано — делается на одном ядре, а точнее на одном потоке. Но при наличии технологии виртуальных ядер — процессор не будет останавливаться, а просто в это время передаст управление другому потоку, который тоже выполняет определенную работу.
Простыми словами, когда 2 потока на 1 ядре — то технология старается загрузить процессор по полной, если какие-то простои, ожидания ответа, еще что-то — в это время будет работать второй поток, в итоге процессор может больше обработать данных.
На практике в некоторых программах, например сжатие данных — результат хорошо заметен. В некоторых играх например эффекта нет, а иногда даже хуже. Почему? Потому что потоки система видит как ядра, ну это хорошо, но только 1 поток слабее 1 ядра. Если задача нетребовательная — то лучше чтобы она выполнялась ядрами, а не потоками. С потоками хорошо умеют работать современные игры.
Вот примерный принцип как работают потоки:
Также технология потоков увеличивает нагрев процессора именно по той причине что он может теперь больше обрабатывать данные. Насколько? Ну примерно на 30-50%. Но в современных процессорах это значение может быть выше.
Кстати, используя простую бесплатную утилиту CPU-Z можно узнать сколько в процессоре ядер и потоков:
Написано все внизу в графах Cores и Threads. CPU-Z это бесплатная крошечная утилита, нет рекламы и кажется можно даже не устанавливать, классная вещь, показывает краткую инфу о проце и про оперативную память (например год выпуска планки).
Потоки вообще можно отключить в биосе, вот например опция Hyper-threading:
У АМД все также, только опция называется SMT Mode (или немного иначе, зависит от материнки). PS: чтобы активировать опцию — нужно выбрать Enabled, ну а чтобы отключить — Disabled.
Для чего разработчикам потребовалась многопотоковая технология
Тут следует вспомнить и про то, как вообще функционирует центральный процессор персонального компьютера. Вам следует включить компьютер и запустить на нем какую-то программу, как центральный процессор управления начнет считывать содержащиеся инструкции, которые записаны в виде машинного кода. Он по очереди считывает все инструкции и выполняет одну задачу за другой. Но у большинства программных обеспечений есть сразу несколько выполняющихся программных процессов. Более того, современные операционные системы дают возможность пользователям иметь единовременно запущенные программы, и не просто позволяют – в реальности ситуация, когда в операционной системе выполняется лишь один процессор, практически невозможна.
По этой причине центральные процессоры управления, которые были разработаны по старым технологиям, имеют низкий уровень производительности в том случае, когда нужно обрабатывать сразу несколько процессов. Естественно, что для решения такой проблемы можно добавить в систему сразу несколько процессоров или процессов, которые используют одновременно несколько вычислительных физических ядер. Но такая модификация обходится довольно дорого, технически сложная и не всегда эффективная с точки зрения практики.
Результаты Hyper-V 2008
На сервер установлена ОС ws2008 R2 Standart и установлены все обновления на момент тестирования.
Показания производительности снимались с хоста, однако платформа Hyper-V 2008 с активным HT не позволила создать VM с 8 vcpu, в связи с чем получены странные результаты.
После того как, я не смог запустить VM в конфигурации 8 vcpu решил проверить работу Hyper-V 2008 в связке с VDI. Были созданы несколько VM с ОС Windows 7 x86, все обновления установлены.
Результаты для 4 vcpu per VM:
Результаты для 2 vcpu per VM:
Конфигурация с 2 vcpu per VM показала результат лучше, очень заметно для ролика 1080р.
Коротко о технологии
Понимать такую технологию довольно важно, так как она является одной из основных функций в процессах работы центральных процессоров управления Intеl. Невзирая на успехи, которые были достигнуты для процессоров, у них есть один ощутимый минус – они могут выполнят одновременно лишь одну инструкцию. К примеру, вы запустили такие приложения, как браузер, текстовый редактор, а еще Зум. С точки зрения пользователя, такое программное окружение называют многозадачным, но с точки зрения процессора это совсем не так. Процессорное ядро будет выполнять все так же одну инструкцию за определенный временной промежуток. При этом в задачу центрального процессора управления входит ресурсное распределение времени процессора между отдельными видами программного обеспечения. Так как это последовательное выполнение инструкций выполняется слишком быстро, вы этого не заметите и кажется, словно нет никакой задержки.
Но все же задержка есть. Виртуальные ядра процессора Intеl работают так, что задержка появляется из-за метода снабжения процессора информацией из каждой программы. Каждый из потоков данных должен поступать в определенное время и обрабатываться внутри процессора индивидуально. Такая технология, как Нуреr Thrеаding, дает возможность каждому процессорному ядру планировать обработку данных, а также распределять ресурсы сразу на 2 потока. Стоит также отметить и тот факт, что в ядре современного процессора есть сразу несколько особых исполнительных устройств, причем каждое из них предназначено для того, чтобы выполнять определенные операции над данными. Кроме того, определенная часть исполнительных устройств при обработке данных потока будет попросту простаивать.
Чтобы разобраться с такой ситуацией, можно привести аналогию с работниками, которые работают на конвейере в сборочном цехе и обрабатывают разнотипные детали. Каждый специалист снабжен особыми инструментами, которые предназначены для проведения той или иной задачи. Но если детали будут поступать в неверной последовательности, то могут получиться задержки, так как часть работников ждет своей очереди, чтобы приступить к работе. Технология Нуреr Thrеаding такая, что ее можно сравнить с дополнительной конвейерной лентой, которую установили в цехе для того, чтобы ранее простаивающие рабочие смогли бы выполнять свои операции вне зависимости от работы других людей. Цех остается в количестве 1 штука, но элементы обрабатываются куда скорее и эффективнее, а потому время простоя сокращается. Получается, что такая технология дала возможность включить в работе такие исполнительные процессорные устройства, которые простаивали при выполнении инструкций от одного потока. Если вы включите персональный компьютер с двухъядерным процессором, который поддерживает такую технологию и открыть диспетчер задач на вкладке «Быстродействие», как вы увидите 4 графика. Но это совсем не означает, что у вас и правда 4 процессорных ядра.
Это происходит из-за того, что операционная система Windows считает, будто у каждого ядра есть по 2 логических процессора. Такой термин, как «логический процессор» звучит странно, но в реальности он означает тот центральный процессор управления, которого физически не существует. Операционная система может посылать потоки данных на каждый логический процессор, но в реальности все работу проводит лишь 1 ядро, а потому такое ядро с технологией Нуреr Thrеаding сильно отличается от физических раздельных ядер. Для нормального функционирования технологии требуется ее поддержка со стороны таких программных и аппаратных средств, как чипсет материнской платы, процессор, Биос и операционная система.
История: как начиналась разработка
По этой причине разработчики решили создать специализированную технологию, которая дала бы возможность единовременно обрабатывать сразу несколько процессов на одном физическом ядре. При этом для программного обеспечения внешне все будет выглядеть так, словно в системе есть сразу несколько ядер процессора. Технологическая поддержка Нуреr Thrеаding в первый раз появилась в процессорах еще в далеком 2002 году. Речь шла про процессоры из семейства Пентиум 4 и процессоры сервера Ксеон, имеющие тактовую частоту больше 2 ГГц.
Первоначально такую технологию называли Jасksоn, но после наименование сменилось на другое, более понятное для широкой аудитории, т.е. Нуреr Thrеаding, что буквально переводится как «сверхпоточность». При этом по утверждению Интел, кристаллическая процессорная поверхность, которая поддерживает Нуреr Thrеаding, стала больше в сравнении с прошлой моделью, которая ее не поддерживает, лишь на 5% при увеличении уровня производительности в среднем на 20%.
Невзирая на то, что в целом такая технология отлично себя зарекомендовала, но по некоторым причинам корпорация Интел решила отключать такую технологию4 процессорах из линейки Кор 2, которые сменили Пентиум. Нуреr Thrеаding все-таки позже появилась в процессорах, имеющих архитектуру Ivy Вridgе, Sаndу Вridgе и Наswеll, но в них она уж существенно переработана.
Виртуальное ядро процессора — что это?
Дело в том, что процессор работает неидеально. Но сделать идеально — значит начинать все заново, не просто выпустить новый процессор, а вообще все заново, то что начинали лет 20-30 назад.
Поэтому создают технологии, которые ускоряют работу процессора. Одна из них — виртуальные ядра, они же потоки и они же технология Hyper-Threading (HT), это у Intel, а у AMD технология называется SMT (от англ. simultaneous multithreading).
Именно эта технология делает так, что одно физическое ядро представляется в системе как два виртуальных или два потока. Таких два потока — быстрее одного ядра, но медленнее двух настоящих ядер.
Поддержка виртуальных ядер определяется процессором, не все модели эту технологию поддерживают.
Заключение
Количество виртуальных ядер процессора – это важно, но куда важнее правильно ими пользоваться. Так как максимальное повышение уровня производительности при задействовании Нуреr Thrеаding составляет 25-30%, то нельзя сказать, что технология эквивалентна удваиванию числа процессорных ядер. И все же Нуреr Thrеаding является полезной опцией, и вам она не помешает, как пользователю персонального компьютера. Ее достоинство заметно, к примеру, в том случае, когда вы производите редактирование мультимедиа-файлов или пользуетесь ноутбуком/компьютером в роли рабочей станции для таких профессиональных программ, как Мауа или Фотошоп.
Всегда относился к Intel Hyper-Threading как к маркетинговому продукту. Но недавно я взглянул на эту технологию под другим углом.
Настал момент, когда лицензия vSphere Standart позволила создавать и запускать виртуальные машины с количеством виртуальных процессоров равных 8. О том, чем это грозит в случае установленного процессора с 4-мя физическими ядрами и поддержкой Hyper-Threading, читайте дальше.
Думаю, данный материал нужно рассматривать как продолжение моих попыток ускорить работу терминального сервера, про это я писал тут.
Принцип действия Hyper-Threading основывается на том, что в каждый момент времени только часть ресурсов процессора используется при выполнении программного кода. Неиспользуемые ресурсы также можно загрузить работой — например, задействовать для параллельного выполнения еще одного приложения либо другого потока этого же приложения.
Следуя слогану Intel «Чем больше задач, тем выше эффективность работы», чтобы увидеть результат я буду запускать в разных сессиях на терминальном сервере просмотр фильмов. Чем больше я смогу запустить фильмов, тем лучше; снижение нагрузки на процессор также приветствуется.
На VM, подготовленную для тестирования, установлена ОС ws2008 R2 Standart. На момент тестирования были установлены все обновления. Для воспроизведения роликов установлен кодек и плеер DIVX.
Тестовый стенд собран из сервера HP ML350 G6 c процессором Intel Xeon E5620 1шт.
Достоинства технологии Hyper Threading
Далее стоит рассмотреть такой вопрос – насколько эта технология увеличивает производительность персонального компьютера? В повседневных задачах, к примеру, серфинге интернета и наборе текстов, преимущества задействования Нуреr Thrеаding не так уж и очевидны. Но стоит иметь ввиду тот факт, что современные процессоры настолько мощные, что повседневные задачи крайне редко полностью загружают процессор. Более того, много зависит и от того, как именно написано программное обеспечение. Вы можете запустить сразу несколько программ, но если посмотреть на загрузочный график, то увидите, что используется лишь один логический процессор на 1 ядро. Это происходит из-за того, что программное обеспечение не поддерживает процессорное распределение между ядер.
Но при более сложных задачах такая технология может быть куда полезнее. Такие приложения, как трехмерные игры, программы для 3D моделирования, программы для декодирования или кодирования музыки/видеороликов и множество научных приложений написаны так, чтобы по максимуму использовать многопоточность. По этой причине вы сможете в полной мере ощутить все плюсы быстродействия персонального компьютера с Нуреr Thrеаding, прослушивая музыку, играя в «тяжелые» видеоигры или просматривая фильм.
Увеличение производительности может при этом достигнуть до 30%, хотя случаются и такие ситуации, когда технология вовсе не дает преимуществ изредка, в том случае, если сразу 2 потока загружают все исполнительные процессорные устройства одинаковыми задачами, может наблюдаться даже уменьшение уровня производительности. Если вернуться к наличию установочного меню Биос соответствующей опции, которые дают возможность устанавливать параметры Нуреr Thrеаding, то чаще всего мы советуем включать такую функцию. В целом, вы всегда можете отключить ее, если вдруг окажется, что персональный компьютер функционирует с ошибками или даже имеет меньший уровень производительности, нежели вы ожидали.
1 ответ 1
Это не термин, а обычное словосочетание. Виртуальный процессор - это нечто, что выглядит как работоспособный процессор, но процессором не является. Точное значение зависит от контекста.
Так, когда-то давно никто не слышал про многоядерные процессоры, а когда было нужно - ставили несколько процессоров. И когда многоядерные процессоры появились - то в целях обратной совместимости каждое ядро стало "представляться" операционной системе как отдельный процессор. То есть у вас на материнке стоит один проц - а ОС пишет, что их два. Никакого второго процессора реально не существует, он - виртуальный. Точнее, оба ядра называют виртуальными процессорами, потому что они одинаковые.
Существуют эмуляторы процессоров. Например, вы можете скачать эмулятор NES и поиграть на нем в старые игры. Эти игры написаны для процессора Ricoh 2A03, но играть в них вы будете на процессоре семейства Intel. Однако большинство игр подмены не заметят, поскольку эмулятор реализует все нужные инструкции. В этом смысле эмулятор NES содержит в себе виртуальный процессор.
Внутри виртуальной машины работает реальная ОС, называемая "гостевой". Эта ОС, точно так же, как и при работе вне виртуальной машины, пытается работать с "железом". Но у виртуальной машины все "железо" - виртуальное (за редкими исключениями): если вы, к примеру, зайдёте в Диспетчер устройств на виртуалке с виндой - вы не увидите ничего похожего на реальные устройства. Процессоры у виртуальной машины - тоже виртуальные.
С момента покупки 2600K я сразу отключил плюшку в виде HT, так как из-за нее приходилось завышать немного напряжение и соответственно повышалась температура и снижался разгон. Хотел давно проверить что я теряю, и теряю ли вообще?
С момента покупки 2600K я сразу отключил плюшку в виде HT, так как из-за нее приходилось завышать немного напряжение и соответственно повышалась температура и снижался разгон. Хотел давно проверить что я теряю, и теряю ли вообще?
Вкратце, технология Hyper-Threading (HT)делает из одного физического ядра два виртуальных, или к одному физического ядру плюсует одно виртуальное, кому как угодно. Intel использует эту технологию уже очень давно, она появилась еще в процессорах Pentium 4. Сегодня, она есть почти во всех мобильных процессорах Intel, и это позволяет двухядерникам показывать отличные результаты.
но суть в том что эти два виртуальных ядра вроде как быстрее одного, но медленнее двух физических. В синтетике HT и правда очень повышает циферки, прирост порой доходит до 50%. Но в реальных приложениях не все так красиво как на рекламных картинках.
Winrar
Запустим упаковку с максимальным сжатием
Почти на 30% быстрее пакует 2600K с HT, достойно
Вернемся к играм, итак, 4ядра 3.5ггц Sandy bridge способны спокойно раскрывать видеокарты, которые дают по 80-100fps в играх, Но это на идеально чистом компе, без антивирусов и прочего мусора, это на Windows, которая имеет всего 30 процессов в диспетчере задач, но если на компе запустить несколько фоновых задач? Например фильмец в разрешении 4K на второй монитор и музыку, ЦП загружен примерно на 30%, разгоняем по максимуму видеокарту GTX660Ti до 1280MHz|7600, даже смешно, 80MHz это теперь норма для разгона:) ставим разрешение 1280x720, настройки делаем на ультра чтобы процессору не было легко и рассмотрим подробно одну игру на примере Watch dogs.
быстро рассмотрим конфигурацию компа:
2600K
P8Z77-V Deluxe
2x4GB DDR3 2133
GTX660Ti
Windows 8.1 x64 rus
вот мониторинг фона без запущенных игр на 3.5ггц и на 5ггц
Значит так, отталкиваться будем от результата, полученного на частоте 5ггц и чистым фоном. Так вот, имеем в итоге 80fps. Теперь с запущенным фильмом и музыкой проделываем тоже самое на частоте 3.5 и 5.0 ггц с откл. и вкл. HT.
5.00GHz noHT
если сравнивать 3.5ггц с HT и 5ггц без HT то на 5ггц игра идет еще чуть плавнее, средний fps чуть подрос до 70. загрузка гпу еще более ровная чем раньше. Интересно что процессор на 5ггц загружен больше чем на 3.5ггц…
5.00GHz HT
В этом режиме игра идет почти также, как будто фон чистый, рывки очень редко но все-таки они есть. fps 77. Вот как должен работать современный процессор)) кстати опять 5ггц загружен сильнее чем 3.5ггц
Сведем данные в диаграмму, 30% это примерная загрузка ЦП перед замером.
самый большой буст произошел на частоте 3.5ггц. HT почти на 40% подняла средний fps, шикарно. Но повторюсь опять же, на чистом фоне на частоте 3.5ггц без HT я получил почти те же 80fps что и при 5ггц. Возьмем два результата 3.5ггц с HT и 5 ггц без HT, исход почти одинаковый, но на 5ггц игра идет чуть плавнее, но я бы оставил 3.5ггц с HT, ведь для этого можно даже понизить заводское напряжение, и система получится почти бесшумной, а на 5ггц придется подать около 1.45V и повысить обороты кулера для эффективного охлаждения, что приведет к повышенному шуму.
приведу еще несколько тестов, но не так подробно, принцип такой же.
главные соперники тут опять 3.5ггц с HT против 5ггц без HT, и тут HT обгоняет 4 физических ядра на большей частоте.
Я уже было начал думать что во всех играх так будет, но нет GTAIV реагирует на частоту а не на виртуальные ядра.
Интересно что на 30% фоне и частоте 5ггц удалось достичь производительности чистого фона
Добавлю еще одну игруху, Crysis 3.
Наблюдается больше зависимость от частоты, нежели от HT, но и виртуальные ядра тут лишними не будут.
В заключении могу сказать что HT если и не улучшает игровой процесс, то точно не ухудшает его, хоть это радует. Если у вас загаженный комп, или стоят несколько антивирусов O_o то можно включить HT, впринципе от нее толк есть, но если у вас чистый и прозрачный как слеза младенца:) фон, то HT практически ничего не дает. Я лично ей не пользуюсь, если только в sony vegs.
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Всем привет. Виртуальное ядро? Что это? Виртуальное, значит вроде как ненастоящее что ли? Сегодня я постараюсь простыми словами рассказать что это значит, надеюсь понятно будет каждому начинающему пользователю))
Сравнения всех платформ
Для сравнения буду использовать результаты, полученные для видео 480р:
Можно сделать следующие выводы:
Использование HT дает результат, который можно заметить в много поточных задачах. Пользу HT в задачах более «узких» нужно проверять.
В проведенных тестах явного лидера между платформами нет. А обладателям лицензий ws2008, которые используются для Hyper-V, стоит задуматься про апдейт, если есть необходимость использовать большие VM.
Получить результат максимально приближенный к ФС позволит инфраструктура VDI.
Думаю, данный результат обеспечил кодек RemoteFX 8.
Виртуальные ядра процессора: что это и как работает
Результаты физического сервера ws2008 R2
Эти данные будут использоваться как эталонные:
Читайте также: