Что дает многопоточность процессора

Обновлено: 21.11.2024

В этом разделе представлены основные понятия многопоточности.

Параллелизм и параллелизм

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

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

Многопоточная структура

Традиционный UNIX уже поддерживает концепцию потоков. Каждый процесс содержит один поток, поэтому программирование с несколькими процессами — это программирование с несколькими потоками. Но процесс также является адресным пространством, и создание процесса включает в себя создание нового адресного пространства.

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

Обмен данными между потоками одного процесса прост, поскольку потоки совместно используют все, в первую очередь адресное пространство. Таким образом, данные, созданные одним потоком, немедленно становятся доступными для всех других потоков процесса.

Однако такое совместное использование данных приводит к другому набору проблем для программиста. Необходимо соблюдать осторожность при синхронизации потоков, чтобы защитить данные от изменения более чем одним потоком одновременно или от чтения некоторыми потоками при одновременном изменении другим потоком. Дополнительную информацию см. в разделе Синхронизация потоков.

Обсуждения на уровне пользователя

Потоки — это основной программный интерфейс в многопоточном программировании. Потоки видны только внутри процесса, где потоки совместно используют все ресурсы процесса, такие как адресное пространство, открытые файлы и т. д.

Состояние потоков на уровне пользователя

Следующее состояние уникально для каждого потока.

Состояние регистра, включая счетчик программ (ПК) и указатель стека

Потоки совместно используют инструкции процесса и большую часть данных процесса. По этой причине изменение общих данных одним потоком может быть замечено другими потоками в процессе. Когда потоку необходимо взаимодействовать с другими потоками в том же процессе, он может сделать это без участия операционной среды.

Потоки пользовательского уровня называются так, чтобы отличать их от потоков уровня ядра, которыми занимаются только системные программисты. Поскольку эта книга предназначена для программистов приложений, потоки на уровне ядра не обсуждаются.

Планирование потоков

Стандарт POSIX определяет три политики планирования: "первым пришел - первым обслужен" (SCHED_FIFO), циклическим (SCHED_RR) и пользовательским (SCHED_OTHER). ). SCHED_FIFO — это планировщик на основе очередей с разными очередями для каждого уровня приоритета. SCHED_RR похож на FIFO, за исключением того, что у каждого потока есть квота времени выполнения.

И SCHED_FIFO, и SCHED_RR являются расширениями POSIX Realtime. Потоки, выполняемые с этими политиками, относятся к классу планирования Solaris Real-Time (RT), обычно требующему специальных привилегий. SCHED_OTHER – это политика планирования по умолчанию. Потоки, выполняемые с политикой SCHED_OTHER, относятся к традиционному классу планирования Solaris Time-Sharing (TS).

Solaris предоставляет другие классы планирования, а именно класс интерактивного разделения времени (IA), класс Fair-Share (FSS) и класс Fixed-Priority (FX). Такие специализированные классы здесь не обсуждаются. Дополнительную информацию см. на странице руководства Solaris priocntl(2).

Информацию о политике SCHED_OTHER см. в разделе LWP и классы планирования.

Доступны две области планирования: область процесса (PTHREAD_SCOPE_PROCESS) и область системы (PTHREAD_SCOPE_SYSTEM). Потоки с разными состояниями области действия могут сосуществовать в одной системе и даже в одном процессе. Область действия процесса заставляет такие потоки конкурировать за ресурсы только с другими такими же потоками в том же процессе.Область действия системы заставляет такие потоки конкурировать со всеми другими потоками в системе. На практике, начиная с версии Solaris 9, система не делает различий между этими двумя областями.

Отмена темы

Поток может запросить завершение любого другого потока в этом процессе. Целевой поток, тот, который был отменен, может удерживать запросы на отмену в ожидании, а также выполнять очистку для конкретного приложения, когда поток действует в соответствии с запросом на отмену.

Функция отмены pthreads допускает асинхронное или отложенное завершение потока. Асинхронная отмена может произойти в любое время. Отложенная отмена может произойти только в определенных точках. По умолчанию используется отложенная отмена.

Синхронизация потоков

Синхронизация позволяет контролировать ход выполнения программы и доступ к общим данным для одновременно выполняемых потоков.

Четыре модели синхронизации – это блокировка мьютекса, блокировка чтения/записи, условные переменные и семафоры.

Мьютексы позволяют только одному потоку одновременно выполнять определенный раздел кода или получать доступ к определенным данным.

Блокировки чтения/записи разрешают одновременное чтение и эксклюзивную запись в защищенный общий ресурс. Чтобы изменить ресурс, поток должен сначала получить монопольную блокировку записи. Исключительная блокировка записи не разрешена до тех пор, пока не будут сняты все блокировки чтения.

Переменные условия блокируют потоки до тех пор, пока определенное условие не станет истинным.

Семафоры-счетчики обычно координируют доступ к ресурсам. Количество — это ограничение на количество потоков, которые могут иметь одновременный доступ к данным, защищенным семафором. Когда счетчик достигнут, семафор вызывает блокировку вызывающего потока до тех пор, пока счетчик не изменится. Двоичный семафор (со счетом один) аналогичен блокировке мьютекса.

Многопоточность – это функция ЦП (центрального процессора), которая позволяет двум или более потокам инструкций выполняться независимо друг от друга при совместном использовании одних и тех же ресурсов процесса. Поток — это автономная последовательность инструкций, которая может выполняться параллельно с другими потоками, являющимися частью того же корневого процесса.

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

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

Чтобы предотвратить состояние гонки и взаимоблокировки, программисты используют блокировки, которые не позволяют нескольким потокам одновременно изменять значение одной и той же переменной.

Techopedia объясняет многопоточность

В 32- и 64-разрядных версиях Windows используется вытесняющая многопоточность, при которой доступное процессорное время распределяется. Все потоки получают равный квант времени и обслуживаются в модели на основе очереди. Во время переключения потоков контекст вытесненного потока сохраняется и перезагружается в следующем потоке в очереди. Это занимает так мало времени, что кажется, что запущенные потоки выполняются параллельно.

Как работает многопоточность?

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

Размышляя о том, как реализовать многопоточность, важно разделить две концепции параллельной и параллельной обработки.

Параллельная многопроцессорность означает, что система одновременно обрабатывает более одного потока. Параллельная обработка означает, что одновременно будет обрабатываться только один поток, но система будет повышать эффективность за счет быстрого переключения между двумя или более потоками.

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

Эволюция многоядерных систем означает, что существует больше параллелизма, что снижает потребность в эффективной параллельной обработке. Разработка более быстрых и мощных микрочипов и процессоров на этом конце расширения закона Мура важна для этого типа проектирования оборудования и разработки в целом.

Кроме того, большая часть параллельной или параллельной обработки доступна в зависимости от капризов операционной системы.Таким образом, для пользователя-человека любой параллельный или параллельный процесс или смешанные процессы воспринимаются как параллелизм в реальном времени.

Типы многопоточности

Различные типы многопоточности применяются к различным версиям операционных систем и связанным с ними элементам управления, разработанным в вычислительной технике: например, в упреждающей многопоточности переключение контекста контролируется операционной системой. Затем существует кооперативная многопоточность, в которой переключение контекста контролируется потоком. Это может привести к проблемам, например взаимоблокировкам, если поток заблокирован в ожидании освобождения ресурса.

Многие другие типы моделей многопоточности также применимы, например, крупнозернистые, чередующиеся и одновременные модели многопоточности определяют, как потоки координируются и обрабатываются. Другие варианты многопоточности включают модели «многие ко многим», «многие к одному» и «один к одному». Некоторые модели будут использовать такие понятия, как равные временные интервалы, чтобы попытаться распределить выполнение между потоками. Тип многопоточности зависит от самой системы, ее философии и сборки, а также от того, как инженеры запланировали в ней многопоточность.

В модели активной/пассивной системы один поток отвечает за пользователя, а другой поток работает над долгосрочными задачами в фоновом режиме. Эта модель полезна для продвижения системы, которая выглядит параллельной с точки зрения пользователя, что приводит нас к важному моменту в оценке таких процессов, как микропотоки, с обеих сторон: с точки зрения инженера и точки зрения конечного пользователя.< /p>

Многопоточность и многопроцессорность

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

В то время как многопоточность позволяет процессу создавать больше потоков для повышения скорости отклика, многопроцессорность просто добавляет больше ЦП для увеличения скорости.

Если вы хорошо разбираетесь в компьютерах или даже не разбираетесь в них, скорее всего, вы слышали термин ЦП. ЦП, что означает центральный процессор, является неотъемлемой частью любой системы, от вашего домашнего ноутбука до серверов, на которых размещен веб-сайт вашей компании. Но что такое ЦП и какую роль он играет в инфраструктуре вашей системы? Ядра и виртуальный ЦП — это одно и то же? А как насчет многопоточности?

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

Ищете что-то конкретное? Используйте оглавление ниже, чтобы перейти к определенному разделу, или читайте дальше, чтобы узнать больше!

Что такое процессор?

Центральный процессор или Процессор — это мозг вашего компьютера. Он отвечает за интерпретацию инструкций, делегирование задач и выполнение расчетов. Когда вы говорите своему компьютеру что-то сделать, например загрузить видео, инструкции, которые вы передаете через мышь и клавиатуру, интерпретируются через ЦП и делегируются. В ранних компьютерах ЦП самостоятельно справлялся с выполнением этих задач. Однако в современном оборудовании другие компоненты, такие как графический процессор, сами обрабатывают определенные действия. Таким образом, современные ЦП стали играть более контролирующую роль, обрабатывая меньше вычислений напрямую, но по-прежнему контролируя выполнение задач.

До появления смартфонов и планшетов этот процесс связи между вами и процессором вашей системы осуществлялся с помощью набора микросхем. Наборы микросхем — это интегральные схемы, которые соединяют ЦП вашего компьютера с оперативной памятью, хранилищем и любыми внешними устройствами, такими как клавиатура. Однако теперь, когда технология продолжает сокращаться, чтобы облегчить использование более компактных и эффективных процессоров, решения SOC (Systems on Chips) почти полностью заменили наборы микросхем. Как одночиповое решение, содержащее ЦП, ГП, память и многое другое, SOC предлагает более быструю и компактную альтернативу старым многочиповым решениям. Когда все эти аппаратные и программные компоненты объединены в один чип, конечным результатом является процессор, который работает быстрее и надежнее.

Однако в ближайшие годы, в связи с продолжающимся ростом крупных гипермасштабируемых центров обработки данных, функциональность ЦП вскоре еще больше уменьшится.Чтобы управлять разрастающейся инфраструктурой этих массивных объектов и сотнями процессоров, которые объединяются для их создания, DPU (блок обработки данных) вскоре превзойдет центральный процессор в качестве настоящего «процессора» в большинстве больших систем. Однако для вычислений общего назначения ЦП остается основным средством обработки инструкций, по крайней мере, на данный момент.

ЦП является неотъемлемой частью каждой системы, от вашего домашнего ноутбука до серверов, на которых размещен веб-сайт вашей компании.

Подумайте об этом так: вы, пользователь, являетесь генеральным директором компании. Ваш ЦП — это ваша команда менеджеров среднего звена. Когда что-то нужно сделать, вы не делаете это сами, это не работа генерального директора. Вы принимаете решения и даете указания. Вы определяете, что должно произойти, а ваши менеджеры выясняют детали. Они обрабатывают цифры и определяют, какие отделы (другие компоненты вашего компьютера) должны что делать, чтобы проект выполнялся наиболее эффективно и действенно. Они тоже не делают все сами, но они все еще наблюдают за различными частями, которые перемещаются по вашим различным отделам. Это то, что делает ваш процессор. Это заставляет вещи происходить. Только намного, намного быстрее, чем это.

С технической точки зрения причина, по которой ваш компьютер может так быстро и одновременно выполнять так много сложных функций, заключается в том, как устроены ЦП. По своей сути ЦП — это микросхема, установленная в гнездо на материнской плате вашей системы, которая заполнена миллиардами крошечных транзисторов. Эти транзисторы работают как выключатели света, включаясь или выключаясь в ответ на 1 и 0 входящего двоичного кода. На простейшем уровне это то, что позволяет вашему компьютеру делать все, что он делает.

Причина, по которой эти чипы становятся все быстрее и быстрее, заключается в том, что по мере совершенствования наших технологий наши транзисторы становятся все меньше и меньше. Это означает, что в один чип помещается больше, а вычислительная мощность повышается.

Если ЦП — это микросхема, состоящая из крошечных транзисторов, то что такое ядро?

Что такое ядро?

Когда разрабатывались самые ранние процессоры, все они были одноядерными. Один чип, в один разъем, установленный на материнской плате. Однако, как упоминалось выше, технология обработки продолжает сокращаться. Это означает, что мы можем поместить больше в один чип. Это также означает, что мы можем установить несколько процессоров в один сокет. Здесь мы подходим к определению ядра.

Физическое ядро – это ЦП, размещенный на микросхеме и занимающий один сокет. Если у вас четырехъядерный процессор, у вас есть 4 процессора на одном чипе. Если у вас есть восьмиядерный процессор, у вас их 8. Другими словами, для каждого ядра, которым обладает ваша система, это все равно, что иметь еще один мозг для обработки команд.

Таким образом, каждое ядро ​​вашего компьютера может одновременно обрабатывать отдельную задачу. Чем больше процессов может быть выполнено одновременно, тем выше будет общая скорость выполнения. Конечно, количество ядер — не единственный фактор, влияющий на скорость вашей системы, но для машин, на которых выполняются ресурсоемкие процессы, такие как ИИ, большое количество ядер может иметь большое значение.

Каждое ядро ​​вашего компьютера может одновременно обрабатывать отдельную задачу.

Дело в том, что не все ядра одинаковы. По мере того, как технология, используемая в наших процессорах, становится все более мощной, она также становится все более тонкой в ​​своих различиях. Именно здесь определение истинной вычислительной мощности вашей системы может стать немного сложным.

