En Mon, 09 Jun 2008 15:26:09 -0300, Pau Freixes <[EMAIL PROTECTED]> escribió:

Surly this is a recurring theme into python dev world, but I need your help
for confirm if the follow image it's really

http://www.milnou.net/~pfreixes/img/cpu_usage_gil_problem.png<http://www.milnou.net/%7Epfreixes/img/cpu_usage_gil_problem.png>

I'm writing a brief article for my blog and I need to make sure about the
current problem with GIL and multi core environments, this picture try to
explain with images the problem for scheduling multiple threads running
python code of same interpreter into multiple cpu cores. Can anyone confirm
to me this picture ?

Yes, if both threads are executing pure Python code, they can't run simultaneously.

Note that:
- C extensions (usually) release the GIL when they don't call into any Python code
- The interpreter also releases the GIL before any I/O operation
If the process is I/O bound then the GIL is not so important, and if it's CPU bound you may benefit from reimplementing the critical parts in C (by example, using NumPy for a number-crunching process). Another alternative is to use multiple processes with some form of IPC instead of multiple threads. These are the usual arguments against "fear of GIL". You should consider your specific application to see if the GIL is actually a problem in your case or not.

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to