1 ядро, 2 потока. SMT, Hyper-threading. Как это работает? — PC-01
На прошлой неделе я рассказал вам о том, какими могут быть будущие Intel процессоры, а также в общих чертах описал как работают их конвейеры.
К моему удивлению никто не задался вопросом — а где же тут Hyper-threading? Как говориться — покажи, ткни.
Ведь описанные схемы на деле работают в качестве двух логических ядер, а очевидно, что тут ядер — одно.
Однако на самом деле ядра в текущее время для современных процессоров — это уже некоторая условность.
По сути производительность и количество реально параллельно решаемых задач процессором intel зависит от количества портов, о которых я рассказывал в прошлом материале.
В AMD как таковых портов нет, но есть разделение конвейера на два пути для целочисленных и операций с плавающей запятой, где так же есть по несколько исполнительных устройств и именно суммарное количество исполнительных устройств определяет количество параллельно решаемых процессором задач.
А вот как для операционной системе будет показываться одно ядеро — это вопрос того как процессор может коммуницировать со внешним миром.
Но, не всё так просто.
Если бы было всё так просто — intel и AMD уже давно бы так ядра бы и считали, а то у видеокарт ядер тысячи, а у процессоров еле за десятку переваливает.
Есть очень важные различия между процессорами и видеокартами.
Видеокарты решают задачи, которые можно смело и спокойно разделить на миллионы, а то и миллиарды однотипных подзадач? во многом в силу большого количества полигонов и пикселей. Поэтому нет огромной сложности в том, чтобы каждый такт заполнять все блоки исполнительных устройств и производители видеокарт поэтому и называют их ядрами. С центральными процессорами всё куда сложнее. Они постоянно меняют решаемые задачи, именно поэтому широкий набор исполнительных устройств не считается как большое количество ядер. И одни исполнительные устройства не могут заменить другие. То есть одни задачи передаются через одни порты, где есть нужное устройство, а другие задачи — через другие порты.
И того получается, что центральные процессоры, в отличие от процессоров видеокарт — занимают не все свои исполнительные устройства каждый такт. Безусловно — производители процессоров организуют обвязку этих исполнительных устройств так, чтобы каждый такт занимать настолько много исполнительных устройств, насколько это возможно. Для этого организуются очереди выполнения, чтобы выбирать наборы микроопераций, которые могут быть выполнены параллельно в одном такте.
Но в реальности всё равно не всегда получается занять все исполнительные устройства. Если говорить про AMD, так и вовсе задача у процессора может быть сравнительно длительное время только для целочисленных устройств, в таком случае вообще половина процессора простаивает.
И с развитием мощностей процессоров проблема эта становиться более острой, так как про оптимизацию кода уже толком никто не задумывается, вернее на сверхвысокоуровневых языках программирования её сделать нельзя. То что используют программисты — работает через какие-то библиотеки, о функционировании которых программисты не знают.
И вся надежда на то, что компилятор сможет сотворить чудо (чего, естественно, не происходит) и в простых задачах появляются ненужные циклы на миллионы операций, выбираются какие-то не те типы данных под переменные, так сказать, с запасом. И появляются суммарно миллиарды лишних, и что ещё печальнее, полностью однотипных операций для процессора.
Что это будет значить для центрального процессора?
Для него это будет значить, что он раз за разом, такт за тактом будет использовать только один из всех исполнительных устройств, а все другие будут практически постоянно стоять в простое. В таком случае — теоретическая и практическая производительность будут отличаться в разы, естественно не в пользу практической.
Чтобы было нагляднее — представим эту ситуацию на схеме. Тут по вертикали у меня расположены порты к исполнительным устройствам, а по горизонтали — такты работы процессора.
Плохая для процессора задача каждый такт занимает только один порт, и ещё периодически требуется задействование портов, используемых для данных. Можно увидеть, что почти весь процессор находиться в простое. Не задействован его потенциал и на 20%. И не надо путать это с процентом загрузки процессора. Показанная ситуация в программах мониторинга процессора будет показывать 100% загрузку процессора
Проблема эта вполне реальная и, естественно, производители процессоров с ней борются.
И самый очевидный метод — разрешить операционной системе выполнять вместе несколько программ. Вакантных для работы портов, очевидно настолько много, что особых проблем с тем чтобы выполнять ещё что-то нет.
Допустим мы разрешили операционной системе распознавать ядро не как одно, а как два. В таком случае — операционная система на одно ядро подмешивает два выполняемых процесса. Естественно оба эти процесса декодируются в микрооперации и помещаются в общую очередь переупорядочивания и выполнения микроопераций. И из этой очереди с большим шансом процессор сможет выбрать задачи так, чтобы заполнять ещё какие-то порты в каждом такте, которые бы в противном случае пустовали бы.
Естественно работает это не 100% идеально. То есть если задача более менее нормальная, то она, благодаря построению очередей, может занимать по несколько портов каждый такт.
Другая задача тоже будет занимать по несколько портов каждый такт.
Если просто тупо совместить эти два потока — то часто выходило бы и то, что задачи по портам пересекались бы.
Естественно так как задачи расположены будут в одной очереди, то процессор не допустит конфликтов, но в тоже время — из-за этого выполнение двух задач на одном ядре будет всё равно немного медленнее, чем выполнения задач каждой на своём ядре.
Но и надо понимать, что процессоры проектируют тоже не дураки, и подбирают наборы исполнительных устройств за каждым из портов не случайным образом.
Допустим, зачастую для обычных задач нужен ALU, а не какие-то более редкие устройства. Поэтому если обоим программам нужен будет в основном ALU, то у текущих процессоров intel ALU есть во всех 4-х портах с вычислительными исполнительными устройствами, и в таком случае конфликтов не будет и процессор просто будет разводить задачи на разные ALU и при таких задачах, скорее всего отличия от удвоения производительности будет связано с ограничением при работе с данными.
Из рассказа может показаться, что это запихивание двух потоков в одно ядро штука чисто программная.
Во многом оно, конечно, так и есть. Но и для аппаратной начинки — место тоже нашлось.
В общем-то если бы это была чисто софтверная фишка, то скорее всего производители процессоров и операционных систем уже смогли бы реализовать динамическую мультипоточность. То есть отслеживать степень занятости исполнительных устройств процессора, и добавлять виртуальные потоки на каждое ядро пока ядро не будет забиваться задачами до отказа.
На деле всё сложнее и есть и недостатки такого подхода.
Первая проблема — изолированное выполнение разных потоков.
Несмотря на общие очереди процессор не должен разрешать использовать данные одного потока для работы другого. И это, кстати, одно из мест в которых возникают аппаратные уязвимости процессоров.
То есть стороннее приложение может попытаться в обход защиты получить данные предназначенные для другого приложения. Естественно если попытаться реализовать динамическую систему мультипоточности, то скорее всего, останутся в кешах и регистрах какие-то подвешенные данные до их замещения новыми после закрытия потока для ядра. И этим смогут пользоваться приложения вирусы.
Ещё одна проблема — это общие данные для потоков. Не обязательно, что на нескольких потоках раскиданы два разных приложения. Одно приложение тоже может быть распараллелено. Если создавать и завершать потоки, то образуется сумятица по внутренним адресам данных, то есть надо будет тратить много времени на завершение процессов, запись результатов под новыми внешними для процессора адресами, потом остальные потоки нужно будет заново обеспечить перекрёстными данными. В общем — суматоха та ещё. Собственно эта суматоха и приводит к появлению уязвимостей.
Ещё одна проблема — обработка прерываний от изначально неизвестного количества потоков. Если количество потоков на ядро будет меняться, то процессор должен быть всё равно адаптирован под максимально возможное количество потоков, чтобы обеспечить возможность штатно отрабатывать прерывания.
То есть на каждый из потоков в ядре может одновременно прийти какое-то действие вызывающее прерывание и приоритетное выполнение. Неопределённое количество потоков создаёт проблемы, опять же, в том числе, и с изменением перекрёстных данных для разных потоков в одном ядре.
В общем мультипоточность — это, к сожалению, не чисто софтверная штука, а имеет и аппаратные ограничения и просто так менять на лету число потоков на ядро тоже нельзя.
Но даже учитывая строгое задание числа потоков на ядро есть недостатки и у такого решения.
В intel есть разделение регистров на потоки на входе в процессор инструкций. Физически этого деления нет, но для каждого потока выделяется строго половина из доступного объёма регистровой памяти. Это, скорее всего, нужно как раз для дальнейшей защиты данных одного потока от другого, то есть возможно первоначальные адреса в регистрах сами по себе указывают на то, для какой операции надо разрешать доступ к тем или иным данным.
Естественно и удельного объёма кеш памяти тоже на один поток становиться меньше. То есть для эффективной работы нужно больше кеша на ядро.
Ну, и, конечно, есть проблемы и софтверные.
Буквы «H T» в логотипе появились не спростаЯ, как человек купивший себе в 2003 году 4-ый пентиум с одним ядром и двумя потоками, могу вас заверить, что оптимизация под многопоток и под гипертрединг однозначно нужна. Без этой оптимизации процессор становиться медленнее для каждой задачи, даже если второй поток ядра простаивает.
И тогда, в 2003 году отключение HT было довольно действенной мерой по повышению производительности.
Сейчас отчасти это тоже работает в некоторых задачах на процессорах с очень большим числом ядер по тем же причинам, то есть не оптимизированный софт под нужное количество потоков и сложности организации работы связки — процессор, операционная система и выполняемая программа при работе с настоящими ядрами и с разделенными на потоки.
Остаётся ещё вопрос — числа потоков на ядро более чем два. Возможно ли это? И тут ответ однозначный — возможно. У IBM есть процессоры с 8 потоками на ядро прямо сейчас.
Вопрос актуальности 4-х потоков на ядро в обычных процессорах — стоит под вопросом. Я думаю, что разработчики процессоров имеют статистику по реальной занятости исполнительных устройств. И, учитывая, что 3-х или 4-х поточные ядра они не делают — означает, что, скорее всего, плотность занятости исполнительных устройств достаточно высокая; так что увеличение потоков в большей части задач будет ухудшать производительность из-за уменьшения удельного объема кеша на поток, или будет сильно снижать эффективность использования транзисторного бюджета, или усложнять внутренние передвижения инструкций и данных внутри конвейера.
Но не исключено, что кто-то из производителей пойдет на такой путь, допустим — увеличит число исполнительных устройств на ядро и вместо увеличения числа ядер чтобы занять все эти исполнительные устройства производители увеличат количество потоков на одно ядро. Вполне возможно, что этот путь может быть более рациональным, чем увеличения числа настоящих ядер. В таком случае кто-то из производителей к нему прибегнет.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Видео на YouTube канале «Этот компьютер»
Одно и двухканал памяти в современных процессорах
Как изменится мир, если NVIDIA купит ARM?
Intel Alder Lake (12 gen) | Две новые микроархитектуры на одно поколение.
InfoCAST #047 | Новости о 12-ом поколении Intel, 3D компоновка от AMD…
Инструменты техноблогинга. Чем делаются тесты? Бесплатное ПО от моего канала.
Как собрать свой первый компьютер? Подбор комплектующих, сборка ПК, установка Windows. Всё от А до Я
EK-QuantumX Delta TEC | Пельтье от EKWB и Intel | Обзор и модификация
DLSS против FSR | Качество изображения | Производительность
Linux, Wundows, x86, ARM… Всё смешалось | InfoCAST #046
FSR vs DLSS | Как работает | Графику сравниваю не я, а — ВЫ!
Настройки ниже минимальных при помощи настройки драйверов. Проверяем эффективность.
Как изменились комплектующие за 10 лет?
Сколько ядер и потоков процессора нужно для игр в 2020 году | Процессоры | Блог
Четырьмя ядрами процессора уже давно никого не удивить, в последние время количество ядер и потоков в предлагаемых для настольного ПК центральных процессорах растёт с каждым годом. Поколение консолей с x86 архитектурой и 8 ядрами на борту уже готово смениться на следующее. Сколько же ядер нужно для игр прямо сейчас и в ближайшем будущем?
Методика тестирования
В идеальных условиях необходимо взять многоядерный процессор и протестировать все варианты отключения ядер. При этом надо сохранить идентичность внутренних взаимодействий и размер кеша. С другой стороны, такое исследование несет меньше пользы в реальном применении — размер кеша является одним из инструментов в разделении линеек. Поэтому многоядерные решения имеют большой размер кеша, а самые младшие процессоры в несколько раз меньше заветных МБ в L3.
Выявлять зависимость игр от количества ядер и потоков центрального процессора будем на двенадцатиядерном Ryzen 9 3900X.
Для каждой конфигурации подберу оптимальную на мой взгляд комбинацию активных ядер и CCD-чиплетов. Напомню, что процессоры AMD на архитектуре Zen2 состоят из нескольких кристаллов: I/O-чиплет с контроллерами интерфейсов и CCD-чиплеты с ядрами. Каждый CCD-чиплет представляет собой блок из двух CCX, содержащих в максимальной конфигурации 4 ядра и 16 МБ кеша третьего уровня. В Ryzen 9 3900X каждый CCX модуль оснащен тремя ядрами и 16 МБ кеша L3. CCD-чиплет может работать либо с равным количеством активных ядер на каждом из его CCX, либо только с одним активным CCX — это накладывает ограничение на итоговые комбинации для тестирования.
Активных CCD | Конфигурация CCD | L3 кэш | Количество ядер |
1 | 1+1 | 32 | 2 |
1 | 2+0 | 16 | 2 |
1 | 3+0 | 16 | 3 |
1 | 2+2 | 32 | 4 |
1 | 3+3 | 32 | 6 |
2 | 1+1 | 64 | 4 |
2 | 2+0 | 32 | 4 |
2 | 3+0 | 32 | 6 |
2 | 2+2 | 64 | 8 |
2 | 3+3 | 64 | 12 |
В таблице выше указаны все возможные для Ryzen 9 3900X конфигурации ядер, жирным выделены компромиссно выбранные для тестирования варианты — с максимальным кешем для 8 и 12 ядер и одинаковым половинным для всех остальных вариантов от 2 до 6 ядер.
Вариант с 3 ядрами исключил по причине отсутствия таковых в продаже и слишком малого для игр количества ядер, 2 ядра без SMT (технология использования одного физического ядра для создания двух логических, аналогично Hyper Threading у Intel) не включены в тест из-за неактуальности таких процессоров в настоящее время.
В CPU-Z соревнующиеся варианты с включенным SMT выглядят так:
CCD-чиплеты в процессоре не одинаковы по частотному потенциалу: один является более удачным и используется для достижения максимальных частот буста, второй — с меньшими возможными частотами на тех же напряжениях. Для чистоты эксперимента все ядра зафиксируем на одинаковой частоте — 4350 МГц.
Остальной тестовый стенд выглядит так:
- Центральный процессор — AMD Ryzen 9 3900X
- Материнская плата — MSI MEG X570 Godlike
- Видеокарта — NVIDIA GeForce RTX 2080 Super
- ОЗУ — Team Group T-Force DARK Pro 4×8 ГБ 3800 МГц CL16
- SSD — NVMe ADATA XPG SX8200 Pro 512 ГБ (Windows 10 Pro со всеми обновлениями)
- SSD — Crucial MX500 1 ТБ (игры)
- БП — CoolerMaster V850 850W
Настройки таймингов оперативной памяти выставлены в режим высокой производительности.
Для улучшения читаемости текста обозначу каждый вариант конфигурации процессора комбинацией двух чисел, например 4-8, где первая указывает на количество активных физических ядер, вторая — общее количество потоков.
Производительность в играх буду измерять в трех параметрах: AVG — среднее значение ФПС на тестируемом отрезке, 1 % — среднее значение 1 % меньших ФПС и 0,1 % — среднее значение 0,1 % меньших ФПС. Из этих трех показателей самым интересным, пожалуй, является 1 % — основываясь на этом значении, можно составить представление о плавности и комфортности геймплея.
Тесты
Настройки в играх буду подбирать для облегчения нагрузки на видеокарту, но сохраняя сложность построения сцены для процессора.
В качестве отправной точки для сравнения буду использовать вариант с 4 физическими ядрами без использования многопоточности SMT.
3D Mark Time Spy CPU Test
Первой дисциплиной будет синтетический CPU тест игровой производительности из пакета 3D Mark.
Как и полагается искусственно созданной нагрузке с оптимизациями под многопоток — результат растет почти линейно вместе с количеством ядер и потоков.
Из интересных результатов — преимущество 6 физических ядер над 4 с включенным SMT, и 6-12 конфигурации над 8-8. Для процессоров Intel результат был бы похожим, за исключением почти идентичных результатов 6-12 и 8-8, Hyper Threading в среднем менее эффективен, чем SMT у AMD. Примечательность сравнения этих комбинаций ядер-потоков в прямой конкуренции реальных процессоров в игровых сборках.
Assassin’s Creed Odyssey
- Разрешение: 1080p
- Качество графики: самое высокое
- Модификатор разрешения: 50%
- Встроенный тест
Первый игровой проект и сразу один из самых процессорозависимых. Полностью избавиться от влияния видеокарты на результат не удалось, но и в таких условиях сравнение возможно.
Слева скриншот с мониторингом варианта 4-4, справа — 12-12.
Вопреки полученным выше результатам синтетического теста 3D Mark, восьмипоточный вариант 4-8 оказался производительнее 6-6, а 8-8 — быстрее 6-12. Реальное положение дел отличается от теоретических вычислительных возможностей.
Любой вариант с восемью потоками и больше, особенно начиная с шести ядер, показывает почти максимальную производительность. Очевидна оптимизация игры именно под 8 потоков, и дальнейшее их наращивание не приносит заметного увеличения количества кадров в секунду.
Четыре ядра без SMT показывают достаточный для одиночной игры уровень ФПС, но сильно отстают от более оснащенных конфигураций. Вариант 2-4 подойдет только для совсем непритязательных игроков.
Far Cry 5
- Разрешение: 1080p
- Качество графики: максимум
- Масштаб разрешения: 0,5
- Встроенный тест
Far Cry не является игрой, сильно зависящей от количества потоков процессора, но протестировать такие проекты тоже необходимо.
Скриншоты с мониторингом параметров системы в вариантах 4-4 и 12-12 показывают отсутствие влияния видеокарты на результат теста, загрузка мощностей видеокарты не более 60 %.
Даже два ядра с включенным SMT показывают достойный уровень производительности во встроенном тесте, а 4-4 уже вплотную подбирается к максимально возможным для 3900Х на частоте 4,35 ГГц результатам. Классическая четырехпоточная игра.
Интересной особенностью Far Cry 5 является странная работа с процессорами без технологий логической многопоточности, причем это касается и процессоров AMD, и Intel. Статтеры в вариантах 6-6 и 8-8 роняют значение 0,1 % ФПС очень сильно и отражаются на комфорте игрового процесса для придирчивых игроков. При этом 4-4 и 12-12 конфигурации лишены таких проблем — для четырех ядер это верно и для процессоров Intel, 12 проверить не удалось.
Вот так огрехи оптимизации игры могут снизить итоговый ФПС при увеличении количества ядер и вычислительной мощности процессора.
PlayerUnknown’s Battlegrounds
- Разрешение: 1080p
- Качество графики: очень низкое
- Текстуры, дальность видимости, сглаживание: ультра
PUBG уже не так популярен, как в былые времена, но все еще подходит под определение онлайн игры с большим количеством участников. В качестве тестового использовался отрезок повтора с двухминутным проездом на транспорте мимо активных боевых действий и красной зоны.
Скриншот мониторинга для варианта 4-4.
Конфигурации до 6-6 показывают приличный средний уровень ФПС, но мощности процессора явно не хватает — 1 % ниже 60 кадров в секунду уже нельзя назвать комфортным для сетевого шутера. 4-8 претендует на роль минимально приемлемого варианта.
World of Tanks enCore RT
- Разрешение: 720p
- Качество графики: ультра
- Сглаживание: выключено
- Трассировка лучей: выключено
- Встроенный тест
WoT — яркий пример малопоточной онлайн игры, результаты в отдельном бенчмарке трудно считать реальным тестированием именно этого онлайн проекта, но вполне показательно в разрезе аналогичных игр, не требовательных к процессору.
Скриншот тестирования 8-16 варианта, количество кадров, подготавливаемых процессором, очень высоко: даже 720p не выручает — загрузка видеокарты более 80 %.
Любая из тестируемых конфигураций процессора показывает запредельный уровень ФПС. Начиная с 4-8, производительность достигает максимума и уже не меняется с ростом числа ядер и потоков.
Четырех ядер без SMT вполне достаточно для этой и подобных игр.
Red Dead Redemption 2
- Разрешение: 720p
- Качество графики: максимальное
- Встроенный тест
Вышедший на ПК эпичный вестерн доставляет больше проблем видеокарте, но и для процессора работа найдется, проект будет представлять портированные с приставок на настольный компьютер игры.
Скриншоты мониторинга вариантов 2-4 и 12-12, загрузка видеокарты велика для любого производительного варианта, но в этой игре это не мешает выявить разницу производительности процессоров.
Заметна оптимизация игры именно под 8 потоков: варианты 4-8 и 8-8 самые производительные. Примечательно, что даже 2-4 конфигурация позволит окунуться в атмосферу дикого запада с комфортом, если мощности видеокарты позволят.
Wolfenstein: Youngblood
- Разрешение: 720p
- Качество графики: убер
- Сглаживание: выключено
- Трассировка лучей: выключено
- Встроенный тест
Wolfenstein попал в сравнение как современная, хорошо оптимизированная игра.
Скриншот теста максимальной конфигурации 12-24 с мониторингом, избавиться от влияния видеокарты на результат не удалось, RTX 2080 Super оказалось недостаточно.
Все протестированные комбинации показывают отличные результаты, 4-4 не выглядит сильно отстающим.
Внимание привлекает отличная оптимизация игры под многопоточные процессоры — результаты в целом очень похожи на синтетический тест 3D Mark, 6-12 быстрее 8-8. С более мощной видеокартой рост производительности возможно сохранился бы и выше 8-16 варианта.
Итоги
Тенденция на увеличение ядер процессора в среднем ПК не обошла и игровую индустрию, многие проекты уже сейчас содержат оптимизации под многопоточные варианты. Переход приставок на x86 архитектуру, несомненно, тоже повлиял на этот процесс.
Можно с уверенностью сказать, что эра четырехядерных игровых процессоров подходит к концу, но прямо сейчас их производительности еще достаточно для относительно комфортного времяпрепровождения за любой игрой.
Естественно, главным ограничителем уровня кадров в секунду как и прежде является видеокарта, но, имея производительный шестиядерный процессор, уже можно рассчитывать на высокий ФПС в большинстве игр. А, начиная с 6-12 конфигураций, прирост кадров в секунду от увеличения потоков почти отсутствует.
Именно шесть ядер и двенадцать потоков скорее всего станут ориентиром для разработчиков игр в ближайшее время, но не стоит забывать о консолях с их восьмиядрной начинкой.
Процессы и потоки. Операционные системы
Процессор является ключевым элементом компьютера, который отвечает за обработку информации. Она может находиться как непосредственно в памяти самого вычислителя, так и в памяти других составляющих машины.
Каждый процесс устройства проходит через процессор. Например, в него видеокарта передает обработанные графические данные. Он считается ключевым, в том числе потому, что даже если карта имеет высокую производительность, а процессор не очень мощный, то он будет не в состоянии обрабатывать информацию с той скоростью, с которой она поступает из видеокарты.
Таким образом, производственные способности просто нивелируются. Это явление получило название bottleneck, что в переводе значит «узкое место» или «узкая шея».
Прежде чем говорить о данной проблеме, стоит уточнить само определение этого термина. Сама технология носит название Hyper-threading, в источниках часто встречается аббревиатура HT.
Сразу стоит оговориться, что количество потоков процессора всегда остается неизменным и увеличить его никак нельзя. Потоки условно принято считать теми же ядрами, только не физическими, а виртуальными. Почему так, а не иначе, подробно описано ниже.
Как узнать сколько потоков у процессора
Само ядро – это непосредственно тот элемент, который отвечает за математические вычисления, согласно принятому в нем алгоритму. Процессор можно назвать своего рода «коробкой» для ядер, он объединяет их и обеспечивает взаимодействие с остальными компонентами системы.
Коротко по сути и маленькая предыстория
Технология Hyper-threading дает возможность хранения двух потоков одновременно. Поэтому при использовании операционной системы Windows, процессор на 2 ядра имеет в своем активе 4 потока. Такие вычислители еще часто называют процессорами, поддерживающими Hyper-treading (гипертрейдинг).
Дорогие и высокопроизводительные процессоры содержат ядра и потоки. Многие считают, что это смежные понятия, однако это не до конца верно. Впервые потоки появились еще в те времена, когда на рынке технологий царствовал Pentium 4.
Среди некоторых пользователей бытовало мнение, что они отрицательно сказываются на производительности. Это утверждение является несколько ошибочным, ведь дело в оптимизации программного обеспечения.
Программ, которые могли корректно использовать данное преимущество было не много, если вообще были. Эта разработка находилась на стадии, своего рода, полевых исследований.
Система сама все о себе знает
Когда пользователь взаимодействует с конкретными программами компьютера, это вовсе не значит, что больше машина ничего не делает. Есть служебные задачи и фоновые процессы, выполнение которых происходит незаметно на первый взгляд.
Чтобы узнать подробную информацию в операционной системе Windows существует «Диспетчер задач», который в том числе покажет, сколько ресурсов компьютера используется в данное время.
Этот инструмент удобен, часто бывает полезен и обладает интуитивно понятным интерфейсом. Для того, чтобы открыть это приложение, нужно одновременно зажать клавиши Ctrl+Alt+Delete .
Так это выглядит на Windows 10 . Пользователи Mac OS найдут на своем компьютере утилиту «Принудительное завершение программ», которое легко вызвать при помощи клавиш cmd alt Esc . Она также дает возможность закрыть программу, которая перестала отвечать.
Еще одна популярная операционная система с открытым исходным кодом, Linux, тоже содержит диспетчер задач, только называется он по-другому – «Системный монитор».
Добраться до него помогут 3 простых шага:
- Системные утилиты
- Системный монитор
или можно воспользоваться командой
gnome-system-monitor .
Функционал «Системного монитора» полностью соответствуют таковым в «Диспетчере задач» Windows и «Принудительному завершению программ» в операционной системе от компании Apple.
Почему так быстрее
Поток, обработавший одну порцию данных, ожидает получение другой, а если он не получает, то помогает другому потоку. Таким образом достигается максимальное быстродействие, за счет того, что все ресурсы компьютера используются рационально. Он, в какой-то степени, становится более гибким.
Количество потоков всегда вдвое больше, нежели количество ядер (при наличии «на борту» технологии HT). 2 ядра равнозначно 4-ем потокам, 4 ядра равнозначно 8-и потокам. Алгоритм просчета не может бить иным. Авторство разработки принадлежит компании Intel, являющейся лидером в производстве процессоров на массовом потребительском рынке.
Таким образом, одно физическое реальное ядро состоит из двух виртуальных ядер. Не только ОС, но и программы, которые установлены на устройстве, видят это и используют открытый перед ними потенциал возможностей. Если программа поддерживает многопоточность, то работать она будет намного быстрее.
Пошаговое руководство для новичков
Соответственно, чтобы узнать количество потоков, необходимо выяснить количество ядер, содержащихся в процессоре. Для это есть 3 (как минимум) способа:
1. Документация устройства, в которой подробно указаны характеристики.
2. Интернет, где можно ввести модель ноутбука и посмотреть, что находится у него «под капотом».
3. Или же в этом может помочь уже упомянутый ранее «Диспетчер задач», в котором нужно выбрать пункт меню «Производительность».
Так как узнать, сколько потоков у конкретного процессора подскажут полезные информационные поля под диаграммой, дополнительных программ устанавливать не требуется. Поле «Ядра» сообщает о количестве физических ядер, а поле «Логические процессы » подсказывает сколько логических или же виртуальных ядер содержит компьютер.
Проанализировав скриншот выше, становится очевидно, что данная электронно-вычислительная машина, то бишь компьютер, содержит 4 ядра и 8 логических процессов (считай – потоков). Когда значения двух параметров одинаковы, это означает, что данный компьютер не поддерживает технологию HT (Hyper-threading).
Во многих процессорах топового уровня есть потоки, как и ядра. Я постараюсь объяснить в чем отличие потока от ядра, и в чем преимущество этих потоков. Потоки появились достаточно давно, а именно еще во времена правления Pentium 4 (до них она был в Ксеонах как суперпоточность).
В то время потоки еще носили сомнительную пользу, некоторые пользователи считали что они только ухудшают производительность.
Но на самом деле, производительность не падала, просто на то время программ, которые могли грамотно работать с двумя потоками — вообще не было. Поэтому, потоки это скорее всего была экспериментальная технология в то время, кстати почти все Pentium D также не имели ее за исключением топовых моделе D955, D965 (это двухядерники с четырьмя потоками).
Теперь немного разберемся с тем, что это вообще такое. Технология потоков называется Hyper-threading и отображается сокращенно: HT (как правило указывается на коробках сбоку). На одно ядро допустим один поток. Если вы задавались иногда вопросом «как увеличить количество потоков процессора», то я вас разочарую — это невозможно, и даже не думайте об этом, это глупости =).
Hyper-threading позволяет хранить состояние сразу двух потоков, поэтому в из под Windows такие потоки выглядят как ядра. То есть, если у вас имеет процессор 2 ядра, то это 4 потока. Соответственно я имею ввиду процессор, который поддерживает гипертрейдинг.
Как работает Hyper-threading? Чтобы вы понимали, то процессор выполняет не только ваши задачи, но и другие, и в том числе служебные. Так вот, обрабатывая данные, поток потом их отправляет, или ждет новых данных из оперативной памяти. В это время, пока он ждет, он может помогать другому потоку. То есть гипертрейдинг призван увеличить производительность процессора, уменьшая время бездействия.
То есть, можно сделать вывод, что количество потоков всегда равно количеству ядер умноженное на два. Никак иначе. Эту технологию разработала Intel, соответственно в AMD-процессорах ее нет, но есть мнение, что у них есть подобная технология, именно поэтому многие считают что в восьми-ядерных процессорах AMD восемь не ядре, а потоков.
В любом случае, эта технология полезна, хоть это и виртуальные ядра — лучше с HT, чем без нее.
Также плюсом является то, что не только система видит такие потоки как настоящие ядра, но и программы, и если программа умеет распараллеливать свою работу, то скорость ее работы будет выше с потоками, чем без.
Теперь вас наверно заинтересует — как узнать количество потоков процессора? Это очень просто. Вам нужно открыть диспетчер задач (по панели задач нажмите правой кнопкой), и перейти на вкладку производительность. Там будет поле ядра, а под ним — количество потоков, вам нужно последнее:
Как видите, число потоков равно числу ядер, потому что мой Pentium G3220 к сожалению не поддерживает технологию HT.
Современные процессоры Intel Core i3, i7 ее поддерживают, а вот i5 — нет (вроде бы только в ноутбуках есть i5 с двумя ядрами и HT, и некоторые процессоры на 1156 сокет, там тоже два ядра и HT). Думаю что маркетинговый ход, чтобы было равно-мерное увеличение производительности моделей серии i.
Если вы думаете, какой процессор лучше — с потоками или нет, то конечно с ними. Иногда (не буду углубляться) цена с поддержкой HT и без невелика, поэтому стоит доплатить и взять тот, что поддерживает HT. Это я так, в общих чертах вам на будущее.
7 ответов
Это зависит от оборудования, поскольку вы (возможно) не используете теоретический компьютер, а физический аппаратный, поэтому у вас ограниченные ресурсы.
Кроме того, даже если вы можете запустить 5000+ потоков, в зависимости от вашего оборудования, которые могут работать намного медленнее, чем 10-нить-эквивалентная программа. Я думаю, вы должны взглянуть на объединение потоков .
Как правило, количество потоков, которые запускаются одновременно, определяется количеством процессоров и ядер ЦП (включая гиперпоточность), которые у вас есть. То есть, в любой момент времени количество потоков, работающих (в операционной системе), равно числу «ядер».
Сколько потоков, которые вы можете запускать одновременно в вашем приложении, зависит от большого количества факторов. Наилучшим номером (легким человеком) было бы количество ядер на машине, но, конечно же, как будто никто не притворяется (ни одно другое приложение):).
Честно говоря, я бы сказал, что я много занимаюсь многопоточным в.NET/Windows, потому что у человека обычно есть больше «повреждений», чем пользы, когда у вас нет реального понимания..NET имеет концепцию пула потоков, и вам нужно знать, как это работает в дополнение к Windows.
В.NET 3.5/4.0 вы должны смотреть на Задачи (Task Parallel Library), поскольку библиотека намного лучше определяет, как много нитей (если вообще) икру. С TPL threadpool получает капитальный ремонт, и он намного умнее в вопросе о размножении потоков и краже задач и т.д. Но вы обычно работаете с задачами, а не с потоками.
Это сложная область, и в результате платформа.NET ввела Задачи, чтобы отвлечь программистов от потоков и, таким образом, позволить времени выполнения быть умным об этом, в то время как программист просто скажет, что она хочет, и не столько о том, как для этого.
Каждый поток потребляет больше памяти (стек ядра, блок среды потока, thread-local, stack….). AFAIK в Windows нет явного ограничения, поэтому ограничение будет памятью (вероятно, стек для каждого потока).
В потоках Linux больше похожие процессы (с разделяемой памятью), и вы ограничены:
Cat /proc/sys/kernel/threads-max
Довольно хорошее эмпирическое правило при запуске интенсивных задач состоит в том, чтобы запустить тот же номер, что и ваш физический подсчет ядра.
Да, вы можете запускать больше задач, но они будут ждать ресурсов (или потоков в пуле потоков), и ваш ящик, независимо от размера, не может полностью распределить все основные ресурсы процессора в 100% случаев поток из-за фона/других процессов. Таким образом, чем больше задач вы создаете, тем больше потоков вы создаете, поскольку они превосходят фактические возможные параллельные потоки (1 на ядро), тем больше будет выполняться управление ресурсами, очередность и свопинг.
Тест, который мы выполнили, теперь, когда я работаю с использованием вирусного шаблона, чтобы запустить дополнительные задачи, показал, что оптимальный уровень близок к счету процессора как кепку. Задачи, запущенные при соотношении «один к одному» с физическим числом ядер, выполнялись примерно на 1 минуту за каждую задачу. Устанавливается в два раза по счетчику процессора, время задачи перешло с 1 минуты в среднем до 5 минут среднего времени для завершения. Он становится геометрически медленнее, чем больше задач, инициированных за счет ядра.
Так, например, если у вас есть 8 физических ядер, то должны быть самыми быстрыми 8 задач (и использование TPL, по существу 8 одновременных потоков в активном процессе). Существует ваш основной поток или процесс, который создает другие задачи и другие фоновые процессы, но если ящик довольно изолирован для удовольствия от использования ресурсов, они будут довольно минимальными.
Поверхность программирования колпачка вашей задачи основана на подсчете ядра, когда вы жуете задачи из очереди или списка, поэтому при развертывании приложения на коробках разного размера он автоматически настраивается.
Чтобы определить это программно, мы используем
var CoreCount = System.Environment.ProcessorCount / 2;
Зачем делиться на две, спросите вы? Потому что почти все современные процессоры используют логические ядра или гиперпотоки. Вы должны найти со своим собственным тестированием, что, если вы используете логический счет, ваша общая скорость на одну задачу и, следовательно, весь процесс значительно снизится. Физические ядра — это ключ. Мы не могли видеть быстрый способ найти физическое против логического, но быстрый обзор наших ящиков показал, что это последовательно верно. YMMV, но это может стать довольно быстрым.
Мне удалось запустить 4 потока одновременно на моем текущем старом процессоре (2005). Использование EVGA CPU burner до того, как прозвучал мой зуммер процессора. (Запрограммировано в меню BIOS). Значение я превысило 90 * c. Имейте в виду, что мы говорим о потоках данных, работающих одновременно. хорошим примером может быть одновременное открытие нескольких программ. Но в целом это зависит от того, насколько хорош ваш процессор с многозадачностью. (другими словами, можно обрабатывать многие активные потоки). Безопасным способом тестирования является загрузка «ocscanner (By EVGA)» и «CPU Thermometer» с использованием центрального процессора в OC Scanner. Во время тестирования убедитесь, что ваша температура не превышает 90 * c (или любую температуру, в которой вы чувствуете себя в безопасности) и посмотрите на текущее количество потоков, которые вы запускаете, бросили ваш процессор. начните с 2 потоков, подождите 3-5 минут, наблюдая температуру процессора, добавьте еще один поток, повторите. (НЕ ПРИНИМАЙТЕ СВОЮ УДАЧУ!!!) (НЕ ПОПЫТАЙТЕ, ЕСЛИ ТЕРМОМЕТР ЦП НЕ МОЖЕТ СДЕЛАТЬ ВАШУ ТЕМПЕРАТУРУ!!!)
Добрый день. Сегодня хотелось бы разобрать, что такое потоки в процессоре. Те самые, о функциях и возможностях которых большинство и не догадывается, однако любят хвастаться остальным.
Цель функции заключается в том, что на 1 ядро может одновременно обрабатывать несколько потоков данных. Пока первый поток простаивает, а второй занимается вычислением, запущенное приложение может воспользоваться вакантной логической мощью для своих целей. В результате, прерывания случаются гораздо реже, а вы не ощущаете тормозов и прочих неудобств при работе.
Недостаток технологии заключается в следующем:
- оба потока обращаются к единой кэш-памяти 2 и 3 уровней;
- тяжелые вычислительные процессы могут вызвать конфликт в системе.
Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.
У многих процессоров Intel есть поддержка технологии под названием Hyper-threading. Данная технология позволяет выполнять сразу 2 потока команд на одном ядре процессора. Таким образом удается более эффективно использовать вычислительную мощность ядра. Но, технология Hyper-threading используется далеко не во всех процессорах Intel. Технология Hyper-threading присутствует в , а также в некоторых новых Pentium и мобильных Core i5.
У процессоров AMD с архитектурой Zen также есть технология, создающая по два потока вычислений на ядро. И у AMD также не все процессоры получают поддержку данной технологии.
Из-за такого разброса в характеристиках процессоров создается путаница и пользователи часто не могут разобраться, в каких процессорах сколько потоков используется. В данной статье речь пойдет о том, как узнать сколько потоков на вашем процессоре.
Способ № 1. Диспетчер задач.
Самый простой способ узнать сколько потоков , это посмотреть в «Диспетчере задач». Для можно воспользоваться классической комбинацией клавиш CTRL-SHIFT-DELETE. Если у вас операционная система Windows 7 или более новая, то это можно сделать еще и с помощью CTRL-SHIFT-ESC.
После открытия «Диспетчера задач» нужно перейти на вкладку «Быстродействие».
Здесь будет отображаться загруженность процессора и оперативной памяти компьютера. В правой верхней части окна будет отображаться хронология загрузки ЦП. Особенностью данного графика является, то что нагрузка отображается отдельно для каждого из потоков процессора. Поэтому подсчитав количество окошек с графиками можно узнать сколько потоков в процессоре. Например, на скриншоте внизу, отображается 8 графиков с хронологией загрузки процессора, следовательно, на компьютере используется процессор с 8 потоками.
Если у вас Windows 8 или Windows 10, то хронология нагрузки на процессор может отображаться одним графиком. В этом случае вам нужно сначала переключиться на отображение хронологии по логическим процессорам (потокам). Для этого нужно кликнуть правой кнопкой мышки и выбрать «Изменить график – Логические процессоры».
После этого в «Диспетчере задач» появятся отдельные графики для каждого потока вашего процессора. Например, на скриншоте внизу отображается 4 графика, следовательно, в используемом процессоре 4 потока.
Кроме этого, в «Диспетчере задач» Windows 8/10 прямым текстом указывается сколько потоков в процессоре. Сразу под графиками есть блок с информацией. Там в строке «Логические процессоры» указано количество потоков процессора.
Как вы видите, получить информацию о количестве потоков в процессоре можно очень быстро и без использования сторонних программ. Но, если вам нужно больше информации о процессоре, то обойтись инструментами, встроенными в Windows, уже не получится.
Способ № 2. Программы.
Пожалуй, самой известной программой для получения информации о характеристиках процессора является программа CPU-Z. Данная программа является бесплатной, и вы можете . Если вы хотите узнать сколько потоков в процессоре, то вам нужно запустить CPU-Z на своем компьютере и посмотреть значение «Threads», которое находится в правом нижнем углу программы на вкладке «CPU». На скриншоте внизу видно, что у процессора 4 потока.
Кроме CPU-Z можно использовать и другие программы. Например, вы можете прибегнуть . Данная программа отображает массу технической информации о вашем компьютере.
Среди прочего с ее помощью можно узнать и количество потоков процессора. Для этого нужно перейти в раздел «CPU» и посмотреть значение «Threads».
Как узнать количество потоков процессора
При выборе игрового процессора геймеры чаще всего обращают внимание на его поколение, частоты, количество ядер. А вот на число потоков смотрят единицы. Большинство современных процессоров поддерживают многопоточность, которая способствует приросту производительности в играх и других задачах.
Из этой статьи вы узнаете что такое потоки процессора и чем они отличаются от ядер, а также как узнать количество потоков процессора на ноутбуке и компьютере.
Содержание статьи:
Что такое потоки процессора
Ядро — это физическая вычислительная единица центрального процессора. Поток — виртуальное ядро, его способность одновременно работать над двумя и более задачами при их параллельном выполнении. На программном уровне одно физическое ядро становится двумя виртуальными и выполняет пару команд сразу. Но столь значимого преимущества, как удвоение физических ядер, многопоточность не даёт, и двукратного роста быстродействия ожидать не стоит.
При гиперпоточности дублируется часть ресурсов ядра, в частности регистров. Отвечающие за обработку информации и её организацию узлы остаются едиными и работают в однопоточном режиме. Делятся также кеши разного уровня. Многопоточность позволяет задействовать ресурсы процессора, которые простаивают в ожидании считывания и доставки информации из памяти.
Как узнать количество потоков процессора
Для этого можно воспользоваться средствами операционной системы, паспортными данными или сторонними утилитами. Рассмотрим каждый из вариантов на примерах.
1. Диспетчер задач
Запустите утилиту комбинацией клавиш Ctrl + Shift + Esc и перейдите во вкладку Производительность. Ищите строчку Логических процессоров.
2. Сведения о системе
Нажмите Win + R и в открывшемся окне выполните команду msinfo32.
В правой части окна смотрите содержимое строчки Процессор.
3. Официальный сайт
Найдите свой процессор на официальном сайте и посмотрите данные в спецификации.
В бумажной документации эта информация также присутствует.
4. CPU-Z
Эта утилита отобразит все сведения о процессоре и других компонентах компьютера. Число потоков указано в строке Threads.
Другие информационные утилиты также покажут количество логических потоков, например AIDA64.
5. Windows PowerShell
Запустите инструмент через кнопку Пуск и выполните в нём команду:
WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors
Нужное значение находится в третьем столбике.
Выводы
Узнать количество потоков процессора Windows 10 на компьютере можно средствами операционной системы и через сторонние приложения. Как следует из информации, приведённой в статье, для нетребовательных пользователей оптимальным решением в 2021 году будет кристалл с 4 ядрами и 8 потоками; конфигурации 6 – 12 и выше почти не дают прироста FPS в играх и быстродействия в других наиболее часто используемых приложениях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
На что влияет количество потоков процессора? Просто о сложном
Когда-то технология Hyper Threading от Intel стала настоящим прорывом, а ныне практически каждый современный процессор поддерживает распараллеливание Core-вычислений для обеспечения поточности. Аналогичным путём пошла и AMD. На что влияет количество потоков процессора?
Для начала дадим определение самому термину. Ядро – условное обозначение вычислительной ед-цы CPU, выполняющее последовательность команд. Строго одну и в заданной очерёдности.
Если ядер несколько, уже происходит переключение, обеспечивая равномерное распределение ресурсов. Понятно, что Double Core – лучше одного, а Quad – в 2 раза быстрее, чем двуядерный (при условии идентичной частоты и прочих характеристик).
Многопоточность же позволяет рациональнее задействовать доступную мощность, когда происходит виртуальное расщепление одной физической единицы сразу на две. Особенно такое распределение актуально для фоновых задач и процессов.
Например, для антивирусного ПО, работающего в фоне. Если же предстоит сложный графический рендеринг, практичнее взять ЦП с максимальным числом физических ядер.
На что влияет количество потоков процессора? Простым языком о сложном
- Для видеоигр лучше брать конфигурацию из 4-8 Cores и более, а многопоточность в этом случае – скорее приятный бонус, поскольку основная нагрузка ложится на физические единицы и GPU;
- Для 3D-графики и видеомонтажа число ядер отразится на производительности непосредственным образом. Графический акселератор не менее важен, но и переход с Ryzen 7 на 9, например, поможет выжать из системы максимум. Рендеринг зачастую представляет собой последовательность команд, которые должны выполняться в строгой очерёдности для записи данных в результирующий файл;
- В офисном использовании с MS Word и электронными таблицами многопоточность даст дополнительный прирост, если фоном работает антивирус, запущено «облако» и т. д.
Подписывайтесь на наши каналы в Яндекс.Дзене и на YouTube! Копирование текстов с сайта GameNewsBlog.ru запрещено.
Многоядерность и многопоточность в сетевых процессорах
В универсальных высокопроизводительных процессорах максимально совмещаются разнообразные подходы к распараллеливанию вычислений, в т. ч. многоядерность (multicore) и многопоточность (multithreading). Из-за трудности дать количественную оценку эффективности многоядерности и многопоточности, а также вследствие существенной взаимозависимости этих показателей в случае универсальных серверных процессоров компании-разработчики характеризуют свою продукцию на основе внутрифирменных предпочтений или собственных традиций. Анализ особенностей применения интегрированных сетевых процессоров, а также учет специфики работающих на них операционных систем и прикладных программ дают возможность сделать вывод о предпочтительности в сетевых процессорах многоядерности перед многопоточностью. Этот вывод косвенно подтверждается превалированием в сетевых процессорах архитектуры ARM, патентодержатели которой концептуально отвергают многопоточность в пользу многоядерности.
Введение
Производительность всегда была и остается одной из главных характеристик процессоров. Она постоянно растет по мере освоения микроэлектронной промышленностью новых технологических рубежей. Кроме того, не полагаясь только на достижения технологии, разработчики процессоров вводят в них разнообразные архитектурные и структурные усовершенствования, среди которых важное место занимает параллелизм вычислений во всех его проявлениях: суперскалярности (superscalarity), многопоточности (multithreading), многоядерности (multicore) и мультипроцессорности (multiprocessing). В универсальных высокопроизводительных процессорах все эти подходы максимально совмещаются. Однако уровни параллелизма взаимозависимы, и на практике из-за их взаимного влияния приходится искать разумные компромиссы. Критерии для поиска таких компромиссов во многом зависят от назначения и области применения процессора. Одной из таких областей, предъявляющей специфические требования к параллелизму вычислений, является сетевая инфраструктура, в которой давно укоренились и продолжают с успехом использоваться интегрированные сетевые процессоры (ИСП).
Качественный анализ взаимосоотношения таких широко применяемых форм распараллеливания вычислений в процессорах как многопоточность и многоядерность позволяет выявить специфические с точки зрения этих форм особенности ИСП и оценить предпочтительные для них направления развития параллелизма вычислений.
Соотношение многоядерности и многопоточности
На рубеже тысячелетий, когда микроэлектроника преодолела знаковый рубеж в миллиард транзисторов на кристалле кремния, востребованность нового «зарубежья» оказалась под вопросом в рамках традиционной моноядерной парадигмы процессоров. Решить эту проблему обещали, в частности, высокоинтегрированные интеллектуальные системы-на-кристалле (СнК). Такие системы могли объединять в одном микроэлектронном приборе высокопроизводительный процессор с памятью, контроллерами разнообразных интерфейсов ввода–вывода и разного рода специализированными устройствами. Однако более высокая интеграция СнК и включение в них специализированного оборудования неизбежно сопровождалась и более узкой их специализацией, которая ограничивала области применения и, как следствие, потенциальные объемы выпуска. Уменьшение же объемов выпуска удорожало продукты, нивелировало преимущества высокой интеграции и, в конечном счете, ставило под сомнение экономическую целесообразность развития микроэлектроники в этом направлении. Утвердиться на микроэлектронном рынке сумели лишь немногие категории СнК. В их число уверенно вошли ИСП благодаря растущему массовому спросу, который обеспечивался постоянным расширением в мировом масштабе сетевой инфраструктуры и перманентной интеллектуализацией ее компонентов.
Между тем, в новом тысячелетии обрел второе дыхание застопорившийся было процесс повышения интеграции собственно процессоров. Толчком к этому, возможно, на первый взгляд несколько неожиданно, послужило развитие широкодоступной беспроводной связи, породившее такой феномен как облачные вычисления. Облачная инфраструктура, предоставляемая как сервис многочисленным пользователям разнообразных гаджетов, потребовала громадные объемы процессорных ресурсов, компактно сосредоточенных в серверах облачных датацентров. Так, в число важных показателей экономической эффективности датацентров вошла «плотность процессоров», причем высокопроизводительных, на единицу объема серверного пространства. В конкурентной погоне за этим показателем производители серверов стали быстрыми темпами наращивать в них число процессоров, а их поставщики – число ядер в своих изделиях, ориентированных на серверные применения. Текущие достижения ведущих фирм в области многоядерных серверных процессоров представлены в таблице.
Компания | Семейство процессоров | Максимальное число ядер | Число потоков в ядре | Максимальное суммарное число потоков |
AMD | EPYC | 64 | 2 | 128 |
Intel | Xeon Platinum | 56 | 2 | 112 |
Marvell | ThunderX2 | 54 | 4 | 216 |
Oracle | SPARC M8 | 32 | 8 | 256 |
IBM | POWER9 | 24 | 8 | 96* |
* Возможны конфигурации (24×4) или (12×8) потоков
В таблицу не случайно включены характеристики многопоточности. Компании, предлагающие многопоточные процессоры, предпочитают в рекламных целях делать акцент именно на максимальном суммарном числе потоков как наиболее впечатляющей характеристике своей продукции. Более того, нередко многочисленные потоки представляются некими «логическими процессорами» [1] или «виртуальными ядрами» [2]. Однако называть поток логическим процессором или виртуальным ядром допустимо лишь в рекламных брошюрах.
В отличие от процессоров и ядер, потоки разделяют кэши всех уровней и по данным, и по адресам. Вследствие этого многопоточность дает ощутимый эффект только тогда, когда все исполняемые ядром потоки принадлежат одной и той же программе. Распараллеливание потоков одной программы на несколько процессорных ядер может ускорить ее выполнение при условии слабой взаимозависимости потоков по данным. Однако запуск нескольких программ разными потоками на одном ядре лишь ухудшит ситуацию из-за постоянных конфликтов в кэшах, в т. ч. кэшах адресных таблиц, т. к. разные программы работают в разных виртуальных пространствах. Поэтому нет ничего удивительного в том, что нередко при решении на многопоточном процессорном ядре тестовых задач, запрограммированных для разного числа потоков, самая высокая производительность ядра достигалась при работе с одним-единственным потоком [3, 4].
Интеграция множества ядер в один кристалл обеспечивала процессору высокую потенциальную производительность и низкую удельную стоимость, приведенную к единице производительности. В свою очередь, доступность высокопроизводительных многоядерных процессоров вкупе с легкостью наращивания их числа в серверах благодаря мультипроцессорным технологиям «сокетов» (sockets) и «лезвий» (blades) во многом стимулировала использование серверов для решения ранее не свойственных им специфических задач, таких, например, как виртуализация сетевых функций. Кроме того, она способствовала активному применению в датацентрах разных форм виртуализации и программного определения их основных функциональных компонентов: сетей (software-defined networking) и хранилищ (software-defined storage). Эти полезные возможности даются чуть ли не даром, поскольку дополнительные накладные расходы на виртуализацию или программное определение зачастую покрываются технологическим избытком серверных ресурсов [5].
Эффективность многопоточности
В настоящее время быстродействие процессоров настолько выше быстродействия оперативной памяти, что нередко большая часть процессорного времени тратится впустую на ожидание запрошенных из памяти данных. Такие же простои могут возникать при обращении к другим разделяемым ресурсам. Ключевое преимущество многопоточности заключается в возможности переключения программы на другой поток, пока текущий по той или иной причине вынужден простаивать. Для переключения на альтернативный поток необходимо сменить потоковый контекст, что традиционный процессор без специальных средств поддержки многопоточности вынужден делать программно и может потратить на это больше времени, чем теряется в простоях из-за ожидания данных. Для получения выигрыша от многопоточности альтернативные потоки должны быть готовы к немедленному исполнению, а их переключение желательно осуществлять мгновенно. Эту задачу решает одновременная многопоточность (ОМП). Процессоры с ОМП оснащаются специальной аппаратурой, которая каждому потоку предоставляет отдельный персональный контекст, включающий в типичном случае комплект универсальных регистров и средства предвыборки инструкций данного потока. Считается, что такие добавки несущественно увеличивают оборудование процессора, т. к. общей для всех потоков остается его большая часть: рабочие конвейеры, сопроцессоры и кэши всех уровней.
В целом, количественно оценить эффективность ОМП не представляется возможным. Она зависит от слишком многих факторов: особенностей выполняемого алгоритма, методов его программирования, способов реализации многопоточности на уровне аппаратуры процессора и операционной системы. Чтобы ОМП ускорила выполнение программы, необходимо соблюдение целого ряда условий:
- в исходном алгоритме должен присутствовать параллелизм, допускающий одновременное выполнение нескольких действий;
- в рабочем коде программистом или компилятором должны быть организованы соответствующие этим действиям потоки;
- при исполнении кода потоки не должны тормозиться взаимными блокировками на разделяемых аппаратных ресурсах и при доступе к общим данным.
Сложность объективной оценки эффективности ОМП косвенно, но показательно проявляется в разнице подходов, видимо во многом интуитивных, к ее реализации фирмами-поставщиками серверных процессоров. В то время как Oracle в процессорах семейства SPARC или IBM в процессорах семейства POWER традиционно оснащают свои процессорные ядра восемью потоками, Intel во всех процессорах с фирменной технологией HyperThreading ограничивается двумя потоками на ядро. Этой же нормы придерживается и ее прямой конкурент – компания AMD (см. табл.). Разумеется, увеличение числа потоков в ОМП при благоприятном стечении обстоятельств обязано дать выигрыш в производительности. Например, по некоторым оценкам, в восьмипоточном процессоре POWER5 ОМП позволяет повысить суммарную производительность до 60%, в то время как в двухпоточном процессоре Xeon максимальный выигрыш благодаря ОМП равен 30% [6]. Вопрос, однако, в том, оправдываются ли экономически аппаратные и энергетические затраты на дополнительные потоки итоговым интегральным повышением производительности. Едва ли имеется однозначный ответ на все случаи, но с учетом массовости использования процессоров Intel в самом широком спектре применений, который гораздо больше, чем в случае процессоров SPARC или POWER, компанию трудно заподозрить в некомпетентности или небрежении к запросам пользователей. Более вероятно предположение, что внутрифирменные оценки эффекта от ОМП не побуждают Intel увеличить число поддерживаемых процессорным ядром потоков так, чтобы оно превысило два потока.
Еще более радикальную позицию в отношении ОМП занимает компания ARM. Она полагает более выгодным тиражировать на кристалле целиком процессорные ядра, а не оснащать их средствами многопоточности. По оценкам апологетов архитектуры ARM [7], хотя четырехъядерный процессор и занимает большую площадь кремния, он потребляет меньше энергии, чем одноядерный четырехпотоковый процессор, причем выигрыш достигает 46%. Кроме того, выполнение программы двумя потоками на одном ядре увеличивает число обращений к кэшу на 42% по сравнению с выполнением одним потоком, в то время как при работе той же программы на двух ядрах, наоборот, число обращений к кэшу уменьшается на 37%. Вероятно, следуя этим оценкам, компания ARM практически полностью отказалась в своих процессорах от ОМП. На сегодняшний день в мире имеется лишь один пример многопоточного воплощения архитектуры ARM: ее оригинальная фирменная реализация в семействе процессоров ThunderX2 от компании Marvell (см. табл.), хотя еще предыдущее поколение этих процессоров ThunderX (разработка Cavium) было традиционно однопоточным.
Особенности многоядерности и многопоточности в ИСП
При всем многообразии ИСП их можно поделить на две большие категории по специализации архитектур процессорных ядер. Специализированные и, как правило, предельно упрощенные благодаря специализации ядра позволяют при прочих равных условиях увеличить суммарную производительность ИСП как за счет большей эффективности отдельного ядра, так и благодаря возможности интеграции в СнК большего их числа при одном и том же уровне технологии. Примерами ИСП с оригинальной архитектурой и специализированными ядрами может служить продукция компаний Netronome [8], Tilera (ныне Mellanox) [9], EZchip (ныне тот же Mellanox) [10], Xelerated (ныне Marvell) [11]. К этим изделиям, вероятно, следует отнести ИСП nPower компании Cisco, одного из грандов рынка сетевого оборудования, которая добилась рекордной интеграции в 672 процессорных ядра с фирменной архитектурой [12].
Однако в ИСП широко и в последнее время все чаще используются универсальные процессорные ядра с традиционными архитектурами, в первую очередь, с архитектурой ARM [13]. В качестве примеров можно привести ИСП компаний Motorola/Freescale (ныне NXP) [14], LSI (ныне Intel) [15] или Cavium (ныне Marvell) [16]. Наблюдаемый вполне ощутимый сдвиг предпочтений разработчиков ИСП от специализированных к универсальным процессорным ядрам вполне объясним. Первые сложно программировать из-за специфичности архитектуры и ограниченности средств разработки программного обеспечения, доступных только обладателям ноу-хау архитектуры, тогда как последние имеют гораздо более развитую экосистему с готовыми разнообразными операционными средами и библиотеками, а также удобными апробированными инструментами разработки, в т. ч. от нескольких сторонних поставщиков. В результате стандартные архитектуры процессорных ядер в ИСП существенно упрощают создание потребителями собственных приложений и, как следствие, удешевляют разработку и сокращают время вывода новых продуктов на рынок.
Хотя универсальные процессорные ядра все активнее внедряются в ИСП, это не те же самые ядра, которые применяются в серверных процессорах. Так, на сегодняшний день практически нет примеров применения в ИСП ядер с архитектурой x86. Главное (если не единственное) достоинство последней заключается в огромном объеме наработанного серверного программного обеспечения. Однако ряд его существенных компонентов, таких как виртуализация или программное определение серверов, не являются релевантными для ИСП. В то же время широко применяемые в ИСП архитектуры ARM и MIPS позволяют разместить на кристалле больше процессорных ядер и добиться не только более высокой производительности, но и лучшей энергоэффективности ИСП.
Кроме того, заметно разнятся в процессорах для серверов и ИСП подходы к организации кэшей. Если в серверных процессорах в целях максимальной независимости ядер от общего для всех интерфейса памяти и приближения функциональности ядра к возможностям отдельного процессора каждое ядро снабжается собственным кэшем второго уровня (L2), для ИСП более предпочтительной может оказаться кластерная организация ядер с общим кэшем L2 для всех ядер одного кластера [17]. Разницу в организации кэшей иллюстрирует рисунок.
Рисунок. Различия в организации кэшей в серверных процессорах и ИСПОтдельно отметим роль гетерогенных кластеров в структуре процессоров. По некоторым оценкам, на уровне рабочего конвейера максимальную отдачу аппаратура дает, являясь гетерогенно кластерированной в соответствии с требованиями приложения [18]. Правда, остается непонятным, как можно заранее угадать требования приложений при создании процессора для серверов, на которых могут исполняться самые разнообразные задачи в разных операционных средах. Другое дело ИСП, где круг приложений ограничен, а их характеристики действительно заранее известны. Более того, в ИСП гетерогенная функционально специализированная кластеризация процессорных ядер желательна и на архитектурном уровне [17], т. к. она позволяет наиболее эффективно использовать кэши L2 и специализированное оборудование ИСП.
В примере на рисунке три кластера СП реализованы на процессорных ядрах двух типов, имеют кэши разных объемов и включают разное число ядер с разнящейся дополнительной специализированной аппаратурой в ядрах и кластерах. Таким образом, именно в ИСП гетерогенная кластеризация способна наиболее полно проявить свои преимущества.
ИСП не предъявляют каких-либо специфических требований к многопоточности процессорных ядер. Однако на практике ОМП в ИСП может оказаться просто излишней и обернуться неокупаемыми аппаратными затратами по двум причинам. Во‑первых, типичные применения ИСП предполагают работу в жестком реальном времени с использованием соответствующих операционных сред. Между тем, операционные системы реального времени традиционно рассчитаны скорее на многозадачность, чем многопоточность. Во‑вторых, для ИСП характерен фиксированный комплект рабочих кодов, как правило, относительно небольшого объема, целиком помещающийся в кэшах L2 кластеров либо хранящийся в специальной локальной памяти (tightly-coupled memory) процессорных ядер. Поэтому в типичном ИСП, особенно кластерно организованном, выполнение отдельного потока программы не тормозится обращениями к внешней памяти, и многопоточность как таковая теряет смысл, лишившись своего главного преимущества. Эта особенность ИСП служит дополнительным весомым аргументом в пользу использования в них процессорных ядер архитектуры ARM с ее концептуальным отказом от многопоточности в пользу агрессивной многоядерности.
Выводы
Растущие требования к производительности процессоров заставляют их разработчиков применять всевозможные методы повышения быстродействия, в т. ч. распараллеливание вычислений в вариантах многопоточности и многоядерности. Хотя изготовители процессоров иногда рекламируют многопоточность своих изделий как альтернативу многоядерности, поток не эквивалентен процессорному ядру и тем более процессору, а многопоточность не заменяет многоядерность. Из-за отсутствия универсальных оценок эффективности многопоточности и уверенности в ее абсолютной эффективности разработчики разных компаний руководствуются интуицией, внутрифирменными оценками и традициями при выборе технических решений для своих процессорных ядер. В результате на рынке представлены процессорные ядра с разным числом потоков. Есть и примеры принципиального игнорирования многопоточности.
Если многопоточность – не замена многоядерности, то многоядерность во многих случаях может успешно заменить многопоточность. Она более универсальна, поскольку применима для распараллеливания и потоков одной задачи, и целиком задач. Более того, даже при распараллеливании потоков она может оказаться более выгодной, в частности, с точки зрения энергопотребления.
Особенно успешно многоядерность, в т. ч. как альтернатива многопоточности, применима в ИСП. Особенности внутренней организации ИСП и специфика работающего в них программного обеспечения объективно ограничивают многопоточность в возможностях продемонстрировать свои лучшие свойства. В то же время они позволяют в полной мере проявиться преимуществам многоядерности. Не случайно все более массовое применение в ИСП находит архитектура ARM, патентообладатели которой отдают безусловное предпочтение многоядерности перед многопоточностью.
Литература
- Г. Речистов. Процессоры, ядра и потоки. Топология систем.
- QorIQ T4240/T4160/T4080 Multicore Communications Processors//www.nxp.com.
- Why is my multi threading not efficient?//stackoverflow.com.
- А. А. Кадомский, В. А. Захаров. Эффективность многопоточных приложений. Научный журнал. 2016//scientificmagazine.ru.
- В. Б. Егоров. Накладные расходы виртуализации и влияющие на них факторы. Системы и средства информатики. 2017. Т. 27. № 3.
- Rua, E. Nahum, V. Pai, J. Tracey. On the effectiveness of simultaneous multithreading on network server workloads//pdfs.semanticscholar.org.
- Mulligan. ARM is no fan of HyperThreading//www.theinquirer.net.
- В. Егоров. Интегрированные сетевые процессоры потоков от Netronome. Электронные компоненты. 2014. № 10.
- В. Егоров. Многоядерные сетевые процессоры от Tilera. Электронные компоненты. 2014. № 6.
- В. Егоров. Сетевые процессоры EZchip. Электронные компоненты. 2011. № 7.
- В. Егоров. Сетевые процессоры Xelerated. Электронные компоненты. 2011. № 10.
- Markevitch, S. Malladi. A 400 Gbps Multi-Core Network Processor//www.hotchips.org.
- В. Егоров. Тенденция к ARMированию многоядерных интегрированных сетевых процессоров. Электронные компоненты. 2018. № 6.
- В. Егоров. Интегрированные сетевые процессоры NXP с ARM-ядрами покоряют верхний «ярус». Электронные компоненты. 2018. № 3.
- В. Егоров. Коммуникационные процессоры Axxia от LSI. Электронные компоненты. 2014. № 4.
- В. Егоров. Интегрированные сетевые процессоры Cavium. Электронные компоненты. 2011. № 4.
- В. Б. Егоров. Современные тенденции в развитии архитектур интегрированных сетевых процессоров. Системы и средства информатики. 2014. Т. 24. № 3.
- Acosta, A. Falcón, A. Ramirez, M. Valero. A complexity-effective simultaneous multithreading architecture. Proceedings of the International conference on parallel processing//upcommons.upc.edu
Многопоточность в Java. Лекция 1: общие сведения
Темную силу чувствую я.
Даешь парсек за три года.
1.1 Введение
Статья не будет рассматривать историю механических вычислительных машин для арифметических вычислений, созданных в XIX веке и ранее. В XX веке появились компьютеры в привычном нам понимании, однако на заре компьютерной эры аналоговые и ламповые машины были большими, малопроизводительными и потребляли много электрической энергии. После открытия полупроводниковых материалов размеры ЭВМ уменьшились, а производительность и энергоэффективность существенно возросли. Затем начали появляться первые микросборки и микросхемы, а в 1965 году был сформулирован известный «закон» Мура, который гласил, что количество транзисторов на одном кристалле будет удваиваться каждые 24 месяца.
Один из основных элементов в компьютере — процессор. Он, собственно, и выполняет компьютерные команды, которые составляют программу. В конце XX и в начале XXI века процессоры в основном были одноядерными. Тактовая частота у каждого нового процессора была больше, чем у предыдущей модели, за счет этого и возрастала общая производительность систем. Когда у пользователей обозначилась потребность выполнять одновременно несколько программ на одноядерном процессоре (ядро которого в каждую конкретную единицу времени может выполнять одну инструкцию), был придуман способ добиться видимости решения проблемы. Трюк в том, что процессор переключается между выполнением команд из разных программ. Таким образом достигается видимость, что одноядерный процессор выполняет несколько действий или несколько программ одновременно, или в рамках одной программы выполняется несколько действий.
Однако производство процессоров достигло технологического предела, когда дальнейшее уменьшение размеров транзисторов и повышение их тактовой частоты стало невозможно. Тогда производители процессоров, приняли решение об увеличении количества ядер в одном процессоре, чтобы увеличить производительность систем.
1.2 Краткое описание работы процессора
Рассмотрим на простейшем уровне, как работает процессор. Он состоит из АЛУ (арифметико-логического устройства) — главного элемента процессора, регистров, шин данных и адреса, а также дешифратора команд.
Изначально АЛУ могло выполнять всего лишь несколько элементарных операций: чтение и запись в память, сложение, сдвиг вправо, сдвиг влево, логические AND, OR, NOT, XOR. Вычитать АЛУ не умело, вычитание осуществлялось путем сложения в дополнительном коде, умножение производилось путем сложения и сдвига влево, деление осуществлялось сдвигом вправо и вычитанием. Позже придумали аппаратные схемы, которые поддерживают эти операции и операции с числами с плавающей запятой. Самый главный вывод, который нужно сделать: даже самые простейшие операции как, например, сложение или вычитание двух чисел производится не за одну команду процессора, а за несколько. Следовательно, операция может быть прервана, и процессор может начать выполнять команды из другой программы. Т. е. операции НЕ АТОМАРНЫЕ, и могут быть прерваны другими командами.
1.3 Поддержка на уровне операционной системы.
Операционные системы могут решать задачу распределения процессорного времени разными способами. Основные подходы:
1. Простое переключение задач. Когда процессы одновременно загружены в память системы и по таймеру происходит переключение между процессами. У процессов нет никаких приоритетов. Преимущества этой системы в том, что в ней могут работать программы, которые предназначены для работы в однопоточной среде.
2. Кооперативная многозадачность. Когда следующая задача выполняется, после того как предыдущая явно укажет, что она может отдать процессорное время другой задаче. При кооперативной многозадачности приложение может захватить фактически столько процессорного времени, сколько оно считает нужным. Все приложения делят процессорное время, периодически передавая управление следующей задаче.
3. Вытесняющая многозадачность. Когда операционная система сама передает управление от одной выполняемой программы другой в случае завершения операций ввода-вывода, возникновения аппаратных прерываний или же при поступлении тех или иных сигналов от одной программы к другой. В этом виде многозадачности процессор может быть переключен с выполнения одной программы на другую безо всякого пожелания первой программы, буквально между любыми двумя инструкциями в её коде. Распределение процессорного времени осуществляется планировщиком процессов. К тому же, каждой задаче может быть назначен пользователем или самой операционной системой определенный приоритет. Этот вид многозадачности обеспечивает более быстрый отклик на действия пользователя.
1.4 Процессы и потоки
Введем понятия процесса и потока.
Процесс — программа, выполняющаяся в текущий момент времени, и все её элементы: адресное пространство, глобальные переменные, регистры, потоки, открытые файлы и т. д.
Поток (thread) — наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Или совокупность дискретного процессорного времени, в течение которого выполняются команды, или код, для одной логической части программы.
Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов.
Потоки выполнения отличаются от процессов:
- процессы, как правило, независимы, тогда как потоки выполнения существуют как составные элементы процессов;
- процессы несут значительно больше информации о программе, тогда как несколько потоков выполнения совместно используют эту информацию внутри процесса;
- процессы имеют отдельные адресные пространства, тогда как потоки выполнения совместно используют память процесса;
- переключение между потоками выполнения в одном процессе, как правило, быстрее, чем переключение между процессами.
Когда процессор имеет несколько ядер, код действительно выполняется параллельно на разных ядрах, при этом каждое ядро выполняет один поток в конкретную единицу времени. При этом два разных ядра не могут выполнять один поток. Наличие большего количества ядер не гарантирует увеличения скорости выполнения программ. Если программа однопоточная, она будет выполняться на одном ядре, а остальные ядра в системе заняты не будут. Некоторые языки программирования поддерживают возможность назначение потока выполнения конкретному ядру процессора. Это называется thread affinity, однако в Java нет такой возможности.
Заключение
В статье мы кратко рассмотрели, как работает процессор и из чего он состоит, поддержку процессов и потоков в операционных системах, разобрались с основными понятиями и определениями многопоточности, с разницей между процессами и потоками.
Что такое потоки в процессоре?
Отказ от ответственности: этот пост может содержать партнерские ссылки, что означает, что мы бесплатно получаем небольшую комиссию, если вы совершаете покупку по нашим ссылкам. Для получения дополнительной информации посетите нашу страницу отказа от ответственности.
Вы кое-что знаете о компьютерах. Вы в значительной степени осведомлены о том, что делает и как работает процессор. И вы знаете, что чем больше потоков, тем выше производительность.
Но когда дело доходит до этого, знаете ли вы, что означает, когда люди говорят о нитях? Вы знаете, что это такое? Вы знаете, почему они важны?
Сегодня мы подробно рассмотрим все, что вам нужно знать о потоках.Мы обсудим, почему они важны. Мы поговорим о том, как они работают вместе с вашим процессором.
И мы подробно расскажем, что именно они делают. Продолжайте читать, чтобы узнать больше о потоках ЦП и о том, почему они так важны для производительности вашей системы.
Читать статью: Как сделать резервную копию вашего компьютера
Краткое описание резьбы
У всех центральных процессоров есть потоки, но что именно это означает? Проще говоря, потоки — это то, что позволяет вашему процессору выполнять несколько задач одновременно.Поэтому, если вы хотите запускать несколько процессов, которые очень интенсивны, вам понадобится ЦП с большим количеством потоков.
Потоки относятся к наивысшему уровню кода, выполняемого процессором, поэтому при большом количестве потоков ваш ЦП может обрабатывать несколько задач одновременно. Все процессоры имеют активные потоки, и каждый процесс, выполняемый на вашем компьютере, имеет хотя бы один поток.
Количество имеющихся потоков зависит от количества ядер в вашем процессоре. Каждое ядро ЦП может иметь два потока. Таким образом, процессор с двумя ядрами будет иметь четыре потока.У процессора с восемью ядрами будет 16 потоков.
Процессор с 24 ядрами (да, такие есть) будет иметь 48 потоков.
Потоки важны для работы вашего компьютера, потому что они определяют, сколько задач ваш компьютер может выполнять в любой момент времени.
Мы подробно рассмотрим, что такое потоки, почему вам нужно понимать, что они делают и почему они так важны.
Что такое центральные процессоры?
Прежде чем вы сможете понять потоки, вам нужно иметь базовое представление о том, что такое ЦП.Вы не можете понять функции одного, не понимая возможностей другого.
ЦП (центральный процессор) — это ядро каждого смартфона, планшета и компьютера. Это важный компонент, который определяет способ работы вашего компьютера и определяет, насколько хорошо он может выполнять эту работу.
ЦП принимает основные инструкции, которые вы выполняете на своем компьютере, и распределяет эти задания между другими микросхемами в вашей системе. Перенаправляя сложные задачи на чипы, лучше всего оснащенные для их решения, он позволяет вашему компьютеру работать на максимальной мощности.
Это ядро вашего компьютера, и ваш компьютер не может работать без него.
Центральный процессор иногда называют мозгом компьютера. Он находится на материнской плате (также называемой основной платой) и является отдельным компонентом от компонента памяти.
Он воздействует на компонент памяти, в котором хранятся все данные и информация в вашей системе. Компонент памяти и ЦП отделены от вашей видеокарты. Единственная функция видеокарты — принимать данные и преобразовывать их в изображения, которые вы видите на своем мониторе.
По мере развития технологий из года в год мы видим, что процессоры становятся все меньше и меньше. И они работают быстрее, чем когда-либо прежде. Вы поймете эту более высокую производительность, если кое-что знаете о законе Мура.
Закон Мура назван в честь соучредителя Intel Гордона Мура. По мнению Мура, количество транзисторов в интегральной схеме удваивается каждые два года.
Это не закон физики или естествознания — это связано с прогнозируемой скоростью роста числа компонентов на интегральную схему.Чтобы получить полное объяснение закона Мура, щелкните здесь.
Что делает процессор?
Как мы уже говорили ранее, центральный процессор — это мозг вашего компьютера. Он берет данные из конкретной программы или приложения, выполняет серию вычислений и выполняет команду. Он выполняет цикл из трех частей, иначе называемый повторяющимся циклом выборки, декодирования и выполнения.
На первом этапе ЦП извлекает инструкции из памяти вашей системы. Получив инструкции из памяти, он переходит ко второй фазе.Именно на этом втором этапе он декодирует эти инструкции.
После того, как машина декодирует инструкции, она переходит к третьему этапу выполнения.
Декодированная информация проходит через ЦП, чтобы достичь устройств, которые действительно должны выполнять требуемую функцию. В процессе декодирования он выполняет математические уравнения для отправки требуемого сигнала в вашу систему.
Этот цикл повторяется снова и снова для каждого выполняемого вами действия и команды. В передовых технологиях ЦП компоненты ЦП больше не делают все сами.
Но они по-прежнему имеют решающее значение для снабжения номерами специализированного оборудования, необходимыми для выполнения поставленной задачи.
ЦП — важная часть любой системы, и он работает рука об руку с потоками. Разные процессоры имеют разное количество потоков для ограничения или увеличения производительности вашего компьютера.
Что такое резьбы?
Так что же такое потоки? Как они связаны с вашим процессором? Как они влияют на работу вашей системы? Давайте углубимся немного глубже, чтобы точно объяснить, что такое потоки, для чего они нужны и почему они так важны.
Поток — это небольшая последовательность запрограммированных инструкций. Потоки относятся к наивысшему уровню кода, который может выполнять ваш процессор.
Обычно они управляются планировщиком, который является стандартной частью любой операционной системы.
Чтобы создать поток, вы должны сначала создать процесс. По завершении процесс создает поток, который затем выполняется. Это может быть короткий или длительный период времени, в зависимости от процесса.
Независимо от того, сколько времени это займет, создается впечатление, что ваш компьютер выполняет множество действий одновременно.
Каждый процесс имеет по крайней мере один поток, но не существует максимального числа потоков, которое может использовать процесс. Для специализированных задач чем больше у вас потоков, тем выше будет производительность вашего компьютера. С несколькими потоками один процесс может одновременно обрабатывать множество задач.
Вы также услышите, как люди используют такие термины, как «многопоточность» и «гиперпоточность». Технология Hyper-threading позволяет одному ядру ЦП работать как два ядра, ускоряя выполнение конкретной программы или приложения.
Даже с одним ядром он может имитировать производительность, как если бы у вас их два. Чем больше у вас ядер, тем больше у вас потоков. Чем больше у вас потоков, тем выше будет производительность вашей системы.
Если у вас двухъядерный процессор, при гиперпоточности он будет выглядеть так, как будто у вас их четыре. Четырехъядерный процессор будет имитировать результаты восьми ядер. Первоначально процессоры были построены с одним ядром.
сообщает об этом объявлении Но теперь, когда доступно больше ядер и процессоров, вы можете наслаждаться большим количеством потоков, чем когда-либо.Больше потоков означает большую производительность и возможность запускать множество процессов одновременно.
Как потоки и ЦП работают вместе?
Чтобы лучше понять, что такое поток, полезно знать, как потоки и ЦП работают вместе. Мы говорим «поток», чтобы упростить идею, но на самом деле вы должны думать о нем как о «потоке выполнения».
Вы выполняете команду. Ваш ЦП начинает процесс выборки, декодирования и выполнения для выполнения этой команды. Поток — это последовательность инструкций, которые сообщают вашему компьютеру, что он должен делать для выполнения этой команды.
Процессорывыполняют поток инструкций, который поступает в интерфейсную часть из выполняемых вами команд. Затем процессоры и потоки работают вместе, чтобы выполнять нужные вам функции.
Они работают вместе, чтобы открывать программы, использовать приложения, воспроизводить видео и делать все, что вы просите свой компьютер.
Когда дело доходит до параллельной работы процессоров и потоков, не имеет значения, откуда берутся инструкции. Ваш процессор будет определять, какой процесс обрабатывается ЦП, а какой — потоком.
Каждый раз, когда ваш процессор загружает новый поток, исходный поток сохраняется в основной памяти. Как только инструкции исходного потока удаляются из цикла, можно начинать новый поток. Затем новый поток приступает к первому этапу трехэтапного процесса выборки, декодирования и выполнения.
Какие процессоры имеют больше всего потоков?
Теперь, когда вы кое-что знаете о потоках, вы, скорее всего, думаете: «Мне нужен более быстрый процессор с большим количеством потоков». Но как вы можете быть уверены, что покупаете процессор с достаточным количеством потоков, чтобы обеспечить необходимую мощность и производительность?
Мы составили список из нескольких высокопроизводительных процессоров, доступных на рынке, а также нескольких, которые планируется выпустить в 2018 году.На сегодняшний день эти процессоры предлагают одни из лучших показателей производительности и наибольшее количество потоков.
Intel Core i9-7980XE Extreme
18 ядер означает 36 потоков, что делает Intel Core i9-7980XE Extreme одним из самых быстрых и мощных процессоров на рынке. Он может похвастаться кэш-памятью 24,74 МБ, тактовой частотой 2,60 ГГц и максимальной частотой в турбо-режиме 4,20 ГГц.
Intel Core i9-7960X
16 ядер, 32 потока и максимальная частота турбо 4,20 ГГц делают Intel Core i9-7960X фаворитом.Благодаря тактовой частоте 2,80 ГГц и кэш-памяти 22 МБ, это отличный вариант, если вам нужна мощность и производительность.
AMD Ryzen Threadripper 1950x
AMD Ryzen Threadripper 1950x имеет 16 ядер, этот процессор может похвастаться 32 потоками, тактовой частотой 4,0 ГГц и кеш-памятью третьего уровня объемом 32 МБ. Многие пользователи считают его более гибким, чем сопоставимые процессоры с Intel Core i9.
Intel Core i9-7940X
С 14 ядрами и 28 потоками Intel Core i9-7940X обеспечивает максимальную частоту турбо 4.30 ГГц и максимальная тактовая частота 3,10 ГГц. Это один из многих мощных процессоров Intel Core i9, обеспечивающих отличную производительность.
Intel Xeon Platinum серии
Если вам нужен лучший процессор и максимальное количество потоков, обратите внимание на серию Intel Xeon Platinum. Процессоры Intel известны как лучшие в отрасли, и не зря.
Модели Platinum 8176, 8176F и 8180 имеют 28 ядер с 56 потоками. Platinum 8164 и 8170 имеют 26 ядер и 52 потока.Если это больше, чем вам нужно, Platinum 8160, 8168, 8160T и 8160F могут похвастаться всего 24 ядрами с 48 потоками.
Производительность Intel Xeon обещает быть впечатляющей, но вам придется выложить большие деньги за этих зверей. (Текущая цена модели 8180 составляет 8 999 долларов на Amazon).
Обычные пользователи обычно мало знают о цепочках, не хотят знать и не тратят время на то, чтобы понять, что они делают и почему они важны. И если вы обычно запускаете на компьютере только одну программу, это совершенно нормально.Но если вы хотите точно знать, как работает ваш компьютер, понимание потоков является ключевым моментом.
Чтобы понять потоки, вы должны сначала знать, что такое ЦП и что он делает. Вам нужно некоторое понимание цикла выборки, декодирования и выполнения. Но самое важное, что нужно знать, — это то, что потоки влияют на то, насколько быстро и эффективно ваш компьютер может выполнять несколько инструкций одновременно.
В Windows все потоки активно используются в течение некоторого периода времени.Некоторые процессоры имеют несколько потоков с гиперпоточностью, которые имитируют удвоенное количество ядер процессора, которое у вас есть.
Благодаря многопоточности даже один процессор может одновременно выполнять множество задач.
Чтобы система работала, вам нужен правильный процессор и нужное количество потоков. Вместе они являются важными элементами, которые позволяют вашему компьютеру работать.
ЦП необходим для питания других компонентов и отправки инструкций нужным элементам вашего компьютера.Вам нужно, чтобы потоки выполняли множество функций одновременно и позволяли вашему компьютеру работать эффективно.
Без этих двух элементов вы вообще не увидите никакой производительности.
Если вы хотите убедиться, что ваш ЦП предлагает достаточно потоков, изучите разницу, чтобы узнать, на что способны разные ЦП. Сравните затраты, сравните функции и сравните производительность.
Прочтите отзывы реальных пользователей, чтобы знать, чего ожидать от вашего процессора или любого нового процессора, который вы планируете купить.
Потратьте немного времени на исследования. Найдите время, чтобы прочитать отзывы. Сравните цены и функции, чтобы узнать, что вы получаете за свои деньги.
Если вы сделаете домашнее задание, вы найдете процессор с достаточным количеством потоков для обеспечения необходимой производительности.
Читать статью: Лучшие игровые процессоры 2018 года
[Полное руководство] Что такое потоки в процессоре?
Резюме: Задумывались ли вы когда-нибудь о том, как ваш процессор может делать все одновременно? Вы могли не знать, что все это стало возможным благодаря потоку.Поэтому в этой статье я собираюсь познакомить вас с , что такое потоки в процессоре и как он обеспечивает многозадачность ЦП.
Воспроизведение музыки, установка программного обеспечения, а также просмотр веб-страниц на компьютере? Делать все сразу? Интересно, как процессор компьютера справляется со всеми этими задачами одновременно? Что ж, ЦП может делать это с помощью потоков.
Что касается ЦП, большинство пользователей мало что о нем знают. В основном они знают о скорости обработки, процессоре, его работе и т. Д.
Но знаете ли вы, что производительность вашего процессора где-то связана с потоками? Потоки позволяют ЦП выполнять все задачи одновременно на компьютере. Чем больше потоков у вашего процессора, тем лучше производительность.
Говоря о потоках в процессоре, знаете ли вы, что это за поток? Если вы не знаете об этом, но вам интересно узнать все о потоках в CPU , то эта статья как раз для вас.
В этой статье я подробно описываю все, что вам нужно знать о потоках.Я собираюсь обсудить , что такое поток в ЦП , почему это важно, и , как поток работает вместе с ЦП .
Итак, продолжайте читать эту статью до конца, чтобы узнать все о потоках процессора, а также о том, почему они жизненно важны для производительности вашего ПК.
Что такое потоки в компьютерном процессе / ЦП?
Потоки — это виртуальные компоненты, которые разделяют физическое ядро ЦП на несколько виртуальных ядер. Все процессоры имеют потоки , которые позволяют процессору выполнять несколько задач одновременно.
Каждое ядро ЦП может иметь до 2 потоков. Если у ЦП 2 ядра, то у него 4 потока, у ЦП с 4 ядрами будет 8 потоков и так далее.
Потоки имеют решающее значение для функции ЦП, поскольку они определяют, сколько задач ЦП может выполнять одновременно. На данный момент у вас есть небольшое представление о том, как потоки влияют на производительность системы. Итак, теперь давайте копнем немного глубже, чтобы узнать , как на самом деле работают потоки .
Как работают потоки ЦП?
Потоки создаются процессом.Каждый раз, когда приложение открывается, оно создает поток, который будет управлять всеми задачами, выполняемыми этим конкретным приложением.
Чем больше приложений вы откроете, тем больше будет создано потоков. Операционная система создает потоки для выполнения задач приложения. Поток в ядре собирает информацию от пользователя, чтобы создать другой поток и назначить им задачи для выполнения.
Каждый процесс может иметь по крайней мере один поток, и нет максимального ограничения на количество потоков, которое может иметь процесс.Чем больше потоков имеет процесс, тем выше производительность процессора.
Процессор или компьютерные процессы изначально были разработаны с использованием одного ядра. Но теперь ЦП имеет больше ядер и процессоров, так что вы можете использовать больше потоков, чем когда-либо. Больше потоков обеспечивает лучшую производительность, а также дает возможность запускать несколько процессов одновременно.
Как компьютерный процессор и потоки работают вместе?
Для одновременного выполнения нескольких задач в системе ЦП и потоки работают вместе.Когда вы выполняете задачу или даете компьютеру команду выполнить определенную задачу, ЦП начинает получать детали, декодировать и выполнять процесс для выполнения данной команды или задачи.
CPU и потока работают вместе для выполнения любых задач в вашей системе, таких как открытие программ, воспроизведение видео, использование приложений и выполнение всего, что вы попросите сделать систему.
Когда дело доходит до совместной работы потоков и компьютерных процессоров, не имеет значения, откуда процессор получает инструкции.Ваш ЦП решит, какой процесс должен обрабатываться ЦП, а какой — потоком.
Каждый раз, когда ЦП создает новый поток, исходный поток, созданный процессором, сохраняется в основной памяти ( RAM ).
Как только инструкции исходного потока удаляются из цикла, в цикле начинают выполняться новые потоки. Теперь новый поток начинает выполнять первые шаги из трех этапов процесса: выборка, декодирование и выполнение процесса.
Почему потоки в процессоре имеют значение?
Потоки теперь стали жизненно важной частью вычислений. Это облегчило нам работу, как и процессоры компьютеров. Итак, вот некоторые вещи, которые потоки делают возможными в мире вычислений:
- Протекторы позволяют процессору компьютера выполнять несколько задач одновременно.
- Благодаря созданию нескольких потоков ЦП может выполнять задачи быстрее.
- Кроме того, делает ЦП способным выполнять многозадачность.
- Благодаря потокам, не только ЦП стал многозадачным, но и упростил выполнение нескольких задач одновременно.
Заключение
По сути, потоки — это те, которые делают процессор многозадачным. Обычно пользователи мало что знают о потоках и о том, как на самом деле работает ЦП.
Но с помощью этой статьи вы получите довольно четкое представление о потоках на процессоре и о том, как это работает.
Основная цель этой статьи — сообщить вам о влиянии потока на систему и о том, насколько быстро и эффективно ваш компьютер может выполнять несколько инструкций одновременно.
Я надеюсь, что к концу этой статьи у вас будет четкое представление о потоках, работающих на процессоре, и ваш вопрос о «, что такое потоки в процессоре » будет снят.
Если вы нашли эту статью полезной, поделитесь ею со своими друзьями и коллегами. Или, если у вас есть дополнительные вопросы по этой теме, дайте нам знать в наших социальных сетях Facebook или Twitter .
Hardeep Kaur
Hardeep всегда любила Windows с тех пор, как получила в руки свой первый компьютер с Windows XP.Она всегда с энтузиазмом относилась к технологиям, особенно к вычислениям с использованием искусственного интеллекта (ИИ). До прихода в PC Error Fix она работала фрилансером и работала над многочисленными техническими проектами.
ядер против потоков — в чем основные различия?
Читать 4 минБыло много недоразумений по поводу разницы между ядрами и потоками. Прежде чем переходить к ядрам ЦП против потоков, вам необходимо понять, что такое одноядерный, многоядерный, поток, многопоточность и зачем они нам нужны.Многие компьютерные энтузиасты хотят понять, что важнее для мощного процессора: количество ядер или потоков. Эта статья направлена на то, чтобы пролить свет на однопоточность и многопоточность, одноядерность и многоядерность, а также угрозы и ядра.
Одноядерный процессор против многоядерногоВо-первых, нам нужно прояснить разницу между одноядерным процессором и многоядерным процессором? Проще говоря, одноядерный процессор сможет обрабатывать только одну программу за раз. Однако, когда вы запускаете несколько программ одновременно, то одноядерный процессор разделит все программы на небольшие части и одновременно будет выполняться с квантованием времени, как вы можете видеть на приведенном ниже рисунке.
Выполнение процесса: одноядерный процессорПроизводительность ЦП будет зависеть от количества ядер на машине и скорости, с которой отдельные ядра могут выполнять инструкции. Таким образом, если ваш веб-сайт загружается медленно и у вас одноядерный процессор, возможно, стоит приобрести выделенный сервер с многоядерным процессором или обновить план хостинга . В настоящее время этот тип процессоров используется редко, потому что нам нужна высокая вычислительная мощность для решения наших проблем в кратчайшие сроки.
В отличие от одноядерной обработки, это способ, которым вычислительные задачи делятся на части, и многоядерный процессор (несколько ядер ЦП) выполняет каждую подзадачу одновременно, как вы можете видеть на рисунке ниже:
Выполнение процесса: многоядерный процессорЭто также известно как параллельное выполнение, потому что все подзадачи выполняются параллельно, и это то, сколько задач может быть обработано одновременно. Все современные процессоры, используемые в коммерческих целях, должны иметь многоядерные процессоры, чтобы выполнять задачи в более короткие сроки.
Поток против многопоточностиThread — это единый последовательный поток управления в программе, который позволяет выполнять несколько действий в рамках одного процесса. Однако однопоточные процессы основаны на выполнении программ (или инструкций) в одной последовательности. Проще говоря, один поток похож на одну команду, которая выполняется за раз.
Большинство производителей процессоров используют метод одновременной многопоточности (SMT), чтобы гарантировать, что один процессор может запускать несколько потоков.Многопоточность похожа на многозадачность, при которой одновременно выполняется несколько потоков, а возможность многопоточности управляет многочисленными запросами одного и того же пользователя без открытия нескольких копий программ, запущенных на компьютере.
Пользовательские потоки против потоков ядраПотоки уровня пользователя — это потоки на стороне пользователя, которые обрабатываются как однопоточный процесс, поскольку ядро не знает об этих типах потоков. Эти потоки намного быстрее, чем потоки уровня ядра, потому что не требует синхронизации ядра.
Потоки уровня ядра управляются операционной системой напрямую, и в области приложения отсутствует код управления потоками. Любое приложение можно запланировать многопоточным, и ядро выполняет его планирование на поточной основе. По сравнению с потоками пользовательского уровня, эти потоки медленнее создаются и управляются.
Ядро против потоковВопрос о том, что более эффективно — потоки или ядра — определяется путем измерения производительности процессора.Вы можете протестировать оба метода самостоятельно, запустив одну и ту же программу (ту, которая использует и потоки, и ядра) на каждом типе ЦП, который у вас есть на вашем компьютере. Конечно, программы, использующие оба метода, должны совместно использовать ресурсы ЦП. Если у вас есть ЦП настольного компьютера и ноутбук, вы можете обнаружить, что ЦП ноутбука будет работать лучше, чем ЦП настольного компьютера из-за большего количества ядер. Однако при тестировании пользовательского приложения на двухъядерном ЦП вы заметите разницу в производительности между двумя машинами.
Параметры | Ядро | Потоки |
---|---|---|
Определение | Ядро ЦП — это физический аппаратный компонент. | Поток — это виртуальный компонент, который используется для управления задачами. |
Процесс | ЦП обращается ко второму потоку только тогда, когда информация, отправляемая первым потоком, ненадежна. | Несколько вариантов взаимодействия ЦП с несколькими потоками. |
Развертывание | Этого можно добиться с помощью операции чередования. | Выполняется за счет использования нескольких процессоров ЦП |
Преимущество | ЦП увеличивает объем работы, выполняемой за раз. | Потоки минимизируют затраты на развертывание и увеличивают количество откликов графического интерфейса. |
Использовать | Используется переключение содержимого. | Потоки используют несколько процессоров для управления различными процессами. |
Блоки обработки | Для правильной работы требуется один блок обработки. | Для выполнения любой задачи требуется несколько процессоров. |
Ограничения | Потребляйте больше энергии при увеличении нагрузки | В случае одновременного выполнения нескольких процессов мы можем ощутить координацию между ОС, ядром и потоками. |
Пример | Он может выполнять несколько приложений одновременно. | Запуск поисковых роботов в кластере. |
Если вы планируете в ближайшее время купить выделенную машину, возможно, вам стоит подумать о компромиссе между потоками и ядрами или потоками. Конечно, вы хотели бы получить что-то более эффективное с учетом объема данных и трафика веб-сайтов, которые вы планируете разместить на выделенном сервере.
Вы можете обнаружить, что приложение, использующее большое количество ядер, может одновременно выполнять несколько задач без каких-либо зависаний или задержек.Но предположим, что используемая система предназначена для очень простых приложений или однопоточных приложений. В этом случае желательно, чтобы вы выбрали более простой аппаратный компонент более низкого уровня для достижения лучших результатов.
Тактовая частота процессора— количество ядер, потоков и тактовая частота
Компьютерный мир полон способов измерить скорость процессора, и у нас есть множество доступных факторов. В этом сообщении блога будут рассмотрены 3 основные темы производительности ЦП: ядра, потоки и тактовая частота.Мы постараемся ответить на любые ваши вопросы о том, какой фактор наиболее важен при покупке ЦП. Давайте углубимся в некоторые функции этих частей, чтобы лучше понять роль, которую они играют.
Я уже делал анализ низкоуровневой функции процессора раньше (https://centralvalleycomputerparts.com/articles/cpus-explained /), Поэтому в этой статье мы просто сосредоточимся на конкретных областях процессора и на том, как они работают вместе. Во-первых, у нас есть ядра.
Ядра
Ядро ЦП — это, по сути, функционирующий собственный процессор.Каждое ядро ЦП способно извлекать, декодировать и выполнять свои собственные инструкции. Чем больше ядер у вашего процессора, тем больше инструкций он может выполнять одновременно. Это может значительно повысить производительность вашего компьютера, потому что вам не нужно ждать завершения задачи, прежде чем ваш процессор сможет запустить следующую. Однако производительность многоядерного процессора сильно зависит от использования программного обеспечения в программах, которые вы используете. Вы можете думать о ЦП как о офисе, а каждое ядро - как о кабинке с работником в нем.Каждый из них способен работать над разными задачами, но все служат одной конечной цели.
Threads
Вы, наверное, видели второе число, относящееся к количеству ядер в процессоре. Иногда это отображается так:
Потоки в процессоре — это каналы, которые отправляют информацию ядрам. До тех пор, пока многопоточность не стала популярной, ядра процессоров будут иметь по одному потоку инструкций, выполняемых за раз, и когда они завершат эту задачу, они будут ждать следующей строки инструкций.
Возвращаясь к нашей аналогии с рабочими, поток эквивалентен тому, сколько задач вы позволяете каждому воркеру иметь на своей тарелке одновременно. В то время как каждый рабочий может выполнять только одну задачу за раз, когда вы можете разделить 2 задачи на каждого рабочего, вместо того, чтобы иметь возможность иметь только 4 задачи на планшете вашего процессора, теперь у вас может быть 8.
На графике ниже показан пример 4-ядерный 4-поточный процессор и 4-ядерный 8-поточный процессор.
Хотя ядра процессора могут обрабатывать только одну инструкцию за раз, с несколькими потоками, ядро всегда может иметь постоянный поток из 8 инструкций, поэтому ему никогда не придется ждать информации.
Тактовая частота
Достаточно поговорить о ядрах и потоках, пора заняться тактовой частотой вашего процессора. Есть два термина, на которые следует обратить внимание. Давайте еще раз взглянем на это изображение из прошлого:
Как вы заметите, частота (скорость) вашего процессора измеряется в герцах. Точнее, в данном случае Гигагерц. 1 герц — это время, необходимое вашему процессору для завершения одного тактового цикла.
1 герц = 1 цикл в секунду
1 мегагерц = 1 миллион циклов в секунду
1 гигагерц = 1 миллиард циклов в секунду
Довольно быстро, верно? Что ж, чтобы действительно понять, насколько это быстро, нам нужно понять, что происходит в тактовом цикле.Тактовый цикл — это промежуток времени между двумя импульсами генератора (устройства для генерации повторяющихся электрических импульсов). Тактовая частота — это количество импульсов генератора, выполняемых за секунду. Итак, процессор с тактовой частотой 3,5 ГГц выполняет 3,5 миллиарда тактовых циклов в секунду.
Большинство современных процессоров могут выполнять одну или несколько инструкций за такт, но существует множество различных архитектур и конструкций процессоров. Таким образом, вы никогда не можете предположить, что две одинаковые тактовые частоты дадут одинаковые результаты, если они не принадлежат одной и той же марке и модели.
Итак, на какой статистике мне следует сосредоточиться при покупке процессора?
Обычно мне нравится разбивать системы на 4 категории, чтобы решить, какое оборудование лучше всего подходит для моей задачи: домашний компьютер, профессиональная рабочая станция, игровая система и медиа-рабочая станция. Intel и AMD придерживаются базовой, хорошей, лучшей, лучшей модели ценообразования / производительности в своих процессорах.
Домашний компьютер:
Под домашним компьютером я имею в виду домашний компьютер, который используется для проверки электронной почты, воспроизведения музыки или просмотра веб-страниц.В такой системе не часто возникают тяжелые рабочие нагрузки, и вам не понадобится много ядер процессора. Для вашего домашнего компьютера я бы порекомендовал самый базовый вариант ценообразования с Intel Core-i3 или AMD Ryzen 3 (есть даже более базовые варианты, такие как процессоры Intel Pentium или Celeron, если вы работаете с очень небольшим бюджетом). Вот несколько вариантов из последнего поколения:
Профессиональная рабочая станция:
На профессиональной рабочей станции вы будете выполнять такие задачи, как; запуск нескольких электронных таблиц, просмотр веб-страниц и выполнение средних задач.Чем больше задач вам нужно сбалансировать, тем больше ядер и потоков вы предпочтете иметь в своей системе. Я рекомендую средний процессор от каждого производителя, например Intel Core-i5 или AMD Ryzen 5. Вот несколько вариантов:
Игровая система:
Здесь вы начинаете получать некоторую свободу, в зависимости от того, какие игры вы Нравится играть. Тактовая частота становится фактором вашего выбора. Перед созданием системы я бы порекомендовал посмотреть игровые веб-сайты, где они рекомендовали статистику ПК для своих игр.Если вы хотите в значительной степени обеспечить бесперебойную работу любой современной игры, я бы продолжил следовать модели ценообразования от Intel и AMD с некоторыми вариантами, такими как:
Media Workstation:
Любая профессия, которая включает в себя редактирование больших файлов, например высоких разрешение видео, файлы фотошопа и другие крупные проекты потребуют самого лучшего оборудования, которое вы можете получить. В этой категории нет предела (точнее, предел — это ваш бюджет). Все, что вы можете себе позволить, будет вашим лучшим выбором.Будут полезны высокие тактовые частоты и огромное количество потоков. Вы захотите добиться максимальной производительности в этом направлении работы. Время — деньги, и вы сэкономите его много, ускорив рендеринг проектов. Вот несколько вариантов:
Суть в том, что не существует единой спецификации, которая делает процессор быстрее других. Процессоры разработаны с учетом конкретных рабочих нагрузок. Изучите, какая рабочая нагрузка у вас под рукой, чтобы определить, какие спецификации будут соответствовать вашим потребностям.
Ссылки:
https: // en.wikipedia.org/wiki/List_of_Intel_Core_i9_microprocessors
https://en.wikipedia.org/wiki/Ryzen
https://en.wikipedia.org/wiki/Coffee_Lake
https://www.howtogeek.com/19475 / cpu-basics-multiple-cpus-cores-and-hyper-threading -olated /
https://www.tomshardware.com/reviews/cpu-buying-guide,5643.html
Что такое процессор с технологией Hyper-Threading и имеет ли оно значение?
В наши дни много путаницы со всеми новыми процессорами, появившимися за последние несколько лет.Intel выпустила множество различных технологий, таких как Hyper-Threading, серия Core, а также технология VT. Теперь, я уверен, что после прочтения терминологии, придуманной Intel, вы думаете: «Что это значит для меня?»
Я так рад, что вы спросили!
Hyper-Threading (HT) — это технология, разработанная корпорацией Intel для своих процессоров Pentium 4 и Xeon-эквивалентов. Когда вы используете ЦП с поддержкой HT, вы заметите в своем системном профиле, что он сообщает, что у вас два процессора вместо одного.Пока ты думаешь, «это потрясающе! У меня два процессора В ОДНОМ! »Это не так. На самом деле HT с технологической точки зрения является дублированием определенных секций процессора, которые обрабатывают состояние потоков. Фактически он не дублирует основные ресурсы процессора.
Это позволяет операционной системе планировать два потока одновременно. Поток — это, по сути, инструкция, которая передается процессору и ожидает результата. Когда программа компилируется для многопоточности, это означает, что процессор теоретически может выполнять два потока одновременно, поскольку операционная система видит два процессора.Это улучшает производительность обработки, поскольку большая часть данных, выполняемых процессором, на самом деле является математическим предположением, основанным на статистике.
Эта технология известна как предсказание переходов. Когда предсказание ветвления неверно, выполняемый поток останавливается и должен выполняться полностью без какого-либо предсказания, чтобы он мог вернуться должным образом. Поскольку у вас остановленный поток и один ожидает выполнения, прогноз ветвления может выполнить новый поток, в то время как процессор завершает предыдущий поток.
В новой линейке процессоров Intel, широко известной как серия Core, появилась совершенно новая идея многопоточной обработки. Вместо того, чтобы просто дублировать часть ЦП, как в линейке Pentium 4, Intel теперь создает дублированные ядра на одном ЦП. Вы можете определить количество ядер каждого процессора по схеме именования.
Например, Core Solo имеет только один 32-битный процессор, а Core2Quad — четыре 64-битных процессора. Основное различие между Core и линией Core2 заключается в том, что линейка Core имеет только 32-битные возможности, а линия Core2 — 64-битные.Теперь вы, вероятно, думаете: «Ну и что, у Intel уже есть Hyper-Threading, так что в этом хорошего?» Основное отличие состоит в том, что на самом деле на одном процессоре несколько ядер. При использовании многопоточной программы ядро не останавливается и не ожидает, поскольку оно может передавать потоки на совершенно другой процессор. Это отлично подходит для систем, которым нужно как можно скорее выполнить большое количество потоков. У этих процессоров также увеличен кэш-память, а также увеличена скорость шины, поэтому они могут выполнять инструкции с гораздо большей скоростью, чем линейка Pentium 4.
Теперь, когда вы разбираетесь в ядрах, позвольте мне сообщить вам об одной интересной особенности серии Core, которой нет в большинстве Pentium 4. Он известен как бит VT. Этот бит является флагом процессора, который используется для виртуализации оборудования. Это позволяет более эффективно использовать процессор при работе с виртуализированной операционной системой. Виртуализированная операционная система — это когда вы используете программное обеспечение, такое как VMware или параллельные компьютеры, для запуска операционной системы внутри существующей. Например, с помощью VMware вы сможете загрузить Linux на виртуальную машину и предоставить ей доступ к Интернету, при этом на вашем компьютере будет запущена Windows.Для внешнего мира машина Linux будет полностью выглядеть как собственный сервер, если на самом деле она разделяет ресурсы с вашей машины Windows.
При всех перспективных технологиях процессоров трудно уследить за всей терминологией, которую вводят производители, и понять ее. Я надеюсь, что смог объяснить вам некоторые из основных технологий, которые Intel внедрила в свои процессоры, и планирую в будущем предоставить вам информацию о том, как вы можете воспользоваться преимуществами некоторых из этих функций.
Обновлено: январь 2019
Хотите узнать больше об INAP?
Свяжитесь с нами сегодняСэм Боулинг
- Менеджер по проектированию инфраструктуры
УЗНАТЬ БОЛЬШЕ
ЦП, процессоры, ядро, потоки — непрофессионально
Если вы ИТ-администратор, возможно, вы однажды или несколько раз почесали себе голову, задаваясь вопросом, какая, черт возьми, разница между ЦП, процессорами, ядрами, потоками и т. Д.Все это звучит так взаимосвязанно, но все же они совершенно разные. Когда дело доходит до оптимизации производительности, вам следует знать эти термины. Итак, позвольте мне помочь вам разобраться во всей терминологии, связанной с процессором, чтобы вы могли принять мудрое решение в следующий раз, когда вам придется работать над этими темами.
Я уже рассмотрел основы управления памятью в Linux, поэтому здесь я сосредоточусь только на объяснении, относящемся к процессору.
Понимание модели и архитектуры ЦП
- CPU считается «сердцем» машины — он считывает, декодирует и выполняет машинные инструкции, работая с памятью и периферийными устройствами.Это достигается путем включения различных этапов. Процессоры
- и другие ресурсы управляются ядром, которое работает в особом привилегированном состоянии, называемом системным режимом.
- В Linux вы можете использовать
lscpu
илиcat / proc / cpuinfo
, чтобы получить подробную информацию об архитектуре ЦП вашей базовой платформы / оборудования.
Ниже приведен пример вывода lscpu:
# lscpu Архитектура: x86_64 Операционные режимы ЦП: 32-разрядный, 64-разрядный Порядок байтов: Little Endian ЦП: 32 Он-лайн список ЦП: 0-31 Потоков на ядро: 2 Ядра на сокет: 8 Розетка (и): 2 NUMA узлов: 1 ID поставщика: GenuineIntel Семейство процессоров: 6 Модель: 63 Название модели: Intel (R) Xeon (R) CPU E5-2640 v3 @ 2.60 ГГц Шаг: 2 CPU МГц: 2600.000 CPU макс МГц: 2600.0000 CPU min MHz: 1200.0000 ...
Это сервер RHEL 8, установленный на физическом оборудовании (HPE ProLiant Blade). Здесь моя модель процессора — «Intel (R) Xeon (R) CPU E5-2640 v3 @ 2.60GHz». Давайте разберемся в каждом из этих полей:
Количество ядер на гнездо
Ядро (а) — это аппаратный термин, который описывает количество независимых центральных процессоров в одном вычислительном компоненте (кристалле или микросхеме).
Чтобы получить список физических ядер, вы можете использовать:
# grep 'core id' / proc / cpuinfo | sort -u идентификатор ядра: 0 идентификатор ядра: 1 идентификатор ядра: 2 идентификатор ядра: 3 идентификатор ядра: 4 идентификатор ядра: 5 идентификатор ядра: 6 идентификатор ядра: 7
Теперь сокет — это интерфейс между процессором и материнской платой, и поскольку у меня есть два сокета, в основном у меня 8 ядер ЦП в каждом сокете, так что всего на этом сервере доступно 16 физических ядер.
Ядра на сокет: 8 Розетка (а): 2
Вы также можете получить эту информацию, используя:
# dmidecode -t 4 | grep -E 'Обозначение сокета | Счетчик' Обозначение разъема: Proc 1 Количество ядер: 8 Количество потоков: 16 Обозначение разъема: Proc 2 Количество ядер: 8 Количество потоков: 16
Число ниток на ядро
Поток, или поток выполнения, — это программный термин, обозначающий базовую упорядоченную последовательность инструкций, которые могут проходить или обрабатываться одним ядром ЦП.Ядро с двумя аппаратными потоками может выполнять инструкции от имени двух разных программных потоков без дополнительных затрат на переключение контекста между ними.
Здесь, на моем сервере, у меня 2 потока на ядро:
Резьбы на ядро: 2
Количество логических ядер, которое равно « потоков на ядро» × «количество ядер на сокет» × «сокет (а) », т.е. ядра. Вы также можете проверить это, используя:
# nproc --all 32
Макс. МГц ЦП и мин. МГц
ЦП На основе ЦП с максимальной МГц
и ЦП с максимальной МГц
, тактовая частота i.е. максимальная частота этого процессора составляет 2,6 ГГц, а минимальный порог — 1200 МГц.
Общие сведения о кэше ЦП
Кэш процессораочень важен для эффективности работы ЦП с приложениями. Существуют разные уровни кэш-памяти, и они используются для хранения данных, которые должны находиться рядом с процессором. Уровень кэша, который ближе к процессору, является самым дорогим.
Кэш L1
- Кэш L1 имеет наименьший объем памяти (часто от 1 КБ до 64 КБ) и напрямую доступен ЦП за один такт, что также делает его самым быстрым.
- Это встроено, и в нем хранятся наиболее часто используемые данные и они остаются в L1 до тех пор, пока что-то другое не станет более частым, чем существующее, и в L1 не станет меньше места.
- Если да, то он перемещается в больший L2.
- Кэш 1-го уровня также может совместно использоваться ядрами с гиперпоточностью
Кэш L2
- Кэш L2 — это средний уровень с большим объемом памяти (до нескольких мегабайт), примыкающим к процессору, доступ к которому можно получить за небольшое количество тактовых циклов.
- Это применимо при перемещении объектов из L2 в L3.
Кэш L3
- Кэш L3, даже медленнее, чем L1 и L2, может быть в два раза быстрее, чем основная память (RAM).
- Каждое ядро может иметь свой собственный кэш L1 и L2; следовательно, все они совместно используют кэш L3.
- Размер и скорость являются основными критериями, которые меняются между каждым уровнем кэша: L1
- В то время как исходный доступ к памяти может составлять 100 нс, например, доступ к кэш-памяти L1 может быть равен 0.5 нс.
Понимание архитектуры кэша
Попробуем разобраться в архитектуре кеша на следующем изображении 6-ядерного процессора:
- На этом изображении каждое ядро здесь получает 64 КБ кеш-памяти L1, 256 КБ кеш-памяти второго уровня и 15 МБ кэш-памяти L3, которые совместно используются всеми ядрами. После этого отправляйтесь либо к контроллеру памяти DDR, либо к прямому медиаинтерфейсу (DMI), в зависимости от того, куда должна идти информация. Кэш
- организован по строкам, и каждая строка может использоваться для кэширования определенного места в памяти.
- Каждый ЦП имеет отдельный кэш и собственный контроллер кеша.
- И если процессор обращается к основной памяти, он сначала проверяет данные в кэше. Если он там есть, то это называется попаданием в кеш. Если его там нет, значит, у вас промах в кэше.
- Заполнение строки кэша происходит после промаха кэша, и это означает, что данные загружаются из основной памяти.
- Итак, промах в кэше требует дополнительных действий, а это означает, что с точки зрения производительности это не совсем хорошо.
Кэш со сквозной записью и обратной записью
- Теперь есть так называемый кэш со сквозной записью и обратной записью.
- Если кэш со сквозной записью включен, когда строка кэш-памяти обновляется, строка также обновляется в памяти, и это эффективно.
- Если включена обратная запись , запись в кэш записывается в основную память только в момент освобождения строки кэша.
- Таким образом, обратная запись более эффективна, а сквозная запись обеспечивает более высокую стабильность.
- Итак, как это часто бывает при оптимизации производительности, это снова выбор между стабильностью и эффективностью.
- Если в многопроцессорных системах изменения не фиксируются в памяти немедленно, другие ЦП необходимо обновить, чтобы что-то изменилось, если они тоже это изменяют.
- Итак, в многопроцессорных системах сквозная запись по сравнению с обратной записью создает другую проблему. Эта проблема называется кеш-отслеживанием . Отслеживание кэша — это аппаратная функция, которая гарантирует, что все процессоры имеют доступ к самой последней информации в кэше.
- Есть и другие особенности кэша, которые следует учитывать, например кэш с прямым отображением . Это означает, что каждая строка кеша может кэшировать только определенное место в основной памяти, и это более дешевое решение.
- Полностью связанный кэш означает, что строка кэша может кэшировать любое место в основной RAM. Это более гибко и по этой причине дороже.
- и установить ассоциативный кэш предлагает компромисс между напрямую сопоставленным и полностью связанным кешем и позволяет кэшировать ячейку памяти в любые n строк кеша, где n может быть, например, числом, равным двум.
И это функции, которые вы, возможно, захотите рассмотреть при покупке нового оборудования.
Анализируйте промахи в кэше ЦП с помощью Cachegrind
Вы можете использовать инструмент valgrind с Cachegrind для проверки промахов кеша с вашим программным обеспечением или системными приложениями.
Вы можете выполнить valgrind, как показано в следующем фрагменте, с вашим приложением:
# valgrind --tool = cachegrind ls == 28266 == Cachegrind, профилировщик кеширования и прогнозирования ветвлений == 28266 == Авторские права (C) 2002-2017 и GNU GPL'd, Николас Нетеркот и др.== 28266 == Использование Valgrind-3.13.0 и LibVEX; повторите с -h для информации об авторских правах == 28266 == Команда: ls == 28266 == --28266-- предупреждение: найден кэш L3, данные которого используются для моделирования LL. some_rpm-17.0.1-115.03.noarch.rpm failed_service.py cust_collection_valid.conf список_узлов cust_collect_valid1.conf testlc.conf == 28266 == == 28266 == I ссылок: 612 284 == 28266 == I1 промахов: 1,635 == 28266 == Промахи LLi: 1,529 == 28266 == Коэффициент промахов I1: 0.27% == 28266 == Коэффициент промахов LLi: 0,25% == 28266 == == 28266 == Ссылки D: 240,476 (162,433 ряд + 78,043 ср) == 28266 == Промахи D1: 5,889 (4,707 очков + 1,182 очков) == 28266 == LLd промахов: 4,008 (2,950 очков + 1,058 очков) == 28266 == Коэффициент промахов D1: 2,4% (2,9% + 1,5%) == 28266 == Уровень промахов LLd: 1,7% (1,8% + 1,4%) == 28266 == == 28266 == Ссылки LL: 7,524 (6,342 очков + 1,182 очков) == 28266 == Промахи LL: 5,537 (4,479 очков + 1,058 очков) == 28266 == Коэффициент промахов LL: 0.6% (0,6% + 1,4%)
Я только что выполнил команду ls, которая показывает, что она пропущена в кэше L1 в 2,4% случаев и 1,7% в кэше L2. В настоящее время эта программа также была найдена в кэше L3. Данные инструкций были извлечены должным образом из кэша уровня 1 почти все время, за исключением 0,27% случаев и с частотой промахов кэша 0,25% в кэше L2.
Иногда ваше программное обеспечение будет делать что-то, что процессор не мог предсказать, и данных не будет в кэше L1.Это означает, что процессор запросит данные у кеша L1, и этот кеш L1 увидит, что их нет, теряя время. Затем он спросит L2, L2 спросит L3 и так далее. Если вам повезет, он будет на втором уровне кеша, но его может даже не быть на L3, и поэтому вашей программе нужно будет дождаться ОЗУ после ожидания трех кешей.
Это то, что называется ошибкой кэша . Как часто это происходит? В зависимости от того, насколько оптимизированы ваш код и процессор, это может быть от 2% до 5% времени.Это кажется низким, но когда это происходит, весь процессор перестает ждать, а это означает, что даже если это не происходит много раз, это оказывает огромное влияние на производительность, делая работу намного медленнее
Многоядерный процессор
- Многоядерный ЦП имеет более одного физического процессора. По сути, он действует как несколько ЦП.
- Единственное отличие состоит в том, что все ядра одного ЦП совместно используют один и тот же кеш памяти, а не собственный кэш памяти.
- С точки зрения разработчиков, использующих многопоточный параллельный интерфейс, разница между несколькими ЦП и несколькими ядрами в ЦП очень мала.
- Общее количество ядер во всех ЦП системы — это количество физических процессоров, которые могут быть запланированы и запущены параллельно, то есть количество различных программных потоков, которые действительно могут выполняться параллельно.
На этой схеме показаны три физических процессора, каждый из которых имеет два логических ядра:
Hyper-Threading
- Процессоры с технологией Hyper-Threading (HT Technology) рассматриваются операционной системой как два логических процессора.
- Эти процессоры отличаются от многоядерных процессоров, поскольку процессоры с технологией HT не содержат всех компонентов двух отдельных процессоров.
- Включены только определенные части второго процессора, так что два потока процесса могут выполняться одновременно.
Вы можете узнать о том, как правильно проверить, включена или отключена Hyper Threading (HT) на моем сервере Linux
Hyperthreading поясняется на следующей диаграмме:
Сравнение производительности: гиперпоточность и физические ядра ЦП
Вот пример скрипта Python:
#! / Usr / bin / env python3 import sys дата и время импорта импортировать многопроцессорность def busy_wait (n): пока n> 0: п - = 1 если __name__ == '__main__': п = 10000000 начало = дата и время.datetime.now () если sys.argv [-1] .isdigit (): процессы = int (sys.argv [-1]) еще: print ('Укажите количество процессов') print ('Пример:% s 4'% '' .join (sys.argv)) sys.exit (1) с multiprocessing.Pool (процессы = процессы) как пул: # 8 раз выполнить функцию busy_wait с параметром n pool.map (busy_wait, [n для _ в диапазоне (8)]) конец = datetime.datetime.now () print ('Многопоточные циклы заняли:% s'% (конец - начало))
Код пула упрощает запуск пула рабочих и обработку очереди.В этом случае мы использовали карту, но есть несколько других вариантов, таких как imap
, map_async
, imap_unordered
, apply
, apply_async
, starmap
и starmap_async
. Поскольку они очень похожи на то, как работают одноименные методы itertools, не будет конкретных примеров для всех из них.
Мы будем выполнять этот скрипт с разным количеством процессоров:
сервер: / tmp # python3 check_ht_performance.ру 1 Многопоточные циклы заняли: 0: 00: 03.519231 сервер: / tmp # python3 check_ht_performance.py 4 Многопоточные циклы заняли: 0: 00: 00.917242 сервер: / tmp # python3 check_ht_performance.py 16 Многопоточные циклы заняли: 0: 00: 00.528790
Как только отдельные процессы фактически используют 100 процентов ядра ЦП, переключение задач между процессами фактически снижает производительность. С одним ядром сценарий занял около 3,5 секунды, что с 16 физическими ядрами заняло 0.5 секунды. Очевидно, что мы видим лучшие результаты с многоядерными процессами.
Но у нас есть 32 логических процессора, использующих Hyper-Threading, так что давайте попробуем использовать и их, и посмотрим на результаты:
сервер: / tmp # python3 check_ht_performance.py 28 Многопоточные циклы заняли: 0: 00: 00.548657 сервер: / tmp # python3 check_ht_performance.py 32 Многопоточные циклы заняли: 0: 00: 00.646604
Очевидно, вы не ожидали таких результатов.С логическим процессором ЦП время выполнения задачи намного выше по сравнению с физическими ядрами . Поскольку физических ядер всего 16, остальным 16 приходится бороться, чтобы что-то сделать с ядрами процессора. Эта борьба требует времени, поэтому версия с 16 процессами немного быстрее, чем версия с 32 процессами.
Сводка
В этой статье я попытался охватить некоторые из наиболее часто задаваемых вопросов, связанных с ЦП, кешем ЦП, многопроцессорностью и гиперпоточностью.Другой вопрос, который задают слишком часто, — включить или отключить гиперпоточность. Судя по сотням отчетов и тестов, для более новых серверов Intel лучше оставить его включенным. Опасения по поводу снижения производительности из-за гиперпоточности больше не актуальны, поскольку он прошел через десятилетия разработки и все первоначальные проблемы были решены. Также лучше не считать все ядра с гиперпоточностью как настоящие ядра, поскольку они по-прежнему являются виртуальными. При подсчете общего количества ядер, доступных в узле, используйте консервативный подход и учитывайте немного меньше, чем общее количество ядер.
Похожие запросы: сокет процессора, сокет процессора, потоки ядра, сокет против ядра, объяснение команды lscpu, как проверить ядра процессора, как проверить сокет процессора, информация о процессоре Linux, как проверить использование процессора, средняя загрузка Linux, как проверьте свой процессор, как проверить какой у меня процессор
Похожие сообщения
Как проверить, сколько у меня потоков ЦП?
Вы можете проверить количество потоков на вашем ЦП, используя встроенные службы и инструменты Windows, такие как диспетчер задач и системную информацию.Вы также можете ознакомиться с техническими характеристиками производителя и с помощью некоторых сторонних приложений.
Количество потоков вашего ЦП зависит от его модели, количества ядер, поколения, а также от того, включена ли в нем одновременная многопоточность (SMT), такая как гиперпоточность.
Процессоры нового поколения имеют больше потоков по сравнению с процессорами предыдущего поколения в первую очередь потому, что у них больше ядер.
Чем больше у вас потоков, тем лучше производительность ЦП, поскольку большее количество потоков по существу означает, что в вашем распоряжении ЦП больше рабочих (ресурсов).
Для многозадачности, многопоточных игр и профессиональных задач, таких как рендеринг видео, рекомендуется большее количество потоков.
В тексте ниже мы рассмотрим различные способы проверки количества потоков ЦП.
Как проверить, сколько у меня потоков процессора?
Ниже приведены некоторые из способов проверить, сколько у вас потоков ЦП. Большинство из них проще простого.
- Используйте диспетчер задач в Windows
- Использовать системную информацию в Windows
- Используйте информацию производителя
- Используйте стороннее программное обеспечение
Мы подробно рассмотрим каждый метод ниже:
1.Проверьте с помощью диспетчера задач в Windows
Использование диспетчера задач — это , безусловно, самый простой метод для проверки количества потоков ЦП. Помимо потоков, вы также можете проверить другую информацию о вашем процессоре, такую как его тактовая частота, кэш-память, модель и т. Д.
Шаг 1. Откройте диспетчер задач
Есть много способов открыть диспетчер задач.
Метод 1: Нажмите CTRL + ALT + DELETE. В Windows 10 откроется экран меню, в котором вы можете выбрать «Диспетчер задач».
Метод 2: Щелкните правой кнопкой мыши на панели задач в Windows и выберите «Диспетчер задач».
Изображение: щелчок правой кнопкой мыши в любом месте панели задач открывает меню. Оттуда перейдите и выберите «Диспетчер задач».Шаг 2. Перейдите на вкладку «Производительность»
В открытом диспетчере задач перейдите на вкладку производительности
Шаг 3. Проверьте количество логических процессоров
Убедитесь, что вкладка «CPU» выбрана из систем, показанных слева.
Потоки процессора также известны как «логические процессоры». Поэтому проверьте количество логического процессора, которое показывает Диспетчер задач.
Изображение: из окна диспетчера задач выше видно, что в этой системе 8 потоков.Обратите внимание, пусть вас не смущает поле, помеченное как «Threads» (в данном случае это 3759). Это в основном показывает количество программных потоков или кодов, выполняемых в данный момент. Это не имеет ничего общего с количеством потоков на вашем процессоре!
Также читайте: подходит ли двухъядерный процессор для игр?
2.Проверьте с помощью средства информации о системе
В Windows есть еще один удобный инструмент, с помощью которого вы можете много узнать о своем ПК. Он называется инструментом «Системная информация».
Шаг 1. Введите системную информацию в строку поиска
Введите «Системная информация» в строке поиска и выберите приложение.
В более старой версии Windows вы также можете перейти к «Выполнить» и ввести «msinfo.32».
Шаг 2. Найдите поле процессора
Этот инструмент покажет вам много информации в единой организованной таблице.
То, что вы хотите найти, — это поле «Процессор».
Найдите в этом поле указанное количество «логических процессоров». Это количество потоков в вашем процессоре.
Изображение: Показанная здесь система имеет 8 логических процессоров, или, другими словами, 8 потоков в ЦП.3. Проверьте с помощью информации производителя
Производители микросхем обычно размещают в Интернете список своих моделей процессоров, а также их спецификации.
Этот метод может пригодиться, если ваш процессор еще не установлен на материнской плате или если вы хотите получить информацию о процессоре, который вам еще предстоит купить.
Однако для того, чтобы этот метод работал, вам необходимо знать модель и изготовитель рассматриваемого процессора.
Быстрый поиск в Google по марке и модели вашего процессора приведет вас на сайт производителя, где вы сможете найти точную модель процессора и получить информацию о нем.
Изображение: На изображении выше показан отрывок из официальной спецификации Intel Core i7-7700HQ. Вы можете просмотреть полную информацию здесь.4. Использование стороннего программного обеспечения
Вы также можете БЕСПЛАТНО использовать стороннее программное обеспечение, такое как CPU-Z и HWInfo, для получения микроскопических подробностей, касающихся аппаратного обеспечения вашего ПК, включая центральный процессор.
Вам необходимо загрузить и установить их, но если вы хотите изучить каждую мельчайшую деталь о своей системе, это одни из самых полных бесплатных инструментов на рынке.
Большинство стороннего программного обеспечения содержат много информации и обычно используются экспертами.
Изображение: CPU-Z — одно из самых популярных программ для получения подробной информации о компонентах вашей системы. Здесь вы можете увидеть количество ядер и потоков в Intel Core i7-7700HQ.Также читают:
Что такое поток в простых терминах?
Поток — это, по сути, последовательность кода, которую можно представить себе как конвейерную ленту , обрабатывающую данные .Поскольку это не настоящие ядра, они называются «логическими процессорами , ».
Каждое ядро процессора имеет как минимум один поток. Однако на процессорах с включенной одновременной многопоточностью (SMT) , что в наши дни делает большинство процессоров, у вас может быть два потока на ядро.
Итак, если ЦП имеет 2 ядра / 4 потока, 4 ядра / 8 потоков, 8 ядер / 16 потоков и так далее, тогда в этом случае, ЦП имеет возможность многопоточности .
Если ЦП имеет 2 ядра / 2 потока или 4 ядра / 4 потока, тогда , в этом случае для ЦП не включена многопоточность .
Количество потоков, которые у вас есть, обычно является определяющей характеристикой того, насколько хорош процессор при многозадачности .
Если посмотреть на многоядерную производительность ЦП, количество потоков может существенно повлиять на результаты тестов.
Потоки могут существенно отличаться при выполнении таких задач, как рендеринг, кодирование, моделирование или анализ данных, которые предназначены для одновременного использования большого количества ядер и потоков.
Gaming может также опосредованно выиграть от большего количества потоков, особенно если у вас есть программное обеспечение и службы, такие как потоковые службы, которые работают параллельно в фоновом режиме.
Также прочтите: Что означает счетчик процессоров?
Что такое многопоточность?
Как упоминалось ранее, многопоточность — это когда ЦП имеет более одного потока на ядро.
Многие люди также знают это под названием Hyper-Threading (который является проприетарным методом Intel многопоточности для их процессоров).
Однако не все задачи выигрывают от очень большого количества потоков.
Некоторые задачи, в основном игры и даже профессиональные задачи, такие как проектирование в САПР или скульптура в Blender, в высшей степени ориентированы на одно ядро / поток.
Также читайте: Как проверить, сколько у меня слотов PCIe?
Заключение
Знание количества ядер и потоков процессора жизненно важно для понимания его возможностей, а также его ценового диапазона.