Триддинг? Виртуальные ядра? Это все семантика или здесь есть различия, о которых вам следует знать?

Давайте посмотрим.

Физические ядра и логические ядра

Чтобы понять разницу между различными типами и компонентами ЦП, вы должны сначала понять разницу между физическими ядрами и логическими ядрами. Физическое ядро, или физический ЦП, является фактическим аппаратным компонентом микросхемы ЦП и совпадает с ядрами, рассмотренными выше. Четырехъядерный процессор вашего домашнего ПК имеет 4 физических ядра. Каждое ядро ​​эквивалентно собственному процессору, но вместо того, чтобы устанавливать 4 отдельных чипа в 4 отдельных сокета, ядра позволяют хранить их все на одном чипе. Это ядра, которые определяют истинные возможности вашей системы, определяя, сколько ресурсов доступно для выполнения инструкций по обработке.

А еще есть логические ядра. Логическое ядро, также известное как логический ЦП или виртуальное ядро, — это концепция, используемая для описания того, как операционные системы рассматривают процессоры, использующие одновременную многопоточность (SMT).Многопоточность , или, что более популярно, гиперпоточность (специальный термин Intel для их технологии одновременной многопоточности) — это процесс, с помощью которого суперскалярные ЦП могут разделять наборы инструкций, известные как потоки, что позволяет нескольким процессам выполняться в одном цикле.

Если ЦП поддерживает двустороннюю SMT, это означает, что каждое ядро ​​может выполнять два потока одновременно. Говорят, что четырехъядерный суперскалярный ЦП с двусторонним SMT является 4-ядерным / 8-поточным ЦП. Поскольку эта многопоточность позволяет системе одновременно обрабатывать до восьми задач, ОС машины рассматривает систему как имеющую 8 логических ядер. Таким образом, термин логическое ядро в основном является средством концептуализации этого взаимодействия между оборудованием вашей системы при обработке инструкций с использованием многопоточности.

Но действительно ли логическое ядро ​​такое же, как физическое ядро ​​или ЦП?

Что такое одновременная многопоточность?

Вернемся к нашему примеру с менеджерами среднего звена. Вы, генеральный директор, передаете задачу своей команде менеджеров, которые разделяют и властвуют, решая проблему максимально эффективно. Одна из этих задач требует, чтобы ваши фабричные рабочие собирали серию из двух разных механических деталей в быстрой последовательности и в большом количестве. У вас есть только одна производственная линия и ограниченное количество сотрудников. Поскольку ваши доступные ресурсы ограничены, задача может быть выполнена очень быстро. В конце концов, ваше ядро ​​​​может обрабатывать только ограниченное количество данных одновременно.

Но допустим, вы повысили второго руководителя в этом отделе. У вас по-прежнему то же количество сотрудников, т. е. ваши системные ресурсы, однако теперь ваш отдел разделен на две команды с двумя руководителями, каждая из которых занимается отдельной задачей. Эти задачи представляют ваши потоки.

Распределяя ядро, вы делаете его более эффективным.

В не многопоточном ЦП эти задачи должны выполняться последовательно, каждая из которых начинается только после полного завершения предыдущей задачи.

Однако благодаря многопоточности ваш компьютер может выполнять несколько задач одновременно. На самом деле они не работают одновременно, а завершаются в одном и том же цикле, работая в соответствии с графиками друг друга, чтобы завершить все задачи как можно быстрее.

Итак, на что похоже это различие?

Ваши две производственные группы используют одну и ту же линию для достижения двух разных целей. Поскольку производственная линия — это физический объект, она очень велика и может использоваться только определенным количеством людей одновременно. Однако фактические компоненты, которые использует каждая команда, части целого не полностью совпадают.

Допустим, в рамках задачи команды 1 им нужно дождаться компонента, предоставленного другим отделом. Это создает время простоя, когда производственная линия не используется, потому что команда 1 не может двигаться вперед без детали, которую они ждут. В среде без многопоточности эта задержка в Задаче 1 приведет к задержке и Задачи 2. Вашим работникам придется дождаться полного завершения задачи 1, прежде чем они смогут даже приступить к задаче 2.

Однако в многопоточной версии этого сценария для двух команд команде 2 фактически не нужно ждать. Если команда 1 задерживается и не использует производственную линию, команда 2 может подключиться и завершить свою задачу, пока команда 1 ждет, пока не поступят недостающие компоненты.

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

Одновременная многопоточность делает ваши процессоры быстрее, позволяя им обрабатывать несколько строк команд одновременно. Хотя доступность ресурсов остается прежней, количество каналов для обработки инструкций увеличивается.

