Showing posts from January, 2010

Reverse Communication

We all know that computers are becoming increasingly parallel. The latest generation of x86 processors have 12 cores and Intel recently announced an experimental 48 core processor. A lot of attention has focussed on the associated reductions in clock speeds which makes software run slower, but less attention has focussed on other issues such as changes in the amounts of cache available and more contention for memory bandwidth. The fact is that access to memory is fast becoming the scarce resource, rather than CPU cycles. Most mathematical algorithms in the NAG Library (and other similar software) are designed for ease-of-use with the user passing in a collection of data structures describing the problem to be solved and the routine only exiting when it has calculated the answer or an error is encountered. However we do have a number of routines which take a different approach, called reverse communication. Here, the user provides some initial data and when the routine wants more…

How do you like your Fortran 95 interfaces?

Fortran 95 has been fully implemented for a couple of years now by all the compilers we support, so we'd like to be able to provide a Fortran 95 way of enjoying our algorithmic content. What kinds of features would you expect or like to see from such an endeavour?

At the very least, by the Mark 23 release of our standard Fortran Library all example programs will have been 'F90-ed' to have module procedures for user-supplied routines, allocation of local arrays, and a range of other cosmetic improvements. Here's one of the simpler instances of this, the example program for the Nelder–Mead routine E04CBF: e04cbfe.f90

So that's just calling the regular Fortran (77) Library interface in a more modern context. If this isn't satisfactory then what you're after are more-modern interfaces too. An uber-example of this would be for the sparse NLP solver E04VHF
INTERFACESUBROUTINEnag_e04vhf(start,objadd,objrow,prob,usrfun,a,g,xlow,xupp, & xnames,flow,fupp,fname…

Lawrence intro / Painleve equations

Introduction Let me introduce myself first. I'm Lawrence Mulholland and I'm Group Leader for a Group called "Numerical Libraries" which includes a large proportion of our internal developers. I look after project development as we move from one major release of the Library based products to the next; so I am currently managing a FL23 project which aims to produce its first implementations of FL23 at the latter part of this year.Painleve EquationsI have recently been invited to a workshop hosted by ICMS in Edinburgh on Painleve equations: seems like an interesting area of research; and since we are looking to introduce a routine for the Hypergeometric function 2_F_1 in FL23, it seems like a logical extension to be investigating the even more challenging Painleve equations which seem to have a fair range of applications.What I'm not sure about is: how useful would routines that provide particular solutions to the Painl…