1с ядро

Содержание

Для пользователей и разработчиков 1С — системные требования для разных конфигураций

1с ядро

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

Толстый клиент — наиболее ресурсоемкий для оборудования. Под обычными формами в представленном режиме работают конфигурации Бухгалтерия предприятия 2.0, Комплексная автоматизация 1.1, Управление торговлей 10.

3, Зарплата и управление персоналом 2.5. Клиентская составляющая конфигураций отображает и обрабатывает данные, формирует к базе данных запросы.

А если речь идет о файловом режиме работы, обеспечивается выполнение запросов.

Установка 1С 8.2 и 8.3: минимальные требования, рекомендуемые характеристики

  • Для работы с конфигурациями 1С 8.2 и 8.3, необходим компьютер с процессором Intel 2 000 МГц — это минимум. Если планируете получить от программы максимум производительности, используйте ПК с процессором от 3 000 МГц, кэшем от 2 Мб.
  • Размер оперативной памяти должен составлять 1 Гб, но лучше 2 Гб для 32-битной системы и 4 Гб для 64-битной.
  • Свободного места на жестком диске для установки конфигурации должно быть 500 Мб минимум. К минимальным требованиям относится объем от 500 Мб до 10 Гб в файловом режиме, до 1 Гб под временные файлы (различные логи, данные пользователя, кэши). Оптимальные параметры: скорость 7 200, кэш от 32 Гб, рекомендуем отдавать предпочтение SSD.

1С Бухгалтерия — системные требования для форм, хранящих конфигурации в неподготовленном виде

Речь идет конфигурациях Комплексная автоматизация 2.0, Зарплата и управление персоналом 3.0, Управление торговлей 11.2 (11.1), Бухгалтерия предприятия 3.0.

Эти приложения могут работать в режиме толстого клиента (управляемые) и тонкого — при файловом режиме необходимо обеспечить усиленную версию оборудования.

Формы представленных клиентов сервер готовит в режиме онлайн и передает на клиентскую часть.

Отличительная черта таких конфигураций — хранение в неподготовленном (xml-подобном) виде, функциональность (можно использовать сервисы проверки, выбирать диалоги). Это приводит к большим нагрузкам на систему, особенно в момент запуска форм.

Если мы говорим про 1С системные требования для клиент-серверного режима, важно учесть, что она обеспечивает более быструю работу, кроме того, в таких системах могут одновременно работать более 100 человек. Понятно, что к скорости жесткого диска таких систем предъявляют максимально строгие требования:

  • Минимальные параметры частоты процессора Intel составляют 2 400 МГц. Оптимально использовать процессор от 3 000 МГц с кэшем от 4 Мб.
  • 2 Gb размера оперативной памяти хватит с большой натяжкой. Если желаете чувствовать себя максимально комфортно при работе с системой, если рассчитываете на ее максимальную производительность, выбирайте оборудование с оперативкой от 4 Gb для 32-битных систем, и 8 Gb для 64-битных.
  • Минимальный размер жесткого диска под установку составляет 500 Мб, в файловом режиме под базу может требоваться от 1 000 Мб до 10 Gb, и до 1 Gb под временные файлы. Оптимально иметь жесткий диск с кэшем от 64 Gb и скоростью 7 200. Настоятельно рекомендуем использовать SSD, который обеспечивает комфортную работу, быстрый запуск интерфейса.

Еще один момент: SSD обеспечивает не только высокую скорость, но и очень короткое время доступа к данным.

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

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

ПК разработчика на 1С 8.3: минимальные и оптимальные требования

Не так важно, работаете ли вы с Предприятием представленного поколения или 1С Бухгалтерией, системные требования будут следующими:

  • Минимум — двухъядерный процессор от 3 000 МГЦ и кэшем от 4 Мб. Оптимально: четырехъядерный процессор от 3 500 МГц и кэшем от 6 МБ.
  • Оперативная память для 32-битных систем одинакова и в минимальном, и оптимальном варианте, составляет 4 Гб. А для 64-битной требуется, как минимум 8 Гб, оптимально — 16 Гб.
  • Что касается жесткого диска, то минимальные требования: скорость 7200 при кэше от 64 Гб, SSD. Оптимально использовать только SSD жесткий диск.

