Proceedings of the 1999 ACM symposium on Applied computing - SAC '99, 1999
1 INTRODUCTION We propose a new solution for developing both reliable and eficient programs for m... more 1 INTRODUCTION We propose a new solution for developing both reliable and eficient programs for matrix processing by combining the functional and imperative programming paradigms.' Our solution is based on the Specification-Consistent Coordina-tion Model (SCCM) [2] and ...
Two-Stage Programming (2SP) is an experimental mixed-paradigm (functional/imperative) programming... more Two-Stage Programming (2SP) is an experimental mixed-paradigm (functional/imperative) programming language with strong support for fault prevention and removal [3] through automatic verification of computation results with respect to a given specification. 2SP ...
This paper presents the application of Two-Stage Programming (2sp) for developing error-free para... more This paper presents the application of Two-Stage Programming (2sp) for developing error-free parallel /distributed applications through automatic verification of computed results with respect to a given specification. The presentation focuses the case study of the parallel ...
Solutions for ensuring the correctness of imperative programs are an important topic in present r... more Solutions for ensuring the correctness of imperative programs are an important topic in present research. Two-Stage Programming (2SP) is an experimental programming language designed to study a possible new solution. A 2SP program has two parts (stages ): a formal ...
Introduction Imperative programming is commonly used in scientific computing. It offers the advan... more Introduction Imperative programming is commonly used in scientific computing. It offers the advantage of performance but has also considerable drawbacks. The most important one is the explicit store management. It is based on the reuse of stores by destructive assignments. This is essential for performance, but is also one of the most important sources of programming errors. In addition, parallel/distributed imperative programming encompasses the mixture of the description, decomposition, and distribution of computations, and processor communications. This mixture is another source of errors and makes the development of programs highly involved. Functional programming has begun to be seen as an alternative since computations are naturally expressed by recursive function definitions, which are very close to their mathematical description. This idea is used in the programming languages Crystal 1 and EPL 2 and array comprehensions in Haskell<F2
Research in scientitic programming enables us to realize more and more complex applications, and ... more Research in scientitic programming enables us to realize more and more complex applications, and on the other hand, application-driven demands on computing methods and power are continuously growing. Therefore, interdisciplinary approaches become more widely used. The interdisciplinary SPINET project presented in this article applies modern scientific computing tools to biomechanical simulations: parallel computing and symbolic and modern functional programming. The target application is the human spine. Simulations of the spine help us to investigate and better understand the mechanisms of back pain and spinal injury. Two approaches have been used: the first uses the finite element method for high-performance simulations of static biomechanical models, and the second generates a simulation developmenttool for experimenting with different dynamic models. A finite element program for static analysis has been parallelized for the MUSIC machine. To solve the sparse system of linear equ...
The solution of large sparse systems of linear equations is one of the most computationally inten... more The solution of large sparse systems of linear equations is one of the most computationally intensive parts of finite element simulations. In order to solve these systems of linear equations, we have implemented a parallel conjugate gradient solver on the SPMD-programmable MUSIC-system. We outline the conjugate gradient method, give a formal specification in Maple, and describe a data-parallel program. We illustrate how the number of processors influences the speed of convergence due to different data distributions and the non-associativity of the floating point addition. We investigate the speed of convergence of the conjugate gradient method for different floating point precisions (32, 44, 64, and 128 bit) and various finite element models (linear beams, human spine segments). The results show that it is more important to concentrate on appropriate numerical methods depending on the finite element models considered than on the floating point precision used. Finally, we give the re...
A new coordination model for computations is presen-ted. It offers increased confidence in the co... more A new coordination model for computations is presen-ted. It offers increased confidence in the correctness of imperative program~ and considerable simplification of imperative programming and debugging. In this model, programs consist of formal specifications of computa-tions ...
The solution of large sparse systems of linear equations is one of the most computationally inten... more The solution of large sparse systems of linear equations is one of the most computationally intensive parts of finite element simulations. In order to solve these systems of linear equations, we have implemented a parallel conjugate gradient solver on the SPMD-programmable MUSIC-system. We outline the conjugate gradient method, give a formal specification in Maple, and describe a data-parallel program. We illustrate how the number of processors influences the speed of convergence due to different data distributions and the non-associativity of the floating point addition. We investigate the speed of convergence of the conjugate gradient method for different floating point precisions (32, 44, 64, and 128 bit) and various finite element models (linear beams, human spine segments). The results show that it is more important to concentrate on appropriate numerical methods depending on the finite element models considered than on the floating point precision used. Finally, we give the re...
Proceedings of the 1999 ACM symposium on Applied computing - SAC '99, 1999
1 INTRODUCTION We propose a new solution for developing both reliable and eficient programs for m... more 1 INTRODUCTION We propose a new solution for developing both reliable and eficient programs for matrix processing by combining the functional and imperative programming paradigms.' Our solution is based on the Specification-Consistent Coordina-tion Model (SCCM) [2] and ...
Two-Stage Programming (2SP) is an experimental mixed-paradigm (functional/imperative) programming... more Two-Stage Programming (2SP) is an experimental mixed-paradigm (functional/imperative) programming language with strong support for fault prevention and removal [3] through automatic verification of computation results with respect to a given specification. 2SP ...
This paper presents the application of Two-Stage Programming (2sp) for developing error-free para... more This paper presents the application of Two-Stage Programming (2sp) for developing error-free parallel /distributed applications through automatic verification of computed results with respect to a given specification. The presentation focuses the case study of the parallel ...
Solutions for ensuring the correctness of imperative programs are an important topic in present r... more Solutions for ensuring the correctness of imperative programs are an important topic in present research. Two-Stage Programming (2SP) is an experimental programming language designed to study a possible new solution. A 2SP program has two parts (stages ): a formal ...
Introduction Imperative programming is commonly used in scientific computing. It offers the advan... more Introduction Imperative programming is commonly used in scientific computing. It offers the advantage of performance but has also considerable drawbacks. The most important one is the explicit store management. It is based on the reuse of stores by destructive assignments. This is essential for performance, but is also one of the most important sources of programming errors. In addition, parallel/distributed imperative programming encompasses the mixture of the description, decomposition, and distribution of computations, and processor communications. This mixture is another source of errors and makes the development of programs highly involved. Functional programming has begun to be seen as an alternative since computations are naturally expressed by recursive function definitions, which are very close to their mathematical description. This idea is used in the programming languages Crystal 1 and EPL 2 and array comprehensions in Haskell<F2
Research in scientitic programming enables us to realize more and more complex applications, and ... more Research in scientitic programming enables us to realize more and more complex applications, and on the other hand, application-driven demands on computing methods and power are continuously growing. Therefore, interdisciplinary approaches become more widely used. The interdisciplinary SPINET project presented in this article applies modern scientific computing tools to biomechanical simulations: parallel computing and symbolic and modern functional programming. The target application is the human spine. Simulations of the spine help us to investigate and better understand the mechanisms of back pain and spinal injury. Two approaches have been used: the first uses the finite element method for high-performance simulations of static biomechanical models, and the second generates a simulation developmenttool for experimenting with different dynamic models. A finite element program for static analysis has been parallelized for the MUSIC machine. To solve the sparse system of linear equ...
The solution of large sparse systems of linear equations is one of the most computationally inten... more The solution of large sparse systems of linear equations is one of the most computationally intensive parts of finite element simulations. In order to solve these systems of linear equations, we have implemented a parallel conjugate gradient solver on the SPMD-programmable MUSIC-system. We outline the conjugate gradient method, give a formal specification in Maple, and describe a data-parallel program. We illustrate how the number of processors influences the speed of convergence due to different data distributions and the non-associativity of the floating point addition. We investigate the speed of convergence of the conjugate gradient method for different floating point precisions (32, 44, 64, and 128 bit) and various finite element models (linear beams, human spine segments). The results show that it is more important to concentrate on appropriate numerical methods depending on the finite element models considered than on the floating point precision used. Finally, we give the re...
A new coordination model for computations is presen-ted. It offers increased confidence in the co... more A new coordination model for computations is presen-ted. It offers increased confidence in the correctness of imperative program~ and considerable simplification of imperative programming and debugging. In this model, programs consist of formal specifications of computa-tions ...
The solution of large sparse systems of linear equations is one of the most computationally inten... more The solution of large sparse systems of linear equations is one of the most computationally intensive parts of finite element simulations. In order to solve these systems of linear equations, we have implemented a parallel conjugate gradient solver on the SPMD-programmable MUSIC-system. We outline the conjugate gradient method, give a formal specification in Maple, and describe a data-parallel program. We illustrate how the number of processors influences the speed of convergence due to different data distributions and the non-associativity of the floating point addition. We investigate the speed of convergence of the conjugate gradient method for different floating point precisions (32, 44, 64, and 128 bit) and various finite element models (linear beams, human spine segments). The results show that it is more important to concentrate on appropriate numerical methods depending on the finite element models considered than on the floating point precision used. Finally, we give the re...
Uploads
Papers by Edgar Lederer