Information Technology Reference
In-Depth Information
This work summarizes several works of the authors, more specially [ 2 - 6 ],
which presented different approaches for automatic task distribution between CPU
cores and GPU in game and simulation environments, for single or multithreaded
loops. In this work, we extend and describe more details related to the distribution
of tasks of main loop and a smart load/balancing of the tasks.
This chapter is organized as follows: Sect. 2.2 presents a set of real-time loop
model concepts found in the literature, specially coming from the gaming field.
Section 2.3 presents a framework architecture concept that can be used for mul-
tiplatform simulation environments, with dynamic load balancing. Finally we
present the conclusions.
2.2 Related Works
The real-time loop is the underlying structure games and real-time simulations are
built upon. These loops are regarded as real time due to the time constraints to run
the game-related tasks. This loop may become a bottleneck in complex simula-
tions, due the complexity of physics and visualization requirements.
As mentioned earlier, the tasks that a computer simulation should execute can
be broken down into three general groups: data acquisition, data processing, and
presentation. Data acquisition means gathering data from available input devices,
such as, mice, joysticks, keyboards, motion sensors, and dedicated input devices,
such as an aircraft panel or car instrumentation. The data processing part refers to
applying the user input into the application (user commands), applying simulation
rules (the simulation logic), simulating the world physics, the artificial intelli-
gence, and related tasks. The presentation refers to providing feedback to the user
about the current simulation state, through images, audio, and in some cases
motion.
Real-time simulators provide the illusion that everything is happening at once.
Since these systems are interactive applications, the user will not have a good
experience if the systems are not able to deliver its work on time. This issue
characterizes these systems as heavy real-time applications. Although the real-time
loop represents the heart of real-time simulations, it is not easy to find academic
works specifically devoted to this subject. The works by Valente et al. [ 7 ], Dalmau
[ 8 ], Dickinson [ 9 ], Watte [ 10 ], Gabb and Lake [ 11 ], and Monkkonen [ 12 ] are
among the few ones.
The simplest real-time loop models are the coupled ones. The Simple Coupled
Model [ 13 ] is perhaps the most straightforward approach to modeling real-time
loops. It consists of sequentially arranging the tasks in a main loop. Figure 2.1
depicts this model.
The uncoupled models separate the rendering and update stages, so they can run
independently, in theory. These models consider single-thread [ 9 , 13 ] and multi-
thread designs [ 11 - 13 ]. The Multithread Uncoupled Model [ 13 ] and the Single-
thread Uncoupled Model [ 13 ] try to bring determinism to the simulator execution
Search WWH ::




Custom Search