При подборе рекомендуем

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

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

Что касается процессоров AMD — они работают медленнее Intel, но на высоких частотах это практически незаметно. Для клиентской части AMD использоваться могут, а для разработки все же лучше отдать предпочтение альтернативным вариантам.

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

Технические требования под серверы 1С 8.3 (8.2)

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

Лучший выбор — процессоры с максимальной частотой:

  • высокоранговые серверные процессоры, как правило, характеризуются низкой частотой, но могут иметь четырехканальную память, работающую на высокой скорости;
  • максимальный результат, доступ режима общей памяти, удается получить при применении 8.3 и MS SQL, если серверная часть и СУБД располагаются на одном физическом сервере;
  • применение виртуальных машин приводит к стабилизации, но и замедлению работы;
  • если вы работаете с физическими серверами, нужно отдавать предпочтение только скоростному сетевому соединению.

Объем памяти для начальных систем, как правило, составляет не менее 8 Gb, а для нагруженных требуется уже, как минимум, 12 Gb.

Помните, при определении для различных конфигураций, например, 1С предприятие, системные требования подразумевают, что каждый процесс 32-битного сервера приблизительно забирает 1-2 Gb памяти — исходите из двух-трех запущенных процессов. Для 64-битных систем требуется 3-6 Gb памяти, в зависимости от нагрузки.

В пике нагрузки веб-сервер отнимает до двух Gb памяти — если применяется файловый режим, в котором утекает память и может требоваться регулярный перезапуск.

Терминальный сервер с 1С

Если вы применяете терминальные клиенты, обратите внимание, что на каждого клиента должно приходиться не менее 150 Мб памяти. Максимальную скорость работы файловая версия выдает в терминальном режиме — при недостаточной производительности лучше перейти на клиент-серверный вариант: при оптимальных прочих факторах в этом режиме могут свободно работать до 10 пользователей.

Источник: https://zen.yandex.ru/media/id/5def3229ba281e00b292d9a7/dlia-polzovatelei-i-razrabotchikov-1s--sistemnye-trebovaniia-dlia-raznyh-konfiguracii-5f0c11f8d724de1a43967e7e

Рекомендации по процессорам при подборе серверного оборудования для 1С

1с ядро

Было очень много споров особенно о процессорах: сколько нужно ядер у процессора, достаточно ли только высокой частоты, почему некоторые более дешевые процессоры с высокой частотой показывает лучшие результата в «тесте Гилева» чем дорогие многоядерные процессоры.

Вот что показывает накопленная статистика по тесту TPC-1C

Вот некоторые соображения по полученному графику.

1) Результаты показаны только для клиент-серверного варианта (ведь он используется в основном).

2) Результаты собраны за несколько лет от тысячи участников теста, а не выполнены одним человеком.

3) Результаты принимаются «на веру», нет защиты от «недостоверных» данных, если отправитель захочет завысить или занизить цифры

4) Полагается, что тесты проводились именно на одном сервере, а не сложном кластере, состоящем из нескольких разнородых компьютеров, поэтому надо понимать, что результаты — это все таки усредненные, а не точные значения

5) На результат влияет множество компонент, а не только процессор

6) Многие присылали результаты, не настроив оптимально среду

7) Для некоторых моделей процессоров результатов слишком мало, поэтому ошибки вроде пункта 6 могут сильно исказить общее мнение. Например очень мало результотов для E5-2687W.

8) Из результатов были откинуты результаты процессоров i3,i5,i7 как процессоров «не для серверов», хотя это поспорно. Важнее что фильтр был наложен по количеству ядер, однако некоторые AMD все таки «проникли» в диаграмму, но их результаты низкие, поэтому можно не обращать внимания на них.

ВЫВОД КОТОРЫЙ МНЕ КАЖЕТСЯ ОЧЕВИДЕН: Зависимость скорости одного потока 1С:Предприятие сильно зависит от частоты процессора.

СЛЕДСТВИЕ: Все таки для задач с нагрузкой как в тесте важно брать НЕ САМЫЙ ДОРОГОЙ ПРОЦЕССОР, А ПРОЦЕССОР С МАКСИМАЛЬНОЙ ЧАСТОТОЙ. В рамках одной серии одного поколения процессоров действительно самый дорогой процессор — с максимальной частотой.

