On Jun 23, 2011, at 1:04 PM, Miller, Vincent (Rick) wrote: > I had not loaded berkely-db because I thought I had read somewhere that there > was a bundled berkley-db with RPM5. I have since loaded Berkley-DB 5.1.x > from FreeBSD ports and was able to get the compile to move along further. >
Good. > It failed later when attempting to link against libgomp which is not > installed on the system. I am planning to reconfigure disabling OpenMP, > unless it provides a feature we might be able to utilize. Can you clarify > the features OpenMP provides to RPM5? > RPM is headed towards multi-threaded installs. One way to achieve parallelism would be to use OpenMP. When looking at feasibility, I parallelized the loop over multiple digests (not the digest algorithms per se which are nearly impossible to parallelize) used by RPM and benchmarked rpm digest (which can run >100 digests in parallel directly off of input/output buffers) and measured a 7x speed-up on a 4-way. Since a 7x speedup from a single #pragma is a quite remarkable gain, I parallelized --verify to see how much gain might be achieved in a non-artificial "real world" case. The results there were less impressive (~1.5x faster from a primitive implementation, since improved to ~2x back in Jabuary in rpm-5.4.0). The refactoring cost to use OpenMP #pragma in RPM code would be considerable, and so likely OpenMP will NOT be used when RPM becomes multi-threaded. So the "feature" provided by using OpenMP in 5.3.1 is that --verify would run ~1.6x faster on SMP. I personally wouldn't bother too much with OpenMP on FreeBSD based on my experiences compiling and using RPM on Mac OS X, where attempting to use GOMP and GCC is a rather rugged wilderness trek, paddling upstream and swatting lots and lots of mosquitoes while trying to avoid more dangerous fauna. YMMV of course ;-) hth 73 de Jeff