## Mathematica 7 released

Version 7 of Wolfram Research’s flagship product, Mathematica, has been released today – just 18 months after version 6. I have been fiddling with beta versions of it for a while now and have been desperate to start talking about it but the NDA I signed prevented me from doing so until today.

A full review will have to wait because, paradoxically, I don’t have access to the full version of Mathematica 7 right now but here are a few highlights that got my attention during beta testing.

**Built in Parallel Computing**

The computer I am typing this blog post on is nothing special by today’s standards and yet it is a quad-core machine which effectively means that it contains not 1 but 4 CPUs. Most pieces of software tend to only use one of these cores which means that the other 3 are sitting about doing nothing most of the time. It’s a bit like being assigned a team of helpers to help you work on a project and then saying to 3 of them – “You guys can just sit around doing nothing because I don’t know how to use you.” Pretty shoddy management huh? Ideally, what you need to do is to parallelize your algorithm so those other 3 cores can get off their backsides and do something useful.

Previous versions of Mathematica had limited support for making use of multi-core machines like mine. As far as I know they were limited to relatively low level matrix and vector operations that made use of underlying BLAS and LAPACK libraries. I had a brief forum discussion with some people on this topic a while back but never got around to following it up.

If you wanted to write fully parallel code with previous versions of Mathematica then you needed to buy a separate product called the Parallel Computing Toolkit. Most people who expressed an interest in parallel Mathematica at my university soon lost interest when they realised that they would have to spend more money to make it work.

In Version 7, Wolram have done the right thing and have built in a whole suite of commands and frameworks to allow you to fully parallelize your Mathematica code. Now, finally, you can make use of the spare cores in your computer. There will be follow up blog posts on this topic I can assure you (just as soon as I figure out how to do it all!)

**Image Processing**

While at the International Mathematica Symposium in Maastricht I saw my first demonstration of version 7 and one of the things that caught my attention was the range of image processing features that Wolfram were building into the product. In the demonstration, the speaker was manipulating photographs in Mathematica exactly as you might manipulate any other mathematical expression. In other words you could give the photograph itself as the argument to a function! There was no messing around with file handles or input streams or whatever – you just wrapped the picture in a function and pressed enter. For example (images used with permission from Wolfram Research) – The following input

Gives the following output

Wolfram have also added a whole suite of image manipulation algorithms and so with just a few commands even someone like me (who knows nothing about image processing) could write fully interactive image processing applications. I imagine that this would be extremely useful for the academics I work for as well as being a lot of fun for me (can anyone recommend a good book that teaches about image processing algorithms by the way).

**Delay Differential Equations**

Mathematica now has built in support for delay differential equations and my boss used to do research into these a few years ago so we’ll have yet another topic to talk about. I note that MATLAB has support for these too and so a future comparison might be interesting.

**Improved charting **

Mathematica has always been able to do things like Pie charts, bar charts and the like but they have never been as good as other areas of Mathematica’s plotting functionality such as 2 and 3D function plots. In version 7, this area of visualization has been vastly improved.

**More, More more**

Version 7 is the first major version of Mathematica that I have covered since starting this blog and I have to say I am a little overwhelmed with the quantity of improvements that Wolfram have made. Up until now I have only talked about minor releases such as 6.0.3 and 6.0.2 where I could cover pretty much all of the new functionality in a single blog post – with version 7 I have no chance. There is just too much to include all at once.

Finally, my friend Maria over at TCMTB has discussed a new Mathematica 7 feature that I wasn’t even aware of: The Classroom Assistant. Head over there to see what she has to say about it.

Expect to see a lot more in-depth articles about Mathematica 7 on Walking Randomly in the future. Any requests?

Pictures in formulae? That’s a new one on me. Cool.

At this rate Mathematica will make pretty much all other scientific software obsolete in just a few more years.