Data-oriented design

In computing, data-oriented design is a program optimization approach motivated by efficient usage of the CPU cache, often used in video game development.[1] The approach is to focus on the data layout, separating and sorting fields according to when they are needed, and to think about transformations of data. Proponents include Mike Acton,[2] Scott Meyers,[3] and Jonathan Blow.

The parallel array (or structure of arrays) is the main example of data-oriented design. It is contrasted with the array of structures typical of object-oriented designs.

The definition of data-oriented design as a programming paradigm can be seen as contentious as many believe that it can be used side by side with another paradigm,[4] but due to the emphasis on data layout, it is also incompatible with most other paradigms.[1]

Motives

These methods became especially popular in the mid to late 2000s during the seventh generation of video game consoles that included the IBM PowerPC based PlayStation 3 (PS3) and Xbox 360 consoles. Historically, game consoles often have relatively weak central processing units (CPUs) compared to the top-of-line desktop computer counterparts. This is a design choice to devote more power and transistor budget to the graphics processing units (GPUs). For example, the 7th generation CPUs were not manufactured with modern out-of-order execution processors, but instead use in-order processors with high clock speeds and deep pipelines. In addition, most types of computing systems have main memory located hundreds of clock cycles away from the processing elements. Furthermore, as CPUs have become faster alongside a large increase in main memory capacity, there is massive data consumption that increases the likelihood of cache misses in the shared bus, otherwise known as Von Neumann bottlenecking. Consequently, locality of reference methods have been used to control performance, requiring improvement of memory access patterns to fix bottlenecking. Some of the software issues were also similar to those encountered on the Itanium, requiring loop unrolling for upfront scheduling.

Contrast with object orientation

The claim is that traditional object-oriented programming (OOP) design principles result in poor data locality,[5][6] more so if runtime polymorphism (dynamic dispatch) is used (which is especially problematic on some processors).[7][1] Although OOP appears to "organise code around data", it actually organises source code around data types rather than physically grouping individual fields and arrays in an efficient format for access by specific functions. Moreover, it often hides layout details under abstraction layers, while a data-oriented programmer wants to consider this first and foremost.

See also

References

  1. ^ a b c Llopis, Noel (December 4, 2009). "Data-oriented design". Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP). Retrieved April 17, 2020.
  2. ^ "CppCon 2014: Mike Acton "Data-Oriented Design and C++"". YouTube. 29 September 2014.
  3. ^ "code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care". YouTube. 5 January 2015.
  4. ^ Richard Fabian (October 8, 2018). "Data-Oriented Design". www.dataorienteddesign.com. Retrieved 2023-12-20.
  5. ^ "INTEL ® HPC DEVELOPER CONFERENCE FUEL YOUR INSIGHT IMPROVE VECTORIZATION EFFICIENCY USING INTEL SIMD DATA LAYOUT TEMPLATE (INTEL SDLT)" (PDF).
  6. ^ Holger Homann; Francois Laenen (2018). "SoAx: A generic C++ Structure of Arrays for handling particles in HPC codes". Computer Physics Communications. 224: 325–332. arXiv:1710.03462. Bibcode:2018CoPhC.224..325H. doi:10.1016/j.cpc.2017.11.015. S2CID 2878169.
  7. ^ "What's wrong with Object-Oriented Design? Where's the harm in it?".describes the problems with virtual function calls, e.g., i-cache misses

Read other articles:

Coridel EntertainmentJenisPublikIndustriEntertainmentGenreK-popDidirikan2015PendiriTyler Kwon (CEO)KantorpusatSeoul, Korea SelatanWilayah operasiWorldwideIndukCoridel Group LLCAnakusahaClear Company Co., Ltd.Situs webSitus resmi Templat:Korean membutuhkan parameter |hangul=. Coridel Entertainment adalah sebuah perusahaan hiburan Korea Selatan yang didirikan pada tahun 2015 oleh Tyler Kwon.[1][2] Latar belakang Coridel Entertainment didirikan pada tahun 2015 oleh Tyler...

 

Pengimbang elektronik adalah sebuah peranti yang berfungsi membatasi arus pada sirkuit elektronik. Berbagai jenis pengimbang dapat ditemui. Bisa sesederhana resistor deret seperti pada LED dan lampu neon kecil. Untuk daya yang lebih tinggi, terlalu banyak daya yang dibuang pada pengimbang resistif, jadi peranti alternatif digunakan berdasarkan reaktansi dari induktor, kondensator atau keduanya. Akhirnya, pengimbang bisa menjadi sangat rumit seperti pengimbang elektronik terkontrol jauh pada ...

 

Chronologies Données clés 1954 1955 1956  1957  1958 1959 1960Décennies :1920 1930 1940  1950  1960 1970 1980Siècles :XVIIIe XIXe  XXe  XXIe XXIIeMillénaires :-Ier Ier  IIe  IIIe Chronologies géographiques Afrique Afrique du Sud, Algérie, Angola, Bénin, Botswana, Burkina Faso, Burundi, Cameroun, Cap-Vert, République centrafricaine, Comores, République du Congo, République démocratique du Congo, Côte d'Ivoire, Djibouti, Égyp...

