Jump to content

Ориентированный на данные дизайн

В вычислительной технике проектирование , ориентированное на данные, — это подход к оптимизации программ, основанный на эффективном использовании кэша ЦП , часто используемый при разработке видеоигр . [ 1 ] Подход заключается в том, чтобы сосредоточиться на расположении данных, разделении и сортировке полей в зависимости от того, когда они необходимы, а также подумать о преобразовании данных. Среди сторонников - Майк Эктон, [ 2 ] Скотт Мейерс , [ 3 ] и Джонатан Блоу .

Параллельный массив (или структура массивов ) является основным примером проектирования, ориентированного на данные. Он контрастирует с набором структур, типичных для объектно-ориентированных проектов.

Определение дата-ориентированного проектирования как парадигмы программирования может показаться спорным, поскольку многие считают, что его можно использовать бок о бок с другой парадигмой. [ 4 ] но из-за акцента на размещении данных он также несовместим с большинством других парадигм. [ 1 ]

Эти методы стали особенно популярными в середине-конце 2000-х годов во время седьмого поколения игровых консолей , включая IBM PowerPC на базе консоли PlayStation 3 (PS3) и Xbox 360 . Исторически сложилось так, что игровые консоли часто имеют относительно слабые центральные процессоры (ЦП) по сравнению с лучшими аналогами настольных компьютеров. Это выбор конструкции, позволяющий выделить больше мощности и транзисторного ресурса графическим процессорам (GPU). Например, процессоры 7-го поколения не производились с современными процессорами исполнения вне порядка , а вместо этого использовали процессоры с выдержкой порядка с высокими тактовыми частотами и глубокими конвейерами . Кроме того, в большинстве типов вычислительных систем основная память расположена на расстоянии сотен тактов от процессорных элементов . Кроме того, поскольку процессоры стали быстрее наряду со значительным увеличением объема основной памяти, происходит массовое потребление данных, что увеличивает вероятность промахов кэша в общей шине , иначе называемой узким местом фон Неймана. . Следовательно, локальные эталонные для контроля производительности использовались методы, что требовало улучшения шаблонов доступа к памяти для устранения узких мест. Некоторые программные проблемы были аналогичны тем, которые наблюдались на Itanium , и требовали развертывания цикла для предварительного планирования.

Контраст с ориентацией объекта

[ редактировать ]

Утверждается, что традиционные объектно-ориентированного программирования (ООП) приводят к плохой локальности данных, принципы [ 5 ] [ 6 ] тем более, если полиморфизм времени выполнения ( динамическая диспетчеризация ) (что особенно проблематично на некоторых процессорах). используется [ 7 ] [ 1 ] Хотя ООП, кажется, «организует код вокруг данных», на самом деле оно организует исходный код вокруг типов данных , а не физически группирует отдельные поля и массивы в эффективном формате для доступа к ним определенных функций. Более того, он часто скрывает детали макета под слоями абстракции , а программист, ориентированный на данные, хочет учитывать это в первую очередь.

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Ллопис, Ноэль (4 декабря 2009 г.). «Информационно-ориентированный дизайн» . Data-Oriented Design (или почему вы можете выстрелить себе в ногу с помощью ООП) . Проверено 17 апреля 2020 г.
  2. ^ «CppCon 2014: Майк Эктон «Data-Oriented Design и C++» » . Ютуб .
  3. ^ «code::dive Conference 2014 — Скотт Мейерс: Кэш процессора и почему вас это волнует» . Ютуб .
  4. ^ Ричард Фабиан (8 октября 2018 г.). «Информационно-ориентированный дизайн» . www.dataorienteddesign.com . Проверено 20 декабря 2023 г.
  5. ^ «КОНФЕРЕНЦИЯ ДЛЯ РАЗРАБОТЧИКОВ INTEL ® HPC ПОЛУЧИТЕ ВАШЕ ПОНИМАНИЕ. ПОВЫШИТЕ ЭФФЕКТИВНОСТЬ ВЕКТОРИЗАЦИИ С ИСПОЛЬЗОВАНИЕМ ШАБЛОНА РАЗМЕЩЕНИЯ ДАННЫХ INTEL SIMD (INTEL SDLT)» (PDF) .
  6. ^ Хольгер Хоманн; Франсуа Лаэнен (2018). «SoAx: универсальная структура массивов C++ для обработки частиц в кодах HPC». Компьютерная физика. Коммуникации . 224 : 325–332. arXiv : 1710.03462 . Бибкод : 2018CoPhC.224..325H . дои : 10.1016/j.cpc.2017.11.015 . S2CID   2878169 .
  7. ^ «Что плохого в объектно-ориентированном проектировании? Какой в ​​нем вред?» . описывает проблемы с вызовами виртуальных функций, например, промахи i-cache
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 29c9f944b9086d9e6dd587fa584d7f84__1714612860
URL1:https://arc.ask3.ru/arc/aa/29/84/29c9f944b9086d9e6dd587fa584d7f84.html
Заголовок, (Title) документа по адресу, URL1:
Data-oriented design - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)