diff --git a/joss.04592/10.21105.joss.04592.crossref.xml b/joss.04592/10.21105.joss.04592.crossref.xml new file mode 100644 index 0000000000..e62cd60f9e --- /dev/null +++ b/joss.04592/10.21105.joss.04592.crossref.xml @@ -0,0 +1,168 @@ + + + + 20220812T122750-03852cfa9a6f2245ce0d4e91e209316057fe4d86 + 20220812122750 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org/ + + + + + 08 + 2022 + + + 7 + + 76 + + + + SimSGamE : Scheduling simulator for modern game +engines + + + + Mustapha + Regragui + https://orcid.org/0000-0001-6316-8079 + + + Baptiste + Coye + https://orcid.org/0000-0002-7619-4492 + + + Laercio Lima + Pilla + https://orcid.org/0000-0003-0997-586X + + + Raymond + Namyst + https://orcid.org/0000-0001-7734-1258 + + + Denis + Barthou + https://orcid.org/0000-0001-7110-2037 + + + + 08 + 12 + 2022 + + + 4592 + + + 10.21105/joss.04592 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.6984771 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/4592 + + + + 10.21105/joss.04592 + https://joss.theoj.org/papers/10.21105/joss.04592 + + + https://joss.theoj.org/papers/10.21105/joss.04592.pdf + + + + + + Effectively scheduling hard and soft +real-time tasks on multiprocessors + Nascimento + 2021 IEEE 27th real-time and embedded +technology and applications symposium (RTAS) + 10.1109/RTAS52030.2021.00025 + 2021 + Nascimento, F. M. S., & Lima, G. +(2021). Effectively scheduling hard and soft real-time tasks on +multiprocessors. 2021 IEEE 27th Real-Time and Embedded Technology and +Applications Symposium (RTAS), 210–222. +https://doi.org/10.1109/RTAS52030.2021.00025 + + + Timing-anomaly free dynamic scheduling of +periodic DAG tasks with non-preemptive nodes + Dai + 2021 IEEE 27th international conference on +embedded and real-time computing systems and applications +(RTCSA) + 10.1109/RTCSA52859.2021.00022 + 2021 + Dai, G., Mohaqeqi, M., & Yi, W. +(2021). Timing-anomaly free dynamic scheduling of periodic DAG tasks +with non-preemptive nodes. 2021 IEEE 27th International Conference on +Embedded and Real-Time Computing Systems and Applications (RTCSA), +119–128. +https://doi.org/10.1109/RTCSA52859.2021.00022 + + + Intel games task scheduler + Alfieri + 2019 + Alfieri, B. (2019). Intel games task +scheduler. +https://github.com/GameTechDev/GTS-GamesTaskScheduler. + + + Game engine architecture + Gregory + 2018 + Gregory, J. (2018). Game engine +architecture (3rd ed.). Taylor; Francis Ltd. + + + Global Gaming Market - Growth, Trends, +Covid-19 Impact, and Forecasts (2022–2027) + Mordor Intelligence + Mordor Intelligence. (n.d.). Global +Gaming Market - Growth, Trends, Covid-19 Impact, and Forecasts +(2022–2027). +https://www.mordorintelligence.com/industry-reports/global-gaming-market. + + + + + + diff --git a/joss.04592/10.21105.joss.04592.jats b/joss.04592/10.21105.joss.04592.jats new file mode 100644 index 0000000000..06010d703b --- /dev/null +++ b/joss.04592/10.21105.joss.04592.jats @@ -0,0 +1,390 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +4592 +10.21105/joss.04592 + +SimSGamE : Scheduling simulator for modern game +engines + + + +0000-0001-6316-8079 + +Regragui +Mustapha + + + + +0000-0002-7619-4492 + +Coye +Baptiste + + + + + +0000-0003-0997-586X + +Pilla +Laercio Lima + + + + + +0000-0001-7734-1258 + +Namyst +Raymond + + + + + + +0000-0001-7110-2037 + +Barthou +Denis + + + + + + + +Inria Bordeaux, France + + + + +Ubisoft Bordeaux, France + + + + +CNRS, France + + + + +Univ. Bordeaux, France + + + + +Labri, France + + + + +Bordeaux INP, France + + + + +27 +6 +2022 + +7 +76 +4592 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +Task Programming +Video-game engine +Scheduling +Soft Real Time Scheduling +C++ + + + + + + Summary +

