1 / 14

Distributed Video Rendering using Blender, VirtualBox, and BOINC. Christopher J. Reynolds.

Distributed Video Rendering using Blender, VirtualBox, 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.

remy
Download Presentation

Distributed Video Rendering using Blender, VirtualBox, and BOINC. Christopher J. Reynolds.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Video Rendering using Blender, VirtualBox, and BOINC. Christopher J. Reynolds. Centre for Parallel Computing, University of Westminster.

  2. Material: • The general concept and motivations. • Choosing a system virtualization technology. • Interactions with the hypervisor. • Final comments.

  3. Background: University of Westminster • Approx 1600 node Windows & BOINC based DG. • Runs applications from Enabling Desktop Grids for E-Science (EDGeS). • 20 node GPU cluster under construction to run further EDGeS/DEGISCO applications. • For most of 2009 we ran a public video/animation rendering service on a dedicated cluster (~256 Nodes).

  4. Blender: http://www.blender.org • Rastorization based rendering of frames; a Bag of Tasks (BoT). • 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

  5. 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.

  6. QEMU/KQEMU vs VirtualBox

  7. Solution: A Lightweight VM Controller. Host/DG Node Disk image (guest OS), VM config file, inputs. DG (BOINC) Server 1 BOINC Core Client 6 2 Start Transfer outputs VM Controller (standard BOINC job) 3 React to messages: suspend, resume, abort Transfer outputs Instantiate VM and transfer inputs 5 4 VBox Hypervisor VM (Guest)

  8. VirtualBox Hypervisor/Monitor Control VM Controller (C++ Boinc application) • Win32 CreateProcess() or fork() to VboxManagecmdln tool. • COM preferable. (COM)

  9. VM Controller 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.

  10. Worker Thread

  11. Monitor Thread

  12. 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" ;;

  13. Further Comments • We adhere to the “one VM per Workunit” model. • Our BOINC user account has restricted permissions. • This means VirtualBox.xml and MachineDefinition.xml are loaded from C:\Windows\system32\config\systemprofile\.VirtualBox • Single xml file location restricts us to one WU per node. • Proof of concept, though proposed roll out soon (late 2010).

  14. References • [1] Calder, B., Chien, A., & Yang, J. W. D. (2005). The entropia virtual machine for desktop grids. In VEE ’05: Proceedings of the 1st 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 18th 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?

More Related