carre bleu
carre jaune
Comparatif Mustig / MatLab(TM)
Pour répondre à une demande fréquente de nos clients, nous nous sommes livrés à un comparatif de la rapidité d'exécution de MUSTIG par rapport à l'un de ses principaux concurrents : le langage MatLab(TM).

Contexte

Machine utilisée lors des tests :
  • PC Pentium Pro 200MHz du commerce, normalement chargé, possédant 96Mo de mémoire vive


  • Versions des logiciels :
  • MUSTIG 4.5.3 et MATLAB 5.2.0
  • Aucune bibliothèque optionnelle n'a été utilisée : ce comparatif concerne les versions de base des logiciels.



  • Résultat de quelques tests

    Boucle de synchronisation à rétroaction type PLL avec affichage

    MatLab ne dispose pas d'une procédure toute faite pour simuler ce genre d'algorithme rebouclé utilisé entre autres dans les systèmes de télécommunications. Il faut donc effectuer une réelle programmation (cf. graphe Mustig ci-dessous).
    La supériorité de Mustig apparaît alors très clairement : le programme Mustig est beaucoup plus rapide que le programme MatLab (un ordre de grandeur de différence pour une simulation de 500 000 points !). Ceci est dû entre autres au fait que Mustig est un langage compilé et MatLab un langage interprété.


    Filtrage d'ordre 2 avec limitation de précision pour simuler un système réel

    Cet exemple ne peut pas être traité avec les fonctions de base de MatLab : il faut programmer. La différence de temps de calcul en faveur de Mustig est encore plus impressionnante : un ordre de grandeur au minimum !!!



    Création et inversion d'une matrice NxN aléatoire
    Mustig se montre en moyenne 50% plus lent que MatLab car la procédure d'inversion Linpack utilisée est plus lente que celle implémentée dans MatLab. A noter que l'on compare ici deux procédures externes, il ne s'agit pas à proprement parler de programmation.



    Filtre FIR ou IIR d'ordre 6 en flottants d'un signal de N points avec affichage
    Le sous-programme filter utilisé par MatLab est légèrement plus rapide que le programme écrit en langage Mustig lorsque la longueur du signal reste relativement faible. Pour de plus longs signaux Mustig devient plus rapide grâce à sa bonne gestion de la mémoire.



    Sommation des éléments d'un signal de N points
    Temps de calcul du même ordre de grandeur : la boucle de sommation écrite en langage Mustig est aussi rapide que le sous-programme externe sum utilisé pat MatLab.



    Conclusion des tests

    MATLAB



    Principe
    • Programmation par écriture de code spécifique
    • Langage procédural
    • Code interprété
    Principaux avantages
    • Bien adapté pour les opérations de matrices
    • Assez performant pour des opérations très classiques sur un nombre de points assez faible (quelques milliers)
    • S’est imposé comme standard de fait en développement mathématique pour des raisons historiques.
    Principaux inconvénients
    • Lenteur pour une utilisation sortant des sentiers battus et/ou sur un grand nombre de points. MatLabÔ peut être davantage considéré comme une bibliothèque de fonctions, associée à un langage interprété.
    • Lenteur de développement (écriture de code)
    MUSTIG



    Principe
    • Programmation graphique " Drag & Drop "
    • Langage non procédural
    • Code compilé
    Principaux avantages
    • Véritable langage de programmation compilé, dédié à la simulation numérique toutes dimensions
    • Rapidité de développement et d’optimisation grâce à l’interface graphique conviviale et aux fonctionnalités multidimensionnelles.
    • Rapidité d’exécution (proche de la vitesse d’un programme C) grâce à la compilation du graphe.
    Principaux inconvénients
    • Plus lent sur certaines opérations de matrices (utilisation des procédures LinPack).
    • Moins répandu


    MatLab convient donc très bien pour réaliser des opérations standards d’algèbre linéaire ou de filtrage classique sur un nombre de points assez faible. Sur ce terrain Mustig s’avère parfois un peu plus lent en exécution, mais compense par sa facilité de manipulation et d’optimisation des paramètres.

    Dès que l’on sort des procédures classiques et qu’une réelle programmation algorithmique est nécessaire, Mustig se révèle beaucoup plus rapide. Il est aussi plus simple à utiliser. Son caractère graphique facilite la mise au point et l’optimisation des algorithmes, ainsi que la réalisation d’applications directement opérationnelles.

    Le gain en temps est tout particulièrement appréciable pour des simulations sur un grand nombre de points (algorithmes de communications numériques par exemple). La gestion de la mémoire est également plus performante et est paramétrable par l’utilisateur.

    La version de base de Mustig offre, pour ce qui est du traitement des signaux, un environnement sensiblement équivalent à l’ensemble MatLabÔ + Signal Processing Toolbox + surcouche graphique SimulinkÔ , mais avec une interactivité et une convivialité supérieures.