Например для самой популярной серии процессоров E5-2600 самые дорогие E5-2687W, E5-2690 и самые быстрые.

Но как только сравниваются процессоры разных серий, например E5-2690 http://ark.intel.com/ru/products/64596/ и E7-4860

http://ark.intel.com/ru/products/53571/Intel-Xeon-Processor-E7-4860-24M-Cache-2_26-GHz-6_40-GTs-Intel-QPI , то второй процессор чуть ли не в два раза дороже, но частота существенно меньше.

Может показаться, что в рамках одной серии все просто, но посмотрите на график результатов и процессор E5-2643 http://ark.intel.

com/ru/products/64587/Intel-Xeon-Processor-E5-2643-10M-Cache-3_30-GHz-8_00-GTs-Intel-QPI . Он вроде существенно дешеле более «старших» E5-2660 http://ark.intel.

com/ru/products/64584/Intel-Xeon-Processor-E5-2660-20M-Cache-2_20-GHz-8_00-GTs-Intel-QPI , но частота у него выше.

Возникает простой вопрос —  надо брать более дешевый процессор?

Более дорогие процессоры все таки одной закономерностью обладают  — у них больше ядер и кэша.

Рекомендую придерживаться вот каких соображений. Если Вы берете сервер для небольшого количества пользователей (30-50 пользователей), или Вы хотите решить проблему долгого одногопоточного процесса вроде закрытия месяца — берите процессор с высокой частотой, а приведенный выше график Вам в помощь.

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

Могу утверждать, что в среднем при покупке сервере стоимость процессора составляет где то 10% от всего сервера, а вот вклад в общую производительность может достигать 50%. Поэтому если придерживаться принципа парето, экономить на процессоре — это самая большая ошибка имхо.

Теперь о более любопытном факте — разбросе значений для одной модели процессора в ходе тестирования разными пользователями.

Умышленно выбрал один из популярных процессоров E5-2650 чтобы продемонстрировать разброс значений теста.

Чуть ли не у половины пользователей значение меньше 20 баллов. О чем это говорит, правильно, скорее всего схема энергоснабжения — «энергосберегающая» а не «максимальная производительность».

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

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

Предлагаю посмотреть не на мой тест, а на тест процессора (сторонний, что похожее на флопсы).

Но я еще не ответил, а что же делать тем, у кого много пользователей, скажем 400.

Прежде всего хочу сказать что выбор между процессором E5-2643 (4 ядра ) и E5-2690 (8 ядер)  при соизмеримых частотах — достаточно условный (ну мне так кажется).

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

На одном предприятии может и хватит ядер, а на другом — не хватит.

Далеко не все задачи однопоточные. Более того, далеко не все задачи используют небольшие обмьемы.

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

Источник: http://www.gilev.ru/bestproc1c/

Устраняем неравномерную загрузку и повышаем производительность кластера «1С» на многопроцессорных системах

1с ядро
19/07/2021

У одного из наших клиентов на новых и мощных серверах кластер «1С:Предприятия» демонстрировал низкую производительность, время ожидания пользователей при выполнении рабочих операций превышало все разумные пределы. Быстрый анализ показал периодический дисбаланс нагрузки между физическими процессорами — в отдельные моменты один мог быть загружен на 100 %, второй на 5–10 %. В статье рассказываем, как локализовали и решили эту проблему.

Общая схема работы при устранении проблемы

Забегая вперед, вот действия, которые мы выполняли при диагностировании и устранении проблемы клиента:

  • Проверка платформы и конфигурации «1С:Предприятия».
  • Внесение изменений в настройки платформы.
  • Проверка изменений в производительности.
  • Исследование аппаратного и программного комплекса у клиента.
  • Поиск схожих проблем на имеющемся железе в базах знаний производителей оборудования и в публичных источниках.
  • Внесение изменений в настройки аппаратного обеспечения.  

Оптимизируем «1С:Предприятие»

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

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

Стали разбирать инцидент совместно с фирмой «1С» в рамках ИТС КОРП.

