Peter Davies 0 Posted April 1, 2020 Hi, We have recently started using the OmniThreadLibrary in our software to increase our scalability. It is showing great signs of doing this so far. We have today hit a major snag however. We tried running the code on a 96vCPU machine with 360+ GB of memory... The simple loop we are trying to create fails at the first hurdle with a 'Range Check Error', I traced this to the FNumTasks assignment. I can try and code around that but the loop then doesn't execute. Any clues? I can get an example up later if required. Thanks in advance, -- Peter. Share this post Link to post
David Heffernan 2345 Posted April 1, 2020 Is it 96 cpus, or 48 with 2 threads per core? Is the memory NUMA? Share this post Link to post
Peter Davies 0 Posted April 1, 2020 Hi, It is 48 with 2 threads per core AWS Virtual Machine, m5a.24xlarge as specified here: AWS Specs Thanks, -- Peter. Share this post Link to post
David Heffernan 2345 Posted April 1, 2020 Don't try to use more than 48 threads in that case Share this post Link to post
Peter Davies 0 Posted April 1, 2020 3 hours ago, David Heffernan said: Don't try to use more than 48 threads in that case Happens with Just 15... I'll get some code up tomorrow. -- Peter. Share this post Link to post
Peter Davies 0 Posted April 2, 2020 Well, this is weird... So I put together a test application to post... And it works... we must be pulling in something which is redefining an API call or something... I'll update if/when I find anything... -- Peter. Share this post Link to post
Peter Davies 0 Posted April 2, 2020 OK, so just changed line 3755 of OtlCommon.pas to: affMask: NativeUInt; instead of: affMask: DWORD; and it's off and running... This has to be a bug no? -- Peter. Share this post Link to post
David Heffernan 2345 Posted April 2, 2020 Affinity masks for pointer sized. Share this post Link to post
Peter Davies 0 Posted April 2, 2020 17 minutes ago, David Heffernan said: Affinity masks for pointer sized. I'm sorry but I don't understand? affMask receives the Result of 'Mask' which returns 'NativeUInt' not DWORD.... -- Peter. Share this post Link to post
David Heffernan 2345 Posted April 2, 2020 I mean that this thing is named as though it is an affinity mask. And on Windows that makes it pointer sized. So, NativeUInt. Share this post Link to post
Peter Davies 0 Posted April 3, 2020 15 hours ago, David Heffernan said: I mean that this thing is named as though it is an affinity mask. And on Windows that makes it pointer sized. So, NativeUInt. So you are agreeing that it should be NativeUInt not DWORD 😄 Share this post Link to post
David Heffernan 2345 Posted April 3, 2020 Yes, if it is an affinity mask then it should be NativeUInt. Share this post Link to post