Professional Documents
Culture Documents
Maple15NewFeatures PDF
Maple15NewFeatures PDF
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:
b-a
MonteCarlo@expr_, 8x_, a_, b_<, n_D := Sum@expr, 8x, RandomReal@8a, b<, nD<D
n
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.
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:
q1
q2
Animate@
Row@Table@Plot@f@t xD, 8x, 0, 10<, ImageSize Ø Tiny, PlotRange Ø 3D, 8f, 8Sin, Tan<<DD,
8t, 0, 5<D
3 3
2 2
1 1
-1 2 4 6 8 10-1 2 4 6 8 10
-2 -2
-3 -3
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 orange tubes:
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
Performance
Maple 15 advertises a significant performance boost for the operation of expanding a high-
order polynomial (http://www.maplesoft.com/products/maple/new_features/polynomial_arith.aspx)
and in a few basic sparse matrix 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 sparse matrix operations, despite Maple 15’s recent improvements):