-
-
Notifications
You must be signed in to change notification settings - Fork 361
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
Add support to Windows NUMA core count #4167
base: dev
Are you sure you want to change the base?
Conversation
642d454
to
2c0ade7
Compare
2c0ade7
to
57dd0df
Compare
As was already pointed out to GermanAizek multiple times in other issues/PR that he spammed . The NUMA behavior on windows is a bit more complicated than simply bigger number goes faster. Even if you ignore the implications of memory access from multiple sockets, there is windows scheduler which isn't necesarily going to spread the threads across all CPUs (with behavior differing depending on Windows version). Actually utilizing multiple CPUs requires more work than returning bigger number in The smaller number that you get by default from windows is intentional. I don't have the required hardware to confirm how exactly each windows version behaves. See |
that is a good point, now the issue is that even if we wanted to implement that, we would need to have a NUMA system (which we don't). |
I can test branches, but I need time to build as in CI under Windows, it is easy to building on Linux. Why is there no cmake build, because it is so convenient to change C CXX compiler for building via |
just run the build from the cmd prompt or powershell. |
rizinorg/cutter#3286 (comment) As per cutter thread, this works but numa support requires some better implementation of the multhreading code, which we cannot right now implement. |
@wargio, you can take this, it really quickly check NUMA support. I can helped with NUMA portability. bool IsNUMA() noexcept
{
ULONG HighestNodeNumber;
return !(!GetNumaHighestNodeNumber(&HighestNodeNumber) || HighestNodeNumber == 0);
} |
the issue mentioned above is that in order to use all the numa capabilities, we need a more numa-friendly code, which requires specific malloc etc.. on windows. we don't have that yet. potentially we could implement a piece of code that detects if numa and allows to run with more cores, but i'm not sure. |
I don't think it worth the trouble at this point, especially since currently file parsing and analysis aren't multithreaded, thus benefits of this will be quite limited. |
@wargio, |
yes, but the issue is related on how rizin works. we do not have a centralized |
Your checklist for this pull request
Detailed description
This is not testable normally but it "should work".