Bill2's Process Manager : le forum

Bill2's Process Manager, Votre gestionnaire de processus automatique
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  

Partagez | 
 

 Option "répartir chaque instance sur un CPU différent"

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Crash_MPI



Nombre de messages : 3
Date d'inscription : 25/07/2012

MessageSujet: Option "répartir chaque instance sur un CPU différent"   Mer 25 Juil - 13:55

Bonjour,

Bravo pour ce logiciel pratique et efficace!
Mais tout d'abord une petite présentation:
Je travaille dans le domaine du calcul scientifique, spécialisé dans les simulations de crash test.
J'utilise des stations de travail Windows Seven 64 avec 12 ou 16 coeurs (bi proc X5680 et bi proc E5-2687W). Hyperthreading est activé, donc Windows montre 24 ou 32 coeurs. Le logiciel de calcul est fortement parallèlisé, et les calculs sont lancés en MPI (c'est à dire 1 calcul lancé sur 12 coeurs = 12 process)
Sans BPM, si je lance un calcul sur 12, Windows réparti les 12 process sur les 24 qu'il voit de façon aléatoire, ce qui n'est pas efficace. J'utilise donc la fonction magique "répartir chaque instance sur un CPU différent" de BPM v3.4.3.3.



Ça marche très bien sur la machine 12 coeurs, mais pas sur celle de 16: dès que je coche tous les CPU avec l'option ci-dessus, BPM plante (voir message). Le contournement que j'ai trouvé consiste à cocher 31 cpu et non 32.



Rapport de crash:


[18/07/2012 14:15:47] CRASH FILE - Bill2's Process Manager v3.4.3.3

[18/07/2012 14:15:47.347]

######################################################################

SVP, merci de poster ce rapport de crash sur le forum ()
ou de l'envoyer à l'adresse suivante : ()
Pensez à indiquer un maximum d'infos sur les conditions du crash (manip en cours, etc.)

######################################################################


[18/07/2012 14:15:47.347] ========== Environnement informations
[18/07/2012 14:15:47.347] OS: Microsoft Windows NT 6.1.7601 Service Pack 1
[18/07/2012 14:15:47.347] Number of CPU: 32
[18/07/2012 14:15:49.591] CPU Model: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
[18/07/2012 14:15:49.591] PId:3988
[18/07/2012 14:15:49.591] ==========


[18/07/2012 14:15:49.591] Unhandled Error : La valeur était trop grande ou trop petite pour un Int32.

[18/07/2012 14:15:49.606] Method : System.OverflowException: La valeur était trop grande ou trop petite pour un Int32.
à System.Convert.ToInt32(Double value)
à Process_Manager.Lancement.GetTabCycleFromAffinite(String NomExe, Int32 Affinite, Boolean AffiniteAuto)
à Process_Manager.Lancement.ApplyRules(Boolean ForceApplication, List`1 RulesToApply)
à Process_Manager.PM_Rules.LoadRulesToCheckFromXML(String IdNodeToShow)
à Process_Manager.Module_GestionXML_GroupRules.UpdateRuleXML(PM_Rule ZeRule, String IdGroup, Boolean IsRuleByDefault)
à Process_Manager.FenetrePrincipale.Template_click(Object Sender, EventArgs e)
à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
à System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ToolStrip.WndProc(Message& m)
à System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

[18/07/2012 14:15:49.606] Method Caller : ToInt32

[18/07/2012 14:15:55.312]
[18/07/2012 14:15:55.312] ENDING CRASH FILE - Bill2's Process Manager v3.4.3.3
[18/07/2012 14:15:57.898]

######################################################################

SVP, merci de poster ce rapport de crash sur le forum ()
ou de l'envoyer à l'adresse suivante : ()
Pensez à indiquer un maximum d'infos sur les conditions du crash (manip en cours, etc.)

######################################################################


[18/07/2012 14:15:57.898] ========== Environnement informations
[18/07/2012 14:15:57.898] OS: Microsoft Windows NT 6.1.7601 Service Pack 1
[18/07/2012 14:15:57.898] Number of CPU: 32
[18/07/2012 14:16:00.127] CPU Model: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
[18/07/2012 14:16:00.127] PId:4692
[18/07/2012 14:16:00.127] ==========


[18/07/2012 14:16:00.127] Unhandled Error : La valeur était trop grande ou trop petite pour un Int32.

[18/07/2012 14:16:00.127] Method : System.OverflowException: La valeur était trop grande ou trop petite pour un Int32.
à System.Convert.ToInt32(Double value)
à Process_Manager.Lancement.GetTabCycleFromAffinite(String NomExe, Int32 Affinite, Boolean AffiniteAuto)
à Process_Manager.Lancement.ApplyRules(Boolean ForceApplication, List`1 RulesToApply)
à Process_Manager.PM_Processes.UpdateCPUUsage()
à Process_Manager.Lancement.TimerGetProcessesInfos_Tick(Object sender, EventArgs e)
à System.Windows.Forms.Timer.OnTick(EventArgs e)
à System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

