Re: 2.6, 3.0, and truly independent intepreters

2008-11-10 Thread Andy O'Meara
On Nov 5, 5:09 pm, Paul Boddie [EMAIL PROTECTED] wrote: Anyway, to keep things constructive, I should ask (again) whether you looked at tinypy [1] and whether that might possibly satisfy your embedded requirements. Actually, I'm starting to get into the tinypy codebase and have been talking

Re: 2.6, 3.0, and truly independent intepreters

2008-11-10 Thread Andy O'Meara
On Nov 6, 8:25 am, sturlamolden [EMAIL PROTECTED] wrote: On Nov 5, 8:44 pm, Andy O'Meara [EMAIL PROTECTED] wrote: In a few earlier posts, I went into details what's meant there: http://groups.google.com/group/comp.lang.python/browse_thread/thread/... All this says is: 1. The cost of

Re: 2.6, 3.0, and truly independent intepreters

2008-11-10 Thread Andy O'Meara
On Nov 6, 9:02 pm, sturlamolden [EMAIL PROTECTED] wrote: On Nov 7, 12:22 am, Walter Overby [EMAIL PROTECTED] wrote: I read Andy to stipulate that the pipe needs to transmit hundreds of megs of data and/or thousands of data structure instances.  I doubt he'd be happy with memcpy either.  My

Re: 2.6, 3.0, and truly independent intepreters

2008-11-07 Thread Paul Boddie
On 7 Nov, 03:02, sturlamolden [EMAIL PROTECTED] wrote: On Nov 7, 12:22 am, Walter Overby [EMAIL PROTECTED] wrote: I read Andy to stipulate that the pipe needs to transmit hundreds of megs of data and/or thousands of data structure instances.  I doubt he'd be happy with memcpy either.  My

Re: 2.6, 3.0, and truly independent intepreters

