How can I check nbr of cores of computer?

D

defn noob

How can I check how many cores my computer has?
Is it possible to do this in a Python-app?
 
G

gbs

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')
 
M

Mensanator

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)

(0, 4096, 65536, 2147418111, 3L, 2, 586, 65536, (6, 3846))
|
processors
 
A

alex.gaynor

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)


(0, 4096, 65536, 2147418111, 3L, 2, 586, 65536, (6, 3846))
                                 |
                                 processors

This: http://pyprocessing.berlios.de/ has a method that returns CPU
count.
 
D

Dan Upton

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).
 
J

John Nagle

defn said:
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
 
D

Daniel da Silva

Single line using /proc/cpuinfo:

numprocs = [ int(line.strip()[-1]) for line in open('/proc/cpuinfo', 'r') if \
line.startswith('processor') ][-1] + 1
 
S

Steven D'Aprano

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,070
Latest member
BiogenixGummies

Latest Threads

Top