scispace - formally typeset
Search or ask a question

Showing papers on "Fortran published in 1992"




Journal ArticleDOI
TL;DR: Experimental results show that ADifOR can handle real-life codes and that ADIFOR-generated codes are competitive with divided-difference approximations of derivatives, and studies suggest that the source transformation approach to automatic differentiation may improve the time to compute derivatives by orders of magnitude.
Abstract: The numerical methods employed in the solution of many scientific computing problems require the computation of derivatives of a function f $R^N$→$R^m$ Both the accuracy and the computational requirements of the derivative computation are usually of critical importance for the robustness and speed of the numerical solution Automatic Differentiation of FORtran (ADIFOR) is a source transformation tool that accepts Fortran 77 code for the computation of a function and writes portable Fortran 77 code for the computation of the derivatives In contrast to previous approaches, ADIFOR views automatic differentiation as a source transformation problem ADIFOR employs the data analysis capabilities of the ParaScope Parallel Programming Environment, which enable us to handle arbitrary Fortran 77 codes and to exploit the computational context in the computation of derivatives Experimental results show that ADIFOR can handle real-life codes and that ADIFOR-generated codes are competitive with divided-difference approximations of derivatives In addition, studies suggest that the source transformation approach to automatic differentiation may improve the time to compute derivatives by orders of magnitude

458 citations



Book
01 Jan 1992
TL;DR: The book (paperback edition) is to give an introduction to numerical methods for undergraduate students in computer science, engineering, and mathematics to provide a good understanding of the essential ideas of numerical methods.
Abstract: The book (paperback edition) is the second edition of the work published under the title ``Numerical methods for computer science, engineering, and mathematics'' (1987). The intention of the author is to give an introduction to numerical methods for undergraduate students in computer science, engineering, and mathematics. On more than 600 pages, the book provides an ample material in different fields of numerical analysis such as the solution of nonlinear equations and linear systems of equations, interpolation and polynomial approximation, curve fitting, numerical differentiation, numerical integration, numerical optimization, solution of ordinary and partial differential equations, and calculation of eigenvalues as well as eigenvectors.\par It is assumed that the reader is familiar with calculus and basic aspects of structured programming languages. The book contains a well-balanced minimum of the theory of numerical analysis and takes care to provide a good understanding of the essential ideas of numerical methods. Otherwise, special emphasis is placed on the presentation of algorithms for various numerical processes. Some algorithms are described by pseudo-code and are easy to translate into BASIC, C, FORTRAN, or Pascal. Computer calculations given in the form of tables and graphs, and many examples as well as figures improve the readability of the text. Numerous exercises and the computer-oriented presentation of numerical methods are special features of this book.

319 citations


Journal ArticleDOI
TL;DR: Results of a study performed on Fortran programs taken from the Linpack and Eispack libraries and the Perfect Benchmarks to determine the applicability of the approach to real programs demonstrate the feasibility of automatic data partitioning for programs with regular computations that may be statically analyzed.
Abstract: An approach to the problem of automatic data partitioning is introduced. The notion of constraints on data distribution is presented, and it is shown how, based on performance considerations, a compiler identifies constraints to be imposed on the distribution of various data structures. These constraints are then combined by the compiler to obtain a complete and consistent picture of the data distribution scheme, one that offers good performance in terms of the overall execution time. Results of a study performed on Fortran programs taken from the Linpack and Eispack libraries and the Perfect Benchmarks to determine the applicability of the approach to real programs are presented. The results are very encouraging, and demonstrate the feasibility of automatic data partitioning for programs with regular computations that may be statically analyzed, which covers an extremely significant class of scientific application programs. >

272 citations


Journal ArticleDOI
TL;DR: This paper presents the language features of Vienna Fortran for FORTRAN 77, together with examples illustrating the use of these features and discusses the advantages of a shared memory programming paradigm while explicitly controlling the data distribution.
Abstract: Exploiting the full performance potential of distributed memory machines requires a careful distribution of data across the processors. Vienna Fortran is a language extension of Fortran which provides the user with a wide range of facilities for such mapping of data structures. In contrast to current programming practice, programs in Vienna Fortran are written using global data references. Thus, the user has the advantages of a shared memory programming paradigm while explicitly controlling the data distribution. In this paper, we present the language features of Vienna Fortran for FORTRAN 77, together with examples illustrating the use of these features.

