2011-03-03 2 views
0

Mon problème est
mes binaires python ne fonctionnant pas en 64 bits sur mon serveur amd64 (Opteron 8214, 4 cpu).
La machine est un dual-core, donc il y a 8 core dans taskmgr. Il ne montre pas "* 32" dans taskmgr (donc probablement déjà en mode 64bits), mais n'utilise qu'un seul core.
Et je prends le même code (projet) pour compilé et exécuté sur une machine Intel Xeon, il utilisera tout le noyau du processeur.Mes binaires de construction python ne fonctionnent pas vraiment en tant que programme 64 bits dans la machine AMD Win2003r2x64

Alors, comment résoudre ce problème? Quelqu'un a une autre idée? J'ai besoin de le faire fonctionner 64 bits pour utiliser mutli-core pour faire le travail dès que possible. C'est un analyseur de données, il a fallu la plus grande partie de l'exécution pour analyser les enregistrements de données (via regex), puis les insérer dans mssql db.
Tout commentaire est le bienvenu. J'ai travaillé sur ces nombreuses semaines.

Official & les paquets de tiers que j'ai utilisés listés ici.
python-2.7.1.amd64.msi
pywin32-214.win-amd64-py2.7.exe
pyodbc-2.1.8.win-amd64-py2.7.exe
py2exe-0.6.9 .win64-py2.7.amd64.exe
wxPython2.8-win64-unicode-2.8.11.0-py27.exe
build binaire via GUI2exe-0.5.0.zip

Sur Windows Server 2003 standard édition 64 bits SP2 J'ai jamais construit exactement le même code (projet) sur Intel Xeon CPU machine (win2003x64 bien sûr), Et il a travaillé (travail signifie pas de "* 32" tailing sur le nom du processus de taskmgr, un nd également utiliser chacun des CPU/Core).

p.s. Je ne peux pas fournir de code source complet car c'est un grand projet.

+0

Vous devrez fournir quelque chose de plus. Votre problème est-il que le processus doit utiliser plusieurs cœurs et non? Le titre dit cela, mais le corps semble le faire. –

+0

Mon programme doit être exécuté à la fin ASAP chaque fois lancé, donc utiliser plusieurs cœurs serait vraiment utile. Le programme est un analyseur de données, va analyser un énorme fichier binaire de données, par exemple, charger un fichier 4GB dans mssql, il aura fallu 40 secondes, mais la machine Xeon a pris seulement 18 secondes, et vous pouvez voir chaque noyau sont occupés sur taskmgr à l'exécution quant à elle, la machine Xeon seulement 4 cœurs et CPU freq. aussi pas vraiment beaucoup plus rapide que cette machine AMD, mais le code est exactement le même, donc je pensais que le problème parce qu'il n'utilise qu'un seul noyau. C'est comme ça. Merci. –

Répondre

0

Vous voudrez peut-être consulter les modules subprocess et threading fournis avec la bibliothèque Python standard en ce qui concerne votre problème multi-core. En ce qui concerne le problème des 64 bits, êtes-vous sûr d'avoir besoin d'espace mémoire supplémentaire? Je n'ai jamais eu de problème avec 32bit python.

Questions connexes