Operating System Support for Parallel Numerical Software Development
Recommend Documents
Operating System Support for Parallel DBMS with. Hierarchical Shared-Nothing Architecture1. Leonid B. Sokolinsky. Chelyabinsk State University, Faculty of ...
Asymmetric multicore, Scheduling, Operating Systems. Permission to make digital or hard copies of all or part of this work for personal or classroom use is ...
Computing Lab., Samsung Advanced Institute of Technology, Yongin 449-712, Korea b. School of ... repeated code fragments with call instructions to a sub-.
Abstract: A virtual-machine monitor (VMM) is a use- ful technique for adding
functionality below existing operating system and application software. One class
of.
Operating System Support for Overlapping-ISA. Heterogeneous Multi-core Architectures. Tong Li, Paul Brett, Rob Knauerhase, David Koufaty, Dheeraj Reddy, ...
Operating System Support for Database Management. Michael Stonebraker.
University of California, Berkeley. 1. Introduction. Database management
systems.
operating system aiming to support mobile distributed sys- tems are described. .... in a distributed system (the overall system of phones, base station, connection networks, etc.) ...... Extra-terrestrial relays - can rocket stations give world-wide
Nov 19, 2004 - Existing resource management solutions address many of these requirements by .... a disjoint portion of t
Operating system support for dynamically reconfigurable. SoC architectures. Alberto Donato Fabrizio Ferrandi Marco Santambrogio Donatella Sciuto.
A novel computer system hardware has been built for compressing main memory .... In Section 3 we describe the memory compression support we added to the.
existence of real-time and best effort requirements in future systems. ... opments in OS support for (distributed) multimedia systems, which include: (1) development of new CPU and disk scheduling ..... ticket transfers allow to transfer resource rig
Operating System Support for Database Management. Michael Stonebraker.
University of California, Berkeley. 1. Introduction. Database management
systems.
to the advanced capabilities of hardware performance monitoring units currently found in ... From a software perspective, the ability to utilize the full potential of ...
Multimedia applications have timing requirements that cannot generally be satisfied ... multimedia software has the additional requirement that. This work was .... sures durations between context switches and accounts for interrupt processing ...
to the advanced capabilities of hardware performance monitoring units currently ..... (2) SPECjbb2000, which is a Java-based application server workload; and ...
under both the unmodi ed Stache protocol 26] and. LCM (implemented using the Tempest mechanisms provided by Blizzard). We found that the LCM mem-.
Keywords-Global Software Development, Distributed Software,. Decision Support System, Software Process, Global Teaming. Model. I. INTRODUCTION.
Building software systems out of components has changed the development process to include activities like COTS identification in the requirement analysis ...
plexity embedded system is usually based on custom built templates and tools, or on commercially ... has its advantages and disadvantages, from depend-.
Clustered Commodity Computers. Atsushi Hori ... Tsukuba Research Center. Real World .... lel I/O, SCore-D also supports a system call mech- anism in a ...
Trusted Computer System Evaluation Criteria [5] B2 and. B3 level certification. ... scaled up to use a larger set of processing nodes to achieve higher performance. ... currently being built for the Department of Energy. The. TFLOPS system ...
ating system, called SCore-D, on top of the Unix operating system[6]. SCore-D is designed so that it excites full potential of the cluster hardware. Our approach is ...
Oct 16, 2005 - of the software development process have been proposed in order to cope with different problems of program family de- velopment. A major ...
sesses this symbiosis between hypermedia and software development as de- ... Hypertext Support for Software Development: A Retrospective Assessment.
Operating System Support for Parallel Numerical Software Development
Abstract. This paper discusses an example of numerical software develop- ment. .... modern operating systems offer efficient dynamic storage handling. However ...
Operating System Support for Parallel Numerical Software Development R. Fößmeier U. Rüde Technische Universität München Institut für Informatik Abstract This paper discusses an example of numerical software development. Standard tools of the UNIX† operating system are used to design a well structured, efficient implementation of two parallel linear system solvers. It is shown that standard UNIX features are suitable for describing and implementing parallelism. The resulting codes are fully portable. Other software engineering and efficiency issues are discussed in detail. Zusammenfassung Die vorliegende Arbeit behandelt ein Beispiel für die Entwicklung numerischer Software. Standardwerkzeuge des Betriebssystems UNIX werden zum Entwurf einer gut strukturierten, effizienten Implementierung zweier paralleler Löser für lineare Gleichungssysteme verwendet. Es zeigt sich, daß die Möglichkeiten von UNIX zur Beschreibung und Implementierung von Parallelität geeignet sind. Die entstandenen Programme sind vollständig portabel. Weitere Fragen der Programmentwicklung und der Effizienz werden diskutiert. Resumo ˆ tiu verko priparolas ekzemplon de evoluigo de kalkula programaro. Ci Ordinaraj iloj de la komputil-administra sistemo UNIX estas uzataj por krei bone strukturitan, efikan realigon de du paralelaj solviloj por linearaj ekvaciaj sistemoj. Montriˆgas, ke ordinaraj rimedoj de UNIX tau˘gas por deskripti kaj realigi paralelan prilaboradon. La rezultantaj programoj estas plene transporteblaj. Pliaj demandoj pri programorganizo kaj efikeco estas detale diskutataj.
† UNIX is a trademark of Bell Laboratories
Contents
1. Introduction ............................................... 1 2. Direct linear system solvers .................................... 3 2.1 Gauss/Cholesky elimination ................................. 4 2.2 Orthogonal elimination (Givens) .............................. 5 2.3 Parallelization .......................................... 6 2.4 Vectorization ........................................... 7 2.5 Comparison ............................................ 9 3. Development of software for microcomputers with UNIX ................ 9 3.1 Fortran ............................................... 9 3.2 Software development with the UNIX system ..................... 9 3.3 Pipelines and processes (filters) .............................. 10 3.4 The shell language ...................................... 10 3.5 Parallelism using the UNIX system ........................... 11 4. Implementation of parallel linear system solvers with processes and pipes ... 13 4.1 The algorithm .......................................... 13 4.2 Formulation using processes and pipes ......................... 14 4.3 Backward substitution .................................... 14 4.4 Efficiency considerations .................................. 15 4.5 Revised version ........................................ 15 5. Intra-process optimizations .................................... 16 5.1 Arrays and loops ........................................ 16 5.2 Processor dependent optimizations ............................ 17 5.3 Process sizes .......................................... 18 6. Parallel execution examples
................................... 19
7. Summary and Conclusions .................................... 24 References ................................................... 26
1. Introduction In advanced projects numerical software is becoming more and more complex. A tremendous additional complexity is introduced by parallelism. In the past too little attention has been paid to controlling the complexity of numerical software. Furthermore, it seems that a remarkable number of numerical methods remains unpopular because they are difficult to implement. In many cases this is not due to the algorithmic complexity in itself but to the unsuitability of the available program development tools. Dynamic storage management is a case in point. Many advanced algorithms need dynamic memory allocation. If the programming language (e.g, Fortran) does not support dynamic storage allocation, the programmer has to implement it by himself. This is a great waste of time and also loss of program efficiency as the self-made simulation is usually less efficient than carefully designed library functions. All modern operating systems offer efficient dynamic storage handling. However these mechanisms cannot be accessed from languages that are based on pure static storage management. In this example a simple problem becomes difficult only because suitable tools cannot be used. Additionally numerical software has special needs. Many of the most modern languages, like Pascal or Modula, do not support important data structures like double precision, complex numbers, matrices and vectors in a convenient form. Does this now suggest that we need a new numerical superlanguage, combining the good parts of Fortran, Pascal and several other languages? We do not believe so. Maybe the strongest argument against another new language is a look on the junkyard of computer science: It is full of ’superlanguages’ that turned out to be flops. Only few languages are used in practice and even fewer are relevant for numerical programming. We suggest a completely different approach. The main idea of this paper is to present the idea of heterogeneous hierarchical implementation of numerical software. As no language is well suited for all tasks we do not use one single language for the whole program. Different parts (refinement levels) of the program are implemented with different tools, i.e. different languages. The basis for our investigation is the UNIX programming environment and the example for our presentation is the parallel solution of (full) linear systems of equations. The highest level of implementation is the description of coarse grain parallelism and interaction of major modules, like elimination and substitution. For this top level we suggest to use the UNIX shell language, which has parallel constructs. However, the (Bourne) shell language is completely unsuitable for any numerical algorithm, so that another language is necessary. From the shell level, programs in classical languages can be called. The next level are small modules written in standard programming language. In our example these are the elimination (to bring a matrix into upper right triangular form) and the substitution to calculate the solution of the equations. A Cholesky