Stress Testing the OpenSimulator Virtual World Server

Similar documents
Interactive Computing Devices & Applications Based on Intel RealSense Technology

ArtRage*, part of Intel Education User Guide

ArtRage part of Intel Education

AN4269. Diagnostic and protection features in extreme switch family. Document information

PIN Diode Chips Supplied on Film Frame

PERCEPTUAL COMPUTING: Perceptual 3D Editing

APPLICATION NOTE. ATA6629/ATA6631 Development Board V2.2 ATA6629/ATA6631. Introduction

SKY65120: WCDMA PA Bias Method For Lower Junction Temperature

Features. Applications

Why VPEAK is the Most Critical Aperture Tuner Parameter

SKY LF: GHz SP3T Switch, 50 Ω Terminated

Integrated Power Delivery for High Performance Server Based Microprocessors

MAAP Preliminary Information. Power Amplifier GHz. Preliminary - Rev. V2P. Features. Functional Schematic.

Sense. 3D Scanner. User Guide. See inside for use and safety information.

MIC General Description. Features. Applications. Typical Application. 3A Low Voltage LDO Regulator with Dual Input Voltages

SMS : 0201 Surface Mount Low Barrier Silicon Schottky Diode Anti-Parallel Pair

PHYTER 100 Base-TX Reference Clock Jitter Tolerance

Practical RTD Interface Solutions

AVR122: Calibration of the AVR's internal temperature reference. 8-bit Microcontrollers. Application Note. Features.

Figure 1: AAT4712 Evaluation Board Picture.

AT15291: Migrating QTouch Designs from SAM D MCUs to SAM C MCUs. Scope. Features. QTouch APPLICATION NOTE

Reverse Recovery Operation and Destruction of MOSFET Body Diode

Parameter Test Conditions Units Min. Typ. Max. RFC to T X RFC to R X. P IN = +23 dbm, AC 80 MHz / 256 QAM

LMH7324 High Speed Comparator Evaluation Board

SMP LF: Surface Mount PIN Diode

Capacitor protection relay

SMV LF and SMV LF: Surface Mount, 0402 Hyperabrupt Tuning Varactor Diodes

ADA1200: Linear Amplifier

DME, DMF, DMJ Series: Silicon Beam-Lead Schottky Mixer Diode (Singles, Pairs, and Quads) Bondable Beam-Lead Devices

Features. Applications

OLH7000: Hermetic Linear Optocoupler

MAFL Horizontal Plug-in Diplex Filter 5-42 / MHz Rev. V1. Features. Functional Schematic. Description.

Zero Bias Silicon Schottky Barrier Detector Diodes

SMP1302 Series: Switch and Attenuator Plastic Packaged PIN Diodes

Evaluation Board for the AAT1409/7/5 Eight/Six/Four-Channel LED Backlight Driver with Integrated Boost and High Frequency Direct PWM Dimming

SKY LF: GHz Two-Way, 0 Degrees Power Divider

SMP1321 Series: Low Capacitance, Plastic Packaged PIN Diodes

OLS2449: Dual Channel, Radiation Tolerant, Phototransistor Hermetic Surface Mount Optocoupler

The sensor can be operated at any frequency between 0 Hz and 1 MHz.

SPD1101/SPD1102/SPD : Sampling Phase Detectors

SY10EL34/L SY100EL34/L

Versatile Planar Transformer

SKY LF: 0.02 to 4.0 GHz High Isolation SP4T Absorptive Switch with Decoder

Evaluation Board for the AAT1409/7/5 Eight/Six/Four-Channel LED Backlight Driver with Integrated Boost and High Frequency Direct PWM Dimming

OLH5730/5731: Hermetic Low Input Current, Dual-Channel Optocouplers

Technical Proposal for COMMON-ISDN-API. Version 2.0. Generic Tone Generator and Detector Support for Voice Applications. Extension.

OLS010: Phototransistor Hermetic Surface Mount Optocoupler

OLH2047/OLH2048/OLH2049: Photo-Transistor Hermetic Optocouplers

AVR221: Discrete PID Controller on tinyavr and megaavr devices. Introduction. AVR 8-bit Microcontrollers APPLICATION NOTE