2008-11-07 Thread sturlamolden
On Nov 7, 11:46 am, Paul Boddie [EMAIL PROTECTED] wrote: As far as I can tell, he wants to keep the data in one place and just pass a pointer around between execution contexts. This would be the easiest solution if Python were designed to do this from the beginning. I have previously stated

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread sturlamolden
On Nov 4, 6:51 pm, Paul Boddie [EMAIL PROTECTED] wrote: The language features look a lot like what others have already been offering for a while: keywords for parallelised constructs (clik_for) which are employed by solutions for various languages (C# and various C ++ libraries spring

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread sturlamolden
On Nov 5, 8:44 pm, Andy O'Meara [EMAIL PROTECTED] wrote: In a few earlier posts, I went into details what's meant there:

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread Walter Overby
Hi, I've been following this discussion, and although I'm not nearly the Python expert that others on this thread are, I think I understand Andy's point of view. His premises seem to include at least: 1. His Python code does not control the creation of the threads. That is done at the app

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread sturlamolden
On Nov 6, 6:05 pm, Walter Overby [EMAIL PROTECTED] wrote: I don't understand how this would help. If these large data structures reside only in one remote process, then the overhead of proxying the data into another process for manipulation requires too much IPC, or at least so Andy

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread Walter Overby
On Nov 6, 2:03 pm, sturlamolden [EMAIL PROTECTED] wrote: On Nov 6, 6:05 pm, Walter Overby [EMAIL PROTECTED] wrote: I don't understand how this would help.  If these large data structures reside only in one remote process, then the overhead of proxying the data into another process for

Re: 2.6, 3.0, and truly independent intepreters

2008-11-06 Thread sturlamolden
On Nov 7, 12:22 am, Walter Overby [EMAIL PROTECTED] wrote: I read Andy to stipulate that the pipe needs to transmit hundreds of megs of data and/or thousands of data structure instances.  I doubt he'd be happy with memcpy either.  My instinct is that contention for a lock could be the quicker

Re: 2.6, 3.0, and truly independent intepreters

2008-11-05 Thread Andy O'Meara
On Nov 4, 10:59 am, sturlamolden [EMAIL PROTECTED] wrote: On Nov 4, 4:27 pm, Andy O'Meara [EMAIL PROTECTED] wrote: People in the scientific and academic communities have to understand that the dynamics in commercial software are can be *very* different needs and have to show some

Re: 2.6, 3.0, and truly independent intepreters

2008-11-05 Thread Paul Boddie
On 5 Nov, 20:44, Andy O'Meara [EMAIL PROTECTED] wrote: On Nov 4, 10:59 am, sturlamolden [EMAIL PROTECTED] wrote: For Christ sake, researchers write global climate models using MPI. And you think a toy problem like 'real-time video processing' is a show stopper for using multiple

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread sturlamolden
On Nov 3, 7:11 pm, Andy O'Meara [EMAIL PROTECTED] wrote: My hope was that the increasing interest and value associated with flexible, multi-core/free-thread support is at a point where there's a critical mass of CPython developer interest (as indicated by various serious projects specifically

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread sturlamolden
If you are serious about multicore programming, take a look at: http://www.cilk.com/ Now if we could make Python do something like that, people would perhaps start to think about writing Python programs for more than one processor. -- http://mail.python.org/mailman/listinfo/python-list

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread Andy O'Meara
On Nov 4, 9:38 am, sturlamolden [EMAIL PROTECTED] wrote: First let me say that there are several solutions to the multicore problem. Multiple independendent interpreters embedded in a process is one possibility, but not the only.'' No one is disagrees there. However, motivation of this

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread sturlamolden
On Nov 4, 4:27 pm, Andy O'Meara [EMAIL PROTECTED] wrote: People in the scientific and academic communities have to understand that the dynamics in commercial software are can be *very* different needs and have to show some open-mindedness there. You are beware that BDFL's employer is a

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread Paul Boddie
On 4 Nov, 16:00, sturlamolden [EMAIL PROTECTED] wrote: If you are serious about multicore programming, take a look at: http://www.cilk.com/ Now if we could make Python do something like that, people would perhaps start to think about writing Python programs for more than one processor. The

Re: 2.6, 3.0, and truly independent intepreters

2008-11-04 Thread lkcl
On Oct 30, 6:39 pm, Terry Reedy [EMAIL PROTECTED] wrote: Their professor is Lars Bak, the lead architect of the Google V8Javascriptengine. They spent some time working on V8 in the last couple months. then they will be at home with pyv8 - which is a combination of the pyjamas

Re: 2.6, 3.0, and truly independent intepreters

2008-11-03 Thread Andy O'Meara
On Oct 30, 11:09 pm, alex23 [EMAIL PROTECTED] wrote: On Oct 31, 2:05 am, Andy O'Meara [EMAIL PROTECTED] wrote: I don't follow you there. If you're referring to multiprocessing, our concerns are: - Maturity (am I willing to tell my partners and employees that I'm betting our future on a

Re: 2.6, 3.0, and truly independent intepreters

2008-10-31 Thread greg
Patrick Stinson wrote: Speaking of the big picture, is this how it normally works when someone says Here's some code and a problem and I'm willing to pay for a solution? In an open-source volunteer context, time is generally more valuable than money. Most people can't just drop part of their

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Andy O'Meara
Okay, here's the bottom line: * This is not about the GIL.  This is about *completely* isolated interpreters; most of the time when we want to remove the GIL we want a single interpreter with lots of shared data. * Your use case, although not common, is not extraordinarily rare either.  

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Jesse Noller
On Wed, Oct 29, 2008 at 8:05 PM, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/29/2008 3:45 PM, came the following characters from the keyboard of Patrick Stinson: If you are dealing with lots of data like in video or sound editing, you would just keep the data in shared memory

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Andy O'Meara
On Oct 28, 6:11 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: Because then we're back into the GIL not permitting threads efficient core use on CPU bound scripts running on other threads (when they otherwise could). Why do you think so? For C code that is carefully written, the GIL allows

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Jesse Noller
On Thu, Oct 30, 2008 at 12:05 PM, Andy O'Meara [EMAIL PROTECTED] wrote: On Oct 28, 6:11 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: Because then we're back into the GIL not permitting threads efficient core use on CPU bound scripts running on other threads (when they otherwise could).

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread VanL
Jesse Noller wrote: Even luminaries such as Brian Goetz and many, many others have pointed out that threading, as it exists today is fundamentally difficult to get right. Ergo the renaissance (read: echo chamber) towards Erlang-style concurrency. I think this is slightly missing what Andy is

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Andy O'Meara
On Oct 30, 1:00 pm, Jesse Noller [EMAIL PROTECTED] wrote: Multiprocessing is written in C, so as for the less agile - I don't see how it's any less agile then what you've talked about. Sorry for not being more specific there, but by less agile I meant that an app's codebase is less agile if

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Jesse Noller
On Thu, Oct 30, 2008 at 1:54 PM, Andy O'Meara [EMAIL PROTECTED] wrote: On Oct 30, 1:00 pm, Jesse Noller [EMAIL PROTECTED] wrote: Multiprocessing is written in C, so as for the less agile - I don't see how it's any less agile then what you've talked about. Sorry for not being more specific

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Paul Boddie
On 30 Okt, 14:12, Andy O'Meara [EMAIL PROTECTED] wrote: 3) Start a new python implementation, let's call it CPythonES [...] 4) Drop python, switch to Lua. Have you looked at tinypy? I'm not sure about the concurrency aspects of the implementation, but the developers are not completely

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Terry Reedy
Andy O'Meara wrote: On Oct 28, 6:11 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: You should really reconsider writing performance-critical code in Python. I don't follow you there... Performance-critical code in Python?? Martin meant what he said better later Again, if you do

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Martin v. Löwis
Why do you think so? For C code that is carefully written, the GIL allows *very well* to write CPU bound scripts running on other threads. (please do get back to Jesse's original remark in case you have lost the thread :-) I don't follow you there. If you're referring to multiprocessing

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Patrick Stinson
On Wed, Oct 29, 2008 at 4:05 PM, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/29/2008 3:45 PM, came the following characters from the keyboard of Patrick Stinson: If you are dealing with lots of data like in video or sound editing, you would just keep the data in shared memory

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Glenn Linderman
On approximately 10/30/2008 6:26 AM, came the following characters from the keyboard of Jesse Noller: On Wed, Oct 29, 2008 at 8:05 PM, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/29/2008 3:45 PM, came the following characters from the keyboard of Patrick Stinson: If

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Patrick Stinson
Speaking of the big picture, is this how it normally works when someone says Here's some code and a problem and I'm willing to pay for a solution? I've never really walked that path with a project of this complexity (I guess it's the backwards-compatibility that makes it confusing), but is this

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread Rhamphoryncus
On Oct 30, 8:23 pm, Patrick Stinson [EMAIL PROTECTED] wrote: Speaking of the big picture, is this how it normally works when someone says Here's some code and a problem and I'm willing to pay for a solution? I've never really walked that path with a project of this complexity (I guess it's the

Re: 2.6, 3.0, and truly independent intepreters

2008-10-30 Thread alex23
On Oct 31, 2:05 am, Andy O'Meara [EMAIL PROTECTED] wrote: I don't follow you there.  If you're referring to multiprocessing, our concerns are: - Maturity (am I willing to tell my partners and employees that I'm betting our future on a brand-new module that imposes significant restrictions as

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Patrick Stinson
Close, I work currently for EastWest :) Well, I actually like almost everything else about CPython, considering my audio work the only major problem I've had is with the GIL. I like the purist community, and I like the code, since integrating it on both platforms has been relatively clean, and

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Patrick Stinson
Wow, man. Excellent post. You want a job? The gui could use PyA threads for sure, and the audio thread could use PyC threads. It would not be a problem to limit the audio thread to only reentrant libraries. This kind of thought is what I had in mind about finding a compromise, especially in the

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Patrick Stinson
On Fri, Oct 24, 2008 at 12:51 PM, Andy O'Meara [EMAIL PROTECTED] wrote: Another great post, Glenn!! Very well laid-out and posed!! Thanks for taking the time to lay all that out. Questions for Andy: is the type of work you want to do in independent threads mostly pure Python? Or with

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Paul Boddie
On 28 Okt, 21:03, Rhamphoryncus [EMAIL PROTECTED] wrote: * get a short-term bodge that works, like hacking the 3rd party library to use your shared-memory allocator.  Should be far less work than hacking all of CPython. Did anyone come up with a reason why shared memory couldn't be used for

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Rhamphoryncus
On Oct 29, 7:20 am, Paul Boddie [EMAIL PROTECTED] wrote: On 28 Okt, 21:03, Rhamphoryncus [EMAIL PROTECTED] wrote: * get a short-term bodge that works, like hacking the 3rd party library to use your shared-memory allocator.  Should be far less work than hacking all of CPython. Did anyone

