376 research outputs found
Monadic Deep Learning
The Java and Scala community has built a very successful big data ecosystem.
However, most of neural networks running on it are modeled in dynamically typed
programming languages. These dynamically typed deep learning frameworks treat
neural networks as differentiable expressions that contain many trainable
variable, and perform automatic differentiation on those expressions when
training them.
Until 2019, none of the learning frameworks in statically typed languages
provided the expressive power of traditional frameworks. Their users are not
able to use custom algorithms unless creating plenty of boilerplate code for
hard-coded back-propagation.
We solved this problem in DeepLearning.scala 2. Our contributions are:
1. We discovered a novel approach to perform automatic differentiation in
reverse mode for statically typed functions that contain multiple trainable
variable, and can interoperate freely with the metalanguage.
2. We designed a set of monads and monad transformers, which allow users to
create monadic expressions that represent dynamic neural networks.
3. Along with these monads, we provide some applicative functors, to perform
multiple calculations in parallel.
With these features, users of DeepLearning.scala were able to create complex
neural networks in an intuitive and concise way, and still maintain type
safety.Comment: 27 pages, 7 figures, 3 table
Undergraduate and Graduate Course Descriptions, 2023 Spring
Wright State University undergraduate and graduate course descriptions from Spring 2023
Flow and transport modelling in highly heterogeneous geological porous media
Flow and transport processes through porous media are ubiquitous both in natural and industrial environments. Ranging from diffusion in human tissue to oil recovery and CO2 storage, including the design of porous reactors, geothermal energy production, groundwater remediation, oil recovery and CO2 storage, the characterisation of fluid flow and solute transport at different scales represents the paradigm to better understand the mechanisms at the base of several processes. Due to the broad spectrum of applications, a vast empirical and numerical research field developed around transport in heterogeneous porous media. While on the numerical side, the mathematical models available for simulating transport at the micro and meso scales have shown good agreement with the empirical tests, the debate around modelling transport at the macro-scale is still open. One example is the unknown relation between system parameters and their values measured at different scales which is usually addressed as scale effect. Other examples are anomalous or non-Fickian transport phenomena and the validity range of macro-scale transport models. Our study focuses on the impact of the heterogeneous distribution of the subsurface properties on the transport of solute at the macro-scale. Initially we propose an analysis of transport in heterogeneous porous media generated with a random geostatistical algorithm. Subsequently this subject is expanded and applied to a real domain which was surveyed and reconstructed with a high level of resolution. Three-dimensional meso-scale numerical simulations performed with our open-source C++ library, built on top of the finite-volume library OpenFOAM, represent the main source of data to test macro-scale mathematical models
I’m stuck! How to efficiently debug computational solid mechanics models so you can enjoy the beauty of simulations
A substantial fraction of the time that computational modellers dedicate to developing their models is actually spent trouble-shooting and debugging their code. However, how this process unfolds is seldom spoken about, maybe because it is hard to articulate as it relies mostly on the mental catalogues we have built with the experience of past failures. To help newcomers to the field of material modelling, here we attempt to fill this gap and provide a perspective on how to identify and fix mistakes in computational solid mechanics models. To this aim, we describe the components that make up such a model and then identify possible sources of errors. In practice, finding mistakes is often better done by considering the symptoms of what is going wrong. As a consequence, we provide strategies to narrow down where in the model the problem may be, based on observation and a catalogue of frequent causes of observed errors. In a final section, we also discuss how one-time bug-free models can be kept bug-free in view of the fact that computational models are typically under continual development. We hope that this collection of approaches and suggestions serves as a “road map” to find and fix mistakes in computational models, and more importantly, keep the problems solved so that modellers can enjoy the beauty of material modelling and simulation.EC and JPP wish to thank their former supervisor Paul Steinmann for the inspiration to write this paper, which can be traced back to the talk we prepared for the ECCM-ECFD conference held in Glasgow in 2018. EC’s work was partially supported by the European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement No 841047. WB’s work was partially supported by the National Science Foundation under award OAC-1835673; by award DMS-1821210; by award EAR-1925595; and by the Computational Infrastructure in Geodynamics initiative (CIG), through the National Science Foundation under Award EAR-1550901 and The University of California – Davis .Peer ReviewedPostprint (published version
Fast And Automatic Floating Point Error Analysis With CHEF-FP
As we reach the limit of Moore's Law, researchers are exploring different
paradigms to achieve unprecedented performance. Approximate Computing (AC),
which relies on the ability of applications to tolerate some error in the
results to trade-off accuracy for performance, has shown significant promise.
Despite the success of AC in domains such as Machine Learning, its acceptance
in High-Performance Computing (HPC) is limited due to stringent requirements
for accuracy. We need tools and techniques to identify regions of code that are
amenable to approximations and their impact on the application output quality
to guide developers to employ selective approximation. To this end, we propose
CHEF-FP, a flexible, scalable, and easy-to-use source-code transformation tool
based on Automatic Differentiation (AD) for analyzing approximation errors in
HPC applications. CHEF-FP uses Clad, an efficient AD tool built as a plugin to
the Clang compiler and based on the LLVM compiler infrastructure, as a backend
and utilizes its AD abilities to evaluate approximation errors in C++ code.
CHEF-FP works at the source by injecting error estimation code into the
generated adjoints. This enables the error-estimation code to undergo compiler
optimizations resulting in improved analysis time and reduced memory usage. We
also provide theoretical and architectural augmentations to source code
transformation-based AD tools to perform FP error analysis. This paper
primarily focuses on analyzing errors introduced by mixed-precision AC
techniques. We also show the applicability of our tool in estimating other
kinds of errors by evaluating our tool on codes that use approximate functions.
Moreover, we demonstrate the speedups CHEF-FP achieved during analysis time
compared to the existing state-of-the-art tool due to its ability to generate
and insert approximation error estimate code directly into the derivative
source.Comment: 11 pages, to appear in the 2023 IEEE International Parallel and
Distributed Processing Symposium (IPDPS'23
lifex-ep: a robust and efficient software for cardiac electrophysiology simulations
Background: Simulating the cardiac function requires the numerical solution of multi-physics and multi-scale mathematical models. This underscores the need for streamlined, accurate, and high-performance computational tools. Despite the dedicated endeavors of various research teams, comprehensive and user-friendly software programs for cardiac simulations, capable of accurately replicating both normal and pathological conditions, are still in the process of achieving full maturity within the scientific community. Results: This work introduces lifex-ep, a publicly available software for numerical simulations of the electrophysiology activity of the cardiac muscle, under both normal and pathological conditions. lifex-ep employs the monodomain equation to model the heart's electrical activity. It incorporates both phenomenological and second-generation ionic models. These models are discretized using the Finite Element method on tetrahedral or hexahedral meshes. Additionally, lifex-ep integrates the generation of myocardial fibers based on Laplace-Dirichlet Rule-Based Methods, previously released in Africa et al., 2023, within lifex-fiber. As an alternative, users can also choose to import myofibers from a file. This paper provides a concise overview of the mathematical models and numerical methods underlying lifex-ep, along with comprehensive implementation details and instructions for users. lifex-ep features exceptional parallel speedup, scaling efficiently when using up to thousands of cores, and its implementation has been verified against an established benchmark problem for computational electrophysiology. We showcase the key features of lifex-ep through various idealized and realistic simulations conducted in both normal and pathological scenarios. Furthermore, the software offers a user-friendly and flexible interface, simplifying the setup of simulations using self-documenting parameter files. Conclusions: lifex-ep provides easy access to cardiac electrophysiology simulations for a wide user community. It offers a computational tool that integrates models and accurate methods for simulating cardiac electrophysiology within a high-performance framework, while maintaining a user-friendly interface. lifex-ep represents a valuable tool for conducting in silico patient-specific simulations
2022-2023 Xavier University Undergraduate and Graduate University Catalog
https://www.exhibit.xavier.edu/coursecatalog/1275/thumbnail.jp
Efficient GPU Implementation of Automatic Differentiation for Computational Fluid Dynamics
Many scientific and engineering applications require repeated calculation of derivatives of output functions with respect to input parameters. Automatic Differentiation (AD) is a methodology that automates derivative calculation and can significantly speed up the code development. In Computational Fluid Dynamics (CFD), derivatives of flux functions with respect to state variables (Jacobian) are needed for efficient solution of nonlinear governing equations. AD of the flux function on graphics processing units (GPUs) is challenging as flux computation involves many intermediate variables that create a high register pressure and requires significant memory traffic because of the need to store the derivatives.
This paper presents a forward-mode AD method based om multivariate dual numbers that addresses these challenges and simultaneously reduces the operation count. The dimension of multivariate dual numbers is optimized for performance. The flux computations are restructured to minimize the number of temporary variables and reduce the register pressure. For effective utilization of the memory bandwidth, we use shared memory to store the local Jacobian. The threads assigned to process an edge (dual-face) collectively populate the local Jacobian in the shared memory.
Shared memory is used to store local flux Jacobian. The threads assigned to process a flux differentiation at an edge collectively populate the local Jacobian in the shared memory. The use of shared memory allows further reducing temporary variables. The local Jacobian is written from the shared memory to the device memory taking advantage of coalesced stores. This is another major benefit of the shared memory approach. During this work, we assessed existing GPU-based forward-mode AD approaches for flux Jacobian computation and found them performing suboptimally. We demonstrated that our GPU implementation based on multivariate dual numbers of dimension 5 outperforms other tested implementations including the hand differentiated version optimized for NVIDIA V100. Our implementation achieves 75% of the peak floating point throughput and 61% of the peak device bandwidth on V100
Efficient and Globally Convergent Minimization Algorithms for Small- and Finite-Strain Plasticity Problems
We present efficient and globally convergent solvers for several classes of plasticity models. The models in this work are formulated in the primal form as energetic rate-independent systems with an elastic energy potential and a plastic dissipation component. Different hardening rules are considered, as well as different flow rules. The time discretization leads to a sequence of nonsmooth minimization problems. For small strains, the unknowns live in vector spaces while for finite strains we have to deal with manifold-valued quantities. For the latter, a reformulation in tangent space is performed to end up with the same dissipation functional as in the small-strain case. We present the Newton-type TNNMG solver for convex and nonsmooth minimization problems and a newly developed Proximal Newton (PN) method that can also handle nonconvex problems. The PN method generates a sequence of penalized convex, coercive but nonsmooth subproblems. These subproblems are in the form of block-separable small-strain plasticity problems, to which TNNMG can be applied. Global convergence theorems are available for both methods. In several numerical experiments, both the efficiency and the flexibility of the methods for small-strain and finite-strain models are tested
2013-2014, University of Memphis bulletin
University of Memphis bulletin containing the graduate catalog for 2013-2014.https://digitalcommons.memphis.edu/speccoll-ua-pub-bulletins/1434/thumbnail.jp
- …