Parallelizing a CAD Model Processing Tool from the Automotive Industry
Large industrial applications are complex software environments with multiple objectives and strict requirements regarding standards, architecture or technology dependencies. The parallelization and optimization of industrial applications can be an intrusive modification of the source code which increases the development complexity. In this paper we describe the analysis and modifications applied to an industrial code from the automotive industry, named Merge, with the goal to detect and exploit parallelism in order to reduce the resulting execution time for shared memory parallel architectures. As part of this effort we tried to maximize the potential for an effective parallelization, nevertheless preserving the original algorithm and the code features as far as possible. Reasonable speedup has been achieved on a shared memory parallel architecture. Furthermore, additional potential has been located for future parallelization and optimization work.
KeywordsExecution Time Automotive Industry Versus Versus Versus Versus Versus Versus Versus Versus Versus Runtime System
Unable to display preview. Download preview PDF.
- 1.Engineering Center Steyr: ALSIM, a simulation tool for the dynamical dip painting process (June 2014), http://alsim.ecs.steyr.com
- 2.Schifko, M., Jüttler, B., Kornberger, B.: Industrial application of exact boolean operations for meshes. In: Proceedings of the 26th Spring Conference on Computer Graphics, SCCG 2010, pp. 165–172. ACM, New York (2010)Google Scholar
- 3.Wein, R., Fogel, E., Zukerman, B., Halperin, D.: Advanced programming techniques applied to cgal’s arrangement package. Computational Geometry 38(1-2), 37–63 (2007); Special Issue on CGALGoogle Scholar
- 5.ISO: ISO/IEC 14882:2011 Information technology — Programming languages — C++. International Organization for Standardization, Geneva, Switzerland (February 2012)Google Scholar
- 6.OpenMP Architecture Review Board: OpenMP application program interface version 3.0 (May 2008)Google Scholar
- 7.Williams, A.: C++ Concurrency in Action. Manning, Pearson Education (2012)Google Scholar
- 8.Gumundsson, G.Ó., Amsaleg, L., Jónsson, B.Ó.: Distributed High-Dimensional Index Creation using Hadoop, HDFS and C++. In: CBMI - 10th Workshop on Content-Based Multimedia Indexing, Annecy, France (2012); QuaeroGoogle Scholar
- 9.Hindman, B., Konwinski, A., Zaharia, M., Stoica, I.: A common substrate for cluster computing. In: Proceedings of the 2009 Conference on Hot Topics in Cloud Computing, HotCloud 2009. USENIX Association, Berkeley (2009)Google Scholar
- 11.Thoman, P., Jordan, H., Fahringer, T.: Compiler multiversioning for automatic task granularity control. Concurrency and Computation: Practice and Experience (2014)Google Scholar