[18/07/2012 14:16:00.127] Method Caller : ToInt32

[18/07/2012 14:16:07.842]
[18/07/2012 14:16:07.842] ENDING CRASH FILE - Bill2's Process Manager v3.4.3.3
[18/07/2012 14:16:10.398]

######################################################################

SVP, merci de poster ce rapport de crash sur le forum ()
ou de l'envoyer à l'adresse suivante : ()
Pensez à indiquer un maximum d'infos sur les conditions du crash (manip en cours, etc.)

######################################################################


[18/07/2012 14:16:10.398] ========== Environnement informations
[18/07/2012 14:16:10.398] OS: Microsoft Windows NT 6.1.7601 Service Pack 1
[18/07/2012 14:16:10.414] Number of CPU: 32
[18/07/2012 14:16:12.611] CPU Model: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
[18/07/2012 14:16:12.611] PId:4972
[18/07/2012 14:16:12.611] ==========


[18/07/2012 14:16:12.611] Unhandled Error : La valeur était trop grande ou trop petite pour un Int32.

[18/07/2012 14:16:12.611] Method : System.OverflowException: La valeur était trop grande ou trop petite pour un Int32.
à System.Convert.ToInt32(Double value)
à Process_Manager.Lancement.GetTabCycleFromAffinite(String NomExe, Int32 Affinite, Boolean AffiniteAuto)
à Process_Manager.Lancement.ApplyRules(Boolean ForceApplication, List`1 RulesToApply)
à Process_Manager.PM_Processes.UpdateCPUUsage()
à Process_Manager.Lancement.TimerGetProcessesInfos_Tick(Object sender, EventArgs e)
à System.Windows.Forms.Timer.OnTick(EventArgs e)
à System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

[18/07/2012 14:16:12.611] Method Caller : ToInt32

[18/07/2012 14:16:16.56]
[18/07/2012 14:16:16.56] ENDING CRASH FILE - Bill2's Process Manager v3.4.3.3
[18/07/2012 14:16:56.745]

######################################################################

SVP, merci de poster ce rapport de crash sur le forum ()
ou de l'envoyer à l'adresse suivante : ()
Pensez à indiquer un maximum d'infos sur les conditions du crash (manip en cours, etc.)

######################################################################


[18/07/2012 14:16:56.745] ========== Environnement informations
[18/07/2012 14:16:56.745] OS: Microsoft Windows NT 6.1.7601 Service Pack 1
[18/07/2012 14:16:56.745] Number of CPU: 32
[18/07/2012 14:16:58.958] CPU Model: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
[18/07/2012 14:16:58.958] PId:4796
[18/07/2012 14:16:58.958] ==========


[18/07/2012 14:16:58.958] Unhandled Error : La valeur était trop grande ou trop petite pour un Int32.

[18/07/2012 14:16:58.958] Method : System.OverflowException: La valeur était trop grande ou trop petite pour un Int32.
à System.Convert.ToInt32(Double value)
à Process_Manager.Lancement.GetTabCycleFromAffinite(String NomExe, Int32 Affinite, Boolean AffiniteAuto)
à Process_Manager.Lancement.ApplyRules(Boolean ForceApplication, List`1 RulesToApply)
à Process_Manager.PM_Processes.UpdateCPUUsage()
à Process_Manager.Lancement.TimerGetProcessesInfos_Tick(Object sender, EventArgs e)
à System.Windows.Forms.Timer.OnTick(EventArgs e)
à System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

[18/07/2012 14:16:58.958] Method Caller : ToInt32

[18/07/2012 14:17:14.388]
[18/07/2012 14:17:14.388] ENDING CRASH FILE - Bill2's Process Manager v3.4.3.3
[18/07/2012 14:23:13.162]

######################################################################

SVP, merci de poster ce rapport de crash sur le forum ()
ou de l'envoyer à l'adresse suivante : ()
Pensez à indiquer un maximum d'infos sur les conditions du crash (manip en cours, etc.)

######################################################################


[18/07/2012 14:23:13.162] ========== Environnement informations
[18/07/2012 14:23:13.162] OS: Microsoft Windows NT 6.1.7601 Service Pack 1
[18/07/2012 14:23:13.162] Number of CPU: 32
[18/07/2012 14:23:15.377] CPU Model: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
[18/07/2012 14:23:15.377] PId:4752
[18/07/2012 14:23:15.377] ==========


[18/07/2012 14:23:15.377] Unhandled Error : La valeur était trop grande ou trop petite pour un Int32.

