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

Fortran Discussion :

Souci de mémoire : tableaux trop grands


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Points : 16
    Points
    16
    Par défaut Souci de mémoire : tableaux trop grands
    bonjour les frères,
    voilà mon souci se pose au niveau de la taille des tableaux(x,y) que je déclare; en fait, je veux faire un calcul pour un nombre très grand de pas de temps (qui voisinne 8 millions pas), mais je n'arrive même pas à déclencher mes calculs suite aux erreurs affichées sur le compilateur qui me disent que les tableaux(matrices) ont des tailles trop larges....si quelqu'un peut m'aider, j'en serai reconnaissant parce que à cette je suis vraiment bloquée...et merci infiniment...

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Deux remarques:
    1. Es-tu vraiment sure que tu dois prendre un si grand nombre de pas ? A cause de l'accumulation des erreurs d'arrondi, il est vraisemblable qu'après un certain nombre de pas, tes résultats ne veulent plus rien dire. D'autre part, je t'imagine mal lire 8 millions de valeurs.
    2. Ne peux-tu pas envisager de stocker tes résultats sur un fichier plutôt qu'en mémoire vive ?


    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut !

    Deux remarques:
    1. Es-tu vraiment sure que tu dois prendre un si grand nombre de pas ? A cause de l'accumulation des erreurs d'arrondi, il est vraisemblable qu'après un certain nombre de pas, tes résultats ne veulent plus rien dire. D'autre part, je t'imagine mal lire 8 millions de valeurs.
    2. Ne peux-tu pas envisager de stocker tes résultats sur un fichier plutôt qu'en mémoire vive ?


    Jean-Marc Blanc
    si vous pouvez éclairer plus svp, merci infiniment...

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Je croyais avoir été clair, mais puisque ça semble ne pas être le cas, je détaille mes questions:
    1. Explique nous pourquoi tu dois faire 8 millions de pas.
    2. Est-ce que ces 8 millions de pas proviennent de l'intégration d'équations différentielles, et si oui, desquelles ?
    3. Que vas-tu faire avec tes 8 millions de groupes de valeurs ?


    Selon tes réponses, il est probable que d'autres questions suivront.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Membre régulier Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Points : 82
    Points
    82
    Par défaut
    Si c'est le compilo qui rale, c'est alors probable que tu alloues tes tableaux sur la pile, c'est à dire de manière non dynamique. Il y a des options pour setter cela (exemple /STACK pour intel sous IVF)

    Passe par des ALLOCATE, et si tu as assez de mémoire vive(ce qui devrait être le cas, vu qu'un tableau monodimensionnel d'entier de taille 4 à 8M d'entrées occupe que 30 Mo) ça le fera.

    Par contre si tu cherches à allouer des matrices de taille 8M x8M alors sache que ça se ne fait pas (en mémoire ça prend +950 000 Go pour stocker des entiers (je parle même pas de réels double précisions...).
    Bien sur tu peux monter en cluster des milliers de DD et créer des partages pour travailler "out of core", mais je doute que tu ais que ça à faire(mais si tu le fais n'hésite pas à créer un blog, c'est toujours bon de rigoler un peu)

    Alors si tu alloues +950 000 Go dans la pile on est mal barré.

    Comment on fait alors? Stockage sparse bien sur (si tu résouds un systeme plein, tu fais pas ,et tu réfléchis à une autre manière de résoudre)
    http://people.scs.fsu.edu/~burkardt/...sparsekit.html

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Fortran90 Voir le message
    Si c'est le compilo qui rale, c'est alors probable que tu alloues tes tableaux sur la pile, c'est à dire de manière non dynamique. Il y a des options pour setter cela (exemple /STACK pour intel sous IVF)

    Passe par des ALLOCATE, et si tu as assez de mémoire vive(ce qui devrait être le cas, vu qu'un tableau monodimensionnel d'entier de taille 4 à 8M d'entrées occupe que 30 Mo) ça le fera.

    Par contre si tu cherches à allouer des matrices de taille 8M x8M alors sache que ça se ne fait pas (en mémoire ça prend +950 000 Go pour stocker des entiers (je parle même pas de réels double précisions...).
    Bien sur tu peux monter en cluster des milliers de DD et créer des partages pour travailler "out of core", mais je doute que tu ais que ça à faire(mais si tu le fais n'hésite pas à créer un blog, c'est toujours bon de rigoler un peu)

    Alors si tu alloues +950 000 Go dans la pile on est mal barré.

    Comment on fait alors? Stockage sparse bien sur (si tu résouds un systeme plein, tu fais pas ,et tu réfléchis à une autre manière de résoudre)
    http://people.scs.fsu.edu/~burkardt/...sparsekit.html
    bonjour, pour répondre à vos questions:
    premierement j'ai realise un calcul statique en integrant des equations differentielles avec un pas deltaX (je vais appeler mes resultats les tableaux A(,B,C,D,E qui dependent de z(en espace)), jusque là tout est bien, après ces memes resultats je dois les utiliser comme conditions initiales pour le calcul dynamique (pour integrer des equations diff. fonction du temps et de l'espace AT(z,t), BT(z,t),...) en respectant ce qui vient, je dois avoir un pas deltaT=deltaX/v, et après j'en déduit le nombre de pas qui est egale==Nint(Tmax/deltaT), et à cause du Tmax qui est très grand donc j'aurai à peu près 8 millions pas à faire, j'espere que j'etais tres clair et merci pour votre soutien maerci encore...

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Si tu arrives à des calculs aussi monstrueux, c'est que tu as mal formulé ton problèmes. Alors, j'essaie de deviner ce que tu aurais dû nous dire:

    Dans une application que tu n'as pas daigné nous préciser, tu as des grandeurs qui sont fonctions du temps et d'une ou plusieurs coordonnées. Ces grandeurs obéissent à des équations aux dérivées partielles et tu dois étudier le phénomène qui est décrit par ces équations. Tu veux donc les intégrer, probablement avec des conditions aux limites sur les coordonnées et des conditions initiales sur le temps.

    Commencer par étudier une suite de cas statiques, les mémoriser, puis les introduire dans le calcul dynamique est certainement la méthode la plus catastrophique qu'on puisse imaginer. Alors, si tu veux qu'on t'aide, dis-nous tout, en commençant par la nature physique de ce tu veux étudier.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut !

    Si tu arrives à des calculs aussi monstrueux, c'est que tu as mal formulé ton problèmes. Alors, j'essaie de deviner ce que tu aurais dû nous dire:

    Dans une application que tu n'as pas daigné nous préciser, tu as des grandeurs qui sont fonctions du temps et d'une ou plusieurs coordonnées. Ces grandeurs obéissent à des équations aux dérivées partielles et tu dois étudier le phénomène qui est décrit par ces équations. Tu veux donc les intégrer, probablement avec des conditions aux limites sur les coordonnées et des conditions initiales sur le temps.

    Commencer par étudier une suite de cas statiques, les mémoriser, puis les introduire dans le calcul dynamique est certainement la méthode la plus catastrophique qu'on puisse imaginer. Alors, si tu veux qu'on t'aide, dis-nous tout, en commençant par la nature physique de ce tu veux étudier.

    Jean-Marc Blanc
    bonjour, ce que je veux étudier est la forme spatiale et temporelle d'une impulsion lumineuse (provenant d'une source laser)...

  9. #9
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    OK !

    Le phénomène que tu veux étudier est décrit par une grandeur (ou plusieurs) qui dépend du temps et des coordonnées du point considéré. Cette grandeur obéit à une équation aux dérivées partielles (dérivées par rapport au temps et aux coordonnées). Ecrits-nous cette équation, sans chercher pour le moment à la résoudre.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Débutant, problème tableaux trop grands, mémoire
    Par Sabrina0021 dans le forum C
    Réponses: 2
    Dernier message: 24/07/2011, 00h26
  2. [C++] Mémoire Tableaux de grande taille
    Par tazer dans le forum Langage
    Réponses: 14
    Dernier message: 23/11/2010, 11h21
  3. Réponses: 1
    Dernier message: 06/09/2009, 19h32
  4. Réponses: 2
    Dernier message: 20/07/2009, 11h24
  5. Problème de trop grande consommation mémoire
    Par luckyvae dans le forum Général Java
    Réponses: 2
    Dernier message: 19/03/2008, 11h05

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