Если задержка в задаче потока 1 создает брешь в конвейере, а не простаивает, второй, более быстрый поток может использовать эти доступные ресурсы и завершить свою задачу, пока поток 1 все еще ожидает. По сути, объединяя ядро, вы повышаете его эффективность.

В идеальном мире эти потоки удвоили бы производительность ваших ядер, не так ли? Они вдвое эффективнее, верно?

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

Тот факт, что четырехъядерный процессор с многопоточностью обычно быстрее, чем 4 ядра без него, не означает, что он такой же, как настоящий восьмиядерный процессор.

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

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

Итак, если логический процессор — это не то же самое, что ядро, то что такое виртуальный ЦП?

Что такое виртуальный ЦП?

Если вы знакомы с термином vCPU, скорее всего, вы или ваша компания являетесь клиентами поставщика общедоступных облачных служб, например Amazon Web Services (AWS) или Google Cloud. vCPU или Virtual CPU — это термин, используемый поставщиками облачных услуг IaaS для описания вычислительной мощности предоставляемых ими услуг. Мы кратко обсуждаем это в нашем анализе трех больших провайдеров общедоступных облаков в нашей статье Is Your Cloud Too Expendive?

Например, сборка AWS c5d.2xlarge, которую мы сравнивали в этой статье, имеет вычислительную мощность 8 виртуальных ЦП. Однако это не физические ядра, это виртуальные ядра. Как обсуждалось ранее, виртуальное ядро ​​— это не то же самое, что физическое ядро. Следовательно, 8 виртуальных ЦП — это не отражение его физического оборудования, а скорее его логическая вычислительная мощность. На самом деле вы покупаете лишь доступ к его фрагменту.

С помощью гипервизоров поставщики общедоступных облаков, такие как AWS, разделяют свои серверы на несколько виртуальных машин (ВМ), которые они продают своим пользователям как отдельные экземпляры. Это можно сделать как с SMT, так и без него, но когда они объединяются, в результате одно физическое ядро ​​можно разделить на множество разных виртуальных ЦП. Обычная формула для определения максимального количества виртуальных ЦП, которые сервер может создать, прежде чем перепродавать свои ресурсы, выглядит следующим образом: Потоки x Ядра x Сокеты = Макс. количество виртуальных ЦП.

Итак, если у вас есть 4-ядерный сервер с двусторонней потоковой передачей на одном сокете, теоретически этот сервер можно разделить на 32 виртуальных ЦП, прежде чем создавать узкое место (8 потоков x 4 ядра x 1 сокет). Если у вас есть сервер Dual e5 2620v4 с двусторонним SMT, вы ожидаете более 256 виртуальных ЦП на одном сервере (16 потоков x 8 ядер x 2 сокета). Это много ВМ на одной машине.

Создание виртуальных ЦП — это, по сути, вторичная версия SMT.

Еще один способ подумать об этом — оглянуться назад на нашу метафору производственной линии. Для этого мы будем использовать наш пример с 4 ядрами, 8 потоками и 32 виртуальными ЦП.

Итак, предположим, что на вашем заводе есть 4 производственные линии (ядра), и вы разделили своих сотрудников на две команды для каждой производственной линии (многопоточность). Теперь у вас есть 4 линии и 8 команд, выполняющих 8 отдельных задач. Но, согласно нашей формуле, при эффективном использовании эти 4 производственные линии могут управляться 32 командами (виртуальными ЦП) при ограниченном перекрытии ресурсов.

По сути, гипервизор позволяет еще больше разделить эти команды, позволяя одновременно решать еще большее количество задач. Для этого потоки, используемые каждой виртуальной машиной, распределяются между разными ядрами, эффективно используя свободный в данный момент конвейер.

Другими словами, создание виртуальных ЦП — это, по сути, вторичная версия SMT.

Если сервер с 16 логическими процессорами может одновременно поддерживать более 256 ВМ, можем ли мы действительно сказать, что виртуальный ЦП эквивалентен физическому ЦП? В конце концов, хотя маловероятно, что всем 256 из этих экземпляров потребуется доступ к этим логическим ядрам одновременно, вполне возможно представить, что такой сценарий возможен.

По этой причине при сравнении упомянутого выше устройства AWS c5d.2xlarge с 8 виртуальными ЦП мы сравниваем его не с настоящим восьмиядерным сервером, а с одним из наших 4-ядерных/8-потоковых серверов. серверы. Это связано с тем, что физические ядра и логические ядра не идентичны. Хотя большинству пользователей вполне подойдет такой процессор, тем пользователям, которым действительно нужны 8 физических ядер вычислительной мощности, просто знайте, что это не одно и то же.

Иногда используемая терминология может намеренно вводить в заблуждение. Виртуальный ЦП — это не то же самое, что ядро.

Итак, виртуальный ЦП на самом деле равен физическому ЦП?

