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

C# Discussion :

Contrôle la fin d'une simulation ?


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut Contrôle la fin d'une simulation ?
    Bonjour

    Comment peut on lancer 100 processus par exemple sur un CPU de 12 cœurs ?
    Je souhaite les lancer de la façon suivante tout d'abord on laisse un cœur pour le système et on lance les 11 premiers simus sur 11 cœurs différents et après la fin d'une simulation il y a une nouvelle simulation qui sera lancée sur le cœur libre.

    Merci par avance
    Cordialement

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    Bonjour

    On peut contrôler la fin d'une simulation par Comment peut on utiliser une variable partagé entre plusieurs Thread ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
         static void work()
         {
             ProcessStartInfo st;
             Process p=null;         
     
             while (i_process < tab_process.Length)
             {
     
                 if (i_process < tab_process.Length)
                 {
                     lock (mylock)
     
                         i_process++;
     
                         Console.WriteLine("la valeur du i={0} et  du tab count = {1} ", i_process, tab_process.Length);
                         if (i_process < tab_process.Length)
                         {
                             st = new ProcessStartInfo(tab_process[i_process] + "\\myprog.exe");
                             st.WorkingDirectory = tab_process[i_process];
                             Console.WriteLine(tab_process[i_process]);
                             p = Process.Start(st);
     
     
                         }
                         p.WaitForExit();
                 }
     
             }
     
         }
    Cette méthode est lancé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tab_thread[i] = new Thread(new ThreadStart(work));
    avec i est le nombre du 0--> nombre de processors
    Ce code ne donne pas le même resultat toujours.
    Est ce que vous avez des idées pourquoi ?
    ou se trouve l'erreur ?

    Merci
    Cordialement

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il faudrait déjà savoir si c'est des processus ou des threads que tu veux démarrer
    un processus c'est un exe, un exe peut héberger plusieurs threads
    si ta simu est en c# le mieux est de faire plusieurs threads, ca sera plus simple pour partager des données

    entre processus pour partager des infos il y a plein de méthodes, les plus simples sont une base de données (ou un fichier dans le pire des cas), ou les canaux nommés, ou autre ...

    pour démarrer plusieurs threads avec gestion du nombre de cores il y a le threadpool (ou les tasks plus récémment)
    ca s'occupe de démarrer un nouveau thread quand un se termine
    si tes threads ont un peu d'attente, démarrer plus de threads que de coeurs peut gagner du temps

    pour faire la même chose avec des processus c'est en effet à toi de t'abonner à l'event qui dit qu'un process est fini pour en lancer un autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    En fait , je veux démarrer des "exe" programmé en C sur les différentes cœurs du CPU
    Le problème c'est au niveau des ressources partagés dans le code ci dessus , et la question comment peut-on le résoudre ?

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    D'autre part ; combien de mutex faut-il utiliser pour une variable partagé entre n cœurs du CPU ?
    Comment peut on implémenter l'algorithme ?

Discussions similaires

  1. attendre la fin d'execution d'une simulation
    Par ABN84 dans le forum Simulink
    Réponses: 1
    Dernier message: 26/11/2009, 08h18
  2. Réponses: 4
    Dernier message: 16/06/2009, 08h25
  3. Réponses: 3
    Dernier message: 05/05/2009, 09h13
  4. Simuler un "Contrôle F" dans une page HTML
    Par yuri2008 dans le forum ASP
    Réponses: 2
    Dernier message: 13/05/2008, 13h50
  5. Simuler un "Contrôle F" dans une page HTML
    Par yuri2008 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/05/2008, 23h21

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