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

Java Discussion :

Parallélisme des données


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut Parallélisme des données
    salut,
    dans mon application je fais le même traitement d'une façon itérative, à chaque itération sur une ligne de matrice.
    ce que je veux c'est mettre en oeuvre du threading sur mes données, de telle façon que je puisse faire ce même traitement en des threads qui agissent sur des lignes et s’exécutent parallèlement chacun sur un processeur Différent.

    qui peux m'aider SVP?

    merci d'avance.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tout dépend du nombre de lignes concernée, mais la solution basique consisterait à créer un thread par ligne. Pour cela, étendre la classe Thread, et dans la méthode run traiter la ligne. Ensuite appeler le start sur tous les threads créés.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tout dépend du nombre de lignes concernée, mais la solution basique consisterait à créer un thread par ligne. Pour cela, étendre la classe Thread, et dans la méthode run traiter la ligne. Ensuite appeler le start sur tous les threads créés.
    je ne pense pas que ca sera une bonne solution, vu que j'ai un grand nombre de ligne c preceque 6000. le traitement de chaque ligne prend preceque 10sec.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par hdioud.ferdaous Voir le message
    je ne pense pas que ca sera une bonne solution, vu que j'ai un grand nombre de ligne c preceque 6000. le traitement de chaque ligne prend preceque 10sec.
    600 lignes par thread, 10 threads. Le principe reste le même

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    600 lignes par thread, 10 threads. Le principe reste le même
    oui c vrai mais je ne veux pas faire l'appel de mes Thread manuellement. j'opte pour l'utilisation du framework qui fais l'affaire

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut le code...
    bon je travailles en JEE avce des EJBs.
    voici la classe qui va faire le multi-threading:

    public class Transform extends RecursiveAction{

    @EJB(name="CreateDecisionMatrix")
    private CreateDecisionMatrix createDecisionMatrix;
    private int min,max;

    public Transform(int min, int max) {
    this.min = min;
    this.max = max;
    }

    @Override
    protected void compute() {
    if(max-min+1<=10)
    process(min,max);
    else
    {
    int milieu;
    milieu=(max-min)/2;
    Transform T1=new Transform(min,milieu);
    Transform T2=new Transform(milieu+1,max);
    T1.fork();
    T2.fork();
    }
    }

    public void process(int min,int max)
    {
    for(int i=min;i<=max;i++)
    createDecisionMatrix.transform2(i);

    }
    le traitement je le réalise dans une servlet comme suit:

    ForkJoinPool pool = new ForkJoinPool(groupSize);
    Transform t = new Transform(3433,3450);
    pool.invoke(t);
    out.println("traitement fini");

    ça marche pas!!! sachant qu'on m'affiche "traitement fini" sans avoir aucun traitement ou changement au niveau de mes tables

Discussions similaires

  1. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 13h44
  2. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  3. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Réponses: 2
    Dernier message: 18/12/2002, 10h30

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