While the popularity of using high-level programming languages such as MATLAB for scientific and engineering applications continues to grow, its poor performance compared to traditional languages such as Fortran or C continues to impede its deployment in full-scale simulations and data analysis. Additionally, its poor memory performance limits its performance. To ameliorate performance, we have been developing a MATLAB and Octave compiler that improves performance of MATLAB code by performing type inference and using the resulting type information to remove common bottlenecks. We observe that unlike past results, scalarizing array statements, instead of vectorizing scalar statements, is more fruitful when compiling MATLAB to C or C++. Two important situations where such scalarization helps is in expressions containing array subscripts and sequences of related array statements. In both cases, it is possible to generate fused loops and replace array temporaries by scalars, thus reducing the memory bandwidth pressure. Additional array temporaries are obviated in the case of array subscripts. Further, starting with vectorized statements guarantees that the resulting loops can be parallelized, creating opportunities for a mix of thread-level and instruction-level parallelism as well as GPU execution. We have implemented this strategy in a MATLAB compiler that compiles portions of MATLAB to C++ or CUDA C. Evaluation results on a set of benchmarks selected from diverse domains shows speed improvements ranging from 1.5x to almost 17x on an eight-core Intel Core 2 Duo machine.
A simulation-based study of Kramers' escape problem in the bistable well of a ferroelectric capacitor is presented. This problem deals with the escape of a particle undergoing Brownian motion over an energy barrier. Using this framework under the assumption of homogeneous polarisation switching according to the Landau-Ginzburg-Devonshire (LGD) theory, two prospective device applications based on a ferroelectric capacitor are also outlined, namely true random number generation (TRNG) and stochastic resonance (SR). Our simulation results for the former demonstrate that by adding white noise and an appropriately tuned voltage pulse to the material system, it is possible to facilitate controlled, probabilistic switching between its two stable polarisation states. We predict that this could provide the theoretical framework for practical implementations of TRNGs. In addition, we also develop a theory for stochastic resonance in a ferroelectric using linear response theory. We show, analytically and via numerical simulations that the addition of an optimal amount of noise to a weak periodic signal given as an input to a non-linear system can enhance its detection.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.