Kachubey Posted May 24, 2019 Share Posted May 24, 2019 Бывают алгоритмы, по природе своей не поддающиеся распараллеливанию. Даже если распараллеливание возможно для конкретного алгоритма - это не значит что его нужно обязательно реализовывать, т.к. это неизбежно приводит к усложнению продукта, появлению сопутствующих очень непростых вопросов (разделение работы на задачи, взаимодействие между процессами, сбор и объединение результатов). Не факт что в конкретном случае получится лучше (выше, быстрее) чем в однопоточной реализации. Практика перехода от монолитов к распределённым системам показывает падение производительности, которое компенсируется за счет использования дополнительных ресурсов (свойство масштабируемости). Кроме этого "нельзя просто взять и переписать с нуля" продукт, который разрабатывался десятки лет. Оптимизация - задача (процесс) нахождения максимума/минимума какой-то характеристики. Может ли симулятор как программа иметь внутри себя такую задачу (процесс)? Какую характеристику симулятор должен минимизировать/максимизировать? Спасибо большое за подробный ответ :thumbup: [sIGPIC]https://forums.eagle.ru/signaturepics/sigpic100590_1.gif[/sIGPIC] Link to comment Share on other sites More sharing options...
azm Posted May 24, 2019 Share Posted May 24, 2019 Спасибо большое за подробный ответ :thumbup: Как-то вы легко согласились, некоторые утверждения так скажем не бесспорные )) Link to comment Share on other sites More sharing options...
eXceed Posted May 25, 2019 Share Posted May 25, 2019 Не нашёл подходящей темы, напишу тут. Подскажите в чем сложность распараллеливать симуляцию и по какой причине почти поголовно все симуляторы не имеют оптимизации? Ответ интересует чисто технический Вот представь, что тебе надо посчитать гипотенузу в прямоугольном треугольнике. a2 + b2 = c2. Эту задачу ты не сможешь посчитать на двух ядрах и что бы параллельно, так как сначала ты берешь сумму квадратов, а потом извлекаешь корень. Хорошо распараллеливается код в котором много однотипных действий вроде математики с векторами. Но опять же, что бы сложить пару векторов запускать потоки? Нет. Запуск потока очень дорого, за это время тысячи векторов можно успеть сложить. Поэтому там другая "параллельность" в виде SSE/AVX да и просто за счет того, что программист подумал о локальности данных в коде и процессор эффективно нагружает конвейер и кэш линии. Да и сам процессор с компилятором умеют оптимизировать. Хуже всего этому поддается игровая логика из-за обилия зависимостей от других подсистем. Эдакая машина состояний очень большая и сложная. Если читать в многопотоке так же легко как и в однопотоке, то запись - изменение состояния всей логической схемы симулятора - породит безумие из синхронизаций между подсистемами. Выгода здесь очень не очевидная и очень много проблем и побочных эффектов может возникнуть. Если обратить внимание на историю развития гейм индустрии и пришествие многопотока, то станет заметно, что этой фичей обзавелись в первую очередь молодые игры. Потому что дизайн в код закладывался многопоточный. Симуляторы разрабатывают десятилетиями. Я застал еще во Фланкер 2.5 и джойстики для гейм порта. А это было 20 лет назад! А ведь был ранее и Фланкер 1.0, в 90е! Какой тогда многопоток? Об этом слышали только в кино. И вот только к 2010м назрел вопрос. За это время столько кода написано, что взять и переделать надо столько же времени, если не больше. Вот поэтому у симов плохо с оптимизацией, но не все так плохо как кажется. Welcome to the Rock Link to comment Share on other sites More sharing options...
R.Deckard Posted May 25, 2019 Share Posted May 25, 2019 Кто поможет какой самый лучший проц на сокете 1155 для DCS? хочу прокачаться без замены материнки. сейчас стоит i5-3470 [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
Dell_Murrey-RUS Posted May 25, 2019 Share Posted May 25, 2019 Кто поможет какой самый лучший проц на сокете 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 Link to comment Share on other sites More sharing options...
R.Deckard Posted May 26, 2019 Share Posted May 26, 2019 Если 1155 без v2, то выбор то и не велик. Из самых лучших есть только i7 Ivy 3770. Архитектура у него такая же как и у моего 4820k. И проблем с DCS при разумном разгоне ЦП я не испытываю даже в 4k. Разве что мой стоил дешевле 9 т.руб. А 3770 стоит дороговато, на мой взгляд. Плюс к нему подойдет память и 1866 МГц и есть большая вероятность, что и 2133 МГц сможет работать, как у меня. Сделать апгрейд возможно и даже вполне с достойным результатом. Это хорошо, мой выбор пока пал на i7-3770K. Другого более достойного варианта не нашел пока. [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
Китайский комсомолец Posted May 30, 2019 Share Posted May 30, 2019 вопрос - Винда привязывает ДКС к какому то одному ядру? Или чередует-раскидывает по всем ядрам? Link to comment Share on other sites More sharing options...
sea2sky Posted May 30, 2019 Share Posted May 30, 2019 Это хорошо, мой выбор пока пал на 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 More sharing options...
Вова Posted May 31, 2019 Share Posted May 31, 2019 Доброго времени суток! Хочу поставить новую карту Видеокарта 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 More sharing options...
electro_monkey Posted May 31, 2019 Share Posted May 31, 2019 Дорогущий больно и гонится не более чем на 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 More sharing options...
sea2sky Posted May 31, 2019 Share Posted May 31, 2019 "без увеличения напряжения" - это то есть на каком напряжении? В биосе (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 More sharing options...
R.Deckard Posted June 1, 2019 Share Posted June 1, 2019 Дорогущий больно и гонится не более чем на 4.7GHz. Я вот только что взял i5-9600К, дёшево и сердито. Идёт на 4.8 без увеличения напряжения. Увы.... сокет не подходит. [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
electro_monkey Posted June 1, 2019 Share Posted June 1, 2019 В биосе (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 More sharing options...
MadMan Posted June 1, 2019 Share Posted June 1, 2019 Дорогущий больно и гонится не более чем на 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 More sharing options...
Keshman Posted June 1, 2019 Share Posted June 1, 2019 А "мать" какую под него взять? Наверно народ посоветует что то из линейки Z390. Я себе взял TUF Z390-PLUS GAMING (WI-FI) Мне просто надо была недорогая материнка с Bluetooth для контроллеров ВР. Вроде сдружились они не плохо (проц и материнка) Но это мой личный выбор и т.д... я совсем не знаток в железе. Думаю ща народ советами по материнке отпишется) Вот скрины работы (нагрузки ядер) проца в DCS в ВР настройки выше средних, и без ВР настройки высокие вперемешку с оч высокие. Не говорите что мне надо делать и я не скажу куда вам надо идти… | 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 More sharing options...
electro_monkey Posted June 1, 2019 Share Posted June 1, 2019 (edited) А "мать" какую под него взять? С точки зрения реализации VRM процессора у Аоруса (Гигабайта) удачная серия досок на Z390, память они правда гонят так себе. Edited June 1, 2019 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 More sharing options...
sea2sky Posted June 3, 2019 Share Posted June 3, 2019 А "мать" какую под него взять? Я, собственно, и взял вышеупомянутую 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 More sharing options...
azm Posted June 3, 2019 Share Posted June 3, 2019 (edited) вопрос - Винда привязывает ДКС к какому то одному ядру? Или чередует-раскидывает по всем ядрам? По умолчанию - не привязывает. По ядрам раскидывает, иногда чередует, иногда - нет. Планировщик ОС исходя из своей логики и текущего состояния выделяет потокам процессорное время. Можно процессам установить свойство affinity (в переводе надмозгов - Задать сходство), т.е. перечислить на каких ядрах можно выделять время для этого процесса. Таким образом можно указать одно ядро - процесс будет выполняться только на этом ядре, но надо понимать, что планировщик может назначать на это ядро и другие процессы, если данный процесс использует не всё время ядра. Из общих соображений понятно, что частое "перескакивание" по ядрам скорее всего не помогает в достижении максимальной производительности конкретного процесса, но это не обязательно "проблема-проблема", тут нужно учитывать: а) процессов в обычном виндовсе выполняется много (десятки-сотни, а потоков - тысячи); б) планировщик ОС разрабатывают очень неглупые люди (что бы там не писали ламеры-кул-хацкеры) и "тонкий тюнинг" на этом уровне - это скорее всего поиск волшебного параметра "fast=true". Можно заморочиться с изучением документации, поиском инструментов (с год назад что-то пробегало такое от интела), но вряд ли будет видимый прирост, к тому же не факт, что в конкретной задаче именно это узкое место. Edited June 3, 2019 by azm Link to comment Share on other sites More sharing options...
Китайский комсомолец Posted June 4, 2019 Share Posted June 4, 2019 Спасибо. Я чего спросил - в игре частота по ядрам "гуляет", а зафиксировать постоянную макс. на все ядра не получается. Выходит и нет смысла? Link to comment Share on other sites More sharing options...
azm Posted June 4, 2019 Share Posted June 4, 2019 Если речь про Turbo Boost - он включен по-умолчанию. И для однопоточного приложения это как раз должно давать максимальный приход без доп. настроек. Link to comment Share on other sites More sharing options...
Китайский комсомолец Posted June 4, 2019 Share Posted June 4, 2019 Однопоточное, но этот один поток по разным ядрам может разбрасываться-перекидываться (или я ошибаюсь?) , а на них частота плавает в том числе и от Турбобуста. Link to comment Share on other sites More sharing options...
azm Posted June 4, 2019 Share Posted June 4, 2019 (edited) Да, всё так. Если другие процессы сильно ресурсы не отъедают - частота турбобуста будет максимальная. Edited June 4, 2019 by azm Link to comment Share on other sites More sharing options...
eXceed Posted June 4, 2019 Share Posted June 4, 2019 (edited) Однопоточное, но этот один поток по разным ядрам может разбрасываться-перекидываться (или я ошибаюсь?) , а на них частота плавает в том числе и от Турбобуста. Поток может менять ядра так же как и процесс его породивший. Как раз когда в диспетчере меняете афинити, то вы процессу меняете ядро, а потоки которые он родит уже ОС будет запускать исходя из планировщика потоков и сама будет решать где его выполнять. Но тем не менее ОС старается не менять ядра без необходимости, так как это очень дорого по времени. Поток может перескочить на другое ядро, если не брать в расчет ошибки планировщика, например в случае когда наступает его время выполнения, а ядро на котором он сейчас находится (фактически реально его данные находятся уже в кэш на самом ядре), времени ему дать не может потому что там все задачи сожрали все время и у них еще их burst time не вышел. Ситуация редкая сейчас на самом деле. С развитием многоядерности планировщики ОС научились грамотней рулить этим хозяйством. Edited June 4, 2019 by eXceed Welcome to the Rock Link to comment Share on other sites More sharing options...
Китайский комсомолец Posted June 5, 2019 Share Posted June 5, 2019 То есть, то что частота меняется по ядрам никак не сказывается на ДКС? И лочить все ядра на макс. частоту нет смысла? Link to comment Share on other sites More sharing options...
eXceed Posted June 5, 2019 Share Posted June 5, 2019 (edited) То есть, то что частота меняется по ядрам никак не сказывается на ДКС? И лочить все ядра на макс. частоту нет смысла? Нет, не сказывается практически никак. Возможно будет профит на уровне погрешности пока система управляющая частотой сообразит что надо делать, но там даже с точки зрения процессора работает быстро весьма. Потому что темп выполнения инструкций мало зависит от частоты если есть свободные ресурсы у процессора(конечно в разумных пределах. 5ГГц будет в любом случае быстрее 3ГГц). Если залочить частоты, то он у тебя будет просто больше простаивать в бесконечных NOP и греть воздух. Edited June 5, 2019 by eXceed Welcome to the Rock Link to comment Share on other sites More sharing options...
Recommended Posts