Chemical compound CarfenazineClinical dataOther namesProketazine, CarphenazinLicense data US FDA: Proketazine Routes ofadministrationOralATC codenoneLegal statusLegal status Withdrawn Identifiers IUPAC name 1-(10-{3-[4-(2-Hydroxyethyl)piperazin-1-yl]propyl}-10H-phenothiazin-2-yl)propan-1-one CAS Number2622-30-2PubChem CID18104IUPHAR/BPS7140DrugBankDB01038ChemSpider17100UNIICLY16Y8Z7EChEBICHEBI:51235ChEMBLChEMBL1201328CompTox Dashboard (EPA)DTXSID8022745 ECHA InfoCard100.018.249 Chem...

 

Jessica FarolanLahirJessica Farolan2 September 1988 (umur 35)Jakarta, IndonesiaPekerjaanPsychological Health Trainer, Speaker, Pelawak tunggalTahun aktif2011—sekarang Eleonora Jessica Farolan (lahir 2 September 1988) adalah seorang psychological health trainer / speaker dan pelawak tunggal berkebangsaan Indonesia. Jessica merupakan jebolan kompetisi Stand Up Comedy Indonesia musim kedua pada tahun 2012, menjadi satu dari dua kontestan wanita bersama dengan Yulyanikasih, dan satu-...

 

