Showing posts from February, 2010

Documentation Formats

NAG documentation is available in several formats. For the Fortran Library, the following formats are available:XHTML XHTML + MathML files, one per routine, with XHTML tables of contents.PDF Individual PDF files, for each document, with additional HTML navigation pages.Single File PDF A single PDF file essentially being a repackaging of the individual PDF files.Windows Help File Windows HTML help is essentially a compressed archive of HTML+MathML files derived from the XHTML+MathML documentation, together with additional index and navigation controls.The C Library documentation, which is largely derived from the same source, is available in similar formats.In addition, documentation for other interfaces are available, also usually generated from the same (XML) source. For example, the NAG Toolbox for MATLAB documentation is available as a MATLAB help file (essentially a jar archive of customised HTML files) and as a collection of PDF files with HTML tables of contents for ease of navi…

Exascale or personal HPC?

Which is more interesting for HPC watchers - the ambition of exaflops or personal supercomputing? Anyone who answers "personal supercomputing" is probably not being honest (I welcome challenges!). How many people find watching cars on the local road more interesting than F1 racing? Or think local delivery vans more fascinating than the space shuttle? Of course, everyday cars and local delivery vans are more important for most people than F1 and the space shuttle. And so personal supercomputing is more important than exaflops for most people.High performance computing at an individual or small group scale directly impacts a far broader set of researchers and business users than exaflops will (at least for the next decade or two). Of course, in the same way that F1 and the shuttle pioneer technologies that improve cars and other everyday products, so the exaflops ambition (and the petaflops race before it) will pioneer technologies that make individual scale HPC better.One pot…

Loading DTDs using DOM in Python

I use Python's xml.dom.minidom to process XML, but I'm a bit of a neophyte. I find it a really excellent approach for generating Fortran interfaces from our XML interface-specifications, but one thing's pretty inconvenient: entities don't get resolved, and we use a lot of entities.

In fact, it's worse than that. Entities just disappear in the processed DOM tree.

Given times.dtd
<!ENTITY times "&#215;"> and times.xml
<?xml version="1.0"?> <!DOCTYPE times SYSTEM "times.dtd"> <maths> <mn>2</mn> <mo>&times;</mo> <mn>3</mn> <mo>=</mo> <mn>6</mn> </maths> and then
import sys, xml.dom.minidom sys.stdout.write(xml.dom.minidom.parse("times.xml").toxml()) you get
> python <?xml version="1.0" ?><!DOCTYPE times SYSTEM 'times.dtd'><maths> <mn>2</mn> <mo/> …

If you could add or change one thing about the NAG Library?

2010 is an important year for NAG. We’ll be celebrating our 40th anniversary, which is quite an achievement in the software world. I’ve been able to find a few other software organisations that have also reached 40 – Software AG, Intergraph and Cincom(if you know of any others, please let me know.)

An anniversary is a great time to reflect on all that’s gone by, honour achievements and remember important milestones but of equal importance, if not more so, it’s a time to look to the future and plan ahead. The NAG Library – the mainstay of NAG’s product portfolio - reaches the dizzy heights of 40 in October 2011. The Library has changed a lot over the years. It was originally a collection of 90 or so routines written in both Algol 60 and Fortran targeted at ICL mainframes. It now features over 1,400 routines and is available on a multitude of platforms, operating systems and programming environments. How will it change over the next 40 years?

So here’s another question for you, assuming y…

Don't call it High Performance Computing?

Having just signed up for twitter (HPCnotes), I've realised that the space I previously had to get my point across was nothing short of luxurious (e.g. my ZDNet columns). It's like the traditional challenge of the elevator pitch - can you make your point about High Performance Computing (HPC) in the 140 character limit of a tweet? It might even be a challenge to state what HPC is in 140 characters. Can we sum up our profession that simply? To a non-HPC person?

The inspired John West of InsideHPC fame wrote about the need to explain HPC some time ago in HPCwire. It's not an abstract problem. As multicore processors (whether CPUs or GPUs) become the default for scientific computing, the parallel programming technologies and methods of HPC are becoming important for all numercial computing users - even if they don't identify themselves as HPC users. In turn, of course, HPC benefits in sustainability and usability from the mass market use of parallel programming skills …

Make considered painful

Nag uses a build system based on make and makefiles. When we started doing things this way not enough years ago, we read and took the advice in Peter Miller's Recursive Make Considered Harmful to heart. As a result you can end up with a huge monolithic makefile. You can of course break this down a bit by using include makefiles, so you could, potentially, have a tree of makefiles included inside one another. We don't do much of that; we do the important thing of separating all the implementation specific stuff into a single include file which then defines the build, but the rest is still pretty monolithic. There are obvious disadvantages in maintaining such a beast, but there are advantages too: global search and replace;don't have to find out which makefile does what.I'm aware that make is a fairly old technology now, although we did standardise on GNUmake which added quite a number of useful features over the years. However, I don' think it handles things like …

How to get more done tomorrow – part 1

My name is Rob Meyer and I've got too much to do and not enough time to do it all. In fact, if I stopped going to meetings today and quit reading my mail, I could spend the next six months on my "to dos" and not be finished. Does this describe you? Wasn't software supposed to fix all this? Just about everybody I know in the industry, whether at NAG, our customers or others I talk to on a daily basis struggles to keep up. Is there a tool we can use to be more productive and get a greater sense of accomplishment at the end of each day? The answer is yes but it's (mostly) not computer software, it's in that other software between your ears. For all the modern hardware and software we have today, the challenge of getting and staying organized and productive is getting worse, not better. Our daily weather forecast calls for a blizzard of data with occasional intervals of information and insight. Over the years I've read a number of books, tried various softwar…

Colorised svn diffs

With the help of colordiff my svn diffing just got a whole lot prettier:
% svn diff --diff-cmd colordiff -x -w files |\ less -RS (I like to pass -w to the diff-er to ignore whitespace changes). Piping through less in raw mode (-r/-R) interprets the colour escape-sequences correctly.

Thanks to commandlinefu for the idea.