Jump to content

Конфигурация системы для DCS


TVX

Recommended Posts

Бывают алгоритмы, по природе своей не поддающиеся распараллеливанию.

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

Практика перехода от монолитов к распределённым системам показывает падение производительности, которое компенсируется за счет использования дополнительных ресурсов (свойство масштабируемости).

Кроме этого "нельзя просто взять и переписать с нуля" продукт, который разрабатывался десятки лет.

 

Оптимизация - задача (процесс) нахождения максимума/минимума какой-то характеристики. Может ли симулятор как программа иметь внутри себя такую задачу (процесс)? Какую характеристику симулятор должен минимизировать/максимизировать?

 

Спасибо большое за подробный ответ :thumbup:

Link to comment
Share on other sites

Спасибо большое за подробный ответ :thumbup:

Как-то вы легко согласились, некоторые утверждения так скажем не бесспорные ))

Link to comment
Share on other sites

Не нашёл подходящей темы, напишу тут.

 

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

Ответ интересует чисто технический

Вот представь, что тебе надо посчитать гипотенузу в прямоугольном треугольнике. a2 + b2 = c2. Эту задачу ты не сможешь посчитать на двух ядрах и что бы параллельно, так как сначала ты берешь сумму квадратов, а потом извлекаешь корень.

Хорошо распараллеливается код в котором много однотипных действий вроде математики с векторами. Но опять же, что бы сложить пару векторов запускать потоки? Нет. Запуск потока очень дорого, за это время тысячи векторов можно успеть сложить. Поэтому там другая "параллельность" в виде SSE/AVX да и просто за счет того, что программист подумал о локальности данных в коде и процессор эффективно нагружает конвейер и кэш линии. Да и сам процессор с компилятором умеют оптимизировать.

 

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

 

 

Если обратить внимание на историю развития гейм индустрии и пришествие многопотока, то станет заметно, что этой фичей обзавелись в первую очередь молодые игры. Потому что дизайн в код закладывался многопоточный. Симуляторы разрабатывают десятилетиями. Я застал еще во Фланкер 2.5 и джойстики для гейм порта. А это было 20 лет назад! А ведь был ранее и Фланкер 1.0, в 90е! Какой тогда многопоток? Об этом слышали только в кино. И вот только к 2010м назрел вопрос. За это время столько кода написано, что взять и переделать надо столько же времени, если не больше. Вот поэтому у симов плохо с оптимизацией, но не все так плохо как кажется.

Welcome to the Rock

Link to comment
Share on other sites

Кто поможет какой самый лучший проц на сокете 1155 для DCS? хочу прокачаться без замены материнки.

сейчас стоит i5-3470

 

Если 1155 без v2, то выбор то и не велик. Из самых лучших есть только i7 Ivy 3770.

Архитектура у него такая же как и у моего 4820k. И проблем с DCS при разумном разгоне ЦП я не испытываю даже в 4k. Разве что мой стоил дешевле 9 т.руб. А 3770 стоит дороговато, на мой взгляд. Плюс к нему подойдет память и 1866 МГц и есть большая вероятность, что и 2133 МГц сможет работать, как у меня. Сделать апгрейд возможно и даже вполне с достойным результатом.

MB: MPG-Z390 GP / i7 9700KF 4,8 ГГц / DDR4 64 Gb 3466 МГц / GTX 2080Super / Acer 43" ET430KWMIIQPPX 4k / Win 10

 

Podp_39_Su-27-45.png

Link to comment
Share on other sites

Если 1155 без v2, то выбор то и не велик. Из самых лучших есть только i7 Ivy 3770.

Архитектура у него такая же как и у моего 4820k. И проблем с DCS при разумном разгоне ЦП я не испытываю даже в 4k. Разве что мой стоил дешевле 9 т.руб. А 3770 стоит дороговато, на мой взгляд. Плюс к нему подойдет память и 1866 МГц и есть большая вероятность, что и 2133 МГц сможет работать, как у меня. Сделать апгрейд возможно и даже вполне с достойным результатом.

 

Это хорошо, мой выбор пока пал на i7-3770K. Другого более достойного варианта не нашел пока.

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Это хорошо, мой выбор пока пал на i7-3770K. Другого более достойного варианта не нашел пока.

 

 

Дорогущий больно и гонится не более чем на 4.7GHz. Я вот только что взял i5-9600К, дёшево и сердито. Идёт на 4.8 без увеличения напряжения.

i5-9600K@4.8GHz 32Gb DDR4 Asus TUF rtx3080 OC Quest Pro Warthog on Virpil base

Link to comment
Share on other sites

Доброго времени суток! Хочу поставить новую карту Видеокарта GIGABYTE nVidia GeForce GTX 1070 , GV-N1070G1 GAMING-8GD, 8Гб, GDDR5, OC.Сейчас у меня вот такая система i5-3470 CPU @ 320Hz 320Hz (ОЗУ) 16,0ГБ GeForce GTX 770 2ГБ .Подскажите,этого будет достаточно или процессор тоже под замену?

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

Link to comment
Share on other sites

