We have a 40 Core DL580, 4 sockets, Westmere Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, with Hyperthreading activated Windows Server 2008 Entreprise R2 sees 80 "logical processors". Windows splits these 80 "logical processors" into two groups of 40 "logical processors" (see http://msdn.microsoft.com/en-us/library/windows/desktop/dd405503(v=vs.85).aspx ).
When testing our fortran 90 calculation kernel which uses OpenMP to parallelize, we see that on that machine Windows only schedules on up to 40 threads, not 80. On a machine with up to 64 "logical processors", we are able to use them all since only one group is created under Windows. When testing on the same machine with Linux, we are able to use 80 threads.
Are there commands available from Intel Fortran or from OpenMP to allow the process to be scheduled over the two process groups to be able to access the full power of the windows server?