Bill2's Process Manager : le forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Bill2's Process Manager : le forum

Bill2's Process Manager, Votre gestionnaire de processus automatique
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -20%
(Adhérents Fnac) Enceinte Bluetooth Marshall ...
Voir le deal
199.99 €

 

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

Aller en bas 
2 participants
AuteurMessage
Crash_MPI




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

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMer 25 Juil - 15: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.

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

Ç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.

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

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û - 15:21, édité 1 fois
Revenir en haut Aller en bas
Bill2
Administrateur
Administrateur
Bill2


Nombre de messages : 436
Age : 45
Localisation : Dijon
Date d'inscription : 21/11/2006

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMer 25 Juil - 19: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.


Revenir en haut Aller en bas
http://www.bill2-software.com/processmanager
Crash_MPI




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

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMer 3 Avr - 18:03

Merci pour le correctif 3.4.3.4!
Revenir en haut Aller en bas
Bill2
Administrateur
Administrateur
Bill2


Nombre de messages : 436
Age : 45
Localisation : Dijon
Date d'inscription : 21/11/2006

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMer 3 Avr - 19: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 ...)
Revenir en haut Aller en bas
http://www.bill2-software.com/processmanager
Crash_MPI




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

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMar 23 Avr - 15:05

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

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

Option "répartir chaque instance sur un CPU différent" Captur11
Revenir en haut Aller en bas
Bill2
Administrateur
Administrateur
Bill2


Nombre de messages : 436
Age : 45
Localisation : Dijon
Date d'inscription : 21/11/2006

Option "répartir chaque instance sur un CPU différent" Empty
MessageSujet: Re: Option "répartir chaque instance sur un CPU différent"   Option "répartir chaque instance sur un CPU différent" Icon_minitimeMar 23 Avr - 20:22

ah, c'est assez original, effectivement.

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

Merci pour ce retour.
Revenir en haut Aller en bas
http://www.bill2-software.com/processmanager
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
Option "répartir chaque instance sur un CPU différent"
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» "Répartir chaque instance sur un CPU différent" reste grisé

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