Showing posts from 2016

The New NAG Optimization Modelling Suite

Nowadays a vast majority of optimization solvers can handle very complex problems involving many variables and various types of the constraints with a different structure. Designing an interface for such a solver, which would allow a complex input without compromising the ease of use, is challenging. A new suite of routines, the NAG Optimization Modelling Suite, has been introduced in Mark 26 of the NAG Library to tackle the input of complex problems without forming difficult interfaces with a daunting number of arguments. The suite is used by the new optimization solvers introduced at this mark; the semidefinite programming solver and the interior point method for nonlinear optimization. The suite will expand in the years to come to handle more problem types. The main aim of the NAG Optimization Modelling Suite is the ability to define and solve various optimization problems in a uniform manner. There are three key features of the suite. Firstly, the definition of the optimization p…

Calling NAG Routines from Julia

Julia Computing was founded in 2015 by the co-authors of the Julia programming language to help private businesses, government agencies and others develop and implement Julia-based solutions to their big data and analytics problems. Julia is an open-source language for high-performance technical computing created by some of the best minds in mathematical and statistical computing. Reid Atcheson, Accelerator Software Engineer, NAG, and Andy Greenwell, Senior Application Engineer, Julia Computing, have teamed up to ensure that NAG Library routines can be called from the Julia language. Read their piece here.

Fortran Modernisation Workshop - An Attendee's Perspective

Jonathan Cooper, Research Lecturer, Department of Computer Science at The University of Oxford recently attended a Fortran Modernisation Workshop and has posted about the day: This two day intense workshop covered a vast array of topics related to developing reliable computational science software in Fortran more effectively, yet still retained time for practical work trying these out and discussions between the course leaders and participants. It was attended by 31 students and staff members of the University. Wadud Miah (NAG) led the workshop, assisted in lecturing by Fatima Chami (Durham) and Kyle Fernandes (Cambridge). Wadud began by arguing for the importance of good software engineering practices in computational science, then gave a potted history of Fortran culminating with a tour through the features in recent versions of the standard that facilitate writing good code. Sessions also covered supporting tools that enable good development practices, including a brief guest lectu…

Analysis of performance optimisation service requests: what kind of codes are we helping as part of POP CoE?

by Sally Bridgwater, NAG HPC Application Analyst

NAG is a partner in the Performance Optimisation and Productivity Centre of Excellence (POP). POP was created with the aim of boosting the productivity of EU research and industry by providing free of charge services to advise on improving the performance of high performance computing (HPC) parallel software.

The POP team consists of six partner organisations from Germany, France, Spain and the UK. Over 30 codes have applied for the POP service so far since its kick-off in October 2015. I decided to have a look into the details of what types of codes POP is working with and see if any interesting themes emerge. Since this is quite early in the project it will be useful to revisit and see how it evolves over time.

First I decided to look at what languages all of the codes were written in. From my experience in Physics, I generally assumed that Fortran was the most prevalent language in academic/scientific applications.

This seems to be the…

Improved Accessibility for NAG’s Mathematical and Statistical Routines for Python Data Scientists

By John Muddle, NAG Technical Sales Support Engineer

NAG and Continuum have partnered together to provide conda packages for the NAG Library for Python (nag4py), the Python bindings for the NAG C Library. Users wishing to use the NAG Library with Anaconda can now install the bindings with a simple command (conda install -c nag nag4py) or the Anaconda Navigator GUI.

For those of us who use Anaconda, the Open Data Science platform, for package management and virtual environments, this enhancement provides immediate access to the 1,500+ numerical algorithms in the NAG Library. It also means that you can automatically download any future NAG Library updates as they are published on the NAG channel in Anaconda Cloud.

To illustrate how to use the NAG Library for Python, I have created an IPython Notebook that demonstrates the use of NAG’s implementation of the PELT algorithm to identify the changepoints of a stock whose price history has been stored in a MongoDB database. Using the example of…

Who are the Customers of NAG's Impartial Expert HPC Consulting?

