Coupled simulations of core and edge transport in the DIII-D shot number 118897, after the L-H transition but before the first edge localized mode (ELM), are presented. For the plasma core transport, a set of one dimensional transport equations are solved using the FACETS:Core solver. The fluxes in this region are calculated using the GLF23 anomalous transport model and Chang-Hinton neoclassical model. For the plasma edge transport, two-dimensional transport equations are solved using the UEDGE code. Fluxes in the edge region use static diffusivity profiles based on an interpretive analysis of the experimental profiles. Simulations are used to study the range of validity of the selected models and sensitivity to neutral fueling. It has been demonstrated that the increase of neutral influx to the level that exceeds the level of neutral influx obtained from analysis simulations with the UEDGE code by a factor of two results in increased plasma density pedestal heights and plasma density levels in the scrape-off-layer region. However, the additional neutral influx has relatively weak effect on the pedestal width and plasma density profiles in the plasma core for the DIII-D discharge studied in this research.
Chapel is a high-level parallel programming language that implements a partitioned global address space model (PGAS). Programs written in this programming model have traditionally been selfcontained entities written entirely in one language. While this approach enables the compiler to produce better performing code by doing whole program optimization, it also carries a risk of positioning PGAS languages as “island” programming languages. In this paper we present a tool that lets Chapel programs call functions and instantiate objects written in C, C++, Fortran 77– 2008, Java and Python. Our tool creates language bindings that are binary-compatible with those generated by the Babel language interoperability tool. The scientific community maintains a large amount of code (mathematical libraries, solvers and numerical models) written in legacy languages. With the help of our tool, users will gain access to their existing codebase with minimal effort and through a well-defined interface. Knowing the demands of the target audience, we support the full Babel array API. A particular contribution of this paper is that we expose Chapel’s distributed data types through our interface and make them accessible to external functions implemented in traditional serial programming languages. We anticipate applying similar concepts to other PGAS languages in the future.
The majority of scientific software is distributed as source code. As the number of library dependencies and supported platforms increases, so does the complexity of describing the rules for configuring and building software. In this project, we have performed an empirical study of the magnitude of the build problem by examining the development history of two DOE-funded scientific software projects. We have developed MixDown, a meta-build tool, to simplify the task of building applications that depend on multiple third-party libraries. The results of this research indicate that the effort that scientific programmers spend takes a significant fraction of the total development effort and that the use of MixDown can significantly simplify the task of building software with multiple dependencies.
Chapel is a high-level parallel programming language that implements a partitioned global address space model (PGAS). Programs written in this programming model have traditionally been self-contained entities written entirely in one language. While this approach enables the compiler to produce better performing code by doing whole program optimization, it also carries a risk of positioning PGAS languages as “island” programming languages. In this paper we present a tool that lets Chapel programs call functions and instantiate objects written in C, C++, Fortran 77– 2008, Java and Python. Our tool creates language bindings that are binary-compatible with those generated by the Babel language interoperability tool. The scientific community maintains a large amount of code (mathematical libraries, solvers and numerical models) written in legacy languages. With the help of our tool, users will gain access to their existing codebase with minimal effort and through a well-defined interface. Knowing the demands of the target audience, we support the full Babel array API. A particular contribution of this paper is that we expose Chapel’s distributed data types through our interface and make them accessible to external functions implemented in traditional serial programming languages. We anticipate applying similar concepts to other PGAS languages in the future.
The FACETS project aims to provide computational tools for whole device simulation of tokamak transport for use in fusion applications. The framework provides flexibility by allowing users to choose the best model for a given physics target. Our goals are to develop accurate transport solvers using neoclassical and turbulent fluxes with varying degree of fidelity and computational complexity, including embedded gyrokinetic models. Accurate sources using both ICRH wave absorption and neutral beam injection, using parallel source components, are included. Modeling of the plasma edge using a fluid based component, UEDGE, is performed and coupled to the core solver. The core region is simulated using a newly developed parallel, nested iteration based nonlinear solver while the UEDGE uses nonlinear solves from the PETSc/SNES solver package. As a first application we present coupled core–edge simulations of pedestal buildup in the DIIID tokamak.
FACETS (Framework Application for Core-Edge Transport Simulations), is now in its third year. The FACETS team has developed a framework for concurrent coupling of parallel computational physics for use on Leadership Class Facilities (LCFs). In the course of the last year, FACETS has tackled many of the difficult problems of moving to parallel, integrated modeling by developing algorithms for coupled systems, extracting legacy applications as components, modifying them to run on LCFs, and improving the performance of all components. The development of FACETS abides by rigorous engineering standards, including cross platform build and test systems, with the latter covering regression, performance, and visualization. In addition, FACETS has demonstrated the ability to incorporate full turbulence computations for the highest fidelity transport computations. Early indications are that the framework, using such computations, scales to multiple tens of thousands of processors. These accomplishments were a result of an interdisciplinary collaboration among computational physics, computer scientists and applied mathematicians on the team.
Babel is a tool aimed at the high-performance computing community that addresses the need for mixing programming languages (Java, Python, C, C++, Fortran 90, FORTRAN 77) in order to leverage the specific benefits of those languages. Scientific codes often rely on structured data types (structs, derived data types) to encapsulate data, and Babel has been lacking in this type of support until recently. We present a new language binding that focuses on their interoperability of C/C++ with Fortran 2003. The new binding builds on the existing Fortran 90 infrastructure by using the iso-c-binding module defined in the Fortran 2003 standard as the basis for C/C++ interoperability. We present the technical approach for the new binding and discuss our initial experiences in applying the binding in FACETS (Framework Application for Core-Edge Transport Simulations) to integrate C++ with legacy Fortran codes.
and tribological interactions (science of interacting surfaces) leading to several models to explain crack distribution behavior of ground surfaces and to explain the characteristics of scratches formed during polishing. This project has greatly advanced the scientific knowledge of microscopic mechanical damage occurring during grinding and polishing and has been of general interest. This knowledge-base has also enabled the design and optimization of surface finishing processes to create optical surfaces with far superior laser damage resistance. There are five major areas of scientific progress as a result of this LDRD. They are listed in Figure 1 and described briefly in this summary below. The details of this work are summarized through a number of published manuscripts which are included this LDRD Final Report. In the first area of grinding, we developed a technique to quantitatively and statistically measure the depth distribution of surface fractures (i.e., subsurface damage) in fused silica as function of various grinding processes using mixtures of various abrasive particles size distributions. The observed crack distributions were explained using a model that extended known, single brittle indentation models to an ensemble of loaded, sliding particles. The model illustrates the importance of the particle size distribution of the abrasive and its influence on the resulting crack distribution. The results of these studies are summarized in references 1-7. In the second area of polishing, we conducted a series of experiments showing the influence of rogue particles (i.e., particles in the polishing slurry that are larger than base particles) on the creation of scratches on polished surfaces. Scratches can be thought of a as a specific type of sub-surface damage. The characteristics (width, length, type of fractures, concentration) were explained in terms of the rogue particle size, the rogue particle material, and the viscoelastic properties of the lap. The results of these studies are summarized in references 6-7. In the third area of etching, we conducted experiments aimed at understanding the effect of HF:NH{sub 4}F acid etching on surface fractures on fused silica. Etching can be used as a method: (a) to expose sub-surface mechanical damage, (b) to study the morphology of specific mechanical damage occurring by indentation, and (c) to convert a ground surface containing a high concentration of sub-surface mechanical damage into surface roughness. Supporting models have been developed to describe in detail the effect of etching on the morphology and evolution of surface cracks. The results of these studies are summarized in references 8-9. In the fourth area of scratch forensics or scratch fractography, a set of new scratch forensic rule-of-thumbs were developed in order to aid the optical fabricator and process engineer to interpret the cause of scratches and digs on surfaces. The details of how these rules were developed are described in each of the references included in this summary (1-9). Figure 2 provides as a summary of some of the more commonly used rules-of-thumbs that have been developed in this study. In the fifth and final area of laser damage, we demonstrated that the removal of such surface fractures from the surface during optical fabrication can dramatically improve the laser damage.
FACETS (Framework Application for Core-Edge Transport Simulations), now in its second year, has achieved its first coupled core-edge transport simulations. In the process, a number of accompanying accomplishments were achieved. These include a new parallel core component, a new wall component, improvements in edge and source components, and the framework for coupling all of this together. These accomplishments were a result of an interdisciplinary collaboration among computational physics, computer scientists, and applied mathematicians on the team.
The FACETS (Framework Application for Core-Edge Transport Simulations) project began in January 2007 with the goal of providing core to wall transport modeling of a tokamak fusion reactor. This involves coupling previously separate computations for the core, edge, and wall regions. Such a coupling is primarily through connection regions of lower dimensionality. The project has started developing a component-based coupling framework to bring together models for each of these regions. In the first year, the core model will be a 1 ½ dimensional model (1D transport across flux surfaces coupled to a 2D equilibrium) with fixed equilibrium. The initial edge model will be the fluid model, UEDGE, but inclusion of kinetic models is planned for the out years. The project also has an embedded Scientific Application Partnership that is examining embedding a full-scale turbulence model for obtaining the crosssurface fluxes into a core transport code.
The Common Component Architecture (CCA) is a component model for high-performance computing, developed by a grass-roots effort of computational scientists. Although the CCA is usable with CORBA-like distributed-object components, its main purpose is to set forth a component model for high-performance, parallel computing. Traditional component models are not well suited for performance and massive parallelism. We outline the design pattern for the CCA component model, discuss our strategy for language interoperability, describe the development tools we provide, and walk through an illustrative example using these tools. Performance and scalability, which are distinguishing features of CCA components, affect choices throughout design and implementation. Copyright © 2005 John Wiley & Sons, Ltd.
A major challenge to achieving widespread use of software component technology in scientific computing is an effective migration strategy for existing, or legacy, source code. This paper describes initial work and challenges in automating the identification and generation of components using the ROSE compiler infrastructure and the Babel language interoperability tool. Babel enables calling interfaces expressed in the Scientific Interface Definition Language (SIDL) to be implemented in, and called from, an arbitrary combination of supported languages. ROSE is used to build specialized source-to-source translators that (1) extract a SIDL interface specification from information implicit in existing C++ source code and (2) transform Babel's output to include dispatches to the legacy code.
In keeping with the Open Source tradition, we want our Babel 1.0 release to indicate a certain level of capability, maturity, and stability. From our first release (version 0.5.0) in July of 2001 to our current (18th) release (version 0.9.6) we have continued to add capabilities in response to customer feedback, our observations in the field, and a consistent vision for interoperability. The key to our maturity is without a doubt the ever-increasing demands of our growing user base... both in terms of sheer size and sophistication with the underlying technology. Stability is a special challenge for any research project. With our 1.0 release, we will branch and maintain a stable Babel 1.0 code line for at least a full year. This means no new features and no backward incompatible changes, only bug fixes. All continuing R&D will be performed on a separate development tree. Currently, Babel has a quarterly release cycle with no guarantee for backward compatibility from one release to the next (though we certainly try to make migration as painless as possible). Now is the time where we can see a good point for a Babel 1.0 release. But, seeing that point is different from being there. This list enumerates and explains the outstanding technical issues to be resolved to minimize volatility and help ensure stability for the 1.0 line. The first draft of this document was circulated internally in June 2003. A revised draft was then presented at the July 2003 CCA meeting. A third revision was made into the current working document form & circulated for general comment on the babel-users mailing list and Babel's homepage. The working document was intended to be an open record tracking progress in subsequent Babel releases. A major revision of the document (including adding new items and promoting/demoting items) was done in October 2004, well after the 0.9.6 release.
Sameer Shende合作论文数Department of Computer and Information Science, University of Oregon, Eugene, OR2