Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Releasing v3.2.0 #55

Merged
merged 16 commits into from
Feb 14, 2024
Merged

Releasing v3.2.0 #55

merged 16 commits into from
Feb 14, 2024

Conversation

nkallima
Copy link
Owner

This release introduces the following changes/improvements:

  • Adding support for various thread placement policies.
  • Improvements to the threadtools.h API; some basic NUMA functionality is added.
  • A patch on hsynch.c for supporting the various thread placement policies.
  • Improvements of the performance of synchResched for many multicore machines (e.g., AMD, Intel, etc.).
  • Improvements of the performance of the synchGetMachineModel function in the case of multiple calls.
  • The performance of algorithms based on hsynch.c is substantially improved (more than X2 in many cases).

Copy link

codecov bot commented Feb 11, 2024

Codecov Report

Merging #55 (a97eefd) into main (ac50f09) will decrease coverage by 1.26%.
The diff coverage is 62.02%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #55      +/-   ##
==========================================
- Coverage   85.05%   83.80%   -1.26%     
==========================================
  Files          69       69              
  Lines        2984     3031      +47     
==========================================
+ Hits         2538     2540       +2     
- Misses        446      491      +45     
Files Coverage Δ
libconcurrent/concurrent/fc.c 88.46% <100.00%> (ø)
libconcurrent/concurrent/hsynch.c 82.02% <83.33%> (+1.53%) ⬆️
libconcurrent/primitives/primitives.c 80.30% <66.66%> (-3.83%) ⬇️
libconcurrent/primitives/threadtools.c 63.51% <55.93%> (-10.13%) ⬇️

... and 31 files with indirect coverage changes

@nkallima nkallima self-assigned this Feb 11, 2024
@nkallima nkallima added the new-release Releasing a new version label Feb 11, 2024
libconcurrent/concurrent/fc.c Show resolved Hide resolved
libconcurrent/concurrent/hsynch.c Show resolved Hide resolved
libconcurrent/includes/primitives.h Show resolved Hide resolved
libconcurrent/includes/threadtools.h Show resolved Hide resolved
libconcurrent/primitives/threadtools.c Show resolved Hide resolved

if (numa_node_of_cpu(0) == numa_node_of_cpu(ncpus / 2)) { // SMT or HyperThreading detected
uint32_t half_node_size = node_size / 2;
uint32_t ncpus = numa_num_configured_cpus();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already defined in line 133

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleaned up. Check c3c8c99.

@@ -191,7 +256,9 @@ inline int32_t synchGetPosixThreadId(void) {
}

inline void synchResched(void) {
if (__noop_resched) {
if (__noop_resched && synchGetMachineModel() != INTEL_X86_MACHINE) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this check already exists in synchPause, I guess you have it here to save a function call, right?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleaned-up. Check a97eef.

Copy link
Collaborator

@Spiros-N-Agathos Spiros-N-Agathos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

@nkallima nkallima merged commit 8e09897 into main Feb 14, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-release Releasing a new version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants