Re: Xerces Performance Acceleration Project: icXML

2013-01-27 Thread Rob Cameron
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

2013-01-27 Thread Boris Kolpackov
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

2013-01-27 Thread Rob Cameron
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