Hi,

the underlying parallel mechanism is processes communicating via execnet.

-- Ronny


On 01/26/2012 12:30 AM, Ateljevich, Eli wrote:
> Thanks. I really appreciate the help. I have one last question -- is the 
> underlying parallel mechanism threads or mpi or something else? Do I have to 
> worry about things like MPI communicators getting in each other's way?
> 
> Cheers,
> Eli
> 
> -----Original Message-----
> From: holger krekel [mailto:hol...@merlinux.eu] 
> Sent: Friday, January 20, 2012 2:27 PM
> To: Ateljevich, Eli
> Cc: holger krekel; py-dev@codespeak.net
> Subject: Re: [py-dev] xdist and thread-safe resource counting
> 
> On Fri, Jan 20, 2012 at 12:56 -0800, Ateljevich, Eli wrote:
>> Thanks, Holger. I appreciate the hint about where to do the testing and 
>> waiting in pytest_runtest_setup and I think the atomic file rename idea is 
>> an interesting way to set up a signal.
>>
>> I may not fully understand about xdist. I certainly agree it is efficient 
>> use of mpirun that is the crux of doing the job right ... so probably any 
>> load balancing offered by xdist is going to be wasted on me. 
>>
>> The main service I was looking for out of xdist was the ability to run tests 
>> concurrently. As I think you realize, if I have a pool of 16 processors and 
>> the first four tests collected require 8, 4, 8, 4 processors, I would want 
>> this behavior:
>> 1.  the first test to start immediately
>> 2.  the second test to start immediately without the first finishing
>> 3.  the third test to either wait or start in a python sense but "sleep" 
>> before launching mpi
>> 4.  the fourth test to start immediately
>>
>> Is vanilla py.test able to do this kind of concurrent testing? Or would I 
>> need to tweak it to launch tests in threads according to my criterion for 
>> readiness? 
> 
> A run with pytest-xdist, notably, "py.test -nNUM" allows to implement this
> behaviour, i think.
> 
>> I think we have settled how I would allocate resources, but your idea 
>> implies I might have all the test hints in one place. If I have full control 
>> all the test launches this might allow me to do some sort of knapsack 
>> problem-ish kind of reorganization to keep everything fully utilized rather 
>> than taking the test in the order they were collected. For instance, if I 
>> had 16 processors and the first four tests take 12-12-4-4 I could do this in 
>> the order (12+4 concurrently) (12+4 concurrently). Do I have this level of 
>> control?
> 
> I think so yes.  IIRC pytest-xdist distributed the first four tests
> such that they each land at different nodes.  So, given the algorithm
> i hinted at, and running with "py.test -n3" the first sub process would 
> start and run on 12 processors.  The second process would see that 
> there are 12 used and wait until 12 become available. The 
> third process would only need 4 and immediatly continue, utilizing
> all 16 processors at that time.  When the first one finishes the
> second sub process would see that there now are enough and proceed
> with its testing.  This is all fully compatible with pytest-xdist
> semantics and only needs code at pytest_runtest_setup time i think.
> 
> best,
> holger
> 
> _______________________________________________
> py-dev mailing list
> py-dev@codespeak.net
> http://codespeak.net/mailman/listinfo/py-dev


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to