Precision and Reproducibility in Computing

by Paul Shirkey published on November 16th, 2015

Run-to-run reproducibility in computing is often assumed as an obvious truth. However software running on modern computer architectures, among many other processes, particularly when coupled with advanced performance-optimized libraries, is often only guaranteed to produce reproducible results only up to a certain precision; beyond that results can and do vary run-to-run.

keep reading...

Special Functions

by Paul Shirkey published on May 11th, 2015

Phi Function Example Motivated by the need of some special functions when writing signal processing code for NMath, we decided to add a suite of special functions to be included in NMath 6.1. While the field of special functions is vast, our 41 functions attempt to cover many of the most commonly needed functions in physics and engineering. This includes the gamma function and related functions, Bessel functions, elliptic integrals, and more.

keep reading...

Announcing NMath 6.1 and NMath Stats 4.1

by Ken Baldwin published on April 30th, 2015

Centerspace Software is pleased to announce new versions of the NMath libraries – NMath 6.1, and NMath Stats 4.1.

keep reading...

NMath Premium’s new Adaptive GPU Bridge Architecture

by Paul Shirkey published on October 13th, 2014

The most release of NMath Premium 6.0 is a major upgrade to the GPU API and it enables users to easily use multiple installed NVIDIA GPU’s. As always, using NMath Premium to leverage GPU’s never requires any kernel-level GPU programming or other specialized GPU programming skills. In the following article, after introducing the new GPU bridge architecture, we’ll discuss each of the new API features separately with code examples.

keep reading...

Distributing Parallel Tasks on Multiple GPU’s

by Paul Shirkey published on September 17th, 2014

NMath Premium Once Microsoft published the Threading.Task library with .NET 4 many programmers who never or only occasionally wrote multi-threaded code were now doing so regularly with the Threading.Task API. The Task library reduced the complexity of writing threaded code and provided a several new related classes to make the process easier while eliminating some pitfalls. In this post I’m going to show how to use the Task library with NMath Premium 6.0 to run tasks in parallel on multiple GPU’s and the CPU.

keep reading...