One of the questions I get asked most often while out and about in the HPC community at conferences, or visiting (prospective) customers is: "Who are your HPC consulting customers?".

The simple answer to that is most prefer to remain confidential, because they see a competitive advantage from using our HPC advice or services.
There are a few we are very proud to be able to name. For example NAG has worked with EPSRC to provide the Computational Science and Engineering Support Service as part of the HECToR national supercomputing service, and to provide independent expert advice on the technology options and procurement for the UK's national academic supercomputers (HECToR and ARCHER).
We enjoyed working with our friends at Red Oak Consulting to support the KAUSTShaheen II supercomputer procurement recently - see our joint press release.
There have been others that we have been able to name over the years. But, who are the confidential customers? Well, obviously I'm n…

Portfolio Credit Risk: New Technical Report

In the latest NAG technical report we examine the main theoretical aspects in some models used in Portfolio credit risk. We introduce the well-known Vasicek model, the large homogeneous portfolios or Vasicek distribution and their corresponding generalizations. An illustrative example considering factors following a logistic distribution is presented. Numerical experiments for several homogeneous portfolios are performed in order to compare these methods. Finally, we use the NAG Toolbox for MATLAB® for implementing prototypes of these models quickly.

We described the most widely used models for the calculation of default probabilities in portfolio credit risk. We introduced the Vasicek one-factor model and its generalization for factors following non Normal distributions. Similarly, we presented the large portfolio approximation method and we generated closed-form expressions for the so-called general loss distribution. In section 7 we provide code for the main routines used through…

Multidimensional Improvements to the NAG Riemann Solvers

The NAG Library contains routines for solving the partial differential equations specific to compressible, ideal fluid flow. These equations are generally written in conservation law form where the conserved quantities are mass density, momentum and total energy of the fluid.  This set of equations can be solved using a finite volume technique that considers each conserved variable as a volume average over a finite volume (typically a small cube) and sums the fluxes (flow rates per unit area) computed at the faces surrounding the volume to get the total rate of change of a particular variable for that volume.

Several methods exist to solve this set of coupled equations (e.g. Flux Corrected Transport, ENO and WENO schemes, etc.). I focus here on the Godunov method where, in its simplest form, the fluxes are computed by solving a Riemann problem at the interface between two cells in the computational mesh. In such methods, appropriately limited (I do not address limiting procedures here…

Inspiring future talent - International Women's Day

On International Women’s Day we are delighted to publish an interview with NAG Placement Student, Heather Briggs, in which she speaks about her time at school, what led her to her degree choice, and the challenges and highlights she has experienced along the way. 

Heather, can you tell us a little about your school days – which subjects were you drawn to and did you receive encouragement from your teachers to continue with these into higher education?

It started quite early for me, I went to a very small rural primary school with 5 other children in my year. I was 6 months older than the rest of my year so I was moved up quite quickly. After 4 years in the higher year group I was moved down again because the local secondary school wouldn’t accept me early but I was allowed to continue doing maths lessons with the year above until they left the school. So I was definitely inclined towards maths over any other subject from a young age, although at secondary school I enjoyed science as w…

Changepoint Analysis using MongoDB and NAG4PY

Recently, I attended the Alan Tayler Day at St. Catherine’s College, Oxford, organised by the Smith Institute. One of the speakers was Dr Rebecca Killick, of Lancaster University, whose talk highlighted her collaboration with NAG that has led to the inclusion of the PELT algorithm into the NAG Library. Dr Killick's collaboration with NAG started in her student days, when she was the runner-up in the "Take Aim" competition, another event run by the Smith Institute and, this year, sponsored by NAG along with Babcock, BT, CATAPULT Satellite Applications, ESPRC, Experian, GCHQ and National Nuclear Laboratory."

The PELT algorithm, of Killick et al, is designed to detect changepoints in an ordered sequence of data, for example, a time series. A changepoint is the location in the series (or time) at which one or more properties of the sequence, such as the mean, changes. A typical example of this is the time at which the average price of a stock changes to a new average va…