[poppler] RFC: patch: parallel testing
Adam Reichold
adamreichold at myopera.com
Sat Dec 29 06:22:08 PST 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello Thomas,
It is not a very sophisticated solution, but I think the attached
patch should ensure useful messages for interleaved output of several
worker threads.
Best regards, Adam.
Am 29.12.2012 10:32, schrieb Thomas Freitag:
> Hi Adam!
>
> I used yesterday the first time Your patch for regtesting: Awfully,
> congratulations. You probably already encountered my comment on bug
> 50992. One minor thing: Unfortunately the protocol is not really
> readable anymore, because each thread i.e. first outputs
>
> Testing '/media/thomas/HD-PCTU3/PDF Suite/01_ump_a_2009.pdf' using
> splash backend (9/1137):
>
> and when it finishes i.e.
>
> PASS
>
> Because of the worker threads it's now nearly impossible to match
> the test itself with the result of the test. Can You change it in
> that way that this is outputted together? Should be quite easy....
>
> Cheers, Thomas
>
> Am 06.12.2012 19:02, schrieb Adam Reichold: Hello again,
>
> I reformatted the patch hopefully solving the whitespace issues.
> (It does apply and run for me, but there are still some whitespace
> warnings.)
>
> The use of recursive locks is probably not necessary in
> "TestRun.py" and "TestReferences.py", but since the performance
> impact is probably negligible in this case, I thought allowing for
> recursion would help to keep the code more accessible. In
> "Printer.py" there is at least one recursion from
> "printout_update" into "printout".
>
> Best regards, Adam.
>
> Am 06.12.2012 18:19, schrieb Adam Reichold:
>>>> Hello Carlos,
>>>>
>>>> Am 06.12.2012 18:11, schrieb Carlos Garcia Campos:
>>>>> Adam Reichold <adamreichold at myopera.com> writes:
>>>>>> Hello again,
>>>>>>
>>>>>> As suggested by William Bader, I added the option to use
>>>>>> the logical CPU count as the number of worker threads
>>>>>> automatically.
>>>>> Thanks for the patch, any improvement in the regression
>>>>> test framework is more than welcome, even more if it's to
>>>>> improve the performance. What poppler have you sued to
>>>>> create the patches? They don't apply for me here using
>>>>> poppler from current git master.
>>>> Yes, it is about performance and I am hesitant about
>>>> introducing such complexity into the test driver which is
>>>> supposed to test the correctness of program itself, but
>>>> faster regression testing probably means more regression
>>>> testing... :-)
>>>>
>>>> I am not sure how to correctly format the patch. I built on
>>>> the current master but it seems Git thinks that the lines
>>>> where I just changed the indentation are whitespace errors.
>>>> I am not sure how to correct this as changes in whitespace
>>>> are obviously important for Python scripts... I'll try to
>>>> research this, but any advice would be welcome.
>>>>
>>>> Best regards, Adam.
>>>>
>>>>>> Regards, Adam.
>>>>>>
>>>>>> Am 04.12.2012 12:28, schrieb Adam Reichold:
>>>>>>> Hello Thomas,
>>>>>>>
>>>>>>> Am 04.12.2012 08:41, schrieb Thomas Freitag:
>>>>>>>> Am 04.12.2012 07:45, schrieb Adam Reichold: Hello
>>>>>>>> everyone,
>>>>>>>>
>>>>>>>> I currently try to get myself acquainted with
>>>>>>>> Poppler's regression testing framework. Because my
>>>>>>>> system has a rather low single-threaded performance,
>>>>>>>> I tried to implement parallel testing using Python's
>>>>>>>> Queue class.
>>>>>>>>
>>>>>>>> Even though poppler-regtest currently uses two
>>>>>>>> processes per test file, rendering even and odd
>>>>>>>> pages respectively, the test files themselves are
>>>>>>>> still handled sequentially and both process are
>>>>>>>> joined for each test file. This will yield suboptimal
>>>>>>>> system utilization even for a small three-core system
>>>>>>>> like mine.
>>>>>>>>
>>>>>>>> Using the "-t/--threads N" option in the patched
>>>>>>>> poppler-regtest will spawn N worker threads that
>>>>>>>> handle all tests they can get from a single queue
>>>>>>>> for all known tests, allowing to heavily utilize
>>>>>>>> also large system if using a large set of test cases.
>>>>>>>> But even for my three-core system, this brought down
>>>>>>>> the time to create references for the complete test
>>>>>>>> suite using the Splash backend from 4,5 hours to
>>>>>>>> 2,75 hours.
>>>>>>>>> What do You mean with "patched poppler-regtest"?
>>>>>>>>> There was no attachment, or do I miss something?
>>>>>>> No, this on the process level in the test driver and
>>>>>>> independent of the your multi-threading work. There
>>>>>>> was a patch called "parallel_testing.patch" attached,
>>>>>>> as least my mail client tells me so.
>>>>>>>
>>>>>>> I'll just try again...
>>>>>>>
>>>>>>> Best regards, Adam.
>>>>>>>
>>>>>>>>> If You talk about my multi-threaded testcase,
>>>>>>>>> please be aware, that it is still experimental,
>>>>>>>>> even if quite close. Here the result of my last
>>>>>>>>> regression test last sunday evening: Total 1133
>>>>>>>>> tests 1114 tests passed (98.32%) 17 tests failed
>>>>>>>>> (1.50%): /media/thomas/HD-PCTU3/PDF
>>>>>>>>> Suite/Algorithmics - The Spirit of Computing, 3rd
>>>>>>>>> Ed.pdf (splash), /media/thomas/HD-PCTU3/PDF
>>>>>>>>> Suite/Essentials of English Grammar -
>>>>>>>>> www.ielts4u.blogfa.com.pdf ... 2 tests crashed
>>>>>>>>> (0.18%): /media/thomas/HD-PCTU3/PDF
>>>>>>>>> Suite/bug157090.pdf (splash),
>>>>>>>>> /media/thomas/HD-PCTU3/PDF Suite/sinatr4c.f5.pdf
>>>>>>>>> (splash) I'll first have a look at the crashes
>>>>>>>>> next weekend, then I'll continue with looking at
>>>>>>>>> the failed tests.... Cheers, Thomas
>>>>>>>>
>>>>>>>> IMHO, the necessary changes seem quite small
>>>>>>>> especially since a lot of them are connected to
>>>>>>>> indentation handling. What are your thoughts on the
>>>>>>>> utility and implementation of this?
>>>>>>>>
>>>>>>>> Best regards, Adam.
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> poppler mailing list poppler at lists.freedesktop.org
>>>>>>>>>
>>>>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
_______________________________________________ poppler
>>>>>>>> mailing list poppler at lists.freedesktop.org
>>>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
_______________________________________________ poppler
>>>>>>>> mailing list poppler at lists.freedesktop.org
>>>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>
>>>>
>>>>>>>>
>>>>>>>>
_______________________________________________ poppler mailing
>>>> list poppler at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>
>>>>
>>
>>
>> _______________________________________________ poppler mailing
>> list poppler at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/poppler
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQEcBAEBAgAGBQJQ3vyQAAoJEPSSjE3STU34/9kH/iOG+N6WLsZKKKYeKtxEOtda
TMT1s6SsiWCEQIHIZNMoJvpHAO75mDXU3M+/QXuYre6Bhn+1+PlsVI/S74wus9HI
8jJC0sDOBYvM3PrEng+kjMsff/iOH6hsMrPbL/R/qAB4qjdCQSeAvloYu4TaSeB4
6dyqoZ05qxUt5UMEtVqDQLGHMllL2fwOMy3//elpzCiDArR/okv51p9r+qiEbQAe
7a+xpRplFSbQs0AvNqlE1GFFGVRusckzH6aXLng//DiCbJ+8iyGqZ5ALqZyk/HeH
fRb4e+68siIRf+NvpUktNJCfmvjqfF47yaW+e3JAxTm848sHtmEqHqeEyT/wL98=
=CKSU
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_regtest_print.patch
Type: text/x-patch
Size: 3539 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/poppler/attachments/20121229/6975aa21/attachment.bin>
More information about the poppler
mailing list