Короче? Нет. Это не означает, что vCPU обязательно хуже. Система с 8 виртуальными ЦП, скорее всего, будет работать более эффективно, чем система с 4. Это совсем не то же самое, что иметь 8 физических ядер.Цель этого анализа — не дискредитировать виртуальный ЦП, а просто убедиться, что это различие между физической и логической обработкой понято.

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

Иногда используемая терминология может намеренно вводить в заблуждение.

Однако мы в Hivelocity знаем, что хорошо информированный клиент — это счастливый и успешный клиент. Когда добиваются успеха наши клиенты, добиваемся успеха и мы.

Поэтому, если вам интересно, как выделенный сервер или частное облачное решение Hivelocity может принести пользу вам и вашему бизнесу, позвоните или пообщайтесь с одним из наших агентов по продажам сегодня.

Нужно ли вам 4 физических ядра или 20, в Hivelocity мы предлагаем мгновенные и индивидуальные решения, разработанные для удовлетворения ваших потребностей. Все это является частью нашего стремления сделать индустрию хостинга более человечной. Зарегистрируйтесь сегодня и верните себе контроль над своей инфраструктурой.

Hivelocity – это хостинг-партнер, на которого вы можете положиться, и в этом нет ничего виртуального.

Дополнительные ссылки:

Ищете дополнительную информацию о процессорах или ядрах? Поиск в нашей базе знаний!

Нужно больше качественного контента? Заинтересованы в cPanel, частном облаке или граничных вычислениях? Ознакомьтесь с нашими последними публикациями, чтобы узнать больше новостей, руководств и отраслевой информации!

Неважно, насколько быстр ваш компьютер, он всегда может быть быстрее. Если вы не удовлетворены производительностью своего компьютера, возможно, пришло время добавить гиперпоток в ядра вашего центрального процессора (ЦП). Технология Hyper-Threading может стать отличным способом повысить скорость обработки вашего ПК без серьезной модернизации оборудования.

Однако гиперпоточность имеет некоторые недостатки, поэтому действовать нужно с осторожностью. Продолжайте читать, чтобы узнать все о технологии Hyper-Threading, чтобы понять, подходит ли она для вашего ПК или не стоит ваших усилий.

Что такое гиперпоточность?

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

Когда вы запускаете приложение, код этой программы берется с жесткого диска и сохраняется в оперативной памяти (ОЗУ), а затем загружается в ЦП. Затем ЦП считывает инструкции из ОЗУ для выполнения поставленной задачи. Когда технологические компании называют свои ЦП «двухъядерными», это означает, что внутри ЦП есть 2 ядра (отдельные процессорные единицы).

Intel® указывает количество ядер, которые они используют для i3, i5, i7 и т. д. Это немного вводит в заблуждение, учитывая, что процессор Intel i7 Core не имеет 7 ядер; это идет с четырьмя. Некоторые экстремальные процессоры Intel i7 Core могут иметь 6 или 8 ядер. Вы всегда можете вернуться к описанию продукта, если не уверены в количестве ядер вашего процессора.

Не слишком отвлекаясь от гиперпоточности, важно сначала понять, как ядра обрабатывают данные внутри ЦП. Когда данные отправляются из ОЗУ в ЦП, они разделяются и направляются к разным ядрам.

Представьте себе железнодорожную станцию: такие программы, как Microsoft Word и Excel, являются грузом в поездах, проходящих через станцию, но на железнодорожной станции (основной) есть только один набор путей. «Грузовые грузы», или программные инструкции, последовательно перемещаются по рельсам. Просто, правда?

Как же работает гиперпоточность? Когда вы используете Hyper-Threading для своих ядер, вы, по сути, создаете две дорожки в хранилище. Вместо того, чтобы данные перемещались по одному пути, они будут разделены и обработаны в депо, что ускорит время, в течение которого они перемещаются. Вместо того, чтобы загружать ядро ​​по одной программе за раз, гиперпоточность позволяет загружать несколько программ одновременно. По сути, каждое ядро ​​становится двумя процессорами вместо одного.

Основная цель гиперпоточности — увеличить количество независимых инструкций на «дорожках», ведущих к ядру.Эта возможность является результатом суперскалярной архитектуры или параллельных вычислений, в которых ЦП управляет несколькими конвейерами инструкций для выполнения нескольких инструкций в одно и то же время.

Теперь, когда вы понимаете, как работает технология Hyper-Threading, преимущества и потенциальный прирост скорости, который она может дать вашему ПК, достаточно очевидны.

Улучшит ли гиперпоточность производительность моего компьютера?

Согласно данным Intel [1], гиперпоточность ваших ядер может привести к увеличению производительности и скорости на 30 % при сравнении двух идентичных ПК с одним ЦП с гиперпоточностью. В исследовании, опубликованном в Forbes, гиперпоточность процессора AMD® (Ryzen 5 1600) показала увеличение общей производительности обработки на 17 % [2].

