Re: Xerces Performance Acceleration Project: icXML
Hi, Boris. On Sun, Jan 27, 2013 at 10:18 AM, Boris Kolpackov wrote: > > I wanted to try icXML with CodeSynthesis XSD[1] for some time > now. Just haven't been able to find the time. > > I have a few questions: > > 1. It is my understanding that icXML is interface-compatible >with Xerces-C++ 3-series. Is that correct? > Yes, this is correct. > 2. Have you done any parallelization of the XML Schema validation >engine? > This is on our roadmap.We have two forms of parallelization in mind: assigning validation to separate threads (there is engineering required, but it is quite feasible with our model), and SIMD parallelization of data type and grammar validation (research required). > 3. You've shown results for icXML in two configurations, single- >threaded and with 2 threads. Is there any documentation that >describes these extra parameters/options/etc. In other words, >how would I go about specifying the number of threads? > The current icXML release is single-threaded. The experimental two-thread version was proof-of-concept, we are presently redesigning to be able to use multiple pipeline stages. > [1] http://www.codesynthesis.com/products/xsd/ > > Boris > > -- > Boris Kolpackov, Code Synthesishttp://codesynthesis.com/~boris/blog > Compiler-based ORM system for C++ http://codesynthesis.com/products/odb > Open-source XML data binding for C++ http://codesynthesis.com/products/xsd > XML data binding for embedded systems http://codesynthesis.com/products/xsde - To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org
Re: Xerces Performance Acceleration Project: icXML
Hi Rob, Rob Cameron writes: > icXML is the name of our project to dramatically accelerate > Xerces performance on modern commodity processors by taking > advantage of SIMD and multicore capabilities and parallel bit > stream technology. I wanted to try icXML with CodeSynthesis XSD[1] for some time now. Just haven't been able to find the time. I have a few questions: 1. It is my understanding that icXML is interface-compatible with Xerces-C++ 3-series. Is that correct? 2. Have you done any parallelization of the XML Schema validation engine? 3. You've shown results for icXML in two configurations, single- threaded and with 2 threads. Is there any documentation that describes these extra parameters/options/etc. In other words, how would I go about specifying the number of threads? [1] http://www.codesynthesis.com/products/xsd/ Boris -- Boris Kolpackov, Code Synthesishttp://codesynthesis.com/~boris/blog Compiler-based ORM system for C++ http://codesynthesis.com/products/odb Open-source XML data binding for C++ http://codesynthesis.com/products/xsd XML data binding for embedded systems http://codesynthesis.com/products/xsde - To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org
Xerces Performance Acceleration Project: icXML
icXML is the name of our project to dramatically accelerate Xerces performance on modern commodity processors by taking advantage of SIMD and multicore capabilities and parallel bit stream technology. We are interested in feedback and interest from developers and potential users. We are also interested in identifying a potential Champion who could help put us on track to become an official Xerces subproject. Version 0.8 of icXML has been released and is available together with a development version on the costar.sfu.ca server. svn co http://parabix.costar.sfu.ca/svn/icXML/icXML-0.8 svn co http://parabix.costar.sfu.ca/svn/icXML/icXML-devel Trac browser: http://parabix.costar.sfu.ca/browser/icXML To get an idea of the performance prospects, here are end-to-end figures using Xerces-C 3.1.1 and icXML with a GML-to-SVG conversion application. Xerces-C 3.1.1 Performance counter stats for './gml2svg_3_1_1 ../../data/layer/gml-10 out_3': 24,444,713,630 instructions:u#1.83 insns per cycle [83.35%] 13,344,529,298 cycles:u #0.000 GHz [83.33%] 41,915,991 branch-misses:u #0.70% of all branches [83.33%] 6,013,112,976 branches:u [83.34%] 81,290,233 L1-dcache-misses:u [83.33%] 153,198,046 L1-icache-misses:u [66.73%] 3.764054961 seconds time elapsed icXML Performance counter stats for './gml2svg_icx ../../data/layer/gml-10 out_3': 16,470,263,948 instructions:u#1.89 insns per cycle [83.33%] 8,707,613,130 cycles:u #0.000 GHz [83.33%] 13,912,341 branch-misses:u #0.43% of all branches [83.35%] 3,244,282,034 branches:u [83.33%] 67,380,609 L1-dcache-misses:u [83.33%] 32,141,837 L1-icache-misses:u [66.66%] 2.554010404 seconds time elapsed icXML experimental version with 2-thread pipeline parallelism Performance counter stats for './gml2svg_icx_pipeline ../../data/layer/gml-10 out_3': 16,544,368,151 instructions:u#1.37 insns per cycle [84.11%] 12,060,226,476 cycles:u #0.000 GHz [83.93%] 13,212,826 branch-misses:u #0.39% of all branches [83.92%] 3,357,152,226 branches:u [83.78%] 77,941,092 L1-dcache-misses:u [83.10%] 25,757,287 L1-icache-misses:u [67.36%] 2.180680680 seconds time elapsed Rob Cameron, CTO, International Characters, Inc Professor of Computing Science, Simon Fraser University http://www.international-characters.com/ http://parabix.costar.sfu.ca/ - To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org