MATHEMATICS, SIMULATION AND MODELLING
5 January 2009
Reviewed by Felix Grant
Wolfram's seventh major version of its core product has a different flavour to the sixth. Briefings from the company emphasise evolution, consolidation and long-term strategy rather than revolutionary additions, which is a fair description, but there is plenty that is new. Some facets are described as having been in development since well before the previous upgrade, coming to maturity in time for this one. Others are distributed across a range of aspects rather than being dramatically grouped under one or two new headings, or push forward developments in release 6.
A significant overall approach is the integration into a single, out-of-the-box package of facilities, which had previously been provided by toolboxes. How this will play out in terms of continuous upgrade and refinement strategies we will have to see, but it does provide the clear advantage of consistency. Methods can be developed, and code written, with confidence that the required assets will be present in any Mathematica installation rather than depending on the particular local configuration.
Also of overarching importance is the growing sophistication of support for multiple kernel parallel computing. Not only are concurrent default subkernels provided, but they are extensible to an extent limited only by the presence of hardware capable of running them. Networked kernels are automatically sought and made available to supplement those on board. A wide range of both automated and manual controls are in place to make utilisation of these facilities largely transparent across a range of interconnection architectures from small ad hoc arrangements up to formally distributed clouds.
Starting from the centre, the core Mathematica language has as usual been extended, strengthened and deepened. Apart from parallelisation there are expanded repertoires of tools for information theory, string and list manipulation, and message handling. I can't claim to have exhaustively tested all of them, but dipping into each has shown solid expansion of capability.
Mathematical tools include new functions and extensions to existing ones across a dozen pure and applied fields. Number theory and finite groups have been the focus of my most intensive exploration, and benefit from a whole clutch of expanded facilities. Less immediately eye catching, but impressive once examined, is a systematic tidying up (and wider interlinking to algebraics) of transcendental function root handling from its traditionally fragmented state. Sampling the capabilities of other areas shows substantial and worthwhile developments in all of them, from Fourier enhancements through expanded special functions and DDEs to Boolean computation with huge numbers of variables. I can't personally vouch for the claimed 'hundreds of thousands' of Boolean variables, but onboard capacity certainly runs well ahead of existing options and tests well on trials in the low tens of thousands.
There is a broad swathe of developments on the data handling front, from analysis through visualisation and symbolic reporting by email to expansion and sophistication of the computable data resources (introduced in version 6). The inclusion of image processing and analysis ties in here, too (from my viewpoint, anyway), with powerful linkages now possible between data analytic approaches and raw digital imaging streams. Genomic dataset curation linked to Mathematica's informatics functions sits alongside a century of historic weather data, newly dynamic astronomic data and transparent access to Wolfram server computation. Output graphics gain new elements, options and methods, including spline support.
Serious thought has been given to interface and usability aspects, too. Depending on your level of familiarity and comfort with Mathematica, this may dramatically or subtly modify your workflow. Carrying my demonstration copy around from place to place on a notebook, I was surprised by the enthusiasm with which speech synthesised output was received – not just by visually disadvantaged users (which I had anticipated) but among those who saw it as an opportunity to extend standard working practice by expansion of modality, freeing screen attention for other tasks. For those of us who have a less than perfect memory for syntax, the enhanced range of 'assistant palettes' (showing a welcome, definite, but greatly developed CalcCenter influence) is very welcome: my false keying rate has dropped markedly through their use.
For distribution of work done in Mathematica to a wider audience without access to the product itself, the Player application has also been updated to compatibility with release 7. An updated Player Pro hasn't been released arrived at the time of writing, but is promised very soon – it will probably be available by the time you read this.