В результате была выявлена ошибка платформы 30158420, зафиксированная фирмой «1С» еще в ноябре 2018 года, но не исправленная на момент возникновения сложностей у нашего клиента.

По итогам переговоров с корпоративной поддержкой «1С» информация об ошибке весной 2021 года была опубликована,  а для нашего клиента выпустили внеочередную сборку платформы с исправлением. Вот суть ошибки:

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

В текущий момент ошибка исправлена в актуальных релизах платформы «1С:Предприятие».

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

Проверили еще несколько вариантов, приводящих к снижению производительности, в том числе давно известные — про ограничения, описанные в 2016 году о работе платформы «1С» с многопроцессорными системами:

Поддержка NUMA в кластере серверов 1С полноценно пока не реализована.

Сервер «1С» не управляет распределением ресурсов по NUMA узлам, полностью полагаясь в этом на операционную систему, что не всегда даёт оптимальный результат.

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

Выполнили все рекомендации по оптимизации «1С» для многопроцессорных систем. Однако, к улучшению ситуации это не привело.

Настраиваем серверное окружение

Перешли к проверке системного ПО и аппаратной части вместе с ИТ-отделом заказчика. Система построена на базе двухпроцессорной системы с 32 ядрами, по 16 на процессор.

Поиск и исследование информации о схожих с нашей задачей сложностях, материалов от поставщиков оборудования и серверной ОС дало нам три направления работы:

  1. Механизмы работы операционной системы на многоядерном/многопроцессорном сервере.
  2. Настройка аппаратной части — BIOS сервера.
  3. Ограничение на выполнение приложения одной группой процессоров.

Серверные операционные системы семейства Windows начиная с WinServer2008R2 64bit поддерживают работу с более чем 64 логическими процессорами на одном компьютере. Для того, чтобы это реализовать в ОС используется механизм группировки процессоров (processor group, kernel group, kgroup).

Каждая из групп может содержать до 64 логических процессоров и если на сервере менее 64 логических процессоров, то должна создаваться только одна группа с порядковым номером 0.

Следуя этой логике на испытуемом сервере должна быть только одна группа (Group 0), что подразумевает более-менее равномерное распределение нагрузки между ядрами наших двух физических CPU.

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

В этих кейсах проводилось тестирование аналогичных серверов двух вендоров. У вендора, которого использует наш клиент, проблема была. А у иного — нет.

Проблему на момент размещения кейса частично решали использованием неофициальной (unpublished) версии BIOS с добавленным в настройки параметром NUMA Group Size Optimizations.

Во-вторых, на сервере клиента использовалась устаревшая версия BIOS, для которого вендором была уже зафиксирована и исправлена ошибка, из-за которой серверные ОС Windows могли использовать только половину или менее логических процессоров определенной линейки Intel Xeon. BIOS был обновлен до актуальной версии. В этой версии BIOS уже штатно присутствует параметр NUMA Group Size Optimization.

В-третьих, по умолчанию BIOS настроен таким образом, чтобы обеспечивать работу максимального количества логических процессоров в системе.

У сервера два процессорных сокета и параметр NUMA Group Size Optimization выставлен в значение Clustered, обеспечивающее работу максимального количества ядер/процессоров.

Получается, что настройка BIOS (напомним, что у сервера клиента всего 32 ядра) разбивала имеющиеся ядра/процессоры на 2 kgroup.

Получается, что в платформе «1С:Предприятие» поддержка NUMA пока не реализована и отдается на откуп ОС. ОС объединяет по умолчанию все ядра в количестве менее или равно 64 в одну группу процессоров. А на уровне оборудования выставлена настройка разбивать на несколько групп имеющиеся ядра. Явная нестыковка.

Особенность отслеживания загрузки процессоров в perfmon

Дополнительную сложность в работе принесло использование Performance Monitor Windows. В Perfmonitor есть счетчик в разделе Processor, который должен показывать общую загрузку процессоров на сервере. «1С» рекомендует этот счетчик включать. А вот Microsoft его обозначает как устаревший.

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

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

Выводы и предупреждение

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

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

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

Получается, что несколько процессов «1С:Предприятия» оказывалось в одной группе, создавая загрузку на 100%, а вторая группа процессоров в этот момент простаивала. Очередь заданий росла, пользователи чувствовали замедление работы «1С» и выказывали недовольство.