260 citations


Journal ArticleDOI
TL;DR: A feasibility-retaining GRG algorithm for large sparse nonlinear programs of general form, enhanced by heuristics which aid in basis selection, combatting degeneracy, dynamic tolerance adjustment, and predicting Newton failures is described.
Abstract: We describe a feasibility-retaining GRG algorithm for large sparse nonlinear programs of general form. Its FORTRAN implementation, LSGRG, is enhanced by heuristics which aid in basis selection, combatting degeneracy, dynamic tolerance adjustment, and predicting Newton failures. Key roles are also played by efficient procedures for basis inversion and by both pure and limited memory BFGS methods for computing the search direction. The design goal for LSGRG is maximum reliability with at least acceptable speed. Extensive computational tests on both FORTRAN and GAMS models indicate that LSGRG is promising in this regard. Comparisons are presented with GRG2, a sparsity oriented SQP code, and MINOS, indicating that LSGRG is a useful complement to MINOS in a multi-solver NLP environment. INFORMS Journal on Computing, ISSN 1091-9856, was published as ORSA Journal on Computing from 1989 to 1995 under ISSN 0899-1499.

179 citations


Journal ArticleDOI
TL;DR: This paper presents an application of fuzzy linear programming to the linear multiobjective transportation problem, which gives efficient solutions as well as an optimal compromise solution.

176 citations


Patent
03 Feb 1992
TL;DR: The Connection Machine® Computer CM-2 as discussed by the authors is a parallel vector machine model for building a compiler that exploits three different levels of parallelism found in a variety of parallel processing machines.
Abstract: The present invention provides a parallel vector machine model for building a compiler that exploits three different levels of parallelism found in a variety of parallel processing machines, and in particular, the Connection Machine® Computer CM-2 system. The fundamental idea behind the parallel vector machine model is to have a target machine that has a collection of thousands of vector processors each with its own interface to memory. Thus allowing a fine-grained array-based source program to be mapped onto a course-grained hardware made up of the vector processors. In the parallel vector machine model used by CM Fortran 1.0, the FPUs, their registers, and the memory hiearchy are directly exposed to the compiler. Thus, the CM-2 target machine is not 64K simple bit-serial processors. Rather, the target is a machine containing 2K PEs (processing elements), where each PE is both superpipelined and superscalar. The compiler uses data distribution to spread the problem out among the 2K processors. A new compiler phase is used to separate the code that runs on the two types of processors in the CM-2; the parallel PEs, which execute a new RISC-like instruction set called PEAC, and the scalar front end processor, which executes SPARC or VAX assembler code. The pipelines in PEs are filled by using vector processing techniques along the PEAC instruction set. A scheduler overlaps the execution of a number of RISC operations.

173 citations


Journal ArticleDOI
TL;DR: The execution performance of Sisal, a functional language for large-scale scientific computing, and For-tran on a Cray Y-MP/864 is compared to provide further evidence that Fortran is not the sine qua non of high-speed computing.
Abstract: A Debate Rekindled-of 1984, te between ~cGraw ~awrence ivermore tional Laboratory (LLNL) and David Kuck and Michael Wolfe of Kuck and Associates, appeared in Physics Today [19]. The subject was whether to retire Fortran. Eight years have passed, and we wish to reopen the debate and provide further evidence that Fortran is not the sine qua non of high-speed computing. Many believe that the existing investments in Fortran and the quality of existing Fortran compilers are preventing a change in programming methodology. Many also feel that support for Fortran must continue because the language is familiar and widely available. Unfortunately , the complexity of writing correct parallel programs in Fortran is perpetuating today's software crisis. We believe, as did McGraw in 1984, that increased productivity, generality, utility, portability, and performance are only possible if programmers avoid the constraints of imperative languages and adopt a higher level of abstraction. We must escape the morass of imperative semantics and attain a level of abstraction that separates the programmer from the machine, stresses problem definition over the mechanics of solution, and provides complete information to the compiler. While Kuck and Wolfe would probably have agreed with the above statements, they wisely argued that programmers would not use languages that did not allow them to get the performance they required. To this McGraw had no counterargument, for in 1984, only Fortran provided the performance needed for large-scale scientific computing. The intent of this article is to reopen the debate and present overwhelming evidence that functional supercomputing is possible. To this end, we compare the execution performance of Sisal, a functional language for large-scale scientific computing, and For-tran on a Cray Y-MP/864. The Crays remain the most heavily used machines in our nation's supercom-puter centers, and are the preferred machines of most scientific programmers. Thus, it is here that languages must outperform For-tran if they are to replace it. For completeness and for the benefit of those readers not familiar with the principles of functional computing, the next two sections examine the functional programming paradigm, discuss its attributes and advantages, and highlight the salient features of Sisal. In the remaining sections we illustrate the potential inefficiencies of functional computing, present our most recent performance data, and give some closing remarks regarding Fortran and the future of high-speed computing. In 1984, McGraw noted that, by all indications, future supercomputers would be multiprocessors. Today, most supercomputer users …

