lenteur calcul parallèle MPI
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

lenteur calcul parallèle MPI



  1. #1
    utilisateur38

    lenteur calcul parallèle MPI


    ------

    bonjour ;j'ai exécuté un code parallèle que j'ai programmé avec la librairie MPI

    j'ai remarqué que le temps de calcul a augmenté au lieu de diminuer par rapport à 1 seul processeur.

    pour comprendre le problème ;j'ai enlevé toutes les communications et les synchronisations (et Petsci aussi ,...) et Donc chaque processus va s'exécuter indépendamment de l'autre

    et la surprise est que le temps de calcul est toujours + grand sur 2 processeurs

    ça ne vient pas de l'initialisation ou la finalisation de MPI. c'est le coeur de calcul qui prend + de temps quand on travaille sur deux processeurs

    On dirait que les deux processus s'exécuteront chacun son tour sur un seul processeur !!!

    j'ai : Intel(R) Core(TM) i3 CPU -> double coeur (PC portable personnel )
    commande d'exécution : mpirun -np 2 ./programme
    librairie utilisée: OpenMPI

    le code a cette forme :

    --> initialisation

    DO time=1, n_time_step
    time = time + dt
    call calcul()
    ! call communication()
    ENDDO

    ---> fin MPI,

    . c'est la fonction calcul() qui prends du temps ( qui a comme outputs des grandeurs physiques calculés par des schémas de différence finis )

    entre 1 et 2 processus la fonction calcul() est la même. et j'ai mis l'appel de la fonction communication() en commentaire pour tester

    puis je savoir si mon programme utilise vraiment deux processeurs ? ( c'est une piste seulement ;je ne doute pas que ça vient de ça ).j'ai l'impression que le problème n'est pas numérique. peut être qu'il faut mettre une option à mpirun (ou mpiexec)

    -----

  2. #2
    bzh_nicolas

    Re : lenteur calcul parallèle MPI

    Pour savoir si ton programme utilise bien les 2 processeurs, regarde dans le gestionnaire des taches, tu auras tout de suite la réponse.
    Sinon, ce qui peux se passer (suivant ta procédure calcul), c'est que l'un des processus doit attendre que l'autre est fait certains calculs pour pouvoir continuer son exécution, ce qui explique le rallongement du temps d'exécution.

  3. #3
    utilisateur38

    Re : lenteur calcul parallèle MPI

    Bonjour .

    Merci ; Je ne vois pas dans le gestionnaire de tâches quel processeur exécute le programme ;j'ai mis en pièces jointes une capture d'écran du moniteur système que j'ai sous Ubuntu .

    oui je suis d'accord avec toi pour la dépendance mais j'ai dit dans mon message d'avant que j'ai enlevé toute dépendance (communication ,... )

    donc il y a aucune dépendance ;normalement chaque processus va s'exécute sans attendre l'autre
    Images attachées Images attachées  

  4. #4
    bzh_nicolas

    Re : lenteur calcul parallèle MPI

    Si tu as enlevé toutes communications, tu as peut-être une saturation de ta ram, ce qui oblige ton système à utiliser la mémoire virtuelle (beaucoup plus lente).
    Peut-être lis-tu les données pour tes deux processus à partir d'un même fichier (dans ce cas les accès au fichier ne peuvent se faire simultanément d'où le rallongement du temps d'exécution) ?

  5. A voir en vidéo sur Futura
  6. #5
    utilisateur38

    Re : lenteur calcul parallèle MPI

    Non dans la boucle de calcul je n'ai pas de lecture et écriture dans un fichier.

    j'ai une lecture de fichier dans l'initialisation seulement ( ce qui n'est pas intéressant )

    voilà une capture d'écran des deux processus concernés (ils s'appellent programme ) je n'ai pas alors de saturation de mémoire je crois ;

    tu sais comment savoir quel processeur exécute un programme ? tu m'a dit qu'on peut savoir ça à l'aide de gestionnaire de tâches ;pas trouvé

    Merci encore
    Images attachées Images attachées  

  7. #6
    utilisateur38

    Re : lenteur calcul parallèle MPI

    ci dessous les caractéristiques de mon CPU

    -------------> cat /proc/cpuinfo
    processor : 0
    vendor_id : GenuineIntel
    cpu family : 6
    model : 37
    model name : Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
    stepping : 2
    cpu MHz : 933.000
    cache size : 3072 KB
    physical id : 0
    siblings : 4
    core id : 0
    cpu cores : 2
    apicid : 0
    initial apicid : 0
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 11
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
    bogomips : 4256.01
    clflush size : 64
    cache_alignment : 64
    address sizes : 36 bits physical, 48 bits virtual
    power management:

    processor : 1
    vendor_id : GenuineIntel
    cpu family : 6
    model : 37
    model name : Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
    stepping : 2
    cpu MHz : 933.000
    cache size : 3072 KB
    physical id : 0
    siblings : 4
    core id : 2
    cpu cores : 2
    apicid : 4
    initial apicid : 4
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 11
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
    bogomips : 4256.25
    clflush size : 64
    cache_alignment : 64
    address sizes : 36 bits physical, 48 bits virtual
    power management:

    processor : 2
    vendor_id : GenuineIntel
    cpu family : 6
    model : 37
    model name : Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
    stepping : 2
    cpu MHz : 2133.000
    cache size : 3072 KB
    physical id : 0
    siblings : 4
    core id : 0
    cpu cores : 2
    apicid : 1
    initial apicid : 1
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 11
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
    bogomips : 4255.99
    clflush size : 64
    cache_alignment : 64
    address sizes : 36 bits physical, 48 bits virtual
    power management:

    processor : 3
    vendor_id : GenuineIntel
    cpu family : 6
    model : 37
    model name : Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
    stepping : 2
    cpu MHz : 933.000
    cache size : 3072 KB
    physical id : 0
    siblings : 4
    core id : 2
    cpu cores : 2
    apicid : 5
    initial apicid : 5
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 11
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
    bogomips : 4256.04
    clflush size : 64
    cache_alignment : 64
    address sizes : 36 bits physical, 48 bits virtual
    power management:

  8. #7
    bzh_nicolas

    Re : lenteur calcul parallèle MPI

    On voit sur ta 2ème capture d'écran que les 2 processus tournent, chacun consomme 25% de processeurs et 2,1 Mo de mémoires. Donc tu as bien deux tes 2 processus et à prioris pas de saturation mémoire.
    Si tu vas sur l'onglet ressources de ta 1ère capture d'écran, tu devrais avoir le diagramme d'utilisation de chacun de tes processeurs. Si les 2 augmentent au lancement de ton programme, c'est qu'il s'exécute bien sur les 2 processeurs ; s'il n'y en a qu'un qui augmente, c'est que les deux processus se lancent sur le même processeur.

Discussions similaires

  1. Calcul de l'impédance d'un circuit LC parallèle
    Par Jon83 dans le forum Physique
    Réponses: 50
    Dernier message: 24/01/2013, 08h17
  2. Lenteur PC
    Par invite9931b0cf dans le forum Internet - Réseau - Sécurité générale
    Réponses: 23
    Dernier message: 26/05/2009, 14h22
  3. lenteur de pc
    Par renaudr dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 4
    Dernier message: 03/01/2009, 19h04
  4. Calcul parallèle appliqué au climat
    Par inviteb1bc40d0 dans le forum Changement climatique, a-t-on raison de s'inquiéter ?
    Réponses: 1
    Dernier message: 11/10/2005, 11h42
Découvrez nos comparatifs produits sur l'informatique et les technologies.