Showing posts from 2015

Diversity at NAG: Vision for our future and where we are today

A short time ago my colleague, Andrew Jones, VP HPC Business, introduced me to John West, Director of Strategic Initiatives at the Texas Advanced Computing Center (TACC). Andrew found his blog posts "Diversity in HPC won't improve until we start counting" and his follow up “How One HPC Center Learned to Count” inspiring and suggested we get involved. We were all equally encouraged by John’s work and it gave us the impetus to get behind his initiative by investigating NAG’s Gender Diversification figures and publishing them at SC15.

Finding the safe path through the HPC fog

The use of HPC (or supercomputing or big data computing or advanced technical computing or …) delivers real and significant benefits to those organizations that can exploit it effectively. However, the world of HPC technology is a complex space, with a plethora of technology options, continuous rapid change, ambiguous long terms trends, diverse business models, and potential disruptive technologies.

This presents challenges for buyers, managers, programmers and users of HPC facilities:
how to find the right technology that will accelerate your modelling, simulation and big data processing needs;determining the best time to adopt new technologies (stability vs. first-mover benefits vs. mature ecosystem vs. migration cost vs. missed performance potential, ...);how to reduce the risks in evaluating potential new technologies;minimize time, effort and cost in finding the important information among the clutter in the HPC market;develop confidence in solutions that will improve cost-effecti…

Travelling Rugby Fan Problem

The Rugby World Cup is well under way here in England. So far, I have been lucky enough to witness Japan beat South Africa at the Community Stadium in Brighton and next on my list is the nail biting encounter between England and Australia at Twickenham in South West London (Update: Even though it was disappointing to see England loose and go out of the tournament, it was a good day out). All this travelling got me thinking, what would be the fastest circular route to visit all the stadia hosting a Rugby World Cup game if one was lucky enough to have tickets?The naive approach is to go to Google Maps and choose the best order yourself. However, and this is where the Numerical Algorithms Group comes in, algorithms exist to solve this type of problem. In fact, this is quite a famous problem and is commonly referred to as the Travelling Salesman Problem (TSP). A good introduction to the TSP can be found here.So what can we use instead? The NAG Library contains a routine, H03BB, which can …

Life Service Award 2015 – David Sayers

The NAG Life Service Recognition Award has been running for 5 years – it was created in NAG’s 40th year as a way of showing gratitude to people that have dedicated immense time and commitment to the company.

It was a pleasure to see David Sayers, NAG Honorarium, receive the award at our recent AGM. As has become customary, James Davenport, Professor of Information Technology, University of Bath, presented David with the award and said a colleague wrote of David as follows, “David has been an outstanding ambassador for NAG for over forty years. For many customers, he has been the face of NAG - someone that they recognise and relate to, because of his many trips outside the office in the role of sales support. His interactions with NAG collaborators have been many and varied."

A code contributor wrote “David is, I believe, the main reason many of us contributed software to the early library. He came to our meetings, he listened and encouraged us, indeed he was one of us".

Introducing the team: Kathy Godwin, Quality Manager and Libraries Project Manager

Kathy, describe your role at NAG?
I am now the Quality Manager and Libraries Project Manager. 
As Quality Manager, I try to keep everyone on their toes by checking 'everything' ... how it was done, why it was done, when it was done, ..., was it done to spec, was it thoroughly and successfully tested/checked, could we have done it any better, ..., is the customer happy, is the Developer happy, is the team happy. I am pleased to say that all at NAG take the quality of the products we produce and the services we provide very seriously. 
As Libraries Project Manager, I am instructed as to the new functionality, enhancements and corrections required for future releases of the NAG Library. In collaboration with NAG Developers, I schedule and manage the work to ensure that it progresses through development, peer-review, quality assurance and on to the Implementations Group so that they have the documentation and code they need for new releases to be made available to customers as soon a…

NAG Linear Regression on Apache Spark

This is a brief summary of a talk I gave recently at the Chicago Apache Spark Users Group Meetup. During the talk, I present many of the problems and successes when using the NAG Library distributed on Apache Spark worker nodes. You can find the slides available here.

The Linear Regression Problem
In this post we test the scalability and performance of using NAG Library for Java to solve a large-scale multi-linear regression problem on Spark. The example data ranges from 2 gigabytes up to 64 gigabytes in the form of

We solve this problem using the normal equations. This method allows us to map the sum-of-squares matrix computation across worker nodes. The reduce phase of Spark aggregates two of these matrices together. In the final step, a NAG linear regression routine is called on the master node to calculate the regression coefficients. All of this happens in one pass over th…

Helping primary school children achieve the best in their SATs

My wife Caroline is a teacher in a primary school near where we live in Buckinghamshire. She teaches year 6, that is to say, ten to eleven year old children.

Now, year 6 is a rather important year in British schools. Children following the National Curriculum in state-funded schools are subject to SATs (standard assessment tests) before they move on to secondary school, and the results of these tests are used to create the dreaded league tables which are supposed to help parents make an informed choice about which school to send their children to. Importantly, the number of pupils can affect the amount of funding a school gets.

Year 6 teachers are therefore under a lot of pressure to help their pupils achieve good SATs results, so extra sessions and booster groups are common. This year Caroline asked if I could go into school to spend a few hours with her top maths set - ones that it had been decided were good enough to be entered for the harder (Level 6) papers.

I'm used to teach…

Wilkinson Prize for Numerical Software 2015

by Mike Dewar, Chief Technical Officer, Numerical Algorithms Group (NAG)

NAG, along with Argonne National Laboratory and the National Physical Laboratory (NPL), awards the Wilkinson Prize every four years to the authors of an outstanding piece of numerical software. The prize honours the pioneering work of Dr James Hardy Wilkinson in the field of numerical algorithms, work which had a fundamental impact on NAG in our early years and which still resonates today. The Wilkinson Prize is unique in that it is awarded on the basis of the quality of a piece of software, not just for the mathematics behind it, and the judges consider the documentation and test suites as well as the software itself.  

This year the winners are P.E. Farrell (University of Oxford), S.W. Funke (Simula Research Laboratory), D.A. Ham (Imperial College London), and M.E. Rognes (Simula Research laboratory) for the development of dolfin-adjoint, a package which automatically derives and solves adjoint and tangent l…

Introducing the team: Gail Austin, Customer Support Coordinator, Team Leader

Gail, describe your role at NAG?

I manage the Technical Support Service, the Sales Operations Team, NAG Oxford Reception and I am website editor for the marketing area of the website.
Can you give examples of the customer problems you help solve via NAG Technical Support?
Rather than solve users technical issues my role is connected to the direction of incoming support queries and the issuing and renewal of software licences. Over time I have come to understand the installation of our software and so can help users with some of their licensing and software applicability issues.
Tell us something special/unusual about NAG?
I believe that NAG truly cares about giving our customers the best possible service.  This comes across again and again in the positive feedback we receive following the closure of technical support queries.
Tell us something special/unusual about yourself?
I’m just a little bit proud of the fact that when helping Mick Pont with some tests he was carrying out for a present…

Professor Mike Powell F.R.S

We are pained to pass on the sad news of the death on 19th April of Prof Mike Powell F.R.S, a brilliant numerical analyst specialising in numerical optimisation and approximation theory. 

Mike touched many lives with his work. NAG and NAG's community benefitted greatly because he gave freely his code to NAG from the very beginning. The more mature may remember the routine E04DCF, an implementation of his hybrid method for unconstrained optimisation. More recently his work on derivative-free optimisation led to E04JCF/e04jcc entering our Libraries as implementations of BOBYQA.
As a founder member of the IMA, Mike took an interest in the IMANA Newsletter and encouraged NAG to contribute regularly to that until the Newsletter's role was subsumed by the internet. 
The Wikipedia page gives more detail of Mike's many achievements. He will be greatly missed by NAG, especially past and present colleagues who had the pleasure of knowin…

Introducing the team: Craig Lucas, Senior Technical Consultant

Craig, describe your role at NAG?

