The ruby rpms
Use a build condition to turn the parallelization on and off when needed. The output is slightly different from the previous approach. The way results are collected and displayed remains the same. This allows us to scale down build time on multiple cores better. Chose to introduce a bcond explicitly for tests for debugging purposes. Running tests in parallel could hide issues that would show if everything was done in a single test-unit process. Limiting the number of cores available to RPM via a macro would also hinder parallelization of the compilation, which might not be desired in the case of only wanting to serializing the tests. Table from the associated ticket: The time represents total seconds that a full RPM build inside mock took from start to finish. PARALLEL TESTS ------------------------------------------------------------------------ Cores | Runs | Avg (s) | Min (s) | Max (s) | Speedup ------------------------------------------------------------------------ 2_core | 5 | 3196.0 | 3175.0 | 3218.0 | 1.00x 4_core | 5 | 3166.6 | 2949.0 | 3598.0 | 1.01x 8_core | 5 | 1129.2 | 1090.0 | 1257.0 | 2.83x 16_core | 5 | 807.4 | 794.0 | 820.0 | 3.96x SEQUENTIAL TESTS ------------------------------------------------------------------------ Cores | Runs | Avg (s) | Min (s) | Max (s) | Speedup ------------------------------------------------------------------------ 2_core | 5 | 3749.6 | 3728.0 | 3772.0 | 1.00x 4_core | 5 | 3368.8 | 3128.0 | 3539.0 | 1.11x 8_core | 5 | 1810.6 | 1764.0 | 1912.0 | 2.07x 16_core | 5 | 1612.8 | 1571.0 | 1646.0 | 2.32x PARALLEL vs SEQUENTIAL COMPARISON ------------------------------------------------------------------------- Cores | Sequential Avg | Parallel Avg | Difference ------------------------------------------------------------------------- 2_core | 3749.6 s | 3196.0 s | +17.3% 4_core | 3368.8 s | 3166.6 s | +6.4% 8_core | 1810.6 s | 1129.2 s | +60.3% 16_core | 1612.8 s | 807.4 s | +99.8% Resolves: rhbz#2401230 |
||
|---|---|---|
| .fmf | ||
| plans | ||
| .gitignore | ||
| libruby.stp | ||
| macros.ruby | ||
| macros.rubygems | ||
| operating_system.rb | ||
| rpm_test_helper.rb | ||
| ruby-2.1.0-always-use-i386.patch | ||
| ruby-2.1.0-custom-rubygems-location.patch | ||
| ruby-2.1.0-Enable-configuration-of-archlibdir.patch | ||
| ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch | ||
| ruby-2.3.0-ruby_version.patch | ||
| ruby-2.7.0-Initialize-ABRT-hook.patch | ||
| ruby-3.3.0-Disable-syntax-suggest-test-case.patch | ||
| ruby-3.4.2-openssl-Fix-SHA-1-PSS-tests.patch | ||
| ruby-exercise.stp | ||
| ruby.rpmlintrc | ||
| ruby.spec | ||
| rubygems.attr | ||
| rubygems.con | ||
| rubygems.prov | ||
| rubygems.req | ||
| rubygems_plugin.rb | ||
| sources | ||
| test_abrt.rb | ||
| test_openssl_fips.rb | ||
| test_rubygems_con.rb | ||
| test_rubygems_prov.rb | ||
| test_rubygems_req.rb | ||
| test_systemtap.rb | ||