Ticket #8537 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

Update Open MPI package to latest - Sage version is 3 years old!

Reported by: drkirkby Owned by: tbd
Priority: major Milestone: sage-4.6.2
Component: packages: optional Keywords:
Cc: Work issues:
Report Upstream: N/A Reviewers: Volker Braun
Authors: Stefan Reiterer Merged in:
Dependencies: Stopgaps:

Description (last modified by vbraun) (diff)

Sage has an Open MPI optional package, which uses version 1.1.4 of Open MPI. This was released on Jan 30, 2007, so is more than 3 years old. It fails to build on Solaris - see #8522.

The optional package is very different to most other Sage packages, which shows its age.

  • No SPKG.txt
  • No Mercurial repository
  • Sources sit in top-level directory, not in a 'src' subdirectory.

I'll create a package based on the latest version of Open MPI, which is version 1.4.1, which was released 15th January 2010.

Update: A new spkg can be found under  http://www.stp.dias.ie/~vbraun/Sage/spkg/openmpi-1.4.3.spkg

Attachments

spkg-install Download (879 bytes) - added by maldun 2 years ago.
current spkg install
spkg-install.2 Download (942 bytes) - added by maldun 2 years ago.
new spkg-install for reference

Change History

comment:1 Changed 3 years ago by was

  • Status changed from new to closed
  • Resolution set to duplicate

This is a dup of #8455, as a search for "update mpi" in trac shows.

comment:2 Changed 3 years ago by mhansen

  • Status changed from closed to new
  • Resolution duplicate deleted

Actually, #8455 is for MPIR and not MPI :-)

comment:3 Changed 3 years ago by mhansen

From wstein:

I think the builds options are relevant to building the optional sage spkg that depends on mpi, namely mpi4py. If somebody updates openmpi, they might make sure mpi4py also works with the new version.

comment:4 Changed 3 years ago by drkirkby

I've created a ticket to update mpi4py - #8538, as that is very old too. I'll try to test the two packages together.

The old version of openmpi used these configure options:

./configure --prefix="$SAGE_LOCAL" --with-f90-max-array-dim=0 --disable-mpi-f77 
--disable-mpi-f90 --with-mpi-f90-size=trivial

I'll look as whether these are all needed, as both openmpi and mpi4py are several years old.

Dave

comment:5 Changed 2 years ago by maldun

  • Status changed from new to needs_info

Since I need mpi4py for a seminar and the current version didn't build on our multigpu machine, I had an urge to update openmpi and mpi4py.

The new package can be found under  http://code.google.com/p/spkg-upload/downloads/detail?name=openmpi-1.4.3.spkg and is tested on ubuntu 10.04

Remark: Before Install one has to remove other installations of openmpi or else get troubles. The current spkg install holds a lot of remove statements a better solution would be great. Also one has to update mpi4py.

Changed 2 years ago by maldun

current spkg install

comment:6 Changed 2 years ago by maldun

  • Authors set to Stefan Reiterer

comment:7 Changed 2 years ago by maldun

  • Milestone changed from sage-4.6.1 to sage-4.6.2

comment:8 follow-up: ↓ 9 Changed 2 years ago by vbraun

Thanks for updating everything!

I think you should be using rm -f to delete the old versions. The current spkg-install will fail to install if you don't already have the old openmpi lying around.

You should always use $MAKE because somebody might have set MAKE=/path/gnu-make or so. Do you need to disable parallel make? Then set MAKE="$MAKE -j 1"

Does mpi4py or anything else need the fortran API? If no, why not disable it in the configure. If yes, is there any way we can make it call sage_fortran as the compiler?

comment:9 in reply to: ↑ 8 Changed 2 years ago by maldun

  • Status changed from needs_info to needs_review
  • Description modified (diff)

Replying to vbraun:

Thanks for updating everything!

I think you should be using rm -f to delete the old versions. The current spkg-install will fail to install if you don't already have the old openmpi lying around.

You should always use $MAKE because somebody might have set MAKE=/path/gnu-make or so. Do you need to disable parallel make? Then set MAKE="$MAKE -j 1"

Does mpi4py or anything else need the fortran API? If no, why not disable it in the configure. If yes, is there any way we can make it call sage_fortran as the compiler?

Thanks for all the information!

I changed everything to your advices. rm worked without -f but I added it just to be sure. Also found an unnecessary rm statement. The fortran things were already outcommented but I removed them completely, to avoid confusion. I upload a the new spkg-install to see the difference

Changed 2 years ago by maldun

new spkg-install for reference

comment:10 follow-up: ↓ 11 Changed 2 years ago by vbraun

  • Reviewers set to Volker Braun

Nice! Functionality-wise it is all good. But would you mind filling in the SPKG.txt according to the template in the developer manual? See

http://www.sagemath.org/doc/developer/producing_spkgs.html#the-file-spkg-txt

That'll give us a place to record future changes etc. You could also add .*~ to the .hgignore so that mercurial doesn't complain about emacs backup files.

Best wishes, Volker

comment:11 in reply to: ↑ 10 Changed 2 years ago by maldun

  • Description modified (diff)

Replying to vbraun:

Nice! Functionality-wise it is all good. But would you mind filling in the SPKG.txt according to the template in the developer manual? See

http://www.sagemath.org/doc/developer/producing_spkgs.html#the-file-spkg-txt

That'll give us a place to record future changes etc. You could also add .*~ to the .hgignore so that mercurial doesn't complain about emacs backup files.

Best wishes, Volker

OK something went wrong with the SPKG.txt when packing, perhaps I deleted it accidentally or something else went wrong. In addition I can't upload the new version on the spkg-upload site...

You can download the corrected version now under:  http://computational-sage.googlecode.com/files/openmpi-1.4.3.spkg

I hope everything is now correct, and thanks for the hint with the .hgignore!

Cheers, Stefan

comment:12 Changed 2 years ago by vbraun

  • Status changed from needs_review to positive_review

Looks great!

comment:13 Changed 2 years ago by vbraun

  • Description modified (diff)

I just tested in on Solaris and the export + set variable construct seems to be a bash-ism and not portable to other shells:

$ export MAKE="$MAKE -j 1"
MAKE= -j 1: is not an identifier
$ MAKE="$MAKE -j 1"
$ export MAKE

The best fix is to change the first line of spkg-install to

#!/usr/bin/env bash

Almost all spkgs use that anyways.

I've made that change to the openmpi spkg and put the result here:

 http://www.stp.dias.ie/~vbraun/Sage/spkg/openmpi-1.4.3.spkg

Since thats a minor change I'll leave it as positive review.

For the record, compile still fails on Solaris (as with the previous version). This issue is tracked in #8522: Optional package openmpi-1.1.4 fails to install on Solaris 10 SPARC

comment:14 Changed 2 years ago by jdemeyer

  • Status changed from positive_review to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.