[18/07/2012 14:23:15.377] Method : System.OverflowException: La valeur était trop grande ou trop petite pour un Int32.
à System.Convert.ToInt32(Double value)
à Process_Manager.Lancement.GetTabCycleFromAffinite(String NomExe, Int32 Affinite, Boolean AffiniteAuto)
à Process_Manager.Lancement.ApplyRules(Boolean ForceApplication, List`1 RulesToApply)
à Process_Manager.PM_Rules.LoadRulesToCheckFromXML(String IdNodeToShow)
à Process_Manager.Module_GestionXML_GroupRules.UpdateRuleXML(PM_Rule ZeRule, String IdGroup, Boolean IsRuleByDefault)
à Process_Manager.FenetreRegle.btOK_Click(Object sender, EventArgs e)
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

[18/07/2012 14:23:15.377] Method Caller : ToInt32



De façon aléatoire (sur n'importe quelle machine), j'ai aussi le problème suivant: Au lancement du calcul, message d'erreur dans ma fenêtre DOS disant que Windows n'a pas put alloué les processeurs. Dans ce cas il me faut réessayer et ça marche (sauf si j'ai programmé un départ différé...)


Dernière édition par Crash_MPI le Mer 29 Aoû - 13:21, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Bill2
Administrateur
Administrateur
avatar

Nombre de messages : 418
Age : 39
Localisation : Dijon
Date d'inscription : 21/11/2006

MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Mer 25 Juil - 17:19

Bonjour,

Merci à vous d'avoir fait remonter ce bug.

Il faut dire que j'ai codé la routine de répartition il y a longtemps, et que je n'ai jamais eu à dispo une machine avec 32 CPU (16 + 16HT) sous la main pour tester.

Avec le log, le problème est vite identifié, et la correction me semble très simple à mettre en oeuvre.
Ce qui est étonnant, c'est que ça plante avec 32 coeurs, mais pas sur 31 ... vu l'erreur générée, ça devrait planter bien avant 31 CPU ...

Bon, le seul soucis, c'est que même si j'avais prévu et mis en chantier une version "4.0", je n'ai malheureusement plus le temps de bosser sur ce projet, qui je le rappelle est effectué sur mon temps perso.

Je vais donc essayer de me pencher sur ce bug, et voir si je trouve le temps de sortir une nouvelle version (j'ai eu d'autres petits bugs de remontés ... ça pourrait faire un bon "patch"), mais je ne vous promets rien. Je suis désolé.

Concernant le 2e problème, j'ai un peu de mal à voir ce qu'il se passe. Si c'est windows qui lance une fenêtre DOS, je ne vois pas trop ce que je peux faire.
Ou alors le programme de calcul que vous utilisé tente de s'approprier des CPU, à un moment ou BPM tente, lui, de restreindre les accès ... Je ne vois pas de solution à ce genre de cas.
Si vous arrivez à passer ce problème en redémarrant votre programme, je n'ai rien d'autre à proposer.

Quoi qu'il en soit, si j'arrive à bosser sur ce bug et que je publie une nouvelle version, je vous tiendrais au courant (et BPM aussi, si vous avez activé la fonction de recherche de mise à jour ...)

Bonne soirée.



_________________
Rubik's Addicted !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.bill2-software.com/processmanager
Crash_MPI



Nombre de messages : 3
Date d'inscription : 25/07/2012

MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Mer 3 Avr - 16:03

Merci pour le correctif 3.4.3.4!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Bill2
Administrateur
Administrateur
avatar

Nombre de messages : 418
Age : 39
Localisation : Dijon
Date d'inscription : 21/11/2006

MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Mer 3 Avr - 17:59

De rien Smile

Vous me confirmez que le bug est bien corrigé ? (J'avais pas de machine à 32 CPU sous la main pour tester ...)

_________________
Rubik's Addicted !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.bill2-software.com/processmanager
Crash_MPI



Nombre de messages : 3
Date d'inscription : 25/07/2012

MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Mar 23 Avr - 13:05

En fait, ça ne plante plus, mais le 16ième process n'a pas accès au HT16...



Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Bill2
Administrateur
Administrateur
avatar

Nombre de messages : 418
Age : 39
Localisation : Dijon
Date d'inscription : 21/11/2006

MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Mar 23 Avr - 18:22

ah, c'est assez original, effectivement.

Il faudra que je tente de regarder ça ...

Merci pour ce retour.

_________________
Rubik's Addicted !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.bill2-software.com/processmanager
Contenu sponsorisé




MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   

Revenir en haut Aller en bas
 
Option "répartir chaque instance sur un CPU différent"
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Une histoire commune, un destin différent, un avenir commun
» Quelque chose de différent : "Mon Amour Chéri"
» Théodore C. Deschanel ~ Pour être irremplaçable, il faut être différent.
» différent jeux
» Les différents types de métal

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Bill2's Process Manager : le forum :: Bugs-
Sauter vers: