A Month of Math Software – June 2011

July 5th, 2011 | Categories: math software, Month of Math Software | Tags:

Welcome to the 6th edition of A Month Of Math Software where I take a look at all the shiny new things that are available for a geek like me to play with.  Previous editions are available here.

Commercial Mathematics Software

Free Mathematics Software

  • Octave – This open source alternative to MATLAB has seen a very minor update to version 3.4.2 which fixes some minor installation problems.
  • Pari – Version 2.5 of this computer algebra system which specialises in number theory has been released.  Get the changelog here.
  • PLASMA – PLASMA stands for Parallel Linear Algebra for Scalable Multi-core Architectures. The version 2.4 changelog is available at http://icl.cs.utk.edu/plasma/news/news.html?id=270

Mathematical Software on GPUs

Unless you’ve been hiding under a scientific computing rock for the last couple of years you’ll know that GPUs (Graphical Processing Units) are how everyone wants to do their computing these days.  For the right kind of problem, GPUs can be faster than standard CPUs by an order of magnitude or more.  Access to such cheap computational power fundamentally changes the type of mathematical and scientific problems that we can realistically tackle– which is nice!  Unfortunately, however, programming GPUs is not particularly easy so it’s a good job that various research groups and software companies have stepped in to do some of heavy lifting for us.  Last month I mentioned a new release of NAG’s GPU offering and April saw a release candidate of v1.0 of MAGMA (open source multicore+GPU linear algebra).  Here’s what happened in June

Compilers Compilers Compilers

OK, so this isn’t mathematical software news really but good compilers are essential for fast mathematical code.  There have been a couple of compiler-based news items that have got me excited this month.

  • Pathscale EKOPath 4 compilers go open source – If you have a Linux system and are running some open-source mathematical software then there is a good chance that your software was compiled with the standard open source C-compiler, gcc.  Now, gcc is a fantastic compiler but, according to many benchmarks, Pathscale’s compilers produce faster executables than gcc for many computationally intensive operations.  The practical upshot for most of us is that some of our favourite software packages might be getting a free speed-hit in the near future.  There’s a huge discussion thread about this over at phoronix.com.
  • Intel have released a new open source compiler called ispc.  According to Intel’s site “ispc is a new compiler for “single program, multiple data” (SPMD) programs.” The example program is a simple Mandelbrot renderer.  Make those SIMD lanes in your CPU work harder for you!

Mathematical software elsewhere on the web

  1. MySchizoBuddy
    July 6th, 2011 at 10:40
    Reply | Quote | #1

    While searching for difference between Plasma and Magma both University of Tennessee projects i came across this poster http://cseweb.ucsd.edu/~rknath/poster2.pdf that compares the two projects.

  2. July 6th, 2011 at 11:08
    Reply | Quote | #2

    Thanks for that…very useful :)

  3. July 6th, 2011 at 11:17
    Reply | Quote | #3

    I was at a talk yesterday given by Jack Dongarra where he mentioned PLASMA. Turns out that it is more energy efficient than LAPACK as well as faster. http://ow.ly/5wXEs

  4. MySchizoBuddy
    July 10th, 2011 at 18:35
    Reply | Quote | #4

    Do you by any chance know how to deploy a opencl or cuda application to a customer. Right now people are using it for their own custom applications that are deployed on their own computers. Where they can compile the opencl/cuda code for that particular machine.

    When you sell a commercial application to a client you don’t know what sort of hardware the client has. Which nividia card or which processor (intel, amd, via, arm) does the client have. How then can you optimize your code and take full advantage of opencl/cuda

  5. July 11th, 2011 at 16:20
    Reply | Quote | #5

    I’ve had no experience of doing that yet I’m afraid. I imagine that it is complicated!

    I have seen at least one solution (in NAG’s GPU library) where they have routines that try various parameters on your system to see which ones fit best with your hardware.

  6. July 23rd, 2011 at 04:51
    Reply | Quote | #6

    Hi Mike,

    I have an idea to develop a Web 2.0 application just like Matlab. I have developed a prototype

    http://oneptwo.appspot.com

    and would like to hear your comment since you have extensive experience in using math software.

    My idea is:
    1. You can use Python or Matlab ML to write your algorithm.
    2. You can share your algorithm to public if you like.
    3. You can search other user’s public algorithm.
    4. You can use google spreadsheet as data input and output.
    5. You can works with other people in another country by this application.

    Is it something useful?