Book ChapterDOI
03 Jan 1992
TL;DR: The design of a prototype Fortran D compiler for the iPSC/860, a MIMD distributed-memory machine is presented and issues addressed include data decomposition analysis, guard introduction, communications generation and optimization, program transformations, and storage assignment.
Abstract: Because of the complexity and variety of parallel architectures, an efficient machine-independent parallel programming model is needed to make parallel computing truly usable for scientific programmers. We believe that Fortran D, a version of Fortran enhanced with data decomposition specifications, can provide such a programming model. This paper presents the design of a prototype Fortran D compiler for the iPSC/860, a MIMD distributed-memory machine. Issues addressed include data decomposition analysis, guard introduction, communications generation and optimization, program transformations, and storage assignment. A test suite of scientific programs will be used to evaluate the effectiveness of both the compiler technology and programming model for the Fortran D compiler.

Proceedings ArticleDOI
01 Aug 1992
TL;DR: This paper introduces and classifies a number of advanced optimizations needed to achieve acceptable performance on MIMD distributed-memory machines; they are analyzed and empirically evaluated for stencil computations.
Abstract: The Fortran D compiler uses data decomposition specifications to automatically translate Fortran programs for execution on MIMD distributed-memory machines. This paper introduces and classifies a number of advanced optimizations needed to achieve acceptable performance; they are analyzed and empirically evaluated for stencil computations. Profitability formulas are derived for each optimization. Results show that exploiting parallelism for pipelined computations, reductions, and scans is vital. Message vectorization, collective communication, and efficient coarse-grain pipelining also significantly affect performance.

Book
01 Apr 1992
TL;DR: This first volume contains a complete description of standard programming language Fortran 90, covering all of its features in a format that is easier to read than the standard itself.
Abstract: This first volume contains a complete description of standard programming language Fortran 90, covering all of its features in a format that is easier to read than the standard itself. It uses the terminology and basic organization of the standard to make it easy to use documents. The book also includes: A chart of command changes from FORTRAN 77 TO FORTRAN 90. Cross referencing of commands for typical applications from FORTRAN 77 to FORTRAN 90; Hundreds of examples of common usage of FORTRAN 90.

01 Jan 1992
TL;DR: In this article, the authors present a reference record created on 2005-11-18, modified on 2016-08-08 by using the Reference Record Reference Record (RRSR).
Abstract: Keywords: methodes : numeriques ; programmation ; informatique Reference Record created on 2005-11-18, modified on 2016-08-08

