Comparison of Some New Maple 15 Features with Mathematica 8 Technical Communication & Strategy Group, Wolfram Research

Summary The release of Maple 15 was accompanied by claims of important new features (http:// www.maplesoft.com/products/maple/new_features/index.aspx). However, a closer look shows that in many cases Maple 15 offers only thin support that doesn’t come close to matching Mathematica’s established advantages in the same feature area.

This report looks at the following areas advertised with Maple 15:

† Parallelism: Maple adds parallelism that needs awkward manual programming; Mathematica is faster and automatic. † GPU Support: Maple adds trivial support—a single CUDA function; Mathematica has a suite of functions for CUDA and OpenCL. † Interactive Demonstrations: Maple includes a few elementary demonstrations; demonstrations.wolfram.com has 7000+. † Visualization & Plotting: Maple adds support for some new special cases; Mathematica’s general symbolic graphics language already does more. † Performance: Maple has performance improvements in very specific areas; overall, Mathematica is systematically faster.

Parallelism Maple 15 advertises multi-threaded and grid-based parallelism (http://www.maplesoft.com/products/ maple/new_features/examples/montecarlo.aspx). However, this feature remains rooted in the old- fashioned paradigm of requiring the user to manually program interprocess communication.

Compare the code for this Maple example and its corresponding implementation in Mathematica:

Serial version in Maple:

Serial version in Mathematica:

- a MonteCarlo@expr_, 8x_, a_, b_<, n_D := Sum@expr, 8x, RandomReal@8a, b<, nD

Comparison of Some New Maple 15 Features with Mathematica 8 | 1 Parallel version in Maple:

Parallel version in Mathematica:

ParallelMonteCarlo@expr_, 8x_, a_, b_<, n_D := n MeanBParallelTableBMonteCarloBexpr, 8x, a, b<, F, 8$KernelCount

The Mathematica program is shorter and simpler. Messaging between computation kernels, either local or across a grid, is automatic in Mathematica, whereas it is manually programmed in Maple.

Both serial and parallel cases are much faster in Mathematica 8 than in Maple 15:

Computations were carried out on an Intel Core i7-950 with 3.07 GHz and 24 GB of RAM, running 64-bit Windows 7.

GPU Support While Maple 15 advertises “CUDA Support” (http://www.maplesoft.com/products/maple/new_features/ cuda_support.aspx), the functionality is very thin, with only a single CUDA operation built in, no OpenCL support, and no support for user code.

Comparison of Some New Maple 15 Features with Mathematica 8 | 2 Maple 15 Mathematica CUDA device discovery functions 0 6 CUDA image processing functions 0 12 CUDA linear algebra functions 1 5 CUDA functions 0 2 CUDA memory, language, and compilation functions 0 19 OpenCL functions 0 Hno supportL 25+ Execution of custom GPU code ä 

Interactive Demonstrations Maple 15 advertises a new set of 49 demonstrations covering basic math topics (http:// www.maplesoft.com/products/maple/new_features/examples/demoindex.aspx). This compares unfavorably to the free Wolfram Demonstrations Project, which adds over twice as many new Demonstrations each month. The Demonstrations Project was launched in 2006 and now has over 7000 user-submitted Demonstrations.

Creating your own Demonstration is typically a one-liner in Mathematica. This Demonstration shows electrostatic contours of point charges:

Comparison of Some New Maple 15 Features with Mathematica 8 | 3 Manipulate@ContourPlot@q1 ê Norm@8x, y< - p@@1DDD + q2 ê Norm@8x, y< - p@@2DDD, 8x, -2, 2<, 8y, -2, 2<, Contours Ø 10D, 88q1, -1<, -3, 3<, 88q2, 1<, -3, 3<, 88p, 88-1, 0<, 81, 0<<<, 8-1, -1<, 81, 1<, ImageSize Ø 8150, "Automatic"<, Locator

q1

q2

Visualization and Plotting Animation Maple 15 brings minor improvements to the animate() command (http://www.maplesoft.com/ products/maple/new_features/visualization.aspx). However, this Maple command remains severely and fundamentally limited: it can only animate a single plot. It cannot animate expressions other than plots, including customized arrangements of plots. For example, Maple’s animate() can’t be applied to side-by-side plots like this:

Animate@ Row@Table@Plot@f@t xD, 8x, 0, 10<, ImageSize Ø Tiny, PlotRange Ø 3D, 8f, 8Sin, Tan<

t

3 3 2 2 1 1 -1 2 4 6 8 10-1 2 4 6 8 10 -2 -2 -3 -3

Extracting Plot Data Maple 15 advertises a new specialized for extracting numerical data from plots. While this may make the process slightly easier for Maple users, a specialized GUI like this is not necessary in Mathematica. Instead, Mathematica’s unique symbolic language has always made this information easily available to the user. Here is one way to get the numerical data from a plot:

Comparison of Some New Maple 15 Features with Mathematica 8 | 4 1.0 0.5 data = CasesB , Line@d_D ß d, ¶F; -0.5 2 4 6 8 10 -1.0

Plot the data:

ListPlot@data, Frame Ø TrueD

1.0

0.5 0.0 ÇÇÇÇ -0.5

-1.0 0 2 4 6 8 10

More importantly, Mathematica’s flexible symbolic structure allows easy customization and modification of graphics, just as for any other expression. Here’s how to replace the lines in a plot with tubes:

p = ParametricPlot3D@8Sin@uD, Cos@uD, u ê 10<, 8u, 0, 10<, ImageSize Ø SmallD

1.0

0.5 1.0 0.5 0.0 -1.0 0.0 -0.5 0.0 -0.5 0.5 1.0 -1.0

p ê. Line@pts_D ß 8Orange, Tube@pts, 0.05D<

Performance Maple 15 advertises a significant performance boost for the operation of expanding a high- order (http://www.maplesoft.com/products/maple/new_features/polynomial_arith.aspx) and in a few basic sparse operations (http://www.maplesoft.com/products/maple/new_features/ sparse_matrix.aspx). The comparison of Maple 15’s polynomial expansion performance with Mathematica 8 is accurate, but misleading: more systematic comparisons show that Mathematica has far better performance overall than Maple.

For example, our testing shows that Mathematica outperforms Maple in every area of numerical computation (including operations, despite Maple 15’s recent improvements):

Comparison of Some New Maple 15 Features with Mathematica 8 | 5 Category Tests Median Mathematica performance Elementary & 21 1182 times faster Complex elementary & special functions 21 2225 times faster Extended-precision elementary & special functions 21 19 times faster High-precision function evaluation 8 58 times faster Real data operations HDefault data typeL 14 8 times faster Real data operations HManual type overrideL 13 3 times faster data operations 12 7 times faster Complex number data operations HManual type overrideL 12 6 times faster Integer data operations 10 14 times faster Integer data operations HManual type overrideL 9 10 times faster Sparse real data operations 8 19,899 times faster Extended-precision data operations 12 10 times faster Programming 2 65 times faster GPU use 1 3 times faster

Contact us at [email protected] for the detailed test report.

Comparison of Some New Maple 15 Features with Mathematica 8 | 6