carre bleu
carre jaune

MUSTIG vs. MatLabÔ
Our prospects and clients often wonder whether a graphical language such as MUSTIG is fast enough to fit their needs in numerical simulation. This is why we have asked a programmer to program similar simple algorithms with both MUSTIG and MatLab, one of the most famous language for numerical simulation, and to compare the execution times.

Machine used for comparative testing :
PC Pentium Pro 200MHz with 96Mo RAM

Software versions :
MUSTIG 4.5.3 and MATLAB 5.2.0
No optional library has been used : this comparative study has been carried out with basic versions.


Results of a few tests

Phase Lock Loop (PLL) synchronization algorithm carried out on a N-sample signal

MatLab does not feature a ready-to-use external routine for this type of algorithm. An actual program in MatLab language has to be written : we really compare the rapidity of a MUSTIG graph with that of a MatLab script.
The MUSTIG graph built to simulate the PLL system is shown below.


The MUSTIG graph proves much faster than the MatLab script !!! You really see the difference between a compiled language like MUSTIG and an interpreted language like MatLab !

2nd-order filtering with limited precision to simulate an actual system

Again, this algorithm cannot be programmed using only MatLab's basic, optimized external routines : you have to actually write a MatLab program.

The superiority of MUSTIG is even more impressive !!!

Creation and inversion of a NxN random matrix
MUSTIG is about 50% slower than MatLab on this test, for the matrix inversion procedure used by MatLab seems to be more efficient. Note that this test only compares two external procedures : it is not really a matter of programming.

Sixth order FIR or IIR filtering and viewing of a N samples signal
When the length of the signal is small, the MatLab filter external routine is slightly faster than a similar filter actually programmed in MUSTIG language.
As the MatLab function is an external routine and NOT an actual program, we could write an optimized external C filtering routine and interface it with MUSTIG : the results would then be more comparable.
For longer signals however MUSTIG becomes much faster, due to its more efficient memory management.

Summing the elements of a N-sample signal
The calculation times are of he same order of magnitude : the summing loop actually written in MUSTIG language is as fast as MatLab's sum external routine.





Conclusions


MATLAB

Principle
  • Scripts written in specific language
  • Procedural language
  • interpreted
  • code

Main advantages

  • Well suited for matrix operations
  • Performs well for classical operations on relatively small signals (less than a few thousands of samples)
  • Has become relatively standard for historical reasons


Main drawbacks

  • Slow when actual scripts have to be written, or when the data to process are larger. MatLab should be considered as a library of routines associated to a slow interpreted language.
  • Longer development time (you have to write code)
MUSTIG

Principle
  • Intuitive, user-friendly graphical programming
  • Non procedural language
  • Compiled code

Main advantages

  • Actual COMPILED programming language for Numerical Simulation, no matter how many dimensions are involved
  • Fast algorithmic development & optimization, thanks to the intuitive graphical editor and to the multidimensional processing
  • Fast execution (comparable to compiled C code), thanks to MUSTIG's optimized compiler

Main drawbacks

  • Slower on some basic matrix operations (uses LinPack functions)
  • Less known

MatLab is therefore well suited to carry out standard operations on a relatively small number of samples. In such configurations MUSTIG is sometimes a bit slower, but its easiness of use and its great optimization capabilities make up for the few sub-optimal external routines.

When MatLab's classical routines are not sufficient and actual programming is necessary (e.g. for prototyping or long simulations), MUSTIG proves much faster. It is also easier and more comfortable to use. Much less time is necessary to create custom, user-friendly applications and interfaces from the program core.

The gain in execution time is most impressive when processing a large number of samples (e.g. numerical communications algorithms). Memory management also seems to be more efficient and can be adjusted by the user.

MUSTIG's basic version offers, as far as signal processing is concerned, an environment comparable to MatLab + Signal Processing Toolbox + the Simulink graphical interface, but it is easier to use and user-friendlier.


Back to main page