Дорогущий больно и гонится не более чем на 4.7GHz. Я вот только что взял i5-9600К, дёшево и сердито. Идёт на 4.8 без увеличения напряжения.

"без увеличения напряжения" - это то есть на каком напряжении?

i5-9600K / RTX 2060 / 32 GB DDR4-3200 CL16 / Win10 x64 / Cobra M5 (BRD)+ Gametrix ECS / Opentrack

Link to comment
Share on other sites

"без увеличения напряжения" - это то есть на каком напряжении?

 

 

В биосе (Gigabyte) я выставил "Normal", т.е. 1.2v. Когда проц не загружен напряжение 0.6v, под стресс тестом - 1.18 максимум.

i5-9600K@4.8GHz 32Gb DDR4 Asus TUF rtx3080 OC Quest Pro Warthog on Virpil base

Link to comment
Share on other sites

Дорогущий больно и гонится не более чем на 4.7GHz. Я вот только что взял i5-9600К, дёшево и сердито. Идёт на 4.8 без увеличения напряжения.

 

Увы.... сокет не подходит.

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

В биосе (Gigabyte) я выставил "Normal", т.е. 1.2v. Когда проц не загружен напряжение 0.6v, под стресс тестом - 1.18 максимум.

 

Ну 1.2В - это достаточно условный номинал, на дефолтных настройках биоса будет наверняка меньше. В любом случае у тебя достаточно удачный экземпляр, мой @4.8Ггц проходит Linx без ошибок минимум на 1.26 В.

i5-9600K / RTX 2060 / 32 GB DDR4-3200 CL16 / Win10 x64 / Cobra M5 (BRD)+ Gametrix ECS / Opentrack

Link to comment
Share on other sites

Дорогущий больно и гонится не более чем на 4.7GHz. Я вот только что взял i5-9600К, дёшево и сердито. Идёт на 4.8 без увеличения напряжения.

 

А "мать" какую под него взять?

i5-9600K@4.8/GB Z390 AORUS PRO/RAM Corsair 32Gb/970EVO SSD 2TB/HDD 1TB+2TB Black/GigaByte RTX2080/3xAOC d2757ph(5760х1080)/Thrustmaster Hotas Warthog + VKB Fat Mamba/W10x64

Link to comment
Share on other sites

А "мать" какую под него взять?

Наверно народ посоветует что то из линейки Z390.

Я себе взял TUF Z390-PLUS GAMING (WI-FI) Мне просто надо была недорогая материнка с Bluetooth для контроллеров ВР.

Вроде сдружились они не плохо (проц и материнка)

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

Вот скрины работы (нагрузки ядер) проца в DCS в ВР настройки выше средних, и без ВР настройки высокие вперемешку с оч высокие.

 

 

bcd70038bca7.png

5ea79e1c55cb.png

 

 

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

Link to comment
Share on other sites

А "мать" какую под него взять?

 

С точки зрения реализации VRM процессора у Аоруса (Гигабайта) удачная серия досок на Z390, память они правда гонят так себе.


Edited by electro_monkey

i5-9600K / RTX 2060 / 32 GB DDR4-3200 CL16 / Win10 x64 / Cobra M5 (BRD)+ Gametrix ECS / Opentrack

Link to comment
Share on other sites

А "мать" какую под него взять?

 

 

Я, собственно, и взял вышеупомянутую Gigabyte Aorus Pro, именно за реализацию VRM.

i5-9600K@4.8GHz 32Gb DDR4 Asus TUF rtx3080 OC Quest Pro Warthog on Virpil base

Link to comment
Share on other sites

вопрос - Винда привязывает ДКС к какому то одному ядру? Или чередует-раскидывает по всем ядрам?

По умолчанию - не привязывает.

По ядрам раскидывает, иногда чередует, иногда - нет.

 

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

Можно процессам установить свойство affinity (в переводе надмозгов - Задать сходство), т.е. перечислить на каких ядрах можно выделять время для этого процесса.

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

Из общих соображений понятно, что частое "перескакивание" по ядрам скорее всего не помогает в достижении максимальной производительности конкретного процесса, но это не обязательно "проблема-проблема", тут нужно учитывать: а) процессов в обычном виндовсе выполняется много (десятки-сотни, а потоков - тысячи); б) планировщик ОС разрабатывают очень неглупые люди (что бы там не писали ламеры-кул-хацкеры) и "тонкий тюнинг" на этом уровне - это скорее всего поиск волшебного параметра "fast=true".

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


Edited by azm
Link to comment
Share on other sites

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

Link to comment
Share on other sites

Да, всё так. Если другие процессы сильно ресурсы не отъедают - частота турбобуста будет максимальная.


Edited by azm
Link to comment
Share on other sites

Однопоточное, но этот один поток по разным ядрам может разбрасываться-перекидываться (или я ошибаюсь?) , а на них частота плавает в том числе и от Турбобуста.

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

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


Edited by eXceed

Welcome to the Rock

Link to comment
Share on other sites

То есть, то что частота меняется по ядрам никак не сказывается на ДКС? И лочить все ядра на макс. частоту нет смысла?

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


Edited by eXceed

Welcome to the Rock

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...