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 :

Error using ==> fft "Out of memory"


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Par défaut Error using ==> fft "Out of memory"
    Bonjour,

    Je suis confronté à un problème qui à mon avis n'a pas lieu d'être d'où mon double étonnement.
    Ma simulation numérique utilise des vecteurs de grande taille i.e. 2^22 échantillons (valeurs complexes) en format double soit une taille de 4Mo par vecteur.
    Mon programme a été optimisé pour réduire au max le nb de ces vecteurs volumineux à 3 soit un workspace de taille totale de 12Mo environ.
    Dans ce programme je fais appel à une fonction dans laquelle j'applique une fft sur l'un de ces vecteurs et il semblerait d'après le message d'erreur que le problème se situe au niveau de cette fft.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ??? Error using ==> fft
    Out of memory. Type HELP MEMORY for your options.
    En consultant l'aide j'ai vérifié la capacité mémoire de mon pc (OS Win7 et bus de 32bits) afin de voir si l'erreur ne viendrait pas de ses capacités limitées, voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Maximum possible array:             853 MB (8.946e+008 bytes) *
    Memory available for all arrays:   1310 MB (1.374e+009 bytes) **
    Memory used by MATLAB:              431 MB (4.520e+008 bytes)
    Physical Memory (RAM):             3543 MB (3.715e+009 bytes)
     
    *  Limited by contiguous virtual address space available.
    ** Limited by virtual address space available.
    Vu le résultat il n'y aurait donc pas lieu de s'inquiéter quand à la profondeur mémoire de mon pc.
    Je n'arrive donc pas à comprendre par quel moyen la mémoire peut etre insuffisante. La fft ne fait que 2^22 sommations sur un vecteur de valeurs complexes (double) de longueur 2^22.

    Auriez vous une solution? Merci de votre aide.

  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 matlabeur Voir le message
    Ma simulation numérique utilise des vecteurs de grande taille i.e. 2^22 échantillons (valeurs complexes) en format double soit une taille de 4Mo par vecteur.
    Mon programme a été optimisé pour réduire au max le nb de ces vecteurs volumineux à 3 soit un workspace de taille totale de 12Mo environ.
    Tu devrais commencer par refaire tes calculs...

    => Comment déterminer approximativement la quantité de mémoire nécessaire pour le stockage d'une variable ?

    Sachant que pour les variables complexes, MATLA stocke pour chaque valeur deux données en classe Double (la partie réelle et la partie imaginaire).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Par défaut
    En effet, j'ai fait une erreur sur la taille de mes vecteurs.

    Reprenons, un vecteur de complexes de taille 1x2^22 représente une taille mémoire de 2^22x8x2/(1024^2)=64Mo. Mes deux autres "gros" vecteurs sont de mm taille mais réels au format double (32Mo). Soit un workspace initial de taille 128 Mo environ.
    Il ne semble pas que mon programme stoppe à cause de la taille initiale du workspace car il l'aurait fait dès le début.
    De plus une simple fft ne l'arrête pas
    En revanche il stoppe et affiche l'erreur mémoire sur une ligne de calcul requérant plusieurs calculs de fft et affectations sur une mm ligne de calculs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = k1*(1 + a1).*fft( a2.*(k2*abs(a2).^2) + k3*a2.*ifft(a3.*fft(abs(a2).^2 )));
    a1,a2 et a3 sont de taille 64Mo et k1,2,3 sont des constantes.

    Pensez vous qu'il faille découper la ligne en plusieurs lignes pour contourner le problème? Je vais essayer du moins.
    Savez vous si la fft alloue de la mémoire supplémentaire pour son calcul, et dans quelles proportions?

    Merci de votre aide.

Discussions similaires

  1. Error using ''fft'' (out of memory ?)
    Par salimilas dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/05/2007, 15h35
  2. "GLUT Fatal Error: out of memory" sous Mac OS
    Par shams dans le forum GLUT
    Réponses: 3
    Dernier message: 26/04/2007, 14h03
  3. out of memory error
    Par gloglo dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 03/02/2007, 02h44
  4. BIRT 2.0 Out of memory error avec les graphiques
    Par tiboudchou dans le forum BIRT
    Réponses: 17
    Dernier message: 11/08/2006, 15h04
  5. [Debug]JUnit out of memory error
    Par chezalfredo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/01/2006, 14h58

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