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 :

Sérialisation et boucle parfor


Sujet :

MATLAB

  1. #1
    Membre très actif
    Profil pro
    Doctorant
    Inscrit en
    Février 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 258
    Par défaut Sérialisation et boucle parfor
    Bonjour;

    j'utilise matlab avec une toolbox écrite en java, le souci c'est quand j'importe la toolboox et j'utilise la boucle for, mais avec la boucle parfor j'ai un probléme de "is not serializable" avec la variable intervals qui est un object java .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    for i=1:10
             maColonne = mat(i,:); 
             intervals= Calcul_interval(maColonne,options,max_dimension, max_filtration_value, num_divisions)
     
             multinterval{i}= intervals;    
           end

    Là j'ai aucun souci, mais pour le meme code avec parfor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    parfor i=1:10
             maColonne = mat(i,:); 
             intervals= Calcul_interval(maColonne,options,max_dimension, max_filtration_value, num_divisions)
             intervals
             multinterval{i}= intervals;    
           end
    j'ai une erreur de "is not serializable", j'arrive bien à calculer le résultat dans la variable intervals mais je n'arrive pas à l'enregistrer dans une matrice.


    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Par défaut
    Est-ce que Matlab indique quelle variable n'est pas Serializable?

    Sans être experte de cette toolbox, je sais que quand tu parallélises, les "i" ne vont pas être traités dans l'ordre, 1,2,3,...,9,10. Mais dans un ordre complètement aléatoire. En prenant ça en compte, je dirais que de toute manière la taille de la liste multinterval devrait être définie par avance.

    Si ça ne fonctionne pas, stocke tes données dans des variables indépendantes (genre a1,a2,...,a10) et regroupe les en dehors de la boucle parfor. J'ai souvenir d'avoir eu le même genre de soucis avec ces boucles lorsque tu cherches à remplir une matrice globale.

    Dans tous les cas, tiens-nous au courant. Ta solution pourrait être utile à d'autres

  3. #3
    Membre très actif
    Profil pro
    Doctorant
    Inscrit en
    Février 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 258
    Par défaut
    Citation Envoyé par eskapp Voir le message
    Est-ce que Matlab indique quelle variable n'est pas Serializable?

    Sans être experte de cette toolbox, je sais que quand tu parallélises, les "i" ne vont pas être traités dans l'ordre, 1,2,3,...,9,10. Mais dans un ordre complètement aléatoire. En prenant ça en compte, je dirais que de toute manière la taille de la liste multinterval devrait être définie par avance.

    Si ça ne fonctionne pas, stocke tes données dans des variables indépendantes (genre a1,a2,...,a10) et regroupe les en dehors de la boucle parfor. J'ai souvenir d'avoir eu le même genre de soucis avec ces boucles lorsque tu cherches à remplir une matrice globale.

    Dans tous les cas, tiens-nous au courant. Ta solution pourrait être utile à d'autres
    Merci pour ta réponse, j'ai essaye de déclarer une matrice multinterval=zeros(1,10) , mais y'a une erreur de conversion entre la variable objet de intervals et le type double, et je ne sais pas comment nommé les variable d'une manière séquentiel strcat('a',int2str(1)) ne fonctionne pas

Discussions similaires

  1. [parfor] Nombre de coeurs utiles ?
    Par persé dans le forum MATLAB
    Réponses: 12
    Dernier message: 31/03/2016, 11h46
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. Réponses: 5
    Dernier message: 05/02/2010, 12h27
  4. [DCT][parfor] Problème boucle
    Par Methos25 dans le forum MATLAB
    Réponses: 6
    Dernier message: 06/10/2009, 13h31
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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