Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 86
PROCEEDINGS OF THE ELEVENTH INTERNATIONAL CONFERENCE ON CIVIL, STRUCTURAL AND ENVIRONMENTAL ENGINEERING COMPUTING
Edited by: B.H.V. Topping
Paper 58

Lessons Learnt from using .NET for Distributed Finite Element Analysis

R.I. Mackie

Civil Engineering, School of Engineering and Physical Sciences, University of Dundee, United Kingdom

Full Bibliographic Reference for this paper
R.I. Mackie, "Lessons Learnt from using .NET for Distributed Finite Element Analysis", in B.H.V. Topping, (Editor), "Proceedings of the Eleventh International Conference on Civil, Structural and Environmental Engineering Computing", Civil-Comp Press, Stirlingshire, UK, Paper 58, 2007. doi:10.4203/ccp.86.58
Keywords: distributed computing, finite element analysis, object-oriented, component design, linear algebra, MPI, .NET.

Summary
Two of the current developments that are likely to have the greatest impact on scientific computing in the near future are the wide availability of multi-processor and distributed computing power. Distributed computing has been available in the forms of PVM and MPI for some time, allowing clusters of computers to be used together, but as with parallel computing this has been a rather specialist preserve. In the last few years Microsoft has introduced its .NET framework, a framework specifically designed for to facilitate distributed computing. This paper reports the results of speed tests comparing .NET programs, written in C#, with programs written in C++.

Execution time tests were carried out on a variety of problems, and using various algorithms. The main tests involved: C++ (unmanaged), C# and C# unsafe version.

For tests involving domain decomposition methods C++ was used together with MPI. Tests were carried out on (i) a dual processor Pentium computer; (ii) a single processor Pentium computer; (iii) a cluster of identical single processor computers; (iv) a second single processor Pentium computer. The following tests were carried out for solving sets of simultaneous linear equations:

  • Cholesky decomposition on full sets of equations;
  • UTDU direct solution on sparse sets of equations.
  • Domain decomposition UTDU direct solution on sparse sets of equations.
  • Conjugate gradient on a sparse set of equations
  • Domain decomposition full-matrix conjugate gradient on a sparse set of equations.

In addition to looking at speed issues, the program design advantages of .NET were considered. The advantages of .NET are that it is object-oriented and component-oriented. This makes programming of multi-threaded and distributed programs much easier than would otherwise be the case. In particular, remote objects can be used in the same way as local objects.

The following conclusions were reached:

  • The speed differential between C# and C++ is machine dependent.
  • The raw speed of .NET code, particularly if unsafe code is used, is somewhat slower than C++ code, but not excessively so.
  • As code becomes more complicated there is a further deterioration in performance, though relatively small.
  • Using unsafe code results in a saving of about 10% over safe code.
  • .NET is an efficient alternative for taking advantage of multi-processor machines.
  • .NET is suitable for using clusters of computers for some problems, but may have high overheads for others.
  • In terms of program design .NET makes programming for multi-processor and distributed environments much easier than using other programming technologies. These advantages may be considered to outweigh the current performance cost.

purchase the full-text of this paper (price £20)

go to the previous paper
go to the next paper
return to the table of contents
return to the book description
purchase this book (price £120 +P&P)