[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OMPI devel] Build failures of 1.2.3 on Debian hppa, mips, mipsel, s390, m68k

On Sat, Jul 14, 2007 at 10:47:52AM -0600, Brian Barrett wrote:
> Open MPI uses some assembly for things like atomic locks, atomic  
> compare and swap, memory barriers, and the like.
> We don't currently have support for a non-assembly code path.  We  
> originally planned on having one, but the team went away from that  
> route over time and there's no way to build Open MPI without assembly  
> support right now.

Hi Brian,

PA-RISC (aka hppa) has only two atomic instructions -- load and clear
word and load and clear doubleword (ie 32-bit and 64-bit -- and the
latter is available only on 64-bit platforms).  In addition, the address
of the word/dword must be 32-byte aligned [1].

This makes implementing atomic functionality "interesting", to say
the least.  Carlos O'Donell has implemented some kernel helper routines
to aide this, but that would tie the implementation to linux -- I don't
know if you care to support HPUX or not.

If you can implement a non-assembly codepath in terms of POSIX
constructs, that would be enormously helpful, albeit somewhat
slower on some architectures.  Another non-assembly approach which
might be of interest would be to use the functions documented here:
This sounds like it would match your requirements somewhat better.

[1] This is according to the architecture specifications.  In terms of
implementations, the restriction is relaxed on more recent processors.

"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

Reply to: