On 5/25/2020 8:29 AM, [email protected] wrote:
> Edwin Zimmerman wrote:
>> On Monday, May 25, 2020  [email protected] [mailto:[email protected]] 
>> wrote
>>> Edwin Zimmerman wrote:
>>> On 5/25/2020 5:56 AM, [email protected]
>>> wrote:
>>> Edwin Zimmerman wrote:
>>> Sub-interpreters are a work in progress.  The API is not anywhere near 
>>> being finalized.
>>> True parallel execution will occur only if the GIL is changed to a per 
>>> interpreter lock,
>>> and that requires some rather large changes to Python that haven't happened 
>>> yet.
>>> Why ? True parallel execution is possible with sub-interpreters !!
>>> Sub-interpretter should be run in separate thread not controlled by GIL
>>> and sub-interpretter will notify main interpreter with
>>> atomic variable that it is finished (like worker) !!
>>> We just need to provide two APIs:
>>> 1) Synchronized: run, run_string, that will wait until thread
>>> notify with setting atomic variable in true that it finished
>>> 2) Asynchronized (based on async): run_async, run_string_async,
>>> event_loop will wait on atomic variable reading it periodically
>>> All sub-interpreters and all threads are subject to the GIL, that is why it 
>>> is
>> called the GLOBAL Interpreter Lock.  There is no such thing as a "separate 
>> thread not
>> controlled by GIL."  This is not a problem with the sub-interpreter API.  It 
>> is a design
>> decision embedded very deeply through the entire CPython code.  It is not 
>> trivial to
>> change this.  However, there is work being done on this.  Search the 
>> python-dev mailing
>> list for the "PoC: Subinterpreters 4x faster than sequential execution or 
>> threads on
>> CPU-bound workaround" thread if you want to see more.
>> --Edwin
> Maybe I did not know something ... but the reason that sub-interpreter was 
> added, because of separate GIL in each sub-interpreter ?
No, there isn't a separate GIL for each sub-interpreter.  That would be a great 
feature in my mind, but it isn't there.

--Edwin
> Am I right ?
> We should not bind all interpreters with main interpreter ... only with 
> atomic or condition variable ... otherwise sub-interpreters is not needed at 
> all !!
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/INYAKJH5TQXTGB2Q23S2DMM2CJD4S5QQ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to