Переключение в BIOS параметра NUMA Group Size Optimization с Clustered на Flat в данном конкретном случае вернуло производительность кластера «1С:Предприятия» на должный уровень. Для пользователей пропали нестерпимые периоды ожидания и работа стала комфортной.

Но не всё так радужно. Платформа «1С:Предприятие» не умеет на момент написания статьи работать с несколькими группами процессоров.

Значит, если в сервере будет установлено больше 64 ядер мы окажемся в ловушке — необходимо будет переключить в BIOS параметр NUMA Group Size Optimization в значение Clustered.

А это снова вернет нас в исходную ситуацию, когда часть ядер простаивает. Фирма «1С» знает об этой проблеме и прорабатывает необходимые решения.

Отдельно стоит отметить особенности измерения общей загрузки процессора с помощью утилиты perfmon в случае использования групп процессоров, то есть на любом крупном сервере с более чем 64 ядрами.

Мы будем дальше работать над вопросами производительности информационных систем и готовы поделиться знаниями и опытом.

Обращайтесь! Высокой вам производительности и консистентности данных!

Источник: https://techlab.rarus.ru/news/articles/ustranyaem-neravnomernuyu-zagruzku-i-povyshaem-proizvoditelnost-klastera-1c/

Технологии многопоточности процессоров: принцип работы и сферы применения

1с ядро

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

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

Например, Intel Core i7 отличается от i5 технологией многопоточности под названием «Hyper-Threading», о которой далее пойдет речь (Core i3, i9, и некоторые Pentium также обладают данной технологией).

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

В качестве примера возьмем одно ядро процессора на частоте 4 ГГц с одним ALU (арифметико-логическое устройство) и одним FPU (математический сопроцеесор). Частота в 4 ГГц означает, что ядро исполняет 4 миллиарда тактов в секунду.

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

Часто происходят случаи, когда для выполнения необходимой операции процессору приходится ждать данные из кеша более низкой скорости (L3 кеш), или же оперативной памяти. Данная ситуация называется кэш-промах.

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

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

Данный конвейер можно представить, как настоящую сборочную линию на заводе — рабочий (ядро) выполняет работу, поступающую к нему на ленту. И если необходимо взять нужный инструмент, работник отходит, оставляя конвейер простаивать без работы.

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

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

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

Разгон

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

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

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

Увеличение количества потоков на ядро

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

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

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

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

Из минусов технологии Hyper-Threading или SMT можно выделить увеличение тепловыделения, недостаток кэша (кэш на два потока по-прежнему общий), и проблемы с оптимизацией некоторых программ или игр, не способных отличать настоящее ядро от логического потока.

Именно по этой причине процессоры серии i7 «горячее» и имеют больше кэша по сравнению с i5. Использование технологии многопоточности может принести примерно до 30 % прироста производительности.

Все это применимо как к Intel Hyper-Threading, так и к AMD SMT, поскольку технологии во многом схожи.

Может возникнуть вопрос: «Если можно добавить второй поток, то почему бы не добавить третий и четвертый?» Это реализуемо, но не имеет смысла, поскольку кэш одного ядра достаточно мал для большего количества потоков и прироста производительности практически не будет.

Увеличение количества ядер

Это самый действенный способ решения проблемы, поскольку каждый конвейер теперь располагает своим FPU, ALU и кэшем, который не придется делить с другим потоком.

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

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

С развитием компьютерных технологий перечень программ, использующих многопоточность, неуклонно растет. Это дает огромный простор разработчикам для создания нового софта и игр. Например, сейчас каждый современный triple-A проект оптимизирован для многопоточных процессоров, что позволяет наслаждаться игрой, получая высокий уровень fps на многоядерном CPU.

Еще больше распространены многоядерные системы в среде разработчиков.

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

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

Но далеко не всегда увеличение количества потоков означает увеличение общей производительности. Почему же SMT процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке.

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

Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.

Источник: https://club.dns-shop.ru/blog/t-100-protsessoryi/30066-tehnologii-mnogopotochnosti-protsessorov-printsip-rabotyi-i-sferyi-p/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.