3.3 V hex inverter Schmitt trigger

FEATURES. IHLP-3232DZ μh ± 20 % ER e3 MODEL INDUCTANCE VALUE INDUCTANCE TOLERANCE PACKAGE CODE JEDEC LEAD (Pb)-FREE STANDARD

DATA SHEET SE2567L: 5 GHz Power Amplifier with Power Detector Preliminary Information Applications Product Description Features Ordering Information

CE PSoC 6 MCU Breathing LED using Smart IO

Optimizing Feedforward Compensation In Linear Regulators

Evaluation Board for the AAT2428 Sixteen-Channel White LED Driver Solutionwith LED Current and Timing Control

Applications. Product Description. Features. Ordering Information. Functional Block Diagram

SMV LF: Surface Mount, 0402 Silicon Hyperabrupt Tuning Varactor Diode

SKY LF: GaAs SP2T Switch for Ultra Wideband (UWB) 3 8 GHz

CAN Bus Driver and Receiver

OLS049: Radiation-Tolerant, Phototransistor Hermetic Surface-Mount Optocoupler

CPC1908J i4-pac Power Relay

SMP LF: Surface Mount PIN Diode

Chop away input offsets with TSZ121/TSZ122/TSZ124. Main components Single very high accuracy (5 μv) zero drift micropower 5 V operational amplifier

Increasing ADC Dynamic Range with Channel Summation

SMP LF: Surface Mount PIN Diode for High Power Switch Applications

MOSFET Secondary Breakdown

OLS449: Radiation-Tolerant Phototransistor Hermetic Surface-Mount Optocoupler

AAT4610B DATA SHEET AAT4610B SOT23-5. Current Limited Load Switch. General Description. Features. Applications. Typical Application

SMS : 0201 Surface-Mount Low-Barrier Silicon Schottky Diode Anti-Parallel Pair

AS183-92/AS183-92LF: 300 khz-2.5 GHz phemt GaAs SPDT Switch

Atmel ATA6629/ Atmel ATA6631 Development Board V2.2. Application Note. Atmel ATA6629/ATA6631 Development Board V

Ultra-Low-Noise Amplifiers

SKY LF: PHEMT GaAs IC SP3T Switch GHz

IXYS IXI848A. High-Side Current Monitor. General Description. Features: Applications: Ordering Information. General Application Circuit

SMP1307 Series: Very Low Distortion Attenuator Plastic Packaged PIN Diodes

SKY LF: 0.1 to 3.0 GHz SP8T Antenna Switch

SMP1345 Series: Very Low Capacitance, Plastic Packaged Silicon PIN Diodes

SKY LF: 0.1 to 3.8 GHz SP6T Antenna Switch

OLH5530/5531: Hermetic High-Speed Transistor Dual-Channel Optocoupler

SKY , SKY LF: SP3T Switch for Bluetooth and b, g

Features. Applications

Current Limited Load Switch General Description. Features OUT AAT4610 SET

Features OUTA INA AAT4902 INB OUTB VLIM GND

Intel 82566/82562V Layout Checklist (version 1.0)

SKY LF: 0.5 to 6.0 GHz SPDT Switch, 50 Ω Terminated

Reference Guide & Test Report

FEATURES [12.9] Max [6.40] Max.

DATA SHEET SE2425U : 2.4 GHz Bluetooth Power Amplifier IC. Applications. Product Description. Features. Ordering Information

ACA4789: 1218 MHz 25 db Gain CATV Power-Doubler Amplifier

Adaptive Power MOSFET Driver 1

SKY LF: 0.5 to 6.0 GHz SPDT Switch, 50 Ω Terminated

QTouch Capacitive Touch Technology Copyright Atmel Atmel Corporation

AGENTLESS ARCHITECTURE

SKY LF: 0.05 to 2.7 GHz SP4T Switch with Integrated Logic Decoder

ICM Shield Hardware User Guide

Fully Sealed Container Cermet Potentiometer Professional Grade

PTN General description. 2. Features and benefits. SuperSpeed USB 3.0 redriver

