By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,609 Members | 1,161 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,609 IT Pros & Developers. It's quick & easy.

How can I check nbr of cores of computer?

P: n/a
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
Jul 29 '08 #1
Share this Question
Share on Google+
9 Replies

P: n/a
gbs
On Tue, 29 Jul 2008 15:53:47 -0700, defn noob wrote:
How can I check how many cores my computer has? Is it possible to do
this in a Python-app?
Well you can try the functions in the 'platform' module, although in my
box(debian) nothing useful comes out. I don't think there's a simple &
portable way, you probably have to find one specific to your platform .
(if you are on linux, you can parse the output of 'cat /proc/cpuinfo')

Jul 30 '08 #2

P: n/a
On Jul 29, 5:53*pm, defn noob <circularf...@yahoo.sewrote:
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
If you're using Windows, get PyWin32:

win32api.GetSystemInfo
tuple = GetSystemInfo()

Retrieves information about the current system.

Win32 API References

Search for GetSystemInfo at msdn, google or google groups.

Return Value
The return value is a tuple of 9 values,
which corresponds to the Win32 SYSTEM_INFO structure.
The element names are:
dwOemId
dwPageSize
lpMinimumApplicationAddress
lpMaximumApplicationAddress
dwActiveProcessorMask
dwNumberOfProcessors
dwProcessorType
dwAllocationGranularity
(wProcessorLevel,wProcessorRevision)

>>import win32api
win32api.GetSystemInfo()
(0, 4096, 65536, 2147418111, 3L, 2, 586, 65536, (6, 3846))
|
processors

Jul 30 '08 #3

P: n/a
On Jul 29, 7:44*pm, Mensanator <mensana...@aol.comwrote:
On Jul 29, 5:53*pm, defn noob <circularf...@yahoo.sewrote:
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?

If you're using Windows, get PyWin32:

win32api.GetSystemInfo
tuple = GetSystemInfo()

Retrieves information about the current system.

Win32 API References

Search for GetSystemInfo at msdn, google or google groups.

Return Value
The return value is a tuple of 9 values,
which corresponds to the Win32 SYSTEM_INFO structure.
The element names are:
dwOemId
dwPageSize
lpMinimumApplicationAddress
lpMaximumApplicationAddress
dwActiveProcessorMask
dwNumberOfProcessors
dwProcessorType
dwAllocationGranularity
(wProcessorLevel,wProcessorRevision)
>import win32api
win32api.GetSystemInfo()

(0, 4096, 65536, 2147418111, 3L, 2, 586, 65536, (6, 3846))
* * * * * * * * * * * * * * * * *|
* * * * * * * * * * * * * * * * *processors
This: http://pyprocessing.berlios.de/ has a method that returns CPU
count.
Jul 30 '08 #4

P: n/a
defn noob wrote:
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
Why do you care? Python can't use more than one of them at
a time anyway.

John Nagle
Jul 30 '08 #5

P: n/a
On Wed, Jul 30, 2008 at 2:22 PM, John Nagle <na***@animats.comwrote:
defn noob wrote:
>>
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?

Why do you care? Python can't use more than one of them at
a time anyway.
Per Python process, but you might fork multiple processes and want to
know how many cores there are to know how many to fork, and which
cores to pin them to. (I don't know if there's a direct way in Python
to force it to a certain core, so I instead just wrote an extension to
interface with sched_setaffinity on Linux.)

On Linux, an almost assuredly non-ideal way to find out the number of
cores is to read /proc/cpuinfo and look for the highest-numbered
"processor: " line (and add 1).
Jul 30 '08 #6

P: n/a
defn noob schrieb:
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
processing (http://pyprocessing.berlios.de/)
has an utility function processing.cpuCount().

Leo
Jul 30 '08 #7

P: n/a
Single line using /proc/cpuinfo:

numprocs = [ int(line.strip()[-1]) for line in open('/proc/cpuinfo', 'r') if \
line.startswith('processor') ][-1] + 1
On Wed, Jul 30, 2008 at 2:16 PM, Dan Upton <up***@virginia.eduwrote:
>
On Wed, Jul 30, 2008 at 2:22 PM, John Nagle <na***@animats.comwrote:
defn noob wrote:
>
How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
Why do you care? Python can't use more than one of them at
a time anyway.

Per Python process, but you might fork multiple processes and want to
know how many cores there are to know how many to fork, and which
cores to pin them to. (I don't know if there's a direct way in Python
to force it to a certain core, so I instead just wrote an extension to
interface with sched_setaffinity on Linux.)

On Linux, an almost assuredly non-ideal way to find out the number of
cores is to read /proc/cpuinfo and look for the highest-numbered
"processor: " line (and add 1).
--
http://mail.python.org/mailman/listinfo/python-list
Jul 30 '08 #8

P: n/a
On Wed, 30 Jul 2008 11:22:12 -0700, John Nagle wrote:
defn noob wrote:
>How can I check how many cores my computer has? Is it possible to do
this in a Python-app?

Why do you care? Python can't use more than one of them at
a time anyway.
Why do you care why he cares? And he didn't ask how to *use* multiple
cores, but how to detect if they're there.

Maybe all he wants is to write a toy program that outputs "Hello Fred,
your computer has N cores in the CPU. Have a nice day!".

I don't expect that Python will have a built-in core-counting function.
You would probably need to ask the operating system. On Linux, you could
do this:

import os
text = os.popen('cat /proc/cpuinfo').read()
How you would do it in Windows or Mac, I have no idea.

--
Steven
Jul 31 '08 #9

P: n/a
Steven D'Aprano <st***@REMOVE-THIS-cybersource.com.auwrote:
I don't expect that Python will have a built-in core-counting function.
You would probably need to ask the operating system. On Linux, you could
do this:

import os
text = os.popen('cat /proc/cpuinfo').read()
How you would do it in Windows or Mac, I have no idea.
One way on windows:
>>import win32pdhutil
def howmanycores():
for i in range(9999):
try: win32pdhutil.GetPerformanceAttributes("Processor(% d)" % i,"%
Processor Time")
except: break
return i
>>print howmanycores()
2

--
Duncan Booth http://kupuguy.blogspot.com
Jul 31 '08 #10

This discussion thread is closed

Replies have been disabled for this discussion.