Re: 2.6, 3.0, and truly independent intepreters

2008-10-29 Thread Patrick Stinson
If you are dealing with lots of data like in video or sound editing, you would just keep the data in shared memory and send the reference over IPC to the worker process. Otherwise, if you marshal and send you are looking at a temporary doubling of the memory footprint of your app because the data

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Rhamphoryncus
On Oct 26, 6:57 pm, Andy O'Meara [EMAIL PROTECTED] wrote: Grrr... I posted a ton of lengthy replies to you and other recent posts here using Google and none of them made it, argh. Poof. There's nothing that fires more up more than lost work,  so I'll have to revert short and simple answers for

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Michael Sparks
Glenn Linderman wrote: so a 3rd party library might be called to decompress the stream into a set of independently allocated chunks, each containing one frame (each possibly consisting of several allocations of memory for associated metadata) that is independent of other frames We use a

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Michael Sparks
Philip Semanchuk wrote: On Oct 25, 2008, at 7:53 AM, Michael Sparks wrote: Glenn Linderman wrote: In the module multiprocessing environment could you not use shared memory, then, for the large shared data items? If the poshmodule had a bit of TLC, it would be extremely useful for this,...

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Andy O'Meara
On Oct 26, 10:11 pm, James Mills [EMAIL PROTECTED] wrote: On Mon, Oct 27, 2008 at 12:03 PM, Andy O'Meara [EMAIL PROTECTED] wrote: I think we miscommunicated there--I'm actually agreeing with you.  I was trying to make the same point you were: that intricate and/or large structures are meant

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Andy O'Meara
On Oct 27, 4:05 am, Martin v. Löwis [EMAIL PROTECTED] wrote: Andy O'Meara wrote: Well, when you're talking about large, intricate data structures (which include opaque OS object refs that use process-associated allocators), even a shared memory region between the child process and the

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Greg Ewing
Glenn Linderman wrote: So your 50% number is just a scare tactic, it would seem, based on wild guesses. Was there really any benefit to the comment? All I was really trying to say is that it would be a mistake to assume that the overhead will be negligible, as that would be just as much a

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Andy O'Meara
On Oct 25, 9:46 am, M.-A. Lemburg [EMAIL PROTECTED] wrote: These discussion pop up every year or so and I think that most of them are not really all that necessary, since the GIL isn't all that bad. Thing is, if the topic keeps coming up, then that may be an indicator that change is truly

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Andy O'Meara
On Oct 27, 10:55 pm, Glenn Linderman [EMAIL PROTECTED] wrote: And I think we still are miscommunicating!  Or maybe communicating anyway! So when you said object, I actually don't know whether you meant Python object or something else.  I assumed Python object, which may not have been

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Rhamphoryncus
On Oct 28, 9:30 am, Andy O'Meara [EMAIL PROTECTED] wrote: On Oct 25, 9:46 am, M.-A. Lemburg [EMAIL PROTECTED] wrote: These discussion pop up every year or so and I think that most of them are not really all that necessary, since the GIL isn't all that bad. Thing is, if the topic keeps

