Publications of Williams, Roy D.
Published in 2001
In this paper we describe the JavaGrid concept that underlies the software developed for high performance computing and communication in science and engineering. JavaGrid provides a package for parallelization based on Java threads, a geometry package for handling 2D and 3D structured as well as unstructured grids, a generic solver and a solver template to model a system of integral conservation laws. JavaGrid provides both client and server software and allows to send a specific solver at run time from the client to the server, overriding the server's default solver.
For instance, this might be a computational fluid dynamics solver, while the client wishes to execute an electrodynamics solver. However, both solvers could be based on the template solver provided. Setting up a new solver is a straightforward process, since only the the physics equations have to be implemented for a single subdomain. Geometry handling, parallelization (i.e. updating the boundary of neighboring subdomains) and communication is handled by JavaGrid. It is also possible to incorporate so called legacy solvers, written in other languages. A Virtual Visualization toolkit for remote visualization is also provided. The paper describes the current status of the JavaGrid project and presents performance figures.
Keywords: Java HPC, client-server computation, OOP, Internet-based computing, Internet-based data access, diverse scientific and egineering disciplines, collaborative engineering, portable HPC and geometry framework, legacy code integration, architecture independence, HPC without libraries, complex 3D geometries, just in time solver, remote visualization and X3D.Download PDF
Published in 1999
In this paper an overview is given of the "Have Java" project to attain a pure Java parallel Navier-Stokes flow solver (JParNSS) based on the thread concept and remote method invocation (RMI). The goal of this project is to produce an industrial flow solver running on an arbitrary sequential or parallel architecture, utilizing Internet, capable of handling the most complex 3D geometries as well as flow physics, and also linking to codes in other areas such as aeroelasticity etc.
Since Java is completely object oriented the code has been written in an object-oriented programming (OOP) style. The code also includes a graphics user interface (GUI) as well as interactive steering package for the parallel architecture. The Java OOP approach provides profoundly improved software productivity, robustness, and security as well as reusability and maintainability. OOP allows code construction similar to the aerodynamic design process because objects can be software coded and integrated, reflecting actual design procedures. In addition, Java is the programming language of the Internet and thus Java objects on disparate machines or even separate networks can be connected.
We explain the motivation for the design of JParNSS along with its capabilities that set it apart from other solvers. In the first two sections we present a discussion of the Java language as the programming tool for aerospace applications. In section three the objectives of the Have Java project are presented. In the next section the layer structures of JParNSS are discussed with emphasis on the parallelization and client-server (RMI) layers. JParNSS, like its predecessor ParNSS (ANCI-C), is based on the multiblock idea, and allows for arbitrary comlex topologies. Grids are accepted in GridPro or Plot3D format. Using GridPro property settings, grids of any size or block number can be directly read by JParNSS without any further modifications, requiring no additional preparation time for the solver input. In the last section, computational results are presented, with emphasis on multiprocessor Pentium and Sun parallel systems run by the Solaris operating system (OS).Download PDF
Published in 1998
In this article we discuss a strategy for speeding up the solution of the Navier-Stokes equations on highly complex solution domains such as complete aircraft, spacecraft, or turbomachinery equipment. We have used a finite-volume code for the (non-turbulent) Navier-Stokes equations as a testbed for implementation of linked numerical and parallel processing techniques. Speedup is achieved by the Tangled Web of advanced grid topology generation, adaptive coupling, and sophisticated parallel computing techniques.
An optimized grid topology is used to generate an optimized grid: on the block level such a grid is unstructured whereas within a block a structured mesh is constructed, thus retaining the geometrical exibility of the nite element method while maintaining the numerical efficiency of the nite dierence technique. To achieve a steady state solution, we use grid-sequencing: proceeding from coarse to finer grids, where the scheme is explicit in time. Adaptive coupling is derived from the observation that numerical schemes have differing efficiency during the solution process. Coupling strength between grid points is increased by using an implicit scheme at the sub-block level, then at the block level, ultimately fully implicit across the whole computational domain. Other techniques include switching numerical schemes and the physics model during the solution, and dynamic deactivation of blocks. Because the computational work per block is very variable with adaptive coupling, especially for very complex ows, we have implemented parallel dynamic load-balancing to dynamically transfer blocks between processors. Several 2D and 3D examples illustrate the functioning of the Tangled Web approach on different parallel architectures.Download PDF
Published in 1997
Parallel computing has become a key component of high performance computing in the 90’s. In order to exploit this technology in science and engineering, in particular for aerospace, automotive, and turbomachinery applications as well as in environmental simulation, highly complex geometries have to be dealt with, often generated by CAD systems. In order to bring CFD in the design loop, quick turnaround times are mandatory.
Grids are multiblock hexahedra allowing any kind of topology and comprise any number of blocks. Grid generation is completely non-interactive. Only a wireframe and the geometry description are provided. Surface and volume grids are generated together. Grids are slope continuous. Grids are constructed using a high-level grid generation language. Grids consist of objects that are reusable. A problem/user specific grid database may be constructed that allows to use more complex entities from which to generate new grids. Complex grids are built in an object oriented fashion.Download PDF
Published in 1994
The present paper deals with the PVM implementation of the general purpose Navier-Stokes ParNSS code, written in Ansi-C, using some C++ features. A brief discussion of the substantial advantages of dynamic storage allocation, complex data structures and pointer usage as well as on portability aspects will be given. The parallelization strategy will be discused in some detail, showing that the same approach can be used for both unstructured as well as structured codes as long as parallelization is based on a multi-domain decomposition. Speedup results for the axisymmetric Hyperboloid Flare body will be given for a cluster of SGI workstations, a DEC 3000/400 150 MHz cluster, of IBM 6000/580s, and for the IBM SP1 (ES-TEC) parallel machine, comparing ethernet and fast switch message passing. A comparison for these clusters is presented.Download PDF