Computational & Technology Resources
an online resource for computational,
engineering & technology publications |
|
Civil-Comp Proceedings
ISSN 1759-3433 CCP: 101
PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, GRID AND CLOUD COMPUTING FOR ENGINEERING Edited by:
Paper 54
C++ Statically Typed Matrix in Parallel Application Programming P.S. Rakic1, D.D. Milašinovic2, Z. Suvajdzin Rakic1, M. Hajdukovic1, Z. Zivanov1 and P. Maric1
1University of Novi Sad, Faculty of Technical Sciences, Novi Sad, Serbia
, "C++ Statically Typed Matrix in Parallel Application Programming", in , (Editors), "Proceedings of the Third International Conference on Parallel, Distributed, Grid and Cloud Computing for Engineering", Civil-Comp Press, Stirlingshire, UK, Paper 54, 2013. doi:10.4203/ccp.101.54
Keywords: TML, statically typed matrix, MPI, C++, template meta programming, parallel programming.
Summary
In this paper, we argue that in the context of matrix implementation in a statically typed language, static typing is more appropriate than dynamic or hybrid; especially if the language provides features enabling efficient and elegant implementation, such as C++ does.
Static typing is not perfect and cannot provide general guaranties for program correctness. Nevertheless, it can provide compile-time type verification and generally improve program robustness.
Program efficiency is important, especially in high performance computing. In recent years more attention has been paid to automatic assertion of program correctness and programmer friendly interfaces. Message passing interface (MPI) is the de-facto standard for high performance message passing programs. In version 3, C++ binding were removed from the version with the explanation that it provides very little utility over C bindings. It is suggested that the C++ interface should be offered by the third party libraries that provide interfaces to MPI that better support modern C++ development styles: support for user defined and standard library data types, type inference and use of modern C++ techniques for maximum efficiency [1]. Boost.MPI [2] is a C++ MPI wrapper library often offered as example for direction in which the MPI C++ interface should be developed [3]. To enhance type safeness we developed a proof-of-concept statically typed library called TML [4]. In this paper we discuss the application of such a library in parallel programming, particularly in an MPI environment. The interface of the dimension type is extended to allow easy broadcasting of matrix dimensions. Type safe collective operations with TML matrices and Boost.MPI like interfaces are discussed. Execution speed measurements are offered as evidence that high level, type safe operations can be implemented without hindering efficiency. References
purchase the full-text of this paper (price £20)
go to the previous paper |
|