source: docs/Working/icXML/conclusion.tex

Last change on this file was 2872, checked in by nmedfort, 7 years ago


File size: 2.0 KB
1This paper is the first case study documenting the significant
2performance benefits that may be realized through the integration
3of parallel \bitstream{} technology into existing widely-used software libraries.
4In the case of the Xerces-C++ XML parser, the
5combined integration of SIMD and multicore parallelism was
6shown capable of dramatic producing dramatic increases in
7throughput and reductions in branch mispredictions and cache misses.
8The modified parser, going under the name \icXML{} is designed
9to provide the full functionality of the original Xerces library
10with complete compatibility of APIs.  Although substantial
11re-engineering was required to realize the
12performance potential of parallel technologies, this
13is an important case study demonstrating the general
14feasibility of these techniques.
16The further development of \icXML{} to move beyond 2-stage
17pipeline parallelism is ongoing, with realistic prospects for
18four reasonably balanced stages within the library.  For
19applications such as GML2SVG which are dominated by time
20spent on XML parsing, such a multistage pipelined parsing
21library should offer substantial benefits. 
23The example of XML parsing may be considered prototypical
24of finite-state machines applications which have sometimes
25been considered ``embarassingly sequential'' and so
26difficult to parallelize that ``nothing works.''  So the
27case study presented here should be considered an important
28data point in making the case that parallelization can
29indeed be helpful across a broad array of application types.
31To overcome the software engineering challenges in applying
32parallel \bitstream{} technology to existing software systems,
33it is clear that better library and tool support is needed.
34The techniques used in the implementation of \icXML{} and
35documented in this paper could well be generalized for
36applications in other contexts and automated through
37the creation of compiler technology specifically supporting
38parallel \bitstream{} programming.
Note: See TracBrowser for help on using the repository browser.