British and Irish television channel Television channel Club MTVCountryUnited Kingdom and IrelandBroadcast areaUnited Kingdom and IrelandNetworkMTVProgrammingLanguage(s)EnglishPicture format576i 16:9 SDTVOwnershipOwnerViacomCBS Networks UK & AustraliaSister channels MTV MTV OMG MTV Base MTV Classic MTV Hits MTV Music MTV Rocks HistoryLaunched20 April 2001; 22 years ago (20 April 2001)Closed20 July 2020; 3 years ago (20 July 2020)Former namesMTV Dance (2001–2018...

Congiura di PisoneL'imperatore Nerone, l'obiettivo della congiura Data65 LuogoRoma Antica Stato ObiettivoUccidere l'imperatore Nerone Responsabilialmeno 41 persone, tra cui senatori, cavalieri, militari e letterati Motivazionerancori personali verso Nerone dovuti ai suoi eccessi e ai suoi atti crudeli Modifica dati su Wikidata · Manuale La congiura di Pisone, o congiura pisoniana, che prende il nome da uno dei principali congiurati, Gaio Calpurnio Pisone, fu un complotto ordito contro l...

 

Volume dari United States Reports di rak di perpustakaan hukum. United States Reports adalah catatan resmi (laporan hukum) dari putusan, perintah, tabel kasus (daftar setiap kasus yang diputuskan, dalam urutan abjad baik oleh nama pemohon (pihak yang kalah di pengadilan yang lebih rendah) dan dengan nama responden (pihak yang berlaku di bawah)), dan proses lain dari Mahkamah Agung Amerika Serikat. United States Reports, setelah dicetak dan terikat, adalah versi akhir dari pendapat pengadilan ...

 

Perwakilan Kepausan untuk Vietnam adalah seorang pejabat layanan diplomatik Takhta Suci yang bertugas untuk mengurusi dan mempertahankan kepentingan Takhta Suci dengan para pejabat Gereja Katolik, masyarakat sipil dan pejabat pemerintahan di Vietnam. Takhta Suci dan pemerintahan Vietnam tak menjalin hubungan diplomatik dan posisi Perwakilan Kepausan untuk Vietnam tak bersifat diplomatik, meskipun ia adalah anggota layanan diplomatik Takhta Suci dan pemerintah Vietnam sepakat untuk pembentukan...

此條目可能包含不适用或被曲解的引用资料,部分内容的准确性无法被证實。 (2023年1月5日)请协助校核其中的错误以改善这篇条目。详情请参见条目的讨论页。 各国相关 主題列表 索引 国内生产总值 石油储量 国防预算 武装部队(军事) 官方语言 人口統計 人口密度 生育率 出生率 死亡率 自杀率 谋杀率 失业率 储蓄率 识字率 出口额 进口额 煤产量 发电量 监禁率 死刑 国债 ...

 

Aviva MongilloLahirAviva Chiara Mongillo6 Februari 1998 (umur 26)Markham, Ontario, KanadaPendidikanSekolah Menengah Atas UnionvillePekerjaanPemeransekarangTahun aktif2016–sekarangTelevisiBackstage Workin' MomsKarier musikNama lainCarysGenrePopInstrumenVokalLabelWarner Music Canada Aviva Chiara Mongillo (lahir 6 Februari 1998), juga dikenal sebagai Carys, adalah pemeran dan penyanyi asal Kanada. Ia paling dikenal untuk perannya sebagai Alya Kendrick dalam drama Family Channel Back...

 

This article contains the Meitei alphabet. Without proper rendering support, you may see errors in display. Ethnic group ChotheChothe written in Manipuri script (Meitei script)Total population3,585 approx,[1] ManipurLanguagesChothe language (L1) Meitei language (L2)[2]ReligionChristianityRelated ethnic groupsMeitei people, other Kuki people The Chothe people is one of the Naga ethnic group found in the state of Manipur, India. Some historians and anthropologists have erroneou...

AutoSketch 9 running on Windows XP Professional AutoSketch is a 2D vector drawing program by Autodesk. It is less powerful than Autodesk's AutoCAD and does not support 3D models. AutoSketch uses SKD and SKF, in later versions, as its native format,[citation needed] but can support DWG and DXF. Version 2.1 for Windows supported macros which has been removed in later versions. History AutoSketch ad from Sep 13, 1988 issue of PC Magazine AutoSketch was developed by Foresight Resources un...

 

Headquarters of the U.S. Department of Labor Frances Perkins BuildingDepartment of Labor headquarters in Washington, D.C.Former namesNew Labor BuildingAlternative namesMain LaborGeneral informationAddress200 Constitution Avenue NWTown or cityWashington, DCCoordinates38°53′36″N 77°00′52″W / 38.893396°N 77.014514°W / 38.893396; -77.014514Completed1975InauguratedOctober 18, 1974Design and constructionArchitecture firmBrooks, Barr, Graeber and Pitts, Mebane, Ph...

 

International rowing regatta in New Zealand 1978 World Rowing ChampionshipsLogo of the 1978 World Rowing ChampionshipsVenueLake KarapiroLocationCambridge, New ZealandDates30 October – 5 NovemberNations28← 1978 Copenhagen (Lwt)1979 Bled → The 1978 World Rowing Championships were World Rowing Championships that were held from 30 October to 5 November at Lake Karapiro near Cambridge, New Zealand.[1][2][3] Twenty-eight countries were represented at ...

UmmaLokasi di IraqLokasiDhi Qar Province, IrakWilayahMesopotamiaKoordinat31°37′16.93″N 45°56′0.26″E / 31.6213694°N 45.9334056°E / 31.6213694; 45.9334056 Umma adalah sebuah kota kuno di peradaban Sumeria. Kota ini dikenal akan konflik melawan musuh bebuyutannya, Lagash.[1] Umma mencapai puncak kejayaannya pada kisaran tahun 2275 SM di bawah kepemimpinan Lugal-Zage-Si yang juga menguasai Ur dan Uruk. Di bawah Dinasti Ur III, Umma menjadi kota yan...

 

Jenő KárolyNazionalità Ungheria Calcio RuoloAttaccante Termine carriera1920 - calciatore1926 - allenatore CarrieraSquadre di club1 1903-1910 MTK Budapest93 (109)[1]1910-1921 Budapesti AK72 (10) Nazionale 1903-1918 Ungheria25 (10)[2] Carriera da allenatore 1920-1922 Savona1922-1926 Juventus 1 I due numeri indicano le presenze e le reti segnate, per le sole partite di campionato.Il simbolo → indica un trasferimento in prestito.   Modifica dati ...

 

Island in the chain that makes up Bermuda 1624 image of Castle Roads, the entrance to Castle Harbour, with Castle Island at the left. Castle Island is part of the chain which makes up Bermuda. It is located in St. George's Parish, in the northeast of the territory. The Parish of St. George's, in 1676. Castle Island lies to the South of Castle Harbour (originally Southampton Harbour). Ruined fort on Castle Island The 4-acre (1.6-hectare) island is situated close to the entrance to Castle Harbo...

Canadian baseball player Baseball player Mike ReevesCatcherBorn: (1990-09-16) September 16, 1990 (age 33)Peterborough, OntarioBats: LeftThrows: Right Michael G. Reeves (born September 16, 1990) is a Canadian former professional baseball catcher. High school and college Reeves attended St. Peter Catholic Secondary School in his home town of Peterborough, Ontario. He was selected in the 42nd round of the 2009 MLB draft by the Toronto Blue Jays, but did not sign. Reeves then attended Florid...

 

KalamayKalamay yang sudah dibuka di dalam tempurung kelapa.Nama lainCalamaySajianHidangan penutupTempat asalFilipinaDaerahBisaya, Luzon SelatanSuhu penyajianPanas, suhu kamar, dinginBahan utamaSantan, beras ketan, gula merahSunting kotak info • L • BBantuan penggunaan templat ini  Media: Kalamay Kalamay (juga dieja sebagai Calamay), yang berarti gula, adalah sebuah manisan yang populer di beberapa daerah di Filipina. Makanan ini terbuat dari santan, gula merah, dan bera...