Parallelizing a CAD Model Processing Tool from the Automotive Industry

  • Luis Ayuso
  • Herbert Jordan
  • Thomas Fahringer
  • Bernhard Kornberger
  • Martin Schifko
  • Bernhard Höckner
  • Stefan Moosbrugger
  • Kevin Verma
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8805)

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Engineering Center Steyr: ALSIM, a simulation tool for the dynamical dip painting process (June 2014), http://alsim.ecs.steyr.com
  2. 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. 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
  4. 4.
    Dean, J., Ghemawat, S.: Mapreduce: Simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008)CrossRefGoogle Scholar
  5. 5.
    ISO: ISO/IEC 14882:2011 Information technology — Programming languages — C++. International Organization for Standardization, Geneva, Switzerland (February 2012)Google Scholar
  6. 6.
    OpenMP Architecture Review Board: OpenMP application program interface version 3.0 (May 2008)Google Scholar
  7. 7.
    Williams, A.: C++ Concurrency in Action. Manning, Pearson Education (2012)Google Scholar
  8. 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. 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
  10. 10.
    Tanaka, Y., Taura, K., Sato, M.: Performance evaluation of openmp applications with nested parallelism. In: Dwarkadas, S. (ed.) LCR 2000. LNCS, vol. 1915, pp. 100–112. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  11. 11.
    Thoman, P., Jordan, H., Fahringer, T.: Compiler multiversioning for automatic task granularity control. Concurrency and Computation: Practice and Experience (2014)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Luis Ayuso
    • 1
  • Herbert Jordan
    • 1
  • Thomas Fahringer
    • 1
  • Bernhard Kornberger
    • 2
  • Martin Schifko
    • 3
  • Bernhard Höckner
    • 1
  • Stefan Moosbrugger
    • 1
  • Kevin Verma
    • 3
  1. 1.Institute of Computer ScienceUniversity of InnsbruckInnsbruckAustria
  2. 2.Geom SoftwareentwicklungGrazAustria
  3. 3.ECS, Magna PowertrainSteyrAustria

Personalised recommendations