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.

Highlights

  • As scientific software projects grow in size, more scientists and engineers are investigating object-oriented programming (OOP) as a means of managing code complexity [1,5,6]

  • One visits c by accessing point(a)%%. This process returns us to a, and therein lies the rub: how does one reach points k, l, and m on a separate vortex ring? One could visit each object in the point array, but this could be wasteful if the array contains substantial amounts of free space. (Note: for the fine-grained design, “compression” refers to freeing the memory in the objects representing deleted points without necessarily changing the point object array.). The crux of this problem lies in the limited data structure extent resulting from reconnections that pinch off separate loops

  • This paper has focused on a class of scientific simulations involving large sets of interconnected objects

Read more

Summary

Introduction

As scientific software projects grow in size, more scientists and engineers are investigating object-oriented programming (OOP) as a means of managing code complexity [1,5,6]. If M is held constant as N grows, the complexity of the design is scale-invariant This elimination of quadratic complexity suggests that at the intersection of data encapsulation and information hiding lies rich territory for exploring ways to significantly reduce program complexity. This paper focuses on quantum turbulence, we emphasize here that the issues raised apply to a broad class of problems involving the simulation of large sets of objects with dynamically reconfigurable interconnections, e.g. tracking points on a manifold undergoing tearing and reconnection. Such tearing and reconnection occurs at reaction sites on long chain molecules and along separation lines on droplets pinching off from a continuous stream.

Defining the data granularity metric
Language choice
Application
The physics of quantum turbulence
Numerical simulation of quantum turbulence
Data structure and software architecture
Local operations
Global operations
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call