I am a Senior Technical Consultant based in NAG’s Manchester Office. Here I manage part of NAG’s High Performance Computing group. I come from a numerical linear algebra background. For my MSc dissertation I looked at nearest correlation matrix problems, something I still work on today, and this year I have an MSc student looking at more new algorithms.Another big interest of mine is shared memory parallelism with OpenMP, and in particular helping users to better exploit it.

Can you give examples of the customer problems you help solve via NAG Technical Support?

Technical Support is a great way to interact with our users. Queries can range from something very simple, helping people link their program to the NAG Library for the first time, to an in-depth discussion about the accuracy of an optimization routine. It is often challenging and always an opportunity to learn something new about the mathematics of the Library. Sometimes I need to read our docume…

Introducing the team: Mick Pont, NAG Principal Technical Consultant

Over the next few months, scattered in between our technical blog posts, we are going to publish interviews with NAG colleagues. Our first interview is with Mick Pont.

Mick, what is your role at NAG?
I'm a Principal Technical Consultant, and Deputy Manager of the Development Division.
I'm involved in the development and peer review of new NAG Library software and documentation, and in the scheduling of software production in line with company targets.
In "project management" speak, I'm named as "Executive" for the NAG Mark 26 Library (the NAG Library, Mark 25 is due for launch in April 2015) project, which means that I'm supposed to "provide support and advice to the project manager, and ensure that the project outcome is good and provides NAG with increased value".
I also produce the NAG Technical Support rotas (most of the NAG development team are on one or other of these rotas regularly). Handling support calls is a good way to get to know …

Optimization, NAG and Me - 5 Years and Counting

Authored by Jan Fiala, NAG Numerical Software Developer

It feels almost like yesterday since I joined NAG so it is hard to believe that it has been 5 years already. Looking back, I see a long path I would like to tell you a bit about, just in case you were curious about one of the people answering your support queries.

I was always a blend of a computer scientist and a mathematician. Computers and programming were my hobby but it did not feel quite right to choose either as the main subject at university so I picked mathematics. Thereafter began my hunt to get as close to computers as possible. Numerical analysis and mathematical programming/optimization were my lucky answer.

I really enjoyed my university years, however an academic career is not for everyone. The necessity to write papers ("publish or perish"), going through a couple of postdocs before getting a tenure, fund raising, teaching and going ever deeper and deeper into a very narrow research field are some of the…

Advanced Analytics on Apache Spark

Developed in AMPLab at UC Berkeley, Apache Spark has become an increasingly popular platform to perform large scale analysis on Big Data. With run-times up to 100x faster than MapReduce, Spark is well suited for machine learning applications.

Spark is written in Scala but has APIs for Java and Python. As the NAG Library is accessible from both Java and Python, this allows Spark users access to over 1600 high quality mathematical routines. The NAG Library covers areas such as:
Machine Learning includingLinear regression (with constraints)Logistic regression (with constraints)Principal Component Analysis (A good article relating Machine Learning and PCA can be found here)Hierarchical cluster analysisK-meansStatistics includingSummary information (mean, variance, etc)CorrelationProbabilities and deviates for normal, student-t, chi-squared, beta, and many more distributionsRandom number generationQuantilesOptimization includingLinear, nonlinear, quadratic, and sum of squares for the object…

Adding a Slider Widget to Implied Volatility

In the last post on Implied Volatility, we downloaded real options data from the CBOE and calculated the volatility curves/surface. We saw the calculations of 30,000 implied volatilities in roughly 10 seconds. 
In this post we concentrate on the speed of calculating implied volatility via a variety of different methods. We look at the volatility curve/surface using Python's Scipy, the NAG Library for Python, and the NAG C Library. In addition, we've added a slider widget to the Python graphs from before to see the real-time effects of changing the interest and dividend rates (see the video below). All the code can be downloaded to produce the graphs, and a NAG license is not required for the case using scipy.optimize.fsolve.
The script and utility methods can be downloaded from here. The script begins by generating sample option prices. These are fed through different root finding methods (chosen by the user) to back out the implied volatilities. 
The methods tested include: …