This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All person copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.
This article describes two software tools, AutoMap and AutoLink, that facilitate the use of data-structures in MPI. AutoMap is a program that parses a file of user-defined data-structures and generates new MPI types out of basic and previously defined MPI data-types. Our software tool automatically handles specialized error checking related to memory mapping. AutoLink is an MPI library that allows the transfer of complex, dynamically linked, and possibly heterogeneous structures through MPI. AutoLink uses files generated by AutoMap to automatically define the needed MPI data-types. We describe each of these tools, and give an example of their use. Finally we discuss the internals of AutoLink design, and focus on the performance rationale behind them.
Scientific discoveries occur with iterations of theory, experiment, and analysis. But the methods that scientists use to go about their work are changing [1]. Experiment types are changing. Increasingly, experiment means computational experiment [2], as computers increase in speed, memory, and parallel processing capability. Laboratory experiments are becoming parallel as combinatorial experiments become more common. Acquired datasets are changing. Both computer and laboratory experiments can produce large quantities of data where the time to analyze data can exceed the time to generate it. Data from experiments can come in surges where the analysis of each set determines the direction of the next experiments. The data generated by experiments may also be non-intuitive. For example, nanoscience is the study of materials whose properties may change greatly as their size is reduced [3]. Thus analyses may benefit from new ways to examine and interact with data.
Computational and laboratory experiments are generating increasing amounts of scientific data. Often, the complexity of the data makes it difficult to devise a priori methods for its analysis, or the data is from new landscapes, such as the nano-world, where we have little experience. Moreover, there may be ancillary data, from databases for example, that would be helpful to have available. We are developing visual analysis capabilities in an immersive environment that allow NIST scientists to interact with data objects in a three-dimensional landscape rather than simply viewing pictures of them. With visual exploration, scientists can easily perceive complex relationships in their data, quickly ascertaining whether the results match expectations. This system functions as a unique scientific instrument.
We have simulated the fast streamer stage of liquid dielectric breakdown as stochastic growth of a branching fractal tree. Breakdown and threshold properties of the fluid are represented in the random filter procedure. A range of fractal densities, from sparse to bushy, is approximated by the choice of power-law (4th-power to linear). The choice of threshold (cutoff) voltage also significantly affects the growth form. These parameters combine with the shape and concentration of the electric field, to regulate the distribution and directedness of the local discharge growth pattern. Inclusion of a voltage gradient along the streamer tree produces a secondary narrowing effect on the growth. A large grid (128 cubed) is used for the discretization. Diagonal growth paths to neighbor-vertices are included, increasing the choice of available directions for each discharge event. We use a combination of data-parallel programming and three-dimensional visualization. Complete growth histories, evolving from the voltage distribution, can be displayed in animation or in color banding against the "trials" variable, which simulates a time tick. Side views of the structures provide comparison against sub-microsecond snapshots from experiment. Results include sparse, directed trees evolving from a 4th-power-law filter; also dense trees from a linear filter, whose conical upper-envelope boundary is strongly influenced by the choice of threshold (cutoff) potential.
We describe a set of software, The Glyph ToolBox (GTB), for creating three dimensional (3D) glyphs.This software defines a single, general format for describing glyphs; it includes color and opacity parameters as well as location information.GTB is written with the UNIX philosophy of small reusable programs that are text based for portability and efficiency.Version 1.0 of GTB currently contains simple figures, manipulation functions, extrusion functions, meta-figure functions, as well as additional functions such as text creators.We describe four applications of the glyph toolbox: a visualization of the Monk's problem, a relationship highlighter, a smiley emoticon, and a display algorithm for concave surfaces.We separate the creation of the glyphs from their display.We provide a filter that can translate the GTB format to Inventor format or VRML 1.0.However, any system can incorporate the GTB format into their environment, making the creation and use of glyphs uniform across viewers.
We apply multiple machine learning methods to obtain concise rules that are highly predictive of scientifically meaningful classes in hydrating plaster over multiple time periods. We use three dimensional data obtained through X-ray microtomography at greater than one micron resolution per voxel at five times in the hydration process: powder, after 4 hours, 7 hours, 15.5 hours, and after 6 days of hydration. Using statistics based on locality, we create vectors containing eight attributes for subsets of size 1003 of the data and use the autoclass unsupervised classification system to label the attribute vectors into three separate classes. Following this, we use the C5 decision tree software to separate the three classes into two parts: class 0 and 1, and class 0 and 2. We use our locally developed procedural genetic programming system, GPP, to create simple rules for these. The resulting collection of simple rules are tested on a separate 1003 subset of the plaster datasets that had been labeled with their autoclass predictions. The rules were found to have both high sensitivity and high positive predictive value. The classes accurately identify important structural comonents in the hydrating plaster. Morover, the rules identify the center of the local distribution as a critical factor in separating the classes.
With advances in x-ray microtomography, it is now possible to obtain three-dimensional representations of a material's microstructure with a voxel size of less than one micrometer. The Visible Cement Data Set represents a collection of 3-D data sets obtained using the European Synchrotron Radiation Facility in Grenoble, France in September 2000. Most of the images obtained are for hydrating portland cement pastes, with a few data sets representing hydrating Plaster of Paris and a common building brick. All of these data sets are being made available on the Visible Cement Data Set website at http://visiblecement.nist.gov. The website includes the raw 3-D datafiles, a description of the material imaged for each data set, example two-dimensional images and visualizations for each data set, and a collection of C language computer programs that will be of use in processing and analyzing the 3-D microstructural images. This paper provides the details of the experiments performed at the ESRF, the analysis procedures utilized in obtaining the data set files, and a few representative example images for each of the three materials investigated.
We apply genetic programming in conjunction with other machine learning methods to obtain concise rules that accurately identify scientifically meaningful components in hydrating plaster over multiple time periods. Genetic programming enables the derivation of understandable rules from otherwise opaque classifications. Our study was based on three dimensional data obtained through X-ray microtomography at five times in the hydration process. Starting with statistics based on locality and output from an unsupervised classification system (autoclass), we use genetic programming to derive simple rules for identifying three classes. These rules are tested on a separate subset of the plaster datasets that had been labeled with their autoclass predictions. The rules were found to have both high sensitivity and high positive predictive value. Genetic programming in conjunction with other machine learning methods enabled us to go from unlabeled data to simple classification rules in a straightforward manner.
The rate of scientific discovery can be accelerated through computation and visualization. This acceleration results from the synergy of expertise, computing tools, and hardware for enabling highperformance computation, information science, and visualization that is provided by a team of computation and visualization scientists collaborating in a peer-to-peer effort with the research scientists.In the context of this discussion, high performance refers to capabilities beyond the current state of the art in desktop computing. To be effective in this arena, a team comprising a critical mass of talent, parallel computing techniques, visualization algorithms, advanced visualization hardware, and a recurring investment is required to stay beyond the desktop capabilities.This article describes, through examples, how the Scientific Applications and Visualization Group (SAVG) at NIST has utilized high performance parallel computing and visualization to accelerate condensate modeling, (2) fluid flow in porous materials and in other complex geometries, (3) flows in suspensions, (4) x-ray absorption, (5) dielectric breakdown modeling, and (6) dendritic growth in alloys.
In discovery with real data, one is always working with approximations. Even without noise, one computes over a finite set of unequally spaced numbers, approximating one’s values with this set. With noise, the values are even more uncertain. Along with the ambiguity of the exact values of numbers, there exists Occam’s razor to prefer simpler equations. That is, if a straight line will explain the data, then that is generally thought preferable to equations of higher power. It should be noted that this preference is a choice, however, and does not always work [8]. The preference needs to be codified to be automated, but codifying simplicity is not straightforward [8]. Finally, there needs to be a quantitative way to measure the goodness of an equation after it is chosen. Function finding is numeric induction, so there can never be certainty. But assigning a value to the inductive support provides a way to compare results across tasks. Thus dis- covery of functional forms can be divided into three tasks: 1_ choosing a search technique to find the set of best equations within the limitations of finite precision arithmetic and noise; 2_ choosing from among the best equations based on some criteria that encodes preference; and 3_ choosing a metric for the inductive support of the found equation
Interoperable MPI (IMPI) is a protocol specification to allow multiple MPI implementations to cooperate on a single MPI job. Unlike portable MPI implementations, an IMPI-connected parallel job allows the use of vendor-tuned message passing libraries on given target architectures, thus potentially allowing higher levels of performance than previously possible. Additionally, the IMPI protocol uses a low number of connections, which may be suitable for parallel computations across WAN distances. The IMPI specification defines a low-level wireline protocol that MPI implementations use to communicate with each other; each point-to-point and collective function in MPI-1 automatically uses this low-level protocol when communicating with a remote a MPI implementation. When running IMPI jobs, the only change visible to the user is the sequence of steps necessary to run the job; any correct MPI program will run correctly under IMPI. In this paper, we provide an overview of IMPI, describe its incorporation into the LAM implementation of MPI, and show an example of its use.
Algorithms are needed in every aspect of parallel computing. Genetic Programming is an evolutionary technique for automating the design of algorithms through iterative steps of mutation and crossover operations on an initial population of randomly generated computer programs. This paper describes a novel parallel genetic programming (GP) system inspired by the symbiogenesis model of evolution, wherein new organisms are generated through the absorption of different life-forms in addition to the usual mutation and crossover operations. Different organisms are expressed in this GP system through multiple program representations. Two program representations considered in this paper are the procedural representation (PR) and the tree representation (TR). Populations of these representations evolve separately. Individuals in each population migrate to the other and participate in evolution via representation change algorithms. Parallelism is achieved through use of the AutoMap/AutoLink MPI library. The differences in the locality properties of the representations serve as a source of new ideas for creating the final algorithm.
The Message Passing Interface (MPI) is the de facto standard for writing parallel scientific applications in the message passing programming paradigm. Implementations of MPI were not designed to interoperate, thereby limiting the environments in which parallel jobs could be run. We briefly describe a set of protocols, designed by a steering committee of current implementors of MPI, that enable two or more implementations of MPI to interoperate within a single application. Specifically, we introduce the set of protocols collectively called Interoperable MPI (IMPI). These protocols make use of novel techniques to handle difficult requirements such as maintaining interoperability among all IMPI implementations while also allowing for the independent evolution of the collective communication algorithms used in IMPI. Our contribution to this effort has been as a facilitator for meetings, editor of the IMPI Specification document, and as an early testbed for implementations of IMPI. This testbed is in the form of an IMPI conformance tester, a system that can verify the correct operation of an IMPI-enabled version of MPI.
We present a generalized algorithm for implementing a communications library for dynamic data structures created with heterogeneous composed data types such as multiple C structs, and where the data-types may be nested and may contain pointers. This algorithm is divided into an absolute part that is the same for all instantiations, and a relative part that is specific to the communications mechanism used, such as PVM or MPI. We describe the algorithm in terms of our AutoMap/AutoLink implementation in C/MPI. First, we talk of the MPI case and of the AutoMap and AutoLink solutions (with ideas from version 3.0). Then we discuss what is to be followed in order to generalize the data-type transfer concepts presented. With this addition to AutoMap/AutoLink we can extend the functions provided from the current send and receive functions (blocking and non blocking) available for any data-types, to any kind of transfer function; from broadcast to reduce (as long as the reduce called process is message aware). This will also simplify the extension of this work to data-types load balancing.
We introduce a parallelization of the maximum likelihood cosine transform. This transform consists of a computationally intensive iterative fitting process, but is readily decomposed for parallel processing. The parallel implementation is not only scalable, but has also brought the execution time of this previously intractable problem to feasible levels using contemporary and cost-efficient high-performance computers, including an SGI Origin 2000, an SGI Onyx, and a cluster of Intel-based PCs.
Ray Luo合作论文数School of Biological Sciences, University of California1