10 research outputs found

    Towards analysis-driven scientific software architecture: The case for abstract data type calculus

    Get PDF
    Abstract. This article approaches scientific software architecture from three analytical paths. Each path examines discrete time advancement of multiphysics phenomena governed by coupled differential equations. The new object-oriented Fortran 2003 constructs provide a formal syntax for an abstract data type (ADT) calculus. The first analysis uses traditional object-oriented software design metrics to demonstrate the high cohesion and low coupling associated with the calculus. A second analysis from the viewpoint of computational complexity theory demonstrates that a more representative bug search strategy than that considered by Rouson et al. (ACM Trans. Math. Soft. 3

    Design metrics in quantum turbulence simulations: How physics influences software architecture,

    Get PDF
    Abstract. The information hiding philosophy of object-oriented programming encourages localizing data structures within objects rather than sharing data globally across different classes of objects. This emphasis on local data leads naturally to fine-grained data abstractions, particularly in scientific simulations involving large collections of small, discrete physical or mathematical objects. This paper focuses on a subset of such simulations where dynamically reconfigurable links bind the objects together. It is demonstrated that fine-grained data structures reduce the complexity of local operations on the data at the potential expense of increased global operation complexity. Two metrics are used to describe data structures: granularity is the number of instantiations required to cover the data space, whereas extent is the continuously traversable length of the data along a given direction. These definitions are applied to two abstractions for simulating the turbulent motion of quantum vortices in superfluid liquid helium. Several local and global operations on a fine-grained linked list are compared with those on a coarse-grained array. It is demonstrated that fine-grained data structures recover the simplicity of more coarse-grained structures if maximal extent is maintained as the granularity increases

    Formal constraints on memory management for composite overloaded operations

    No full text
    Abstract The memory management rules for abstract data type calculus presented by Rouson, Morris & Xu [15] are recast as formal statements in the Object Constraint Language (OCL) and applied to the design of a thermal energy equation solver. One set of constraints eliminates memory leaks observed in composite overloaded expressions with three current Fortran 95/2003 compilers. A second set of constraints ensures economical memory recycling. The constraints are preconditions, postconditions and invariants on overloaded operators and the objects they receive and return. It is demonstrated that systematic run-time assertion checking inspired by the formal constraints facilitated the pinpointing of an exceptionally hard-to-reproduce compiler bug. It is further demonstrated that the interplay between OCL's modeling capabilities and Fortran's programming capabilities led to a conceptual breakthrough that greatly improved the readability of our code by facilitating operator overloading. The advantages and disadvantages of our memory management rules are discussed in light of other published solution

    On the preferential concentration of solid particles in turbulent channel flow

    No full text

    Using Coarrays to Parallelize Legacy Fortran Applications: Strategy and Case Study

    No full text
    This paper summarizes a strategy for parallelizing a legacy Fortran 77 program using the object-oriented (OO) and coarray features that entered Fortran in the 2003 and 2008 standards, respectively. OO programming (OOP) facilitates the construction of an extensible suite of model-verification and performance tests that drive the development. Coarray parallel programming facilitates a rapid evolution from a serial application to a parallel application capable of running on multicore processors and many-core accelerators in shared and distributed memory. We delineate 17 code modernization steps used to refactor and parallelize the program and study the resulting performance. Our initial studies were done using the Intel Fortran compiler on a 32-core shared memory server. Scaling behavior was very poor, and profile analysis using TAU showed that the bottleneck in the performance was due to our implementation of a collective, sequential summation procedure. We were able to improve the scalability and achieve nearly linear speedup by replacing the sequential summation with a parallel, binary tree algorithm. We also tested the Cray compiler, which provides its own collective summation procedure. Intel provides no collective reductions. With Cray, the program shows linear speedup even in distributed-memory execution. We anticipate similar results with other compilers once they support the new collective procedures proposed for Fortran 2015

    Dispersed-phase structural anisotropy in homogeneous magnetohydrodynamic turbulence at low magnetic Reynolds number

    No full text
    A new tensor statistic, the dispersed-phase structure dimensionality Dp, is defined to describe the preferred orientation of clusters of discrete bodies. The evolution of Dp is calculated via direct numerical simulations of passive, Stokesian particles driven by initially isotropic, decaying magnetohydrodynamic turbulence. Results are presented for five magnetic field strengths as characterized by magnetic interaction parameters, N, in the range 0-50. Four field strengths are studied at a grid resolution of 1283. The strongest field strength is also studied at 2563 resolution. In each case, the externally applied magnetic field was spatially uniform and followed a step function in time. Particles with initially uniform distributions were tracked through hydrodynamic turbulence for up to 2800 particle response times before the step change in the magnetic field. In the lower resolution simulation, the particle response time, τp, matched the Kolmogorov time scale at the magnetic field application time t0. The higher-resolution simulation tracked ten sets of particles with τp spanning four decades bracketing the Kolmogorov time scale and the Joule time. The results demonstrate that Dp distinguishes between uniformly distributed particles, those organized into randomly oriented clusters, and those organized into two-dimensional sheets everywhere tangent to the magnetic field lines. Lumley triangles are used to demonstrate that the degree of structural anisotropy depends on τp, N, and the time span over which the magnetic field is applied. © 2008 American Institute of Physics.SCOPUS: ar.jinfo:eu-repo/semantics/publishe
    corecore