01 Jan 1992
TL;DR: A novel approach, the constraint-based approach, to the problem of automatic data partitioning for numeric programs, implemented as part of a compiler called P scARADIGM, that accepts Fortran 77 programs, and specifies the partitioning scheme to be used for each array in the program.
Abstract: Distributed-memory parallel computers are increasingly being used to provide high levels of performance for scientific applications Unfortunately, such machines are not very easy to program A number of research efforts seek to alleviate this problem by developing compilers that take over the task of generating communication The communication overheads and the extent of parallelism exploited in the resulting target program are determined largely by the manner in which data is partitioned across different processors of the machine Most of the compilers provide no assistance to the programmer in the crucial task of determining a good data partitioning scheme This thesis presents a novel approach, the constraint-based approach, to the problem of automatic data partitioning for numeric programs In this approach, the compiler identifies some desirable requirements on the distribution of various arrays being referenced in each statement based on performance considerations These desirable requirements are referred to as constraints For each constraint, the compiler determines a quality measure that captures its importance with respect to the performance of the program The quality measure is obtained through static performance estimation, without actually generating the target data-parallel program with explicit communication Each data distribution decision is taken by combining all the relevant constraints The compiler attempts to resolve any conflicts between constraints such that the overall execution time of the parallel program is minimized This approach has been implemented as part of a compiler called P scARADIGM, that accepts Fortran 77 programs, and specifies the partitioning scheme to be used for each array in the program We have obtained results on some programs taken from the Linpack and Eispack libraries, and the Perfect Benchmarks These results are quite promising, and demonstrate the feasibility of automatic data partitioning for a significant class of scientific application programs with regular computations

Journal ArticleDOI
TL;DR: The objective of this second article is to investigate the potential of object-oriented programming to improve code readability, modularity and reusability in the field of the finite element method.
Abstract: This article describes an object-oriented implementation of the finite element method. The prototyping language Smalltalk is used. Some of its useful features are briefly presented; they illustrate how object-oriented programming consists of using mere programming tools in an environment. Similarly the new data types that describe finite elements are introduced as expansions of the existing environment. These new types of objects are described in detail: the element, the node, the domain, the linear system are well insulated entities, able to manage autonomously their data and tasks. Emphasis is laid on the potential of the concepts of object-oriented programming, mainly data encapsulation and inheritance. Key differences with classical Fortran coding are stressed. The objective of this second article is to investigate the potential of object-oriented programming to improve code readability, modularity and reusability in the field of the finite element method.

Journal ArticleDOI
TL;DR: PCN as mentioned in this paper is a programming system designed to improve the productivity of scientists and engineers using parallel supercomputers by providing a simple notation for the concise specification of concurrent algorithms, the ability to incorporate existing Fortran and C code into parallel applications, facilities for reusing parallel program components, and integrated debugging and performance analysis tools.
Abstract: We describe the PCN programming system, focusing on those features designed to improve the productivity of scientists and engineers using parallel supercomputers. These features include a simple notation for the concise specification of concurrent algorithms, the ability to incorporate existing Fortran and C code into parallel applications, facilities for reusing parallel program components, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers, and integrated debugging and performance analysis tools. We survey representative scientific applications and identify problem classes for which PCN has proved particularly useful.

01 Mar 1992
TL;DR: The syntax and semantics of Vienna Fortran are presented, a machine-independent language extension to FORTRAN 77, which allows the user to write programs for distributed-memory systems using global addresses.
Abstract: : This document presents the syntax and semantics of Vienna Fortran, a machine-independent language extension to FORTRAN 77, which allows the user to write programs for distributed-memory systems using global addresses. Vienna Fortran includes high level features for specifying virtual processor structures, distributing data across sets of processors, dynamically modifying distributions, and formulating explicitly parallel loops. The language is based upon the Single-Program-Multiple-Data (SPMD) paradigm, which exploits the parallelism inherent in many scientific codes. A substantial subset of the language features has already been implemented.

Journal ArticleDOI
TL;DR: This article uses a long-time code modification system to analyze large, linked, program modules of C++, C, and Fortran, and finds that C++ programs using object-oriented programming style contain a large fraction of unreachable procedure code.
Abstract: Unreachable procedures are procedures that can never be invoked. Their existence may adversely affect the performance of a program. Unfortunately, their detection requires the entire program to be present. Using a long-time code modification system, we analyze large, linked, program modules of C++, C, and Fortran. We find that C++ programs using object-oriented programming style contain a large fraction of unreachable procedure code. In contrast, C and Fortran programs have a low and essentially constant fraction of unreachable code. In this article, we present our analysis of C++, C, and Fortran programs, and we discuss how object-oriented programming style generates unreachable procedures.

