Different Approaches to Parallelization of Vector Assembly

Article Preview

Abstract:

Recent developments in computer hardware bring in new opportunities in numerical mod-elling. Traditional simulation codes run sequentially on computers with a single processing unit,where only one instruction can be processed at any moment in time. The performance of single pro-cessing units is reaching the physical limits, given by transmission delays and heat build-up on thesilicon chips. The current trend in technology is parallel processing, relying on the simultaneous useof multiple processing units to solve given problem. The efficient utilization of parallel computingresources requires development of new algorithms and techniques allowing to decompose the giventask into pieces of work that can be processed simultaneously.This contribution focuses on parallelization of vector assembly operation, which is one of thecritical operations in any finite element software. The aim of presented work is to propose differentapproaches to parallelization of this operation and to evaluate their efficiency. In this contribution,we focus on shared memory programming model, where individual processes/tasks share a commonaddress space, which they read and write to asynchronously. Open Multi-Processing (OpenMP) andPortable Operating System Interface (POSIX) Threads programming models are used to implementdifferent variants of parallel assembly operations. The efficiency of implemented approaches is eval-uated on a selected benchmark problem, comparing computation times and obtained speed-ups.

You might also be interested in these eBooks

Info:

Periodical:

Pages:

341-348

Citation:

Online since:

January 2016

Export:

Price:

Permissions CCC:

Permissions PLS:

Сopyright:

© 2016 Trans Tech Publications Ltd. All Rights Reserved

Share:

Citation:

* - Corresponding Author

[1] B. Patzák, Parallel computations in structural mechanics, ISBN 978-80-01-04565-7, Czech Technical University in Prague, (2010).

Google Scholar

[2] Cameron Hughes, Tracey Hughes, Parallel and Distributed programming Using C++, ISBN 0-13-101376-9, Pearson Education, 2003. 496 Engineering Mechanics (2015).

Google Scholar

[3] B. Barney, Task scheduling for parallel systems, Lawrence Livermore National Laboratory, 2010, https: /computing. llnl. gov/tutorials/parallel_comp.

Google Scholar

[4] B. Stroustrup, The C++ programming language, Murray Hill, AT Labs Murray Hill, New Jersey (1997).

Google Scholar

[5] B. Barney, OpenMP - An Application Program Interface, Lawrence Livermore National Laboratory, 2014, https: /computing. llnl. gov/tutorials/openMP.

Google Scholar

[6] B. Chapman, G. Jost and R.V.D. Pas, foreword D.J. Kuck, Using OpenMP - portable shared memory parallel programming, Morgan Kaufmann Publishers, Inc., (2008).

Google Scholar

[7] Bradford Nicols, Dick Buttlar, and Jacqueline Proulx Farrell, Pthreads Programming, ISBN 1-56592-115-1, O`Reilly and Associates, (1996).

Google Scholar

[8] B. Barney, POSIX Threads Programming, Lawrence Livermore National Laboratory, 2015, https: /computing. llnl. gov/tutorials/pthreads.

Google Scholar