Несмотря на эти результаты, гиперпоточность ядер не всегда является оптимальным решением. Будут задачи, в которых скорость вашего процессора не увеличивается, несмотря на гиперпоточность. Отчасти это связано с тем, что не все приложения и строки данных могут эффективно загружаться в многопоточное ядро.

Гиперпоточность ядер вашего ЦП повышает производительность и скорость в каждом конкретном случае в зависимости от того, какие задачи совместимы с ядром с гиперпоточностью. Если вы хотите повысить общую производительность вашего ПК, технология Hyper-Threading может стать шагом в правильном направлении.

Как включить гиперпоточность

Прежде чем вы сможете использовать гиперпоточность для своих ядер, вам нужно выяснить, позволяет ли это ваш ЦП. Некоторые ядра ЦП поддерживают гиперпоточность по умолчанию и не требуют от вас никаких действий.

Чтобы включить гиперпоточность, сначала необходимо войти в настройки BIOS вашей системы. Для тех, кто не знаком, BIOS расшифровывается как Basic Input/Output System. BIOS запускается, когда вы включаете компьютер, подключая различные компоненты, такие как жесткий диск, ЦП и клавиатура, в дополнение к управлению потоком данных.

Как только вы узнаете, что ваш ЦП совместим с технологией Hyper-Threading, и узнаете, как получить доступ к настройкам BIOS вашей системы, выберите правильный хост для вашей системы. Там должна быть вкладка конфигурации или меню для выбора. Выберите «Процессор» и нажмите «Свойства». Должно появиться диалоговое окно, в котором можно включить или выключить гиперпоточность.

Некоторые производители и поставщики могут помечать параметр как «Логический процессор» или «Включить гиперпоточность». Процесс зависит от производителя. Например, включение гиперпоточности для процессора AMD будет иметь несколько иной смысл, чем включение гиперпоточности для процессора Intel.

  • Процессор
  • Свойства
  • Логический процессор/Включить гиперпоточность

Не забудьте убедиться, что ваш ЦП совместим с технологией Hyper-Threading, прежде чем следовать инструкции. Если вы используете гиперпоточность в своем ядре и вам не нравятся результаты, отключение параметра следует тому же процессу. Перейдите в BIOS и отключите этот параметр.

Подходит ли технология Hyper-Threading для игр?

Подходит ли технология Hyper-Threading для игр или нет, зависит от имеющегося у вас количества ядер. Большинство продвинутых игр требуют либо 2, либо 4 ядра для лучшей производительности. Узнайте о лучших процессорах для игр и способах повышения тактовой частоты в играх.

Воспроизведение

Если вы когда-либо пробовали играть в игры с интенсивной графикой на процессоре Intel i3 Core, то, вероятно, знаете, сколько проблем возникает из-за ограниченного количества ядер. Задержки и фантомные изображения — лишь малая часть списка проблем, вызванных недостаточной вычислительной мощностью.

Гиперпоточность Intel i5 и i3 могут быть чрезвычайно полезны для игр, учитывая, что эти процессоры изначально не обладают большой мощностью. Играя в такие игры, как Crysis, вы заметите значительное улучшение и конкурентное преимущество. Гиперпоточность Intel i7 может быть чрезмерной. Если вы не играете в несколько игр одновременно или не запускаете несколько приложений в фоновом режиме, вам, вероятно, не потребуется столько дополнительной мощности.

Трансляция

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

Если вы ведете потоковую передачу на процессоре Intel i7 Core высшего класса, вы, вероятно, не заметите большой разницы. Усовершенствованные процессоры невероятно быстры как есть. Однако процессоров с 2 или 4 ядрами может не хватить для игры, даже после поддержки технологии Hyper-Threading.

Лучшие процессоры для гиперпоточности

Большинство игр категории ААА рассчитаны на процессоры с 4 ядрами и более. Если ваша цель — игры, выберите AMD Ryzen или Intel i5 или лучше.

Процессор Intel i5-8400, который вы можете найти в игровом настольном ПК HP OMEN 870, — отличный вариант для начала, если у вас ограниченный бюджет. В комплекте с 6 ядрами и 6 потоками этот процессор имеет базовую тактовую частоту 3.8 ГГц и тактовая частота в турборежиме 4,0 ГГц. Хотя этот процессор не поддерживает разгон, его мощности должно быть более чем достаточно для игр с самыми высокими настройками.

Intel i7-8700K оснащен 6 ядрами и 12 потоками, что позволяет выполнять множество фоновых задач во время игры. Вы можете найти этот процессор в настольном игровом ПК HP Pavilion.

