RFR: 8272970: Parallelize runtime/InvocationTests/

David Holmes dholmes at openjdk.java.net
Thu Aug 26 07:32:30 UTC 2021

On Wed, 25 Aug 2021 11:58:27 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> Current runtime/InvocationTests/ are long and serial. They take about half an hour on a modern desktop, mostly using a single CPU. They can be parallelized better, at least on sub-test level. This would be important as [JDK-8272914](https://bugs.openjdk.java.net/browse/JDK-8272914) would start to run them in tier3.
> Sample run times:
> $ time CONF=linux-x86_64-server-fastdebug make run-test TEST=runtime/InvocationTests/
> # Before
> real	32m2.188s
> user	59m12.818s
> sys	0m45.612s
> # After
> real	17m21.110s
> user	63m31.851s
> sys	0m55.391s
> I think we can technically go even deeper, for example parallelising by `packageSet` in the generators themselves, but that would be much more intrusive. I think 17 minutes is already quite good, given other tests running in prospective `hotspot:tier3`.

Sure but uniquely named tests just gives uniquely named output directories, otherwise they'd overwrite each other. It says nothing about concurrent execution. I'm not saying it doesn't execute concurrently as apparently it does, but it is not documented and certainly not something that can easily be inferred from the docs. It is easy to imagine each file being processed in parallel, but somewhat more involved to parallelize the processing of each test within a file.

I did an experiment running a multi-test with -concurrency:1 and -concurrency:16 and it made no difference to real time consumed.


PR: https://git.openjdk.java.net/jdk/pull/5250

More information about the hotspot-runtime-dev mailing list