Re: 2.6, 3.0, and truly independent intepreters

2008-10-28 Thread Martin v. Löwis
Because then we're back into the GIL not permitting threads efficient core use on CPU bound scripts running on other threads (when they otherwise could). Why do you think so? For C code that is carefully written, the GIL allows *very well* to write CPU bound scripts running on other threads.

Re: 2.6, 3.0, and truly independent intepreters

2008-10-27 Thread Martin v. Löwis
Andy O'Meara wrote: On Oct 24, 9:52 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: A c-level module, on the other hand, can sidestep/release the GIL at will, and go on it's merry way and process away. ...Unless part of the C module execution involves the need do CPU- bound work on another

Re: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread Martin v. Löwis
As far as I can tell, it seems CPython's current state can't CPU bound parallelization in the same address space. That's not true. Um... So let's say you have a opaque object ref from the OS that represents hundreds of megs of data (e.g. memory-resident video). How do you get that back

Re:: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread Hendrik van Rooyen
Andy O'Meara Wrote: Um... So let's say you have a opaque object ref from the OS that represents hundreds of megs of data (e.g. memory-resident video). How do you get that back to the parent process without serialization and IPC? What should really happen is just use the same address space so

Re: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread Andy O'Meara
Grrr... I posted a ton of lengthy replies to you and other recent posts here using Google and none of them made it, argh. Poof. There's nothing that fires more up more than lost work, so I'll have to revert short and simple answers for the time being. Argh, damn. On Oct 25, 1:26 am, greg

