Science Scilab version 5.4.0

Posté par (page perso) . Édité par Davy Defaud, baud123, Nÿco, Benoît Sibaud et Benoît. Modéré par patrick_g. Licence CC by-sa
30
15
oct.
2012
Science

Le 1er octobre 2012, la version 5.4.0 de Scilab a été publiée.

Scilab est un logiciel libre et open source de calcul numérique. D’après Wikipédia : « Scilab (prononciation : [sajlab] contraction de Scientific Laboratory en anglais) est un logiciel libre de calcul numérique multi‐plate‐forme fournissant un environnement de calcul pour des applications scientifiques. Il possède un langage de programmation orienté calcul numérique de haut niveau. Il peut être utilisé pour le traitement du signal, l’analyse statistique, le traitement d’images, les simulations de dynamique des fluides, l’optimisation numérique, et la modélisation et simulation de systèmes dynamiques explicites et implicites.
Il est disponible pour Windows, Mac OS X, GNU/Linux et BSD. »

La version 5.4.0 est une évolution majeure de Scilab, à la fois d’un point de vue technique et fonctionnel, mais aussi parce qu’elle a été développée et publiée — pour la première fois — par une société privée, issue de l’Inria et du Consortium Scilab, Scilab Enterprises.

Nouvelles fonctionnalités

Scilab Desktop

Évolution la plus visible et peut‐être la plus attendue des utilisateurs, Scilab Desktop propose un docking complet des fenêtres. Par défaut, à la place de la simple console, Scilab affiche un navigateur de fichiers, un navigateur et un éditeur de variables, ainsi qu’un gestionnaire d’historique. L’ensemble des fenêtres du logiciel est dockable et undockable, leur position et statut étant sauvegardés d’une instance à l’autre.

Scilab préférences

Dans les versions précédentes, les options de configuration du logiciel étaient accessibles à différents endroits (interface graphique, fonctions, fichier de configuration, etc.). Grâce à l’application Preferences, une interface unique est proposée pour configurer les différentes options et paramètres du logiciel.

Graphiques

Basé sur une bibliothèque Java de rendu scientifique 2D/3D intitulée Scirenderer, le graphique de Scilab est largement amélioré, à la fois en termes de performances, de maintenance et de qualité du rendu.
Développée dans le cadre du projet ANR Collaviz, Scirenderer est proposée sous forme d’une bibliothèque open source Java disponible sur la forge de Scilab.

Binding XML

Résultat du projet en collaboration OASIS, porté par le Pôle de compétitivité Systematic Paris‐Région, Scilab est capable de manière intrinsèque de lire et d’écrire des fichiers XML. Représentées sous forme d’arbre, les valeurs numériques sont particulièrement bien traitées.

Documentation

La documentation a été améliorée et mise à jour : nouvelles catégories, exemples de rendu graphique contribuent à enrichir les pages d’aide, etc.

Format de stockage normalisé basé sur HDF5

Scilab a fait le choix de HDF5 comme format de stockage de données numériques par défaut pour ses résultats. Ainsi, le format de stockage de données numériques HDF5 prenant de plus en plus d’importance dans le monde scientifique, le format SOD (Scilab OpenData) propose une normalisation de l’ensemble des données Scilab.

Xcos

L’outil de modélisation et de simulation, unique alternative open source à Simulink, a vu ses performances fortement améliorées, tout en améliorant la stabilité et l’utilisabilité du module.

Outils de développement

Ces dernières années, afin d’améliorer la qualité du logiciel, de nombreuses méthodes et outils ont été mis en place.

 Outil de revue de code

Scilab a été l’un des premiers à utiliser Gerrit/Git. Développé par Google pour le développement d’Android, il permet de valider ou refuser des commits de manière simple, mais aussi de les annoter.
Ainsi, partant du dicton « on est plus intelligent à plusieurs », la revue de code permet d’éviter des erreurs classiques ou des modifications non conformes aux normes établies de développement. Aspect bien moins connu, mais aussi significatif, elle permet d’accompagner des débutants dans leurs développements.

Intégration continue

Couplé au dépôt Git, toutes les minutes, le Jenkins Scilab va lancer plusieurs constructions du logiciels avec différents compilateurs et options. Associé aux lancements de tests unitaires Scilab et Java, ce processus assure une détection rapide et efficace des régressions potentielles.

Avenir de Scilab et de son écosystème

Scilab Enterprises

Après avoir été développé au sein de l’Inria puis par la fondation Campus Paris Saclay (DIGITEO), le travail de transfert technologique a permis la création de Scilab Enterprises.
Fondée sur le modèle économique classique du logiciel libre, Scilab Enterprises propose une gamme de services associés au logiciel (développements spécifiques, formations, maintenance…) pour continuer à garantir et distribuer un logiciel libre et gratuit.

