Hello,
I want to make a parallel profile driven build of my code. I would like
to make sure it is safe:
(1)
Is it safe to parallelize the build process such with multiple g++
-fprofile-generate runs?
I guess that it is OK.
This part is takes only a fraction of the time to build my software,
so making it parallel is not a big win anyway.
(2)
Is it safe to parallelize the profiling runs, built with -fprofile-generate?
Is it safe on any type of file system (local / remote)?
[profiling accounts for most of the time it takes to build my software].
The possible issues which I would like to avoid:
(a) Profiling database corruption (when two runs write simultaneously).
(b) When I build from the same source I expect to get the same executable.
Will I get the same executable (compiled with -fprofile-use) every time
I build from the same source? I run the same *deterministic* benchmarks
every build, but when run in parallel they may finish in different
orders.
Will this non-determinism, in completion time, may affect the final
executable?
Thanks
Michael