Многопоточность |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Многопоточность |
sp0ke
|
9.8.2011, 17:27
Сообщение
|
|
|
в скрипте запуска есть разброс по ядрам? Если да, впиши 0,1,2,3 и все
|
|
|
|
TrikSer
|
9.8.2011, 18:51
Сообщение
|
|
|
в скрипте запуска есть разброс по ядрам? Если да, впиши 0,1,2,3 и все Вы не совсем понял смысл. Если, я закреплю сервер за определенным ядром толку не будет. Смысл в том, что серверу не хватает мощности ядра. Например зомби сервер, полностью выжирает ядро x3430 уже при 20-24 игроках, причем без проблем. Я знаю, что по сути своей hl1 не умеет работать на нескольких ядрах одновременно, тк не имеет многопоточности. Но сам лично видел, когда его заставляли это делать. Живой пример Нуб У него именно так. |
|
|
|
330863
|
11.8.2011, 7:47
Сообщение
|
![]() |
TrikSer,
приложение однопоточное может быть использовано как многопоточное если в системе есть SMT (Symmetric multi thread) |
Поблагодарили 1 раз
|
|
TrikSer
|
12.8.2011, 10:40
Сообщение
|
|
|
|
|
|
|
c0rax
|
12.8.2011, 14:27
Сообщение
|
![]() |
TrikSer, приложение однопоточное может быть использовано как многопоточное если в системе есть SMT (Symmetric multi thread) SMT (Simultaneous Multithreading) Цитата масштабируемость и поддержка большего количества архитектур Благодаря изменениям, внесенным в новый планировщик, он легче переносится на другие архитектуры, типа NUMA (от англ. Non-Uniform Memory Access -- неоднородный доступ к памяти прим. перев.) и SMT (от англ. Simultaneous Multithreading -- Параллельная Многопоточность прим. перев.) От переводчика: Основная идея NUMA архитектуры заключается в образовании основной вычислительной системы посредством объединения однотипных модулей, коммутируемых высокоскоростной сетью. Каждый модуль может состоять из одного или нескольких процессоров со своей локальной памятью, которая образует единое адресное пространство системы и часто подсистемы ввода/вывода. Технология SMT позволяет одному процессору работать за нескольких сразу, повышая эффективность распределения и управления вычислительной нагрузкой. Когда обычный процессор выполняет несколько задач, он может перейти к следующей лишь после того, как завершит предыдущую. Многопоточный процессор способен обрабатывать сразу несколько потоков команд (или "нитей" -- threads) одновременно. Используя механизм многопоточности, SMT-процессор может выполнять от четырех до десяти команд за такт, тогда как обычный выполняет, как правило, лишь от одной до четырех. Кроме того, чтобы воспользоваться технологией SMT, переписывать приложения не потребуется. Архитектура NUMA используется на некоторых высокопроизводительных серверах и супер-ЭВМ. Кроме того, продолжается работа над SMT (Symmetric Multithreading -- Симметричная Многопоточность. Здесь я хочу внести некоторую ясность -- автор расшифровывает аббревиатуру SMT как Symmetric Multithreading -- Симметричная Многопоточность, однако в процессе работы над переводом я встречал расшифровку этой аббревиатуры как Simultaneous Multithreading -- Параллельная Многопоточность, что на мой взгляд, более точно отражает смысл этой технологии прим. перев.). SMT также известна под термином : HyperThreading (Гиперпоточность). Одна из причин этой работы состоит в том, что сейчас каждый процессор имеет свою очередь задач. И только код, управляющий распределением вычислительной нагрузки, имеет "глобальное" значение для системы. Таким образом, для отдельных архитектур, необходимо внести изменения в эту согласующую часть. Недавно были выпущены "заплаты" для NUMA. Они были введены в состав ядра 2.5.59. SMT-процессоры имеют два (или более) виртуальных процессора на одном физическом кристалле -- один "логический" процессор может выполнять какую нибудь работу, в то время как другой ожидает доступа к памяти. SMT может рассматриваться как своего рода NUMA, поскольку совместно используют кеш-память, а поэтому получают более быстрый доступ к памяти, к которой недавно обращался один из них. В направлении SMT также ведется работа, но новый O(1)-планировщик способен обслуживать SMT-процессоры достаточно хорошо и без внесения каких либо изменений. Недавно были выпущены "заплаты" к ядру для SMT. Хотя архитектура NUMA и имеет некоторое сходство с архитектурой SMT, тем не менее, планировщик Linux обрабатывает их по-разному. |
Поблагодарили 2 раз
|
|
330863
|
12.8.2011, 18:04
Сообщение
|
![]() |
c0rax,
о_О меня запутал другой человек с SMT |
|
|
|
TrikSer
|
12.8.2011, 18:30
Сообщение
|
|
|
Ну так, стоящие предложения еще будут ?
Надо наверно нуб`а подождать, у него было это осуществлено |
|
|
|
c0rax
|
12.8.2011, 21:18
Сообщение
|
![]() |
Ну так, стоящие предложения еще будут ? Надо наверно нуб`а подождать, у него было это осуществлено с нуб'ом, мы это реализовали через CFQ шедуллер, входящий в основную ветку ядра Linux. То бишь нагрузку мы стали не сами контролировать, а предоставили это делать планировшику (CFQ), как ему это будет делать удобнее, то есть динамическое распределение нагрузки по CPU, а не жесткое привязывание. (запуск процесса c task флагом 0xF) |
Поблагодарили 1 раз
|
|
TrikSer
|
12.8.2011, 22:34
Сообщение
|
|
|
с нуб'ом, мы это реализовали через CFQ шедуллер, входящий в основную ветку ядра Linux. То бишь нагрузку мы стали не сами контролировать, а предоставили это делать планировшику (CFQ), как ему это будет делать удобнее, то есть динамическое распределение нагрузки по CPU, а не жесткое привязывание. (запуск процесса c task флагом 0xF) Ну а подробней все это дело. Я хоть и не дуб в лине, но для меня это уже сложновато. Или только платные консультаций ? |
|
|
|
Flomik
|
15.8.2011, 9:30
Сообщение
|
![]() |
незнаю как в centos, но в ubuntu выполняется через тасксет вот так
Цитата taskset -pc 0-3 1234 1234 - pid |
|
|
|
TrikSer
|
15.8.2011, 14:11
Сообщение
|
|
|
|
|
|
|
330863
|
21.8.2011, 13:10
Сообщение
|
![]() |
c0rax,
как включить данный планировшик в ядро ? |
|
|
|
c0rax
|
21.8.2011, 13:54
Сообщение
|
![]() |
|
|
|
|
330863
|
21.8.2011, 15:19
Сообщение
|
![]() |
c0rax,
Код server linux # zcat /proc/config.gz | grep CFQ CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_CFQ=y server linux # :biggrin: я даже не знал) |
|
|
|
coolman
|
4.9.2011, 19:55
Сообщение
|
|
|
ребятки как я не старался не хочет между ядрами распределяться, жрет одно ядро и все тут
taskset -c 0-1 по ядрам да можно распределить, а вот что бы два захватил не хочет, помогите, сильная нагрузка на проц, при 15 игроках 70-80%, фпс естественно проседает, распределить бы между 2 ядрами.
Отредактировал: coolman, - 5.9.2011, 6:29
|
|
|
|
![]() ![]() |