[Pkg-openmpi-maintainers] Bug#376833: Bug#376833: Next steps

Adam C Powell IV hazelsct at debian.org
Wed Mar 19 13:19:22 UTC 2008


On Tue, 2008-03-18 at 11:10 -0500, Dirk Eddelbuettel wrote:
> Hi Jeff et al,
> 
> Thanks for the follow-up!  Lots of good points raised, I'll try to reply 'in
> full' and apologize in advance for the length of the email.
> 
> On 18 March 2008 at 08:58, Jeff Squyres wrote:
> | On Mar 11, 2008, at 4:51 AM, Adam C Powell IV wrote:
> | 
> | >> [ Jeff/Tim: This is about the outstanding Debian bug report(s)  
> | >> regarding the
> | >> architectures without atomic ops -- where we cannot build Open MPI.  
> | >> It has
> | >> been suggested in the past to try libatomic-ops-dev which seems to  
> | >> lack one
> | >> or two instructions needed by Open Mpi ]
> | 
> | Good context; thanks.
> | 
> | >> On 8 March 2008 at 09:12, Adam C Powell IV wrote:
> | >> | Hi Dirk,
> | >> |
> | >> | I'm afraid I don't have a lot of time just now, but to me next  
> | >> steps
> | >> | seem like:
> | >> |      1. Install libatomic-ops-dev.
> | >> |      2. Try building openmpi without the included atomic ops and  
> | >> with
> | >> |         this lib.
> | >> |      3. If it works, great!  If it doesn't, try to adjust the calls
> | >> |         and/or ask on the openmpi mailing list.
> | >> |      4. If they suggest a workaround, great!  If not, wishlist
> | >> |         libatomic-ops-dev to add the needed functionality.
> | >> |      5. When everything works, push the change upstream.
> | >> |
> | >> | If you don't get to it first, I can do 1-2 in about 2-3 weeks...
> | >>
> | >> Do you have access to any of the missing arches without atomic ops  
> | >> from
> | >> upstream?
> | >
> | > No, but if it works on the existing arches, it should work on the
> | > missing ones, right?  Furthermore, if the ops happen to be the same,
> | > what's to say upstream didn't get them from this lib in the first  
> | > place?
>  
> | >> Or are you in fact suggesting that supplant what upstream has with
> | >> libatomic-ops-dev?  I would hesitate a great before doing that -- I  
> | >> tend to
> | >> trust upstream in these matters.
> | >
> | > That's fair.  On the other hand, it can't hurt to try it, and we  
> | > have a
> | > good bit of time now for users to test it before the lenny release.   
> | > If
> | > nothing else, it's worth giving it a go in experimental.  As I said,  
> | > if
> | > you don't get it to it in a couple of weeks, I'll give it a go.
> | 
> | I'm afraid I know nothing about libatomic-ops-dev -- I did a few quick/ 
> | lame google searches and couldn't turn up a home page for this project  
> | (including on debian.org).  Could someone point me in the right  
> | direction?
> | 
> | We can investigate it and see if it meets our needs.

Unless upstream has the resources and interest to do this, I think it's
our job in Debian to give it a try first, and then send a patch upstream
(with appropriate configure test) if it works.

Unfortunately, I'm a bit over my head here, because I don't know any
assembly (at least nothing more recent than the 6502 family, but I'm
dating myself).  And if the OpenMPI assembly person left the team, it's
hard to see upstream doing this for us.

Riku, you mentioned in a previous post to this bug that most of the
definitions in OpenMPI's atomic-powerpc32-linux.s have counterparts in
libatomic-ops-dev.  I see some similarities, but have to poke around
quite a bit; for example, opal/class/opal-atomic-lifo.h seems to
indicate that cmpset is compare-and-swap, though it sounds more like
test-and-set.  Also, OpenMPI requires that the arguments be 32-bit (for
architecture interoperability?); libatomic-ops uses AO_t which appears
to be the native integer width on the architecture.

At first glance, this doesn't look straightforward, and it's certainly
beyond my abilities...

The good news is opal_sys_timer_get_cycles (the one you identified as
missing from libatomic-ops) looks relatively easy to duplicate for the
other arches.

Thanks,
-Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/







More information about the Pkg-openmpi-maintainers mailing list