The video game market is valued at over USD$100 billion + (Mordor + Intelligence, n.d.) and impacts computing both at the hardware + and software levels. It produces and sells tens of millions of video + games and consoles yearly. The variety of devices running games is + very large, from personal computers, consoles and smartphones to Cloud + gaming servers. In order to develop these games more easily and allow + them to be ported to different platforms, developers use a key + software component called the game engine.

+

Game engines are at the heart of the design of modern video games. + They handle most of the components of the game, and allow the + generation of each frame (image) displayed on the player screen. They + aim to keep a high frame rate (30 to 60 frames per seconds) by + scheduling the tasks required to complete such computations.

+

Each task represents a functionality written by a given team at a + given moment in the lifetime of the game engine. These tasks have + precedence constraints that must be respected to ensure the + execution’s correctness, which is organised as a directed acyclic + graph (DAG), and they have varied execution times. Scheduling such + tasks is NP-hard and has not been studied in detail in the context of + game engines. A better understanding of this problem could lead to + optimizations for the benefit of players and developers.

+

Our code is focused on modeling a modern game engine and answering + the following three questions:

+ + +

Can state-of-the-art scheduling strategies improve the + performance of the game engine?

+
+ +

Can changes in the scheduling mechanism reduce the gap between + produced schedules and the critical path?

+
+ +

Can small changes to the task graph lead to performance + improvements?

+
+
+
+ + Statement of need +

SimSGamE was created in order to study the scheduling of game + engines. Given the lack of studies on this problem, our efforts have + been dedicated to finding and adapting algorithms and heuristics + proposed in other contexts. We find that there is value in bringing to + light new applications and knowledge about existing algorithms.

+

The software simulates the behavior of game engines using two + files:

+ + +

a dependency file describing links between tasks and the + structure of the game engine to be simulated, and

+
+ +

a tasks file describing key values for tasks (steps, mean, + minimum, maximum, std_dev) for both moderated and intensive use of + the engine.

+
+
+

Using these two files, SimSGamE generates randomized tasks + composing a frame respecting the statistical repartition and their + dependencies (generation may be seeded in order to enable direct + comparisons). The simulation also mimics different load evolution + (from moderate use 0% to intensive 100%) and evaluates multiple + scheduling techniques to estimate frame span and metrics, giving + information regarding heuristics efficiencies.

+

The simulation is composed of 200 generated frames with the load + parameter starting at 0 (0%) and increasing linearly up to 1 (100%) in + the 101st frame and then decreasing linearly until it reaches 0.01 + (1%) for the last frame. This provides a gradual change of load while + also generating a load peak. In order to have a better understanding + of possible optimizations and their impact on the game engine, we also + added the ability to sort subtasks (parallel for situations) by + non-increasing order of execution time. We consider this is a feasible + change to the game engine because it does not affect the actual + execution of the subtasks nor the dependencies in the task graph.

+

The number of available CPUs can be changed to fit the device to + emulate or anticipate the effects of external interference but + communication and locks are not taken into account at the moment.

+

The algorithms implemented in the code are:

+ + +

FIFO: First In First Out

+
+ +

LPT: Longest Processing Time First

+
+ +

SPT: Shortest Processing Time First

+
+ +

SLPT: LPT at a subtask level (input method name: SLRT)

+
+ +

SSPT: SPT at a subtask level (input method name: SSRT)

+
+ +

HRRN: Highest Response Ratio Next