В той же ценовой категории, что и Intel i7-8700K, AMD Ryzen 7 2700 предлагает 8 ядер, 16 потоков и возможности разгона. Часто упускаемый из виду факт, что AMD производит невероятные процессоры для компьютеров, ноутбуков и специализированных игровых ПК. Если вы заинтересованы в создании игрового ПК с нуля или покупке готовой системы, вам следует серьезно подумать о процессоре AMD для продвинутых игр.

AMD Ryzen 3 2200G — чрезвычайно доступный ЦП, учитывая, сколько вы можете от него получить. Четыре ядра, базовая тактовая частота 3,5 ГГц и возможности разгона позволяют расширить возможности вашего ПК. Игровой настольный компьютер HP OMEN 875 Obelisk оснащен тремя процессорами AMD Ryzen, из которых вы можете выбрать один из вариантов для индивидуальной покупки.

Если вы действительно хотите сделать все возможное и создать суперкомпьютер, Intel Core i9 7900X — это отдельная лига. Хотя цена определенно отражает его продвинутые компоненты, его производительность трудно превзойти. 10 ядер и 20 потоков позволяют одновременно выполнять множество задач.

Подходит ли технология Hyper-Threading для игр виртуальной реальности?

Виртуальные игры потребляют массу вычислительной мощности, и вам будет гораздо лучше обновить свой процессор, чем пытаться нагрузить существующий. Самые популярные VR-игры используют огромные объемы данных, и без высокопроизводительной видеокарты вы не сможете ими насладиться.

Если вы покупаете компьютер с продвинутой видеокартой, подходящей для иммерсивных VR-игр, ваш процессор, вероятно, способен не отставать. Обязательно выберите систему, которая работает быстро, или подготовьтесь к созданию собственной системы, если VR-игры являются главным приоритетом. В противном случае вам, возможно, придется изо всех сил пытаться разогнать свой процессор или использовать многопоточность для своих ядер, чтобы погрузиться в повальное увлечение виртуальной реальностью.

О AMD Zen ходит много разговоров о возможностях виртуальной реальности. Такие компании, как Intel и AMD, в настоящее время готовятся к будущему игр, чтобы предлагать невероятные впечатления, как никогда раньше.

Обзор

Учитывая, что оборудование для игровых ПК продолжает улучшаться, у вас может возникнуть соблазн отложить крупную покупку, но лучшие игры класса ААА заставят вас потратиться на мощность процессора, чтобы получить максимальную отдачу от игры. .

Если вы планируете использовать гиперпоточность для ядер вашего ЦП, убедитесь, что это того стоит и ваш процессор на это способен. Гиперпоточность — это относительно простое обновление ПК, которое легко включить. Если он вам не подходит, вы можете просто зайти в BIOS и снова его отключить.

Об авторе

Шон Уэйли — автор статей для HP® Tech Takes. Шон — специалист по созданию контента со степенью по литературе SDSU. Он обладает обширными знаниями в области компьютерного оборудования и программирования.

Связанные теги

Популярные статьи

Также посетите

Архивы статей

Нужна помощь?

Рекомендованная производителем розничная цена HP может быть снижена. Рекомендованная производителем розничная цена HP указана либо как отдельная цена, либо как зачеркнутая цена, а также указана цена со скидкой или рекламная цена. На скидки или рекламные цены указывает наличие дополнительной более высокой рекомендованной розничной цены зачеркнутой цены.

Ultrabook, Celeron, Celeron Inside, Core Inside, Intel, логотип Intel, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, логотип Intel Inside, Intel vPro, Itanium, Itanium Inside, Pentium, Pentium Inside, vPro Inside , Xeon, Xeon Phi, Xeon Inside и Intel Optane являются товарными знаками корпорации Intel или ее дочерних компаний в США и/или других странах.

Домашняя гарантия доступна только для некоторых настраиваемых настольных ПК HP. Необходимость обслуживания на дому определяется представителем службы поддержки HP. Заказчику может потребоваться запустить программы самопроверки системы или исправить выявленные неисправности, следуя советам, полученным по телефону. Услуги на месте предоставляются только в том случае, если проблема не может быть устранена удаленно. Услуга недоступна в праздничные и выходные дни.

HP передаст ваше имя и адрес, IP-адрес, заказанные продукты и связанные с ними расходы, а также другую личную информацию, связанную с обработкой вашего заявления, в Bill Me Later®. Bill Me Later будет использовать эти данные в соответствии со своей политикой конфиденциальности.

Подходящие продукты/покупки HP Rewards определяются как принадлежащие к следующим категориям: принтеры, ПК для бизнеса (марки Elite, Pro и рабочие станции), выберите аксессуары для бизнеса и выберите чернила, тонер и бумага.

Читайте также: