IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Compiler une fonction MATLAB


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut Compiler une fonction MATLAB
    Bonjour à tous,

    je cherche à optimiser le temps de calcul d'un programme matlab. Pour cela nous avons déjà réaliser de nombreuses modifications et pu diviser le temps par 10, mais les temps de calcul reste toujours trop long.

    D'où ma question: est il possible de compiler une fonction pour la rendre exécutable plus rapidement? (je pensai à faire une dll ou autre)

    Merci d'avance pour vos réponses.

    Tibo

    *****************************************
    MATLAB Version 7.8 (R2009a)
    MATLAB Compiler Version 4.10 (R2009a)

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Thibaut B. Voir le message
    D'où ma question: est il possible de compiler une fonction pour la rendre exécutable plus rapidement? (je pensai à faire une dll ou autre)
    Non => : Une application compilée est-elle plus rapide ?

    Sauf bien entendu si tu recode tout dans un autre langage (non interprété) comme le C, le C++, Fortran...

    Es-tu sûr de ne plus pouvoir optimiser plus ton application sous MATLAB ?

    As-tu utilisé le profiler (doc profile) ?

    Tu peux peut être nous montrer les codes qui sont gourmands en temps de calcul pour qu'on essaie de t'aider plus...

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    Bonjour dut,

    merci pour ta réponse rapide,
    J'avais bien lu la Faq,
    Non, le but du MATLAB Compiler est de créer un exécutable qui puisse fonctionner sur une machine où MATLAB n'est pas installé.
    Néanmoins, sauf erreur de ma part, Matlab est du langage interprété, il est donc forcement plus lent que du langage compilé. D'où ma question existe t'il un moyen de compiler une fonction matlab? (je ne parle pas d'utiliser la toolbox Matlab Compiler [qui porte bien mal son nom])

    Merci pour vos réponse.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Puisque MATLAB est interprété, il te faudra toujours un interpréteur (MCR) pour exécuter ton code ("compilé" ou pas).

    Il est impossible de transformer automatiquement du code MATLAB en code de plus bas niveau...

    Par contre, une autre alternative consiste à intégrer du code de bas niveau à la place de certaines parties de code MATLAB. Ce sont les fichiers MEX => : Les fichiers MEX

    Dans ce cas, ces parties seront bien des codes compilés donc plus rapides (si ils sont bien écrits bien entendu )

    Mais tu n'as pas répondu aux questions suivantes :

    Citation Envoyé par Dut Voir le message
    Es-tu sûr de ne plus pouvoir optimiser plus ton application sous MATLAB ?

    As-tu utilisé le profiler (doc profile) ?

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    Merci ta réponse est claire,

    Concernant tes deux autres questions:

    A-Les principales optimisations du code ont été obtenues:

    1- en choisissant les bons algorithmes, (donc rien à voir avec matlab)
    2- en vectorisant au maximum le code

    B-Oui nous avons utiliser le profiler pour optimiser le code.

    Merci

    Tibo

Discussions similaires

  1. [Compiler] compiler une fonction avec matlab 6.1 et cogent
    Par pepsoudre dans le forum MATLAB
    Réponses: 0
    Dernier message: 16/09/2011, 12h04
  2. [Compiler] Utiliser une fonction MATLAB en C++
    Par SlySlayer dans le forum MATLAB
    Réponses: 6
    Dernier message: 23/08/2007, 08h35
  3. Problème ginput dans une fonction matlab
    Par matt67 dans le forum MATLAB
    Réponses: 12
    Dernier message: 05/06/2007, 15h24
  4. [intfilt] Convertir une fonction MATLAB en language C
    Par sandball22 dans le forum MATLAB
    Réponses: 10
    Dernier message: 10/04/2007, 16h06
  5. Exécution d'une fonction Matlab à partir de C++
    Par wassimb dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/03/2007, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo