11 |
A Design Language for Scientific Computing Software in Drasil / Design Language for SCSMacLachlan, Brooks January 2020 (has links)
Drasil is a framework for generating high-quality documentation and code for Scientific Computing Software (SCS). Despite the tendency of SCS code to follow an Input-Calculate-Output design pattern, there are many design variabilities in SCS. Drasil should therefore allow its users to specify a design for their generated program. To this end, a language that encodes the design variabilities present in SCS was implemented in Drasil. Drasil's code generator was updated to generate code based on a user's design choices. A Generic Object-Oriented Language, GOOL, from which Python, Java, C#, or C++ code can be generated, was implemented. Drasil's code generator targets GOOL, enabling the choice of programming language to be included in the design language. Other choices included in the language are related to the modularity, the generation of record classes to bundle variables, the inlining of constants, the code types used to represent different mathematical spaces, which external library to use to solve ODEs, the behaviour when a constraint is violated, and the presence of
documentation, logging, or a controller. The design language is implemented as a record type in Haskell, and is designed to be understandable, extensible, and usable. A design specification can be easily changed, to generate a different version of the same program, which would often require time-consuming refactoring if the program was written manually. During the regular build process of Drasil, working code is generated in all four target languages for three examples of SCS, each using a different design specification. / Thesis / Master of Applied Science (MASc)
|
12 |
Modular Implementation of Program Adaptation with Existing Scientific CodesKang, Pilsung 01 September 2010 (has links)
Often times, scientific software needs to be adapted for different execution environments, problem sets, and available resources to ensure its efficiency and reliability. Directly modifying source code to implement adaptation is time-consuming, error-prone, and difficult to manage for today's complex software. This thesis studies modular approaches to implementing program adaptation with existing scientific codes, whereby application-specific adaptation strategies can be implemented in separate code which is then transparently combined with a given program. By using the approaches developed in this thesis, scientific programmers can focus on the design and implementation of adaptation schemes, manage an adaptation code separately from the main program components, and compose an adaptive application whose original capabilities are enhanced in diverse aspects such as application performance and stability. The primary objective of the modular approaches in this study is to provide a language-independent development method of adapting existing scientific software, so that applications written in different languages can be supported when implementing adaptation schemes. In particular, the emphasis is on Fortran, which has been a mainstream language for programming scientific applications.
Three research questions are formulated in this thesis, each of which aims to: design and implement high-level abstractions for expressing adaptation strategies, develop a dynamic tuning approach for parallel programs, and support flexible runtime adaptation schemes, respectively. The applicability of the proposed approaches is demonstrated through example applications to real-world scientific software. / Ph. D.
|
13 |
Parallel Sparse Linear Algebra for Homotopy MethodsDriver, Maria Sosonkina Jr. 19 September 1997 (has links)
Globally convergent homotopy methods are used to solve difficult nonlinear systems of equations by tracking the zero curve of a homotopy map. Homotopy curve tracking involves solving a sequence of linear systems, which often vary greatly in difficulty. In this research, a popular iterative solution tool, GMRES(k), is adapted to deal with the sequence of such systems. The proposed adaptive strategy of GMRES(k) allows tuning of the restart parameter k based on the GMRES convergence rate for the given problem. Adaptive GMRES(k) is shown to be superior to several other iterative techniques on analog circuit simulation problems and on postbuckling structural analysis problems.
Developing parallel techniques for robust but expensive sequential computations, such as globally convergent homotopy methods, is important. The design of these techniques encompasses the functionality of the iterative method (adaptive GMRES(k)) implemented sequentially and is based on the results of a parallel performance analysis of several implementations. An implementation of adaptive GMRES(k) with Householder reflections in its orthogonalization phase is developed. It is shown that the efficiency of linear system solution by the adaptive GMRES(k) algorithm depends on the change in problem difficulty when the problem is scaled. In contrast, a standard GMRES(k) implementation using Householder reflections maintains a constant efficiency with increase in problem size and number of processors, as concluded analytically and experimentally. The supporting numerical results are obtained on three distributed memory homogeneous parallel architectures: CRAY T3E, Intel Paragon, and IBM SP2. / Ph. D.
|
14 |
A Combined Quadtree/Delaunay Method for 2d Mesh GenerationTang, Simon 01 January 2012 (has links) (PDF)
Unstructured simplicial mesh is an integral and critical part of many computational electromagnetics methods (CEM) such as the finite element method (FEM) and the boundary element method (BEM). Mesh quality and robustness have direct impact on the success of these CEM methods.
A combined quadtree/Delunay 2D mesh generator, based on the early work of Schroeder (1991, PhD), is presented. The method produces a triangulation that approximates the original geometric model but is also topologically consistent. The key advantages of the method are: (a) its robustness, (b) ability to create a-priori graded meshes, and (c) its guaranteed mesh quality.
The method starts by recursively refining the grid and using a 2:1 balanced quadtree data structure to index each cell. Once the quadtree grid is refined at a user-defined level associated with each geometrical model topological entity, each cell in the grid is successively triangulated using the Delaunay method. Finally, the method handles some modeling errors by merging vertices and allowing overlapped faces.
|
15 |
Locating Carbon Bonds from INADEQUATE Spectra using Continuous Optimization Methods and Non-Uniform K-Space SamplingWatson, Sean C. 10 1900 (has links)
<p>The 2-D INADEQUATE experiment is a useful experiment for determining carbon structures of organic molecules known for having low signal-to-noise ratios. A non-linear optimization method for solving low-signal spectra resulting from this experiment is introduced to compensate. The method relies on the peak locations defined by the INADEQUATE experiment to create boxes around these areas and measure the signal in each. By measuring pairs of these boxes and applying penalty functions that represent a priori information, we are able to quickly and reliably solve spectra with an acquisition time under a quarter of that required by traditional methods. Examples are shown using the spectrum of sucrose. The concept of a non-uniform Fourier transform and its potential advantages are introduced. The possible application of this type of transform to the INADEQUATE experiment and the previously explained optimization program is detailed.</p> / Master of Applied Science (MASc)
|
16 |
Verifying Permutation Rewritable Hazard Free LoopsDobrogost, Michal 10 1900 (has links)
<p>We present an extension to the language of Atomic Verifiable Operation (AVOp) streams to allow the expression of loops which are rewritable via an arbitrary permutation. Inspired by (and significantly extending) hardware register rotation to data buffers in multi-core programs, we hope to achieve similar performance benefits in expressing software pipelined programs across many cores. By adding loops to AVOp streams, we achieve significant stream compression, which eliminates an impediment to scalability of this abstraction. Furthermore, we present a fast extension to the previous AVOp verification process which ensures that no data hazards are present in the program’s patterns of communication. Our extension to the verification process is to verify loops without completely unrolling them. A proof of correctness for the verification process is presented.</p> / Master of Science (MSc)
|
17 |
Case Studies in Document Driven Design of Scientific Computing SoftwareJegatheesan, Thulasi January 2016 (has links)
The use and development of Scientific Computing Software (SCS) has become commonplace
in many fields. It is used to motivate decisions and support scientific research.
Software Engineering (SE) practices have been shown to improve software quality in other
domains, but these practices are not commonly used in Scientific Computing (SC). Previous
studies have attributed the infrequent use of SE practices to the incompatibility of
traditional SE with SC development. In this research, the SE development process, Document
Driven Design (DDD), and SE tools were applied to SCS using case studies.
Five SCS projects were redeveloped using DDD and SE best practices. Interviews with
the code owners were conducted to assess the impact of the redevelopment. The interviews
revealed that development practices and the use of SE varied between the code owners.
After redevelopment, the code owners agreed that a systematic development process can
be beneficial, and they had a positive or neutral response to the software artifacts produced
during redevelopment. The code owners, however, felt that the documentation produced by
the redevelopment process requires too great a time commitment. To promote the use of SE
in SCS development, SE practices must integrate well with current development practices
of SC developers and not disrupt their regular workflow. Further research in this field
should encourage practices that are easy to adopt by SC developers and should minimize
the effort required to produce documentation. / Thesis / Master of Science (MSc)
|
18 |
Implementing Scientific Simulation Codes Tailored for Vector Architectures Using Custom Configurable Computing MachinesRutishauser, David 05 May 2011 (has links)
Prior to the availability of massively parallel supercomputers, the implementation of choice for scientific computing problems such as large numerical physical simulations was typically a vector supercomputer. Legacy code still exists optimized for vector supercomputers. Rehosting legacy code often requires a complete re-write of the original code, which is a long and expensive effort. This work provides a framework and approach to utilize reconfigurable computing resources in place of a vector supercomputer towards the implementation of a legacy source code without a large re-hosting effort. The choice of a vector processing model constrains the solution space such that practical solutions to the underlying resource constrained scheduling problem are achieved. Reconfigurable computing resources that implement capabilities characteristic of the application's original target platform are examined. The framework includes the following components: (1) a template for a parameterized, configurable vector processing core, (2) a scheduling and allocation algorithm that employs lessons learned from the mature knowledge base of vector supercomputing, and (3) the design of the VectCore co-processor to provide a low-overhead interface and control method for instances of the architectural template. The implementation approach applies the framework to produce VectCore instances tailored for specific input problems that meet resource constraints. Experimental data shows the VectCore approach results in efficient implementations with favorable performance compared to both general purpose processing and fixed vector architecture alternatives for the majority of the benchmark cases. Half the benchmark cases scale nearly linearly under a fixed time scaling model. The fixed workload scaling is also linear for the same cases until becoming constant for a subset of the benchmarks due to resource contention in the VectCore implementation limiting the maximum achievable parallelism. The architectural template contributed by this work supports established vector performance enhancing techniques such as parallel and chained operations. As the hardware resources are scaled, the VectCore approach scales the amount of parallelism applied in a problem implementation. In end-to-end hardware experiments, the VectCore co-processor overhead is shown to be small (less than 4%) compared to the schedule length. / Ph. D.
|
19 |
Cross-Validation of Data-Driven Correction Reduced Order ModelingMou, Changhong 03 October 2018 (has links)
In this thesis, we develop a data-driven correction reduced order model (DDC-ROM) for numerical simulation of fluid flows. The general DDC-ROM involves two stages: (1) we apply ROM filtering (such as ROM projection) to the full order model (FOM) and construct the filtered ROM (F-ROM). (2) We use data-driven modeling to model the nonlinear interactions between resolved and unresolved modes, which solves the F-ROM's closure problem.
In the DDC-ROM, a linear or quadratic ansatz is used in the data-driven modeling step. In this thesis, we propose a new cubic ansatz. To get the unknown coefficients in our ansatz, we solve an optimization problem that minimizes the difference between the FOM data and the ansatz. We test the new DDC-ROM in the numerical simulation of the one-dimensional Burgers equation with a small diffusion coefficient. Furthermore, we perform a cross-validation of the DDC-ROM to investigate whether it can be successful in computational settings that are different from the training regime. / M.S. / Practical engineering and scientific problems often require the repeated simulation of unsteady fluid flows. In these applications, the computational cost of high-fidelity full-order models can be prohibitively high. Reduced order models (ROMs) represent efficient alternatives to brute force computational approaches. In this thesis, we propose a data-driven correction ROM (DDC-ROM) in which available data and an optimization problem are used to model the nonlinear interactions between resolved and unresolved modes. In order to test the new DDC-ROM's predictability, we perform its cross-validation for the one-dimensional viscous Burgers equation and different training regimes.
|
20 |
A Two-Level Galerkin Reduced Order Model for the Steady Navier-Stokes EquationsPark, Dylan 15 May 2023 (has links)
In this thesis we propose, analyze, and investigate numerically a novel two-level Galerkin reduced order model (2L-ROM) for the efficient and accurate numerical simulation of the steady Navier-Stokes equations. In the first step of the 2L-ROM, a relatively low-dimensional nonlinear system is solved. In the second step, the Navier-Stokes equations are linearized around the solution found in the first step, and a higher-dimensional system for the linearized problem is solved. We prove an error bound for the new 2L-ROM and compare it to the standard Galerkin ROM, or one-level ROM (1L-ROM), in the numerical simulation of the steady Burgers equation. The 2L-ROM significantly decreases (by a factor of 2 and even 3) the 1L-ROM computational cost, without compromising its numerical accuracy. / Master of Science / In this thesis we introduce a new method for efficiently and accurately simulating fluid flow, the Navier-Stokes equations, called the two-level Galerkin reduced order model (2L-ROM). The 2L-ROM involves solving a relatively low-dimensional nonlinear system in the first step, followed by a higher-dimensional linearized system in the second step. We show that this method produces highly accurate results while significantly reducing computational costs compared to previous methods. We provide a comparison between the 2L-ROM and the standard Galerkin ROM, or one-level ROM (1L-ROM), by modeling the steady Burgers equation, as an example. Our results demonstrate that the 2L-ROM reduces the computational cost of the 1L-ROM by a factor of 2 to 3 without sacrificing accuracy.
|
Page generated in 0.0783 seconds