Open MPI logo

Hardware Locality Users' Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Users mailing list

Subject: Re: [hwloc-users] Problems on SMP with 48 cores
From: Samuel Thibault (samuel.thibault_at_[hidden])
Date: 2012-03-14 06:02:18


Hartmut Kaiser, le Tue 13 Mar 2012 17:04:53 +0100, a écrit :
>
> > > But the problems I was seeing were not MSVC specific. It's a
> > > proliferation of arcane (non-POSIX) function use (like strcasecmp,
> > > etc.) missing use of HAVE_UNISTD_H, HAVE_STRINGS_H to wrap
> > > non-standard headers, unsafe mixing of
> > > int32<->int64 data types, reliance on int (and other types) having a
> > > certain bit-size, totally unsafe shift operations, wide use of
> > > (non-C-standard) gcc extensions, etc. Should I go on?
>
> More investigation shows that the code currently assumes group (and
> processor) masks to be 32 bit, which is not true on 64 bit systems. For
> instance this (topology-windows.c: line 643):
>
> hwloc_bitmap_from_ith_ulong(obj->cpuset, GroupMask[i].Group,
> GroupMask[i].Mask);
>
> fails as GroupMask[i].Mask is a 64 bit value.

Btw, how does mask vs group work in 32bit programs on a 64bit system?
AIUI, processor groups are system-wide partitions, and on 64bit systems
they would be able to contain as many as 64 processors, but how are
these expressed to 32bit programs running on a 64bit Windows?

Samuel