[PATCH 0/5] OpenMP Barrier perf improvements
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Dec 5 03:31:00 UTC 2025
Dear Matthew,
I was able to apply the patch set. I can build GCC for the sparc-rtems target with the patch set. So, for RTEMS we have then basically the old Linux barrier implementation as a hard copy. If we would like to go back to directly use the Linux implementation, we need support for the futex_waitv. In this case, we have to assess if this makes sense for the lower end SMP targets used by RTEMS applications.
I did run the following test program:
https://github.com/RTEMS/rtems/blob/main/testsuites/smptests/smpopenmp01/init.c
The test platform was:
https://www.gaisler.com/products/gr-cpci-gr740
Looks, good from my point of view. The difference in the output is:
diff -u openmp-gcc-7-gr740-before.txt openmp-gcc-7-gr740-after.txt
--- openmp-gcc-7-gr740-before.txt 2025-12-05 04:21:09.098996657 +0100
+++ openmp-gcc-7-gr740-after.txt 2025-12-05 03:08:47.432125347 +0100
@@ -10,43 +10,43 @@
{
"num-threads": 1,
"major-loop-count": 7,
- "barrier-bench": 0.477087,
- "parallel-bench": 1.796599,
- "static-bench": 0.103448,
- "dynamic-bench": 0.212967,
- "guided-bench": 0.011304,
- "runtime-bench": 0.240980,
- "single-bench": 0.061993
+ "barrier-bench": 0.480769,
+ "parallel-bench": 1.809565,
+ "static-bench": 0.104044,
+ "dynamic-bench": 0.212121,
+ "guided-bench": 0.011265,
+ "runtime-bench": 0.240016,
+ "single-bench": 0.062307
}, {
"num-threads": 2,
"major-loop-count": 7,
- "barrier-bench": 0.547056,
- "parallel-bench": 0.705842,
- "static-bench": 0.043304,
- "dynamic-bench": 0.123275,
- "guided-bench": 0.005696,
- "runtime-bench": 0.137279,
- "single-bench": 0.071744
+ "barrier-bench": 0.553242,
+ "parallel-bench": 0.711961,
+ "static-bench": 0.043014,
+ "dynamic-bench": 0.122780,
+ "guided-bench": 0.005669,
+ "runtime-bench": 0.136729,
+ "single-bench": 0.071736
}, {
"num-threads": 3,
"major-loop-count": 7,
- "barrier-bench": 0.681504,
- "parallel-bench": 0.798840,
- "static-bench": 0.046850,
- "dynamic-bench": 0.118318,
- "guided-bench": 0.003853,
- "runtime-bench": 0.103626,
- "single-bench": 0.087014
+ "barrier-bench": 0.697402,
+ "parallel-bench": 0.796755,
+ "static-bench": 0.045589,
+ "dynamic-bench": 0.122541,
+ "guided-bench": 0.003835,
+ "runtime-bench": 0.103212,
+ "single-bench": 0.089041
}, {
"num-threads": 4,
"major-loop-count": 7,
- "barrier-bench": 0.939185,
- "parallel-bench": 0.963152,
- "static-bench": 0.053478,
- "dynamic-bench": 0.123278,
- "guided-bench": 0.002950,
- "runtime-bench": 0.123275,
- "single-bench": 0.114126
+ "barrier-bench": 0.988437,
+ "parallel-bench": 0.900906,
+ "static-bench": 0.050580,
+ "dynamic-bench": 0.122782,
+ "guided-bench": 0.002929,
+ "runtime-bench": 0.122778,
+ "single-bench": 0.117768
}
]
*** END OF JSON DATA ***
--
embedded brains GmbH & Co. KG
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list