+
+ +

WT: Longest Waiting Time First

+
+ +

HLF: Hu’s Level First with unitary processing time of each + task

+
+ +

HLFET: HLF with estimated times (input method name: Hu)

+
+ +

CG: Coffman-Graham’s Algorithm (input method name: Coffman)

+
+ +

DCP: Dynamic Critical Path Priority (input method name: + Priority)

+
+
+

In addition, the following algorithms are implemented but not used + in automatic tests:

+ + +

WL: Weighted Length algorithm

+
+ +

LFF: Latest Finished First

+
+ +

MostScussors: Most successors First

+
+ +

TOPO: topological order

+
+ +

NEH: Nawaz, Enscore, Ham algorithm

+
+ +

ACO: Ant Colony Optimization

+
+ +

Infinity: CPU amount is infinite

+
+
+

Metrics

+ + +

SF: slowest frame (maximum frame execution time)

+
+ +

DF: number of delayed frames (with 16.667 ms as the due + date)

+
+ +

CS: cumulative slowdown (with 16.667 ms as the due date)

+
+
+
+ + State of the field +

Scheduling is a well known issue that has been widely studied. + However, given the lack of studies on this particular scheduling + problem, our efforts have been dedicated to finding and adapting + algorithms and heuristics proposed in other contexts. Video games work + as soft real-time interactive simulations + (Gregory, + 2018). However, Real-Time scheduling often considers reccuring + independent tasks where earliest deadline first (EDF) heuristics are + employed + (Nascimento + & Lima, 2021). Nonetheless, the game engine contains + dependent tasks with an entire task graph to be computed at each frame + and all tasks share the same due date, obstructing the use of EDF + heuristics. Moreover, parallel task scheduling usually models tasks + using multiple resources simultaneously, but the tasks follow a + fork-join model internally. An algorithm called DynFed was proposed to + schedule parallel tasks with dependencies in real time systems by Dai + et al. + (2021), + but it focuses on periodic, independent tasks whose parallel subtasks + have dependencies, while our problem contains periodic tasks with + dependencies whose parallel subtasks are independant. The Game Task + Scheduler developed by Intel + (Alfieri, + 2019) reflects these tasks and subtasks organisation but is + developped as a tool to be integrated in a game engine and not as a + benchmark system that allows testing different heurisitcs and + evaluating performance.

+
+ + Acknowledgements +

We acknowledge contributions from Cédric Dumondelle and Hervé + Hubele during the genesis of this project.

+
+ + + + + + + NascimentoFlávia Maristela S. + LimaGeorge + + Effectively scheduling hard and soft real-time tasks on multiprocessors + 2021 IEEE 27th real-time and embedded technology and applications symposium (RTAS) + 2021 + 10.1109/RTAS52030.2021.00025 + 210 + 222 + + + + + + DaiGaoyang + MohaqeqiMorteza + YiWang + + Timing-anomaly free dynamic scheduling of periodic DAG tasks with non-preemptive nodes + 2021 IEEE 27th international conference on embedded and real-time computing systems and applications (RTCSA) + 2021 + 10.1109/RTCSA52859.2021.00022 + 119 + 128 + + + + + + AlfieriBret + + Intel games task scheduler + https://github.com/GameTechDev/GTS-GamesTaskScheduler + 201901 + + + + + + GregoryJason + + Game engine architecture + Taylor; Francis Ltd. + 2018 + 3 + + + + + + Mordor Intelligence + + Global Gaming Market - Growth, Trends, Covid-19 Impact, and Forecasts (2022–2027) + https://www.mordorintelligence.com/industry-reports/global-gaming-market + + + + +
diff --git a/joss.04592/10.21105.joss.04592.pdf b/joss.04592/10.21105.joss.04592.pdf new file mode 100644 index 0000000000..4836f9b3be Binary files /dev/null and b/joss.04592/10.21105.joss.04592.pdf differ