Posted Content
TL;DR: Goffe, Ferrier, and Rogers as mentioned in this paper used simulated annealing for the global optimization of statistical functions with simulated Annealing (GOSO-SA) for GAUSS and Ox.
Abstract: This module accompanies the Computer Science in Economics & Management article "Simulated Annealing: An Initial Application in Econometrics," 1992, 5, 133-146. This implementation of simulated annealing was used in "Global Optimization of Statistical Functions with Simulated Annealing," Goffe, Ferrier and Rogers, Journal of Econometrics, vol. 60, no. 1/2, Jan./Feb. 1994, pp. 65-100. Other versions of this algorithm exist for GAUSS and Ox.

Journal ArticleDOI
TL;DR: In this article, basic mathematical operations are described, including boundary value and eigenvalue problems, matrix operations, and Parabolic Partial Differential Equations (PDE) with Monte Carlo Methods.
Abstract: * Basic Mathematical Operations * Ordinary Differential Equations * Boundary Value and Eigenvalue Problems * Special Functions and Gaussian Quadrature * Matrix Operations * Elliptic Partial Differential Equations * Parabolic Partial Differential Equations * Monte Carlo Methods

Proceedings ArticleDOI
01 Dec 1992
TL;DR: The authors present interprocedural analysis, optimization, and code generation algorithms for Fortran D that limit compilation to only one pass over each procedure, showing that interprocesural optimization is crucial in achieving acceptable performance for a common application.
Abstract: Algorithms exist for compiling Fortran D for MIMD (multiple-instruction multiple-data) distributed-memory machines, but they are significantly restricted in the presence of procedure calls. The authors present interprocedural analysis, optimization, and code generation algorithms for Fortran D that limit compilation to only one pass over each procedure. This is accomplished by collecting summary information after edits, and then compiling procedures in reverse topological order to propagate necessary information. Delaying instantiation of the computation partition, communication, and dynamic data decomposition is key to enabling interprocedural optimization. Recompilation analysis preserves the benefits of separate compilation. Empirical results show that interprocedural optimization is crucial in achieving acceptable performance for a common application. >

Proceedings ArticleDOI
01 Jul 1992
TL;DR: A fundamental relationship between three quantities that characterize an irregular parallel computation is shown: the total available parallelism, the optimal grain size, and the statistical variance of execution times for individual tasks, which yields a dynamic scheduling algorithm that substantially reduces the overhead of executing irregular parallel operations.
Abstract: This paper develops a methodology for compiling and executing irregular parallel programs. Such programs implement parallel operations whose size and work distribution depend on input data. We show a fundamental relationship between three quantities that characterize an irregular parallel computation: the total available parallelism, the optimal grain size, and the statistical variance of execution times for individual tasks. This relationship yields a dynamic scheduling algorithm that substantially reduces the overhead of executing irregular parallel operations.We incorporated this algorithm into an extended Fortran compiler. The compiler accepts as input a subset of Fortran D which includes blocked and cyclic decompositions and perfect alignment; it outputs Fortran 77 augmented with calls to library routines written in C. For irregular parallel operations, the compiled code gathers information about available parallelism and task execution time variance and uses this information to schedule the operation. On distributed memory architectures, the compiler encodes information about data access patterns for the runtime scheduling system so that it can preserve communication locality.We evaluated these compilation techniques using a set of application programs including climate modeling, circuit simulation, and x-ray tomography, that contain irregular parallel operations. The results demonstrate that, for these applications, the dynamic techniques described here achieve near-optimal efficiency on large numbers of processors. In addition, they perform significantly better, on these problems, than any previously proposed static or dynamic scheduling algorithm.

Book ChapterDOI
03 Jan 1992
TL;DR: This paper presents the basic features of Vienna Fortran along with a set of examples illustrating the use of these features and presents the advantages of a shared memory programming paradigm while explicitly controlling the placement of data.
Abstract: Exploiting the performance potential of distributed memory machines requires a careful distribution of data across the processors. Vienna FORTRAN is a language extension of FORTRAN which provides the user with a wide range of facilities for such mapping of data structures. However, programs in Vienna FORTRAN are written using global data references. Thus, the user has the advantage of a shared memory programming paradigm while explicitly controlling the placement of data. The basic features of Vienna FORTRAN are presented along with a set of examples illustrating the use of these features.