SMP1322 Series: Low Resistance, Plastic Packaged PIN Diodes

DME, DMF, DMJ Series: Silicon Beam-Lead Schottky Mixer Diodes Singles, Pairs, and Quads in Ceramic Hermetic Packages

OLH5500/5501: Hermetic High-Speed Optocouplers

Transcription:

Stress Testing the OpenSimulator Virtual World Server Introduction OpenSimulator (http://opensimulator.org) is an open source project building a general purpose virtual world simulator. As part of a larger effort to research scaling of virtual worlds, Intel Labs has been using OpenSimulator as a test case to understand the design requirements for the server portion of a multi-user virtual world system. The previous article explained OpenSimulator s architecture, and this article shows how the architecture affects the operation of various workloads. Workloads One way to measure the limits of a simulator is stress testing. This gives some idea of the upper bounds of the simulator operation and possible weaknesses of its implementation. Three stress tests were developed: scripts, physics, and avatars. Scripting is stressed by dynamically creating scripts until the CPU execution is saturated. Our particular test creates groups of scripted cubes until the creation time of the cubes exceeds some limit. While it is possible to write compute-bound scripts, in general scripts written inside objects in a virtual world tend to be small and timer- or sensor-driven. In order to measure the limits of many small scripts, we built a test which created small, timer-driven scripted objects. The actual script operation is simple (change color and rotate the object). Physics is stressed by dynamically creating physics objects which interact with other physical objects and noting how many physical objects can be interacting before the frame rate drops below an acceptable level. The dynamic creation of physical objects means the number of objects slowly increases until the frame rate limit is reached. The avatar stress test introduces active, moving avatars into a simulator until the simulator frame rate drops below an acceptable level. The active avatars move to random waypoints: they pick a destination and begin walking to that destination until it is reached, then choose another random destination and begin walking there. The operation is performed by an avatar-driving routine that simulates a user performing the walk forward command until the avatar reaches the destination. This simulates both the execution and communication load on the simulator for many active avatars. Scripts The scripted objects are created in groups of 4, and they are created until the time it takes to create the 4 objects exceeds some threshold. This is a rough measure of when the CPU is saturated.

1 24 47 7 93 116 139 162 Scripted objects Percent total CPU utilization As can be seen in Figure 1, as the number of scripted objects increases, the CPU becomes busier and busier until it reaches nearly 1% of available compute resources. This 1% of CPU is full utilization of all 16 hardware threads in a dual quad-core server (a dual Intel Xeon E554 processor-based server), so it demonstrates the multi-threading of the script engine and its ability to utilize all available processing power to execute the multiple scripts. The frame rate did not change, suggesting the script engine is scheduled independently from the main simulator heartbeat loop. 25 2 15 1 5 12 1 8 6 4 2 Objects PercentCPU Figure 1 Percent CPU utilization as number of scripted objects is increased. Physics A Galton box (http://wikipedia.org/wiki/galton_box) is a regular arrangement of pins on a board where balls are dropped onto one location at the top of the board, the balls bounce down the pins and drop out the bottom of the board in a binomial distribution. To test the limits of the physics engine, we built a 3D Galton box in our virtual world and dropped hundreds of balls into the top. This created many physical interactions, many individual physics actors, and a method of testing whether all the interactions are correct. The balls are scripted to disappear when they leave the Galton box so the physical objects on the ground do not affect the test results. For stress testing, we re not interested in the correctness, but in how many physical balls can be added to the Galton box before the physics engine becomes overloaded. In OpenSimulator, the physics engine performance is measured with a scaled frame rate. As described in the previous article, the physics engine is invoked every simulator heartbeat period and, for compatibility reasons, this is scaled up and reported as 46. Some testing has shown that when the physics frame rate drops below 3, the overall performance of the simulator degrades. Thus, the physics

1 41 81 121 161 21 241 281 Simulator Frames Per Second Avatars Physical objects Total percent CPU utilization stress test metric is the number of physics enabled balls that can be interacting in the Galton box when the reported physics frame rate drops below 3. As can be seen in Figure 2, as the number of physical objects in the Galton box increases, the frame rate decreases. New physical balls are created and enter the top of the Galton box. This goes on for some period of time and then new balls stop being added. As the balls leave the Galton box, they are scripted to delete themselves. The effect is for the 1 8 6 4 2 1 9 1725334149576573 Figure 2 Simulator frames-per-second and percent CPU utilization as the number of physical objects increases and decreases. 6 5 4 3 2 1 Objects number of physically interacting balls to grow and then decrease as the balls stop being added and the exiting balls disappear. Thus the shape of the Objects curve. Inverted from that curve is the simulator frame rate, which reduces as the number of physical objects increases and then recovers as they decrease. The line at the bottom of Figure 2 is the percent of total CPU utilization (percent of 16 hardware threads). The physics engine is utilizing only one hardware thread, thus the <1% total CPU utilization. One way to interpret the graph is that physical objects are added until the one CPU thread is totally utilized, then the simulator frame rate reduces as more physical objects are added. At around 4 physics objects, the physics frame rate drops below the threshold. PercentCPU Avatars As mentioned above, the avatar stress test consists of adding wandering avatars until the simulator performance begins to falter. The avatar creation and driving routine try to mimic the operations of a human by creating and operating the avatar with the normal login and navigation mechanisms. So the move forward action is performed by making the same protocol request as if a user pressed the key which makes the avatar move forward. The avatars are active by wandering around. This means that messages are being sent from the client to the server to operate each avatar, and also update information is being sent from the server to all the clients. When an avatar moves, a position update must be sent to all clients. This partially simulates the load and networking requirements of real users. 6 5 4 3 2 1 6 5 4 3 2 1 Agents Figure 3 shows the simulator frame rate as avatars are added to a scene. As the number of avatars is increased, eventually the simulator frame rate begins to fall. Avatars are logged-in in Figure 3. Simulator frames-per-second as the number of active avatars is increased.

groups of 25 to spread out the overhead of initialization. For OpenSimulator, about 35 wandering avatars start the degradation of the simulator s responsiveness running on a quad-core server, with the simulator frame rate dropping below 3 with about 45 wandering avatars. Observations The scripting and physics workloads offer a view of contrasting architectures. Two observations can be made about the script engine. First, it is multi-threaded and uses all the CPU threads to execute the scripts, and secondly, it is not tied to the running of the heartbeat thread. Thus, the script engine can execute many scripts without affecting the responsiveness of the simulator. This is shown in Figure 1, where as the number of scripts increases, the CPU utilization goes to 1% while the simulator frame rate does not change. The physics workload, on the other hand, utilized only 7% of a dual quad-core (16 hardware threads) server, which suggests that the physics engine is single-threaded. As discussed in the previous article, the physics engine is invoked on the simulator s heartbeat loop (a central loop which invokes object updates and physics several times a second). This means that OpenSimulator physics implementation suffers from two design problems: 1) it does not take advantage of multiple available hardware threads, and 2) because execution of physics happens on the heartbeat thread, an overloaded physics engine means slow simulator execution. This has several lessons for virtual world server design. The various functions of the simulator (physics, scripts, communication, etc.) should be multi-threaded to utilize all of the hardware threads available in modern servers. Additionally, the functions must be scheduled independently so their operation does not affect other functions. This leads to a server design of multiple independently scheduled modules which rely on locking of the central data structures. Conclusion In this article, we stress tested OpenSimulator and found the need for multi-threading in the sub-systems and the utility of independent task scheduling. Both of these promote scaling of the virtual world server. The next article will explore platform power and networking as it relates to a virtual world server. About the Author Robert Adams is a software engineer in Intel Labs and is a member of the Virtual World Infrastructure team investigating systems architectures for scalable virtual environments.

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. This white paper, as well as the software described in it, is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See www.intel.com/products/processor_number for details. The Intel processor/chipset families may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. Copies of documents, which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-8-548-4725, or by visiting Intel's Web Site. Intel, Core, Atom, Pentium and the Intel Logo are trademarks of Intel Corporation in the U.S. and other countries. *Other names and brands may be claimed as the property of others. Copyright 21, Intel Corporation. All rights reserved.