Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

I think that my windows Object Pascal Processor Groups unit is optimal on NUMA systems

15 views
Skip to first unread message

Ramine

unread,
Jun 22, 2016, 4:01:10 PM6/22/16
to
Hello....

I think that my windows Object Pascal Processor Groups unit is optimal
on NUMA systems, because as you will notice in the source code , i am
assigning the mask and the group in a round-robin fashion so that
it distributes NUMA nodes efficiently on threads, so it makes the
threads run optimally on NUMA systems, please read the following from
Microsoft as a confirmation of what i am saying about NUMA nodes:

"Each node must be fully contained within a group. If the capacities of
the nodes are relatively small, the system assigns more than one node to
the same group, choosing nodes that are physically close to one another
for better performance. If a node's capacity exceeds the maximum number
of processors in a group, the system splits the node into multiple
smaller nodes, each small enough to fit in a group."

Read here:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx

So as you have noticed Microsoft is using algorithms that optimize
efficiently.

So if you read the following about gabr:

http://www.thedelphigeek.com/

As you have noticed he is using a function called RunInNUMANode(), look
here:

https://docs.google.com/document/d/1dHiJyHj80TJ2oFAOtFxNtXLMrAhzm7F5SoczBl5ssxM/edit#

But i don't think i need this function because my Object Pascal
unit is optimal i think, as i have just explained to you.


You will find my Object Pascal unit called ProcessorGroups.pas
inside the following zip file that you can download from here:

https://sites.google.com/site/aminer68/an-efficient-threadpool-engine-that-scales-well


Look at the test2.pas example to know how to use it.


Thank you,
Amine Moulay Ramdane.

Real Troll

unread,
Jun 22, 2016, 4:19:53 PM6/22/16
to
I thought you were told not to spam these newsgroups with your Object
pascal tools. What is so difficult for you to understand this?
Personally, I don't have any problems with your work because Object
Pascal Code can be used in VS2015 as CLI but people here are obsessed
with everything Microsoft is bad!! I don't use anything other than MS
VS products. Delphi is just too expensive these days.

Ramine

unread,
Jun 22, 2016, 4:29:26 PM6/22/16
to
I have ported other of my works in Object Pascal to C++..

Please look here to my C++ synchronization objects library that is
powerfull:

https://sites.google.com/site/aminer68/c-synchronization-objects-library

And look here. i have just ported from Object Pascal my scalable
Parallel C++ Conjugate Gradient Linear System Solver Library to C++:

https://sites.google.com/site/aminer68/scalable-parallel-c-conjugate-gradient-linear-system-solver-library

I will port soon more of my works to C++...

Ramine

unread,
Jun 22, 2016, 4:32:23 PM6/22/16
to
On 6/22/2016 4:39 AM, Ramine wrote:
> On 6/22/2016 1:19 PM, Real Troll wrote:
>> I thought you were told not to spam these newsgroups with your Object
>> pascal tools. What is so difficult for you to understand this?
>> Personally, I don't have any problems with your work because Object
>> Pascal Code can be used in VS2015 as CLI but people here are obsessed
>> with everything Microsoft is bad!! I don't use anything other than MS
>> VS products. Delphi is just too expensive these days.
>>
>>
>>
>> On 22/06/2016 12:12, Ramine wrote:
>>> Hello....
>>>
>>> I think that my windows Object Pascal Processor Groups unit is optimal
>>> on NUMA systems, because as you will notice in the source code , i am
>>> assigning the mask and the group in a round-robin fashion so that
>>> it distributes NUMA nodes efficiently on threads, so it makes the
>>> threads run optimally on NUMA systems, please read the following from
>>> Microsoft as a confirmation of what i am saying about NUMA nodes:
>>>
>>>
>>
>
>
>
> I have ported other of my works in Object Pascal to C++..
>
> Please look here to my C++ synchronization objects library that is
> powerfull:
>
> https://sites.google.com/site/aminer68/c-synchronization-objects-library


Those are all my algorithms that i have invented.

Chris M. Thomasson

unread,
Jun 22, 2016, 4:37:02 PM6/22/16
to
Why this is marked as abuse? It has been marked as abuse.
Report not abuse
On 6/22/2016 4:42 AM, Ramine wrote:
[...]
>> I will port soon more of my works to C++...
[...]

FWIW, make sure to test the shi% out of them, at least on Relacy:

http://www.viva64.com/en/a/0041
(read all)

Or, ThreadSanitzer:

http://googletesting.blogspot.com/2014/06/threadsanitizer-slaughtering-data-races.html

http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35604.pdf

:^)

Real Troll

unread,
Jun 22, 2016, 4:53:55 PM6/22/16
to

thank you. You now need to change your timezone so that we can find
your posts at the top of our messages. At present they get hidden down
the list because the date/time is incorrect or not calculating correctly.

You are using UTC timezone when in fact you should be using your own.
Are you based in India? Your timezone should be UTC+9.5 or even
UTC+8.5. We in UK are 1 hour ahead so our time is UTC+1

Ramine

unread,
Jun 22, 2016, 4:56:43 PM6/22/16
to
Thank you.

I will correct this soon.

Ramine

unread,
Jun 22, 2016, 5:01:10 PM6/22/16
to
Delphi and FreePascal compilers with wich i am compiling my Dynamic Link
Libraries source codes, don't reorder loads and stores, so that make the
reasonning much easy, other than that my algorithms are not so
difficult, for example my LW_Asym_RWLockX algorithm uses a technic that
looks like seqlock without looping as seqlock, my other algorithm are
more easy also to reason about, so even if i have not used tools such us
relacy, i think that you can be more confident with my C++ library.
0 new messages