Computational & Technology Resources
an online resource for computational,
engineering & technology publications
PROCEEDINGS OF THE ELEVENTH INTERNATIONAL CONFERENCE ON CIVIL, STRUCTURAL AND ENVIRONMENTAL ENGINEERING COMPUTING
Edited by: B.H.V. Topping
Lessons Learnt from using .NET for Distributed Finite Element Analysis
Civil Engineering, School of Engineering and Physical Sciences, University of Dundee, United Kingdom
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.
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:
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:
purchase the full-text of this paper (price £20)