Hi Zoe,

Any chance you could write up the steps you took to test this - or point
me in the right direction so I can try myself?

Re 8 way, is that 8 physical or 8 threads? If I can get the tests
running I can give you a data point for a 4 core/8 thread i7 under
linux.

-- 
Regards,

Miah


-----Original Message-----
From: zoe slattery <aparac...@gmail.com>
To: internals@lists.php.net, PHP QA <php...@lists.php.net>
Subject: [PHP-DEV] Parallel run-tests
Date: Thu, 17 May 2012 13:00:04 +0100
Mailer: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0)
Gecko/20120428 Thunderbird/12.0.1

Hi

Over the past couple of weeks I have updated the parallel run-tests 
(fixed a couple of minor bugs in the PHP code and the build.xml), it's 
now almost at the point where I could go ahead and implement the last 
pieces.  Here is a summary and a few questions:

1. In rebasing the code the the dev't stream I found a number of tests 
with non-standard sections. My code checks test case structure and 
objects to anything non-standard, the current run-tests.php mainly 
ignores this kind of thing. I fixed up about 15 of these tests (see 
#62022) already - I'll fix the rest if there are no objections - I will 
open another bug report first.

2. If there is agreement to use this code it would make sense to 
replace  the existing run-tests code with it, or rather,  it would make 
no sense to try and maintain both versions. The new code is OO PHP, it's 
in http://git.php.net/repository/phpruntests.git, is there any problem 
with it staying there long term and maybe copying a run-tests.phar into 
the PHP source directory? I have no idea what the right answer is, 
suggestions welcome.

3. I ran a couple of small tests on my dual core Mac yesterday. For a 
standard set of tests, the parallel code ran in 207 seconds, sequential 
in 293 seconds and the standard run-tests.php took 298 seconds. This is 
an improvement but I suspect we could still do better by looking at the 
scheduling algorithm.
At the moment it's very simple, we just assemble a list of directories 
with tests in and hand them out to processors till everything is done. 
Being able to handle tests that must be run in sequence (mysql, mysqli) 
will mean making some changes to this. So, perhaps we give an explicit 
list to p1 and let the scheduler distribute the rest of the tests? Or 
maybe we should have a 'process map' for all tests for extensions that 
are build by default? Again, suggestions welcome.

4. REDIRECTTEST still needs to be implemented, I understand how it works 
and this isn't (afaict) a major issue.

5. Testing. I'm able to do basic testing on Mac OSX  and Linux. I really 
need access to an 8 way Linux system, or someone who has access and 
would be interested in looking at performance? Any volunteers? This is 
probably the most interesting part of the project :-)

6. Windows. I'm not in a position to do anything much with Windows 
except some very basic checks to make sure that the sequential version 
runs. The parallel code won't work because we used pcntl(), however I 
know that Stefan and George were keen to design the code so that a 
Windows solution could be implemented if anyone thought of one. If 
anyone wants to pick up this aspect I'd be happy to get them started.

Zoe



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to