Radvision and Intel Parallel Suite: Improving SIP Stack Performance


Published on

A presentation Ofer Goren, a Senior Software Engineer @ RADVISION, gave during an Intel Software Developers Seminar in Israel

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Radvision and Intel Parallel Suite: Improving SIP Stack Performance

  1. 1. RADVISION Developer Solutions Technology Business Unit Overview Name Sagi Subocki Title Products Manager Developer Community
  2. 2. Welcome to RADVISION THE INDUSTRY’S EXPERT IN VISUAL COMMUNICATIONS RADVISION is the leading provider of core technologies, products and solutions that enable unified multimedia communications over IP, 3G and emerging next generation IMS networks.
  3. 3. RADVISION Powering Voice and Video Communications Leader Since 1992 Over 450 Employees Worldwide Global presence with17 Offices Worldwide Revenue of $85m in 2008 (NASDAQ:RVSN) Cash $120m Debt Free
  4. 4. Radvision and Intel Parallel Suite Improving SIP Toolkit performance Name Ofer Goren Title Senior Software Engineer, SIP Toolkit Developer Community
  5. 5. What is SIP? SIP – Session Initiation Protocol (RFC 3261) Signaling path to establish and tear-down calls Different path for Media Text-based, based on HTTP Client-Server interactions Highly extensible
  6. 6. The problem Growing popularity of multi-core platforms Growing demand for optimized utilization of these platforms. To enable scaling up according to active working threads. My Boss is upset.
  7. 7. Decisions It is multi-core era, we should have the best solution for such environments RADVISION Toolkits supports many platforms, so we should not focus on low-level (Hardware specific optimizations) Generalize the work to multi-thread scaling Focus on server side as well as client side
  8. 8. Work flow Benchmark current version Gather the best minds in the industry (yes, we have them) and form a Multi-Threading Optimization task force Accepting Intel request to be a beta site (Important!!!) Using Intel tools to check for bottlenecks Identify key issues
  9. 9. Work flow - continue Address the nation (well, only the team) and brainstorm Find the solution and apply Benchmark again If fixed, go to the next issue.
  10. 10. Few words on architecture Select() Working Threads Ev Queue
  11. 11. Working with Intel Parallel Beta
  12. 12. Findings While one thread is working… the others are sleeping. A LOT.
  13. 13. More closely on Intel Tools
  14. 14. Scaling up Main hash was locked for each message. Solution: use more than one hash Pool of pages for messages was locked on each allocation Solution: divide the pool to several smaller pools, lock only sub-pool Large amount of code was unnecessarily locked Solution: Pay attention to layers, lock only hash- related/critical section
  15. 15. Results Improving core utilization by 80% Improve toolkit efficiency by 60% Boss is happy
  16. 16. TBB and OpenMP Why not using TBB (Threading Building Blocks) or OpenMP Porting issues (VxWorks, Psos…) Mid-level solutions (improving for-loops, while, hash function) For number crunching, or small, focused sub-work Old compilers do not support OpenMP (GNU old versions)
  17. 17. Questions?
  18. 18. Thank you