Figure 1: We introduce a novel event evaluation framework using task parallelism on multi/many-core CPU architectures for real-time animation of complex scenes. Our framework supports 5 dynamic scheduling strategies based on OpenMP and custom Pthread-based approaches. Parallel evaluation timings for an animation frame on a 6-core CPU are displayed for the implemented custom Pthread-based (left) and OpenMP-based (right) static schedulers for a population of 1K humanoids generating 110K events per frame. Each rectangle corresponds to the evaluation of a single scene graph node (bones transformations and skeletal constraint evaluation at left and right figure parts respectively). The color of each consecutive rectangle is modified automatically for readability purpose. The gaps correspond to the time spent either in sequential execution or idle.
AbstractWe present a Many-Core Event Evaluation framework for real-time execution of many complex animation schemes applicable to a wide range of domains such as gaming and interactive pre-visualization in studio production. Our technique takes advantages of task parallelism on many-core CPU architecture using a two-level scheduling approach. Our generic approach can deal with tens of thousands event-processing nodes, event loops, non-deterministic and interaction-driven animation modifications at runtime. Versatility is further enforced through a native support of hierarchical animation graphs using prototypes and inline files. Our implementation based on the X3D event-based animation model exhibits performances approaching the theoretical upper bounds of parallelization.