Les clients de Scilab Enterprises sont des grands instituts (CNES, etc.), des groupes industriels de premier plan (Astrium, ArcelorMittal, SNECMA, etc.) et des PME.

Projet Richelieu

Projet du Groupe Thématique Logiciel Libre (GTLL) du Pôle de compétitivité Systematic, le projet Richelieu vise à proposer de la compilation à la volée (Just‐In‐Time) dans le logiciel Scilab. Basé sur VMKIT, construit sur LLVM, le gain de performance peut être supérieur à un facteur 10.

  • # Format HDF5

    Posté par (page perso) . Évalué à  7 .

    Un page qui donne les nouveautés : http://www.scilab.org/fr/products/scilab/download/5.4.0/whatsnew

    Il y a un point qui me semble bien, c'est la partie stockage basé sur HDF5 sous le nom de SOD. Est ce qu'il y a un document ou le format est décrit ? J'ai trouvé cela mais cela n'explique pas comment sous ranger les chose dans le HDF5.

    http://help.scilab.org/docs/5.4.0/en_US/save.html
    http://help.scilab.org/docs/5.4.0/en_US/load.html

    En effet, on fait un peu pareil avec NetCDF4 d'avoir une version assez pratique dans 90% des cas. Sachant que le NetCDF4 est du HDF5, autant essayer d'être compatible si possible…

    Je sais que Matlab a intégré l'API NetCDF et HDF5, tout cela est donc très bon.

    http://www.mathworks.fr/fr/help/matlab/ref/hdf5.html

    Reste un point pénible avec scilab, marche t'elle correctement sous GNU/Linux sans carte 3D maintenant (nvidia). J'avoue que sur la debian actuelle, on a de gros soucis de ce coté là.

    • [^] # Re: Format HDF5

      Posté par (page perso) . Évalué à  5 .

      Je rajoute un point qui serait plus que bien, avoir un module Fortran 90 pour manipuler les fichier HDF5 rangés sous la hiérarchie SOD. En effet, si on avait un wrappeur qui simplifie tout cela, ce serait GENIAL !

      En effet, on passe notre temps à transférer des données en les codes de calcul et les langages de script…

      A savoir, il est assez facile d'accéder via le protocole DAP (sur HTTP) a des bouts de tableaux NetCDF ou HDF. c'est donc vraiment des formats à privilégier à mon sens dans le calcul.

    • [^] # Re: Format HDF5

      Posté par (page perso) . Évalué à  1 .

      Oui, c'est documenté et spécifié sous la forme d'un SEP (Scilab Enhancement Proposal). Ils sont publiés ici:
      http://cgit.scilab.org/scilab/tree/SEP
      Et c'est le SEP 64 (SEP_064_hdf5_scilab_specification.odt).

      Je vais voir pour la publier sur une page web directement.

  • # ponts avec Matlab

    Posté par . Évalué à  3 .

    Par rapport à Matlab, comment se situe Scilab ? Est-il possible et facile de passer des codes Matlab en codes Scilab ?

    Perso je n'y connais pas grand chose dans le domaine, mais beaucoup de mes utilisateurs utilisent Matlab…

    • [^] # Re: ponts avec Matlab

      Posté par . Évalué à  1 .

      Je me rappelle avoir utilisé une option dans l'interface scilab pour convertir des fichiers matlab (.m) en scilab (.sci ou .sce).Je me rappelle que cela fonctionnait plutôt bien mais je n'ai testé que sur des petits scripts (entre 30 et 100 lignes).
      Côté matlab je crois qu'il n'y a pas d'option pour faire l'inverse… (surement des logiciels tiers le permettent ?!)

    • [^] # Re: ponts avec Matlab

      Posté par (page perso) . Évalué à  4 .

      Si c'est une solution libre compatible ("globalement") au niveau de la syntaxe que tu cherches: GNU Octave.
      Déjà utilisé pour porter du Matlab sous Linux, sans connaissance préalable de Matlab: fonctionne pas trop mal (il faut mettre un peu les mains de le cambouis quand le code utilise des bibliothèques Matlab spécifiques).

    • [^] # Re: ponts avec Matlab

      Posté par . Évalué à  4 .

      J'ai fait la transition matlab -> scilab il y a bien longtemps, mais en pratique deux remarques :

      • les changements de syntaxe sont triviaux, le script automatisé les fait très bien
      • les bibliothèques disponibles peuvent ne pas être les mêmes, c'est là que ça bloque. Si c'est ton code à toi tu trouveras bien un moyen de récrire avec des fonctions de scilab. Si tu adaptes le code de quelqu'un et que tu ne sais pas très bien comment ça marche, c'est moins facile.
      • [^] # Re: ponts avec Matlab

        Posté par . Évalué à  2 .

        Bonjour à tous,

        J'avais testé le "pont" de la version 5.3.3, à partir de scripts Matlab.
        Dans ces scripts je travaillais sur l'identification de fonctions de transfert, des plots, des calculs de marges de phases, et ça passait pas avec le "pont".
        Je n'ai pas creusé pour voir ce qui posait problème.

        Sinon, au sujet de Scilab en général, autant j'aime ce logiciel et suis heureux qu'il soit Libre, autant j'espère qu'il ratrapera son retard de 5 ans sur Matlab.
        Notamment sur le compilateur vers cibles embarquées, qualité de la documentation, compatibilité de la syntaxe, stabilité !

        Aujourd'hui j'utilise la version 5.3.3 pour communiquer via HART, COMEDI, Linux-rt, USB-DUX via des processus électroniques.
        Et bien j'attends avec impatience la version 5.4.1 voire même 5.4.2 pour migrer !

        Bravo tout de même à toute l'équipe et à M. Ledru !

  • # Instabilité graphique

    Posté par . Évalué à  3 .

    Chers auteurs de scilab,

    Merci beaucoup pour ce logiciel que j'utilise tous les jours depuis des années. Cela dit, je trouve que le système graphique de la version 5.4 est instable sous linux (64 bits). Assez souvent quand je fais des plot2d (j'en fais PLEIN), la console m'insulte d'erreurs.

    Par exemple, juste en lançant une série de plot2d :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.LayoutComparator.compare(Unknown Source)
    at java.util.Arrays.mergeSort(Unknown Source)
    [...]

    Des fois scilab continue de fonctionner après ça, des fois il segfaulte.

    Ça le fait aussi très souvent quand je ferme une fenêtre à la main et un peu moins souvent quand j'utilise xdel.

    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException
    at javax.media.opengl.awt.GLJPanel$AbstractReadbackBackend.postGL(GLJPanel.java:924)
    at javax.media.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:656)
    [...]

    Aussi, quand je fais plusieurs plot2d à la suite dans un script (j'en fais plein plein plein) il arrive que les fenêtres graphiques ne s'ouvrent pas à la même taille, ce que scilab ne m'a jamais fait avant.

    J'utilise le binaire 64 bit sous gentoo

  • # Matlab - scilab - octave

    Posté par (page perso) . Évalué à  1 .

    Je suis le seul à trouver que Scilab Desktop est une mauvaise idée. Ce qui faisait la force de scilab par rapport à ses deux confrères était justement d'étre un peu plus indépendant de son interface, un peu plus ligne de commande en gros.

    La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

  • # Xcos

    Posté par . Évalué à  1 .

    Xcos

    L’outil de modélisation et de simulation, unique alternative open source

    Et Open Modelica?

    • [^] # Re: Xcos

      Posté par (page perso) . Évalué à  3 .

      Certains modèles (genre les composants électroniques) sont faits avec Modelica. Donc oui, même si Modelica n'est pas le coeur de Xcos, il le gère très bien.

      • [^] # Re: Xcos

        Posté par . Évalué à  0 .

        A ce propos, quelqu'un a-t-il trouvé une doc concernant les modules coselica ( blocs pour simulation systèmes physiques ) ? J'ai eu beau chercher, je n'ai rien trouvé, à part le code source, mais c'est pas forcément le top…

        • [^] # Re: Xcos

          Posté par (page perso) . Évalué à  1 .

          Ca répond pas vraiment à ta question mais il y a plein d'exemples dans le dossier examples/ de coselica

  • # R

    Posté par (page perso) . Évalué à  2 .

    Bonsoir,

    Ma question peut sans doute parraître un peu naïve, mais je viens à peine de commencer à étudier l’utilisation du logiciel GNU R (je suis en master de biologie, et apparement c’est ce qui est le plus utilisé par mes profs).

    D’où ma question : est-ce que c’est comparable ? (j’entends par là R, scilab, numpy et tout)
    Est-ce que des gens ont des remarques/critiques/conseils à donner à un futur utilisateur de ce type d’outils (qui devar donc faire un choix à un moment ou un autre…)

    • [^] # Re: R

      Posté par . Évalué à  5 .

      J'aurai tendance à dire que l'utilisation de Python avec sa suite scientifique est préférable du fait de la grande versatilité du langage et des bibliothèques existantes. De plus il existe également une distribution python spécialisée : biopython. Des supports de formation combinant python et biologie sont disponibles dont celui-ci : http://www.dsimb.inserm.fr/~fuchs/python/
      Globalement, ipython + matplotlib + numpy/scipy est un bon trio pour rapidement traiter des données.
      Pour finir, je ne dis pas que d'autres solutions logicielles ne sont pas adaptées mais je ne les connais pas.

      • [^] # Re: R

        Posté par (page perso) . Évalué à  1 .

        Merci, je garde ça sous le coude. J’avoue que j’avais déjà envie d’apprendre un peu à programmer en python, alors là s’il y a des bonnes lib pour faire de la bio avec, c’est génial.

    • [^] # Re: R

      Posté par . Évalué à  4 .

      R est devenu au fil du temps un logiciel un peu incontournable. Globalement ce que l'on peut reprocher à R actuellement par rapport aux outils payants c'est un environnement de développement (même si ça s'est amélioré). Pour le reste R est devenu juste une tuerie pour le nombre d'algorithmes disponibles et pour certains des optimisations de plus haut niveau.

      Ce qui intréresse les chercheurs des différentes disciplines, c'est la pertinence des algorithmes, la possibilité de proposer les siens et d'utiliser ceux des autres facilement. Les outils intégrés de base permettent de sortir des graphes assez potables pour être directement utilisés par ailleurs, tu peux aller chercher des données simplement dans les bd libres ou pas, charger les fichiers en csv simplement, bref c'est assez simple d'utilisation même pour le néophyte qui fait quand même un peu d'effort pour comprendre ce qu'il fait.

      Par ailleurs, si l'on veut interfacer les traitements et les inclure dans des chaînes de traitement plus complexes, R reste un outil très maléable qui peut tourner dans plein de configurations et de mon point de vue la facilité d'intégration permet de construire des infrastructures destinées à la prod beaucoup plus simplement.

      Bref, que tu fasses ta recherche, du proto, de la chaîne de traitement, R permet de répondre à peu près à tous les cas donc pour pas mal de chercheurs, c'est la solution fiable, pérenne et pas chère !

      • [^] # Re: R

        Posté par (page perso) . Évalué à  2 .

        C’est à peu près ce qui m’a été dit en introduction de mes cours de R. Mais justement, l’objet de mes interrogations était dû au fait qu’il n’a même pas été évoqué qu’il extsistait d’autres outils…
        Par-ce que justement, à part l’ancienneté de l’outil (corrolé donc à son nombre d’utilisateurs, et au nombre d’algos déjà écrits et optimisés), je ne vous pas grand-chose dans les arguments ici qui soient vraiment spécifiques à R :
        L’interfaçage : Bah avec python, c’est assez simple, vu que python est complétement multi-plateforme…
        En plus y’a une grande communauté…

        Mais bon, ne me faites pas dire ce que je ne veut pas dire : C’est très bien R ! De ce que j’en ai vu en tout cas. Je suis juste très curieux. Quand on me présente un logiciel, je vais tout de suite voir par reflexe s’il y a des alternatives intéressantes. C’est sans doute pour ça que je tourne sous linux depuis des années, alors que je ne suis pas informaticien…

        • [^] # Re: R

          Posté par . Évalué à  4 .

          Comme l'a dis Nonolapero python peut fournir un ensemble ressemblant à R mais avec un langage bien plus généraliste et une documentation/communauté plus grande. Par contre R possède plus d'algo de base je crois.

          Ensuite pour ce qui est de comparer R à octave ou autre, je pense que R est fait pour le calcul statistique alors que les autres traitent l’ensemble des mathématiques. Du coup avec scilab tu va facilement faire des intégrale alors qu'avec R tu va traiter une grande quantité de données.

          Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

          • [^] # Re: R

            Posté par . Évalué à  2 .

            D'ailleurs pour continuer à prêcher pour ma paroisse, voici des raisons du développement de la bibliothèque panda pour python que je reproduis ici (http://pandas.pydata.org/#why-not-r)

            First of all, we love open source R! It is the most widely-used open source environment for statistical modeling and graphics, and it provided some early inspiration for pandas features. R users will be pleased to find this library adopts some of the best concepts of R, like the foundational DataFrame (one user familiar with R has described pandas as “R data.frame on steroids”). But pandas also seeks to solve some frustrations common to R users:

            • R has barebones data alignment and indexing functionality, leaving much work to the user. pandas makes it easy and intuitive to work with messy, irregularly indexed data, like time series data. pandas also provides rich tools, like hierarchical indexing, not found in R;
            • R is not well-suited to general purpose programming and system development. pandas enables you to do large-scale data processing seamlessly when developing your production applications;
            • Hybrid systems connecting R to a low-productivity systems language like Java, C++, or C# suffer from significantly reduced agility and maintainability, and you’re still stuck developing the system components in a low-productivity language;
            • The “copyleft” GPL license of R can create concerns for commercial software vendors who want to distribute R with their software under another license. Python and pandas use more permissive licenses.
          • [^] # Re: R

            Posté par . Évalué à  1 .

            Pour allor dans ton sens, ils peuvent tous faire les mêmes choses mais certaines choses plus facilement que d'autres… Ainsi, il est plus facile de faire certaines intégrations complexes avec Scilab/Octave qu'avec R, mais ce dernier est plus aisé pour ouvrir des recueils de données (bdd ou autre) pour faire des corrélations dans tous les sens.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.