Re: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread Andy O'Meara
On Oct 24, 9:52 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: A c-level module, on the other hand, can sidestep/release the GIL at will, and go on it's merry way and process away. ...Unless part of the C module execution involves the need do CPU- bound work on another thread through a

Re: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread Andy O'Meara
And in the case of hundreds of megs of data ... and I would be surprised at someone that would embed hundreds of megs of data into an object such that it had to be serialized... seems like the proper design is to point at the data, or a subset of it, in a big buffer.  Then data transfers

Re: 2.6, 3.0, and truly independent intepreters

2008-10-26 Thread James Mills
On Mon, Oct 27, 2008 at 12:03 PM, Andy O'Meara [EMAIL PROTECTED] wrote: I think we miscommunicated there--I'm actually agreeing with you. I was trying to make the same point you were: that intricate and/or large structures are meant to be passed around by a top-level pointer, not using and

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread greg
Andy O'Meara wrote: - each worker thread makes its own interpreter, pops scripts off a work queue, and manages exporting (and then importing) result data to other parts of the app. I hope you realize that starting up one of these interpreters is going to be fairly expensive. It will have to

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread greg
Glenn Linderman wrote: If Py_None corresponds to None in Python syntax ... then it is a fixed constant and could be left global, probably. No, it couldn't, because it's a reference-counted object like any other Python object, and therefore needs to be protected against simultaneous refcount

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread greg
Andy O'Meara wrote: In our case, we're doing image and video manipulation--stuff not good to be messaging from address space to address space. Have you considered using shared memory? Using mmap or equivalent, you can arrange for a block of memory to be shared between processes. Then you can

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread greg
Rhamphoryncus wrote: A list is not shareable, so it can only be used within the monitor it's created within, but the list type object is shareable. Type objects contain dicts, which allow arbitrary values to be stored in them. What happens if one thread puts a private object in there? It

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Martin v. Löwis
If Py_None corresponds to None in Python syntax (sorry I'm not familiar with Python internals yet; glad you are commenting, since you are), then it is a fixed constant and could be left global, probably. If None remains global, then type(None) also remains global, and type(None),__bases__[0].

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Michael Sparks
Hi Andy, Andy wrote: However, we require true thread/interpreter independence so python 2 has been frustrating at time, to say the least.  Please don't start with but really, python supports multiple interpreters because I've been there many many times with people. And, yes, I'm aware of

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Michael Sparks
Andy O'Meara wrote: Yeah, that's the idea--let the highest levels run and coordinate the show. Yes, this works really well in python and it's lots of fun. We've found so far you need at minimum the following parts to a co-ordination little language: Pipeline Graphline Carousel

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Michael Sparks
Glenn Linderman wrote: In the module multiprocessing environment could you not use shared memory, then, for the large shared data items? If the poshmodule had a bit of TLC, it would be extremely useful for this, since it does (surprisingly) still work with python 2.5, but does need a bit of

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Michael Sparks
Andy O'Meara wrote: basically, it seems that we're talking about the embarrassingly parallel scenario raised in that paper We build applications in Kamaelia and then discover afterwards that they're embarrassingly parallel and just work. (we have an introspector that can look inside running

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Michael Sparks
Jesse Noller wrote: http://www.kamaelia.org/Home Thanks for the mention :) I don't think it's a good fit for the original poster's question, but a solution to the original poster's question would be generally useful IMO, _especially_ on python implementations without a GIL (where threads are

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread M.-A. Lemburg
These discussion pop up every year or so and I think that most of them are not really all that necessary, since the GIL isn't all that bad. Some pointers into the past: * http://effbot.org/pyfaq/can-t-we-get-rid-of-the-global-interpreter-lock.htm Fredrik on the GIL *

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Terry Reedy
Glenn Linderman wrote: On approximately 10/24/2008 8:39 PM, came the following characters from the keyboard of Terry Reedy: Glenn Linderman wrote: For example, Python presently has a rather stupid algorithm for string concatenation. Yes, CPython2.x, x=5 did. Python the language has syntax

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Philip Semanchuk
On Oct 25, 2008, at 7:53 AM, Michael Sparks wrote: Glenn Linderman wrote: In the module multiprocessing environment could you not use shared memory, then, for the large shared data items? If the poshmodule had a bit of TLC, it would be extremely useful for this, since it does

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Martin v. Löwis
There are a number of problems with that approach. The biggest one is that it is theoretical. Not theoretical. Used successfully in Perl. Perhaps it is indeed what Perl does, I know nothing about that. However, it *is* theoretical for Python. Please trust me that there are many many many

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Andy O'Meara
On Oct 24, 9:52 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: A c-level module, on the other hand, can sidestep/release the GIL at will, and go on it's merry way and process away. ...Unless part of the C module execution involves the need do CPU- bound work on another thread through a

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Andy O'Meara
On Oct 24, 9:40 pm, Martin v. Löwis [EMAIL PROTECTED] wrote: It seems to me that the very simplest move would be to remove global static data so the app could provide all thread-related data, which Andy suggests through references to the QuickTime API. This would suggest compiling python

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Andy O'Meara
On Oct 24, 10:24 pm, Glenn Linderman [EMAIL PROTECTED] wrote: And in the case of hundreds of megs of data ... and I would be surprised at someone that would embed hundreds of megs of data into an object such that it had to be serialized... seems like the proper design is to point at the

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Andy O'Meara
Andy O'Meara wrote: I would definitely agree if there was a context (i.e. environment) object passed around then perhaps we'd have the best of all worlds. Moreover, I think this is probably the *only* way that totally independent interpreters could be realized. Converting the whole C

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread Rhamphoryncus
On Oct 25, 12:29 am, greg [EMAIL PROTECTED] wrote: Rhamphoryncus wrote: A list is not shareable, so it can only be used within the monitor it's created within, but the list type object is shareable. Type objects contain dicts, which allow arbitrary values to be stored in them. What

Re: 2.6, 3.0, and truly independent intepreters

2008-10-25 Thread greg
Glenn Linderman wrote: On approximately 10/25/2008 12:01 AM, came the following characters from the keyboard of Martin v. Löwis: If None remains global, then type(None) also remains global, and type(None),__bases__[0]. Then type(None).__bases__[0].__subclasses__() will yield interesting

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread greg
Andy wrote: 1) Independent interpreters (this is the easier one--and solved, in principle anyway, by PEP 3121, by Martin v. Löwis Something like that is necessary for independent interpreters, but not sufficient. There are also all the built-in constants and type objects to consider. Most of

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Martin v. Löwis
You seem confused. PEP 3121 is for isolated interpreters (ie emulated processes), not threading. Just a small remark: this wasn't the primary objective of the PEP. The primary objective was to support module cleanup in a reliable manner, to allow eventually to get modules garbage-collected

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread sturlamolden
Instead of appdomains (one interpreter per thread), or free threading, you could use multiple processes. Take a look at the new multiprocessing module in Python 2.6. It has roughly the same interface as Python's threading and queue modules, but uses processes instead of threads. Processes are

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
On Oct 24, 9:35 am, sturlamolden [EMAIL PROTECTED] wrote: Instead of appdomains (one interpreter per thread), or free threading, you could use multiple processes. Take a look at the new multiprocessing module in Python 2.6. That's mentioned earlier in the thread. There is a fundamental

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Stefan Behnel
Terry Reedy wrote: Everything in DLLs is compiled C extensions. I see about 15 for Windows 3.0. Ah, weren't that wonderful times back in the days of Win3.0, when DLL-hell was inhabited by only 15 libraries? *sigh* ... although ... wait, didn't Win3.0 have more than that already? Maybe you

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread sturlamolden
On Oct 24, 3:58 pm, Andy O'Meara [EMAIL PROTECTED] wrote: This is discussed earlier in the thread--they're unfortunately all out. It occurs to me that tcl is doing what you want. Have you ever thought of not using Python? That aside, the fundamental problem is what I perceive a fundamental

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
On Oct 24, 2:12 am, greg [EMAIL PROTECTED] wrote: Andy wrote: 1) Independent interpreters (this is the easier one--and solved, in principle anyway, by PEP 3121, by Martin v. Löwis Something like that is necessary for independent interpreters, but not sufficient. There are also all the

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
That aside, the fundamental problem is what I perceive a fundamental design flaw in Python's C API. In Java JNI, each function takes a JNIEnv* pointer as their first argument. There  is nothing the prevents you from embedding several JVMs in a process. Python can create embedded

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Patrick Stinson
I'm not finished reading the whole thread yet, but I've got some things below to respond to this post with. On Thu, Oct 23, 2008 at 9:30 AM, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/23/2008 12:24 AM, came the following characters from the keyboard of Christian Heimes: Andy

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
Glenn, great post and points! Andy seems to want an implementation of independent Python processes implemented as threads within a single address space, that can be coordinated by an outer application.  This actually corresponds to the model promulgated in the paper as being most likely to

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Patrick Stinson
We are in the same position as Andy here. I think that something that would help people like us produce something in code form is a collection of information outlining the problem and suggested solutions, appropriate parts of the CPython's current threading API, and pros and cons of the many

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Patrick Stinson
As a side note to the performance question, we are executing python code in an audio thread that is used in all of the top-end music production environments. We have found the language to perform extremely well when executed at control-rate frequency, meaning we aren't doing DSP computations, just

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Terry Reedy
Stefan Behnel wrote: Terry Reedy wrote: Everything in DLLs is compiled C extensions. I see about 15 for Windows 3.0. Ah, weren't that wonderful times back in the days of Win3.0, when DLL-hell was inhabited by only 15 libraries? *sigh* ... although ... wait, didn't Win3.0 have more than that

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Jesse Noller
On Fri, Oct 24, 2008 at 10:40 AM, Andy O'Meara [EMAIL PROTECTED] wrote: 2) Barriers to free threading. As Jesse describes, this is simply just the GIL being in place, but of course it's there for a reason. It's there because (1) doesn't hold and there was never any specs/ guidance put

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Jesse Noller
On Fri, Oct 24, 2008 at 12:30 PM, Jesse Noller [EMAIL PROTECTED] wrote: On Fri, Oct 24, 2008 at 10:40 AM, Andy O'Meara [EMAIL PROTECTED] wrote: 2) Barriers to free threading. As Jesse describes, this is simply just the GIL being in place, but of course it's there for a reason. It's there

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
The Global Interpreter Lock is fundamentally designed to make the interpreter easier to maintain and safer: Developers do not need to worry about other code stepping on their namespace. This makes things thread-safe, inasmuch as having multiple PThreads within the same interpreter space

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Jesse Noller
On Fri, Oct 24, 2008 at 3:17 PM, Andy O'Meara [EMAIL PROTECTED] wrote: I'm a lousy writer sometimes, but I feel bad if you took the time to describe threads vs processes. The only reason I raised IPC with my messaging isn't very attractive comment was to respond to Glenn Linderman's points

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Rhamphoryncus
On Oct 24, 1:02 pm, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/24/2008 8:42 AM, came the following characters from the keyboard of Andy O'Meara: Glenn, great post and points! Thanks. I need to admit here that while I've got a fair bit of professional programming

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Andy O'Meara
Another great post, Glenn!! Very well laid-out and posed!! Thanks for taking the time to lay all that out. Questions for Andy: is the type of work you want to do in independent threads mostly pure Python? Or with libraries that you can control to some extent? Are those libraries reentrant?

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Glenn Linderman
On approximately 10/24/2008 1:09 PM, came the following characters from the keyboard of Rhamphoryncus: On Oct 24, 1:02 pm, Glenn Linderman [EMAIL PROTECTED] wrote: On approximately 10/24/2008 8:42 AM, came the following characters from the keyboard of Andy O'Meara: Glenn, great post

Re: 2.6, 3.0, and truly independent intepreters

2008-10-24 Thread Jesse Noller
On Fri, Oct 24, 2008 at 4:51 PM, Andy O'Meara [EMAIL PROTECTED] wrote: In the module multiprocessing environment could you not use shared memory, then, for the large shared data items? As I understand things, the multiprocessing puts stuff in a child process (i.e. a separate address space),

  1   2   >