Book
01 Jan 1992
TL;DR: Leffelaar et al. as mentioned in this paper discuss the basic elements of dynamic simulation and present a simulation language for continuous system modeling programs, which is a general purpose computer language.
Abstract: Preface. Part A: Fundamentals of Dynamic Simulation. 1. Philosophy and Terminology C.T. de Wit. 2. Basic Elements of Dynamic Simulation P.A. Leffelaar. 3. A Simulation Language: Continuous System Modeling Program III P.A. Leffelaar. 4. The Growth of Yeast C.T. de Wit, J. Goudriaan. 5. Additional Exercises I P.A. Leffelaar. Part B: Advanced Themes in Dynamic Simulation. 6. Numerical Integration and Error Analysis P.A. Leffelaar. 7. Aspects of Structured Programming using CSMP and FORTRAN P.A. Leffelaar. 8. Modelling of Ageing, Development, Delays and Dispersion J. Goudriaan, H.J.W. van Roermund. 9. Mass Flow, Numerical Dispersion and Diffusion P.A. Leffelaar. 10. Simulation Using a General Purpose Computer Language P.A. Leffelaar, et al. 11. Additional Exercises II P.A. Leffelaar. Solutions to the Exercises. References.

01 Jan 1992
TL;DR: In this article, the authors present a reference record created on 2005-11-18, modified on 2016-08-08 by using the Reference Record Reference Record (RRSR).
Abstract: Keywords: methodes : numeriques ; programmation ; informatique Reference Record created on 2005-11-18, modified on 2016-08-08

Journal ArticleDOI
TL;DR: A method and algorithm are described for solution of the autoindexing problem of multiphase polycrystals and a Fortran program, called MRIAAU, which implements the algorithm runs on a PC and can solve the problem in some minutes.
Abstract: A method and algorithm are described for solution of the autoindexing problem of multiphase polycrystals. A Fortran program, called MRIAAU, which implements the algorithm, runs on a PC and can solve the problem in some minutes (IBM PC with 80286 and higher).

Proceedings ArticleDOI
26 Apr 1992
TL;DR: The paper presents the major features of Vienna Fortran 90 and gives examples of their use and the advantages of the shared memory programming paradigm with mechanisms for explicit user control of those aspects of the program which have the greatest impact on efficiency.
Abstract: Vienna Fortran 90 is a language extension of Fortran 90 which enables the user to write programs for distributed memory multiprocessors using global data references only. Performance of software on such systems is profoundly influenced by the manner in which data is distributed to the processors. Hence, Vienna Fortran 90 provides the user with a wide range of facilities for the mapping of data to processors. It combines the advantages of the shared memory programming paradigm with mechanisms for explicit user control of those aspects of the program which have the greatest impact on efficiency. The paper presents the major features of Vienna Fortran 90 and gives examples of their use. >

ReportDOI
12 Jun 1992
TL;DR: The Tritium Migration Analysis Program, Version 4 (TMAP4) has been developed by the Fusion Safety Program at the Idaho National Engineering Laboratory as a safety analysis code, mainly to analyze tritium retention and loss in fusion reactor structures and systems during normal operation and accident conditions.
Abstract: The Tritium Migration Analysis Program, Version 4 (TMAP4) has been developed by the Fusion Safety Program at the Idaho National Engineering Laboratory (INEL) as a safety analysis code, mainly to analyze tritium retention and loss in fusion reactor structures and systems during normal operation and accident conditions. TMAP4 incorporates one-dimensional thermal- and mass-diffusive transport and trapping calculations through structures and zero dimensional fluid transport between enclosures and across the interface between enclosures and structures. A key feature is the ability to input problem definition parameters as constants, interpolation tables, or FORTRAN equations. The code is specifically intended for use under a DOS operating system on PC-type mini-computers, but it has also been run successfully on workstations and mainframe computer systems. Use of the equation-input feature requires access to a FORTRAN-77 compiler and a linker program.