Distributed Video Rendering using Blender Virtual Box and
Distributed Video Rendering using Blender, Virtual. Box, and BOINC. Christopher J. Reynolds. Centre for Parallel Computing, University of Westminster.
Material: • The general concept and motivations. • Choosing a system virtualization technology. • Interactions with the hypervisor. • Final comments.
Background: University of Westminster • Approx 1600 node Windows & BOINC based DG. • Runs applications from Enabling Desktop Grids for E-Science (EDGe. S). • 20 node GPU cluster under construction to run further EDGe. S/DEGISCO applications. • For most of 2009 we ran a public video/animation rendering service on a dedicated cluster (~256 Nodes).
Blender: http: //www. blender. org • Rastorization based rendering of frames; a Bag of Tasks (Bo. T). • Fits the DG model so move from cluster to DG. • Uses Blender, a well known animation/image rendering suite. • • Q: What are Blender’s requirements? A: Python. • • Q: What other considerations are required for a public service? A: Python scripts can be embedded within Blender input files (Security) • • Q: How to address these issues? A: Virtualization
Existing Virtualization Solutions • Existing solutions use either process virtualization or system virtualization. • Process virtualization (using Entropia VM) proposed by Calder et al [1] is tied to Windows as the host OS. • VM Wrapper: Generic but more complex and incomplete (Windows Host Support). • Marosi et al described proof of concept using QEMU based on features [2]. • • Q: QEMU/KQEMU now obsolete on Windows, so what next? A: Look at latest feature set and choose something else for a Lightweight solution.
QEMU/KQEMU vs Virtual. Box Feature Virtual. Box QEMU KQEMU X 86 guest only. Yes No Yes Requires admin privileges to run. No – Add user to allow execution of VBox DCOM service. No No Requires admin to install. Yes No Yes CPU performance overhead (x 86) [3] 20%(SP) 10%(FP) Huge (emulation) 100%(SP) 30%(FP) Yes Yes Guest to Host File I/O (Without Network) Yes (Guest Additions) No No Monitor/Hypervisor interface. COM Sockets Yes (Partial) Obsolete Supports disk overlay/cow images. Windows support
Solution: A Lightweight VM Controller. DG (BOINC) Server Host/DG Node Disk image (guest OS), VM config 1 file, inputs. BOINC Core Client 6 Transfer outputs 2 Start VM Controller (standard BOINC job) 3 Transfer 5 outputs 4 React to messages: suspend, resume, abort VBox Hypervisor VM (Guest) Instantiate VM and transfer inputs
Virtual. Box Hypervisor/Monitor Control VM Controller (C++ Boinc application) • • (COM) Win 32 Create. Process() or fork() to Vbox. Manage cmdln tool. COM preferable.
VM Controller (C++ Boinc application) • • • Two Threads. Worker launches unzipper (lzma), prepares VM config files, creates I/O shared directories, polls for Job completion. Monitor thread deals with messages and VM control.
Worker Thread
Monitor Thread
VM Worker Script: Blender echo 15 > /proc/$$/oom_adj echo "Setting oom_adj to 15 for PID=$$" case "$1" in start) mkdir /mnt/share mount -t vboxsf Shared /mnt/share mkdir /mnt/share/Outputs swapon /dev/sda swapon /dev/sdb START_FRAME=`cat /mnt/share/input. txt | head -1 ` END_FRAME=`cat /mnt/share/input. txt | head -2 |tail -1 ` sudo –u blender_user sh -c "blender -b /mnt/share/input. blend -o /mnt/share/Outputs/Frame-# -F PNG -x 0 -s $START_FRAME -e $END_FRAME –a” echo $? > /mnt/share/Outputs/blender_return. log ; ; echo "Finished Rendering Application"
Further Comments • We adhere to the “one VM per Workunit” model. • Our BOINC user account has restricted permissions. • This means Virtual. Box. xml and Machine. Definition. xml are loaded from C: Windowssystem 32configsystemprofile. Virtual. Box • Single xml file location restricts us to one WU per node. • Proof of concept, though proposed roll out soon (late 2010).
References [1] Calder, B. , Chien, A. , & Yang, J. W. D. (2005). The entropia virtual machine for desktop grids. In VEE ’ 05: Proceedings of the 1 st ACM/USENIX international conference on Virtual execution environments (pp. 186– 196). [2] Marosi, A. , Kacsuk, P. , Fedak, G. , & Lodygensky, O. (2010). Sandboxing for Desktop Grids using Virtualization. In The 18 th Euromicro International Conference on Parallel, Distributed and Network-Based Computing. [3] P. Domingues and F. Araujo and L. Silva. (2009) Evaluating the performance and intrusiveness of virtual machines for desktop grid computing. In IPDPS '09: Proceedings of the 2009 IEEE International Symposium on Parallel & Distributed Processing. Questions?
- Slides: 14