tags 491028 patch thanks On Tue, 2008-07-15 at 20:29 -0400, Adam C Powell IV wrote: > Greetings, > > Please add OpenMPI to the existing LAM, MPICH and PVM builds for > scalapack. I would be happy to provide a patch if needed.
With the attached patch, and blacs-openmpi packages according to bug
491105, the scalapack package builds and installs OpenMPI binaries.
The 102 openmpi tests run and pass with the following exceptions:
* xcdblu-openmpi hangs after passing 8 tests
* xcgblu-openmpi hangs after passing 6 tests
* xdgblu-openmpi hangs after passing 6 tests
* xsgblu-openmpi hangs after passing 6 tests
* xsgsep-openmpi hangs after passing (most of?) test 5
* xzsep-openmpi hangs in test one, last output: "On entry to
PZSEPCHK parameter number 19 had an illegal value"
* xcls-openmpi hangs after passing 8 tests
* xzls-openmpi hangs after passing 8 tests
* In testx?qr-openmpi, 32 of 384 tests are skipped
Cheers,
-Adam
--
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools
http://www.opennovation.com/
diff -urN scalapack-1.8.0-2/debian/changelog scalapack-1.8.0/debian/changelog --- scalapack-1.8.0-2/debian/changelog 2008-08-14 11:28:24.000000000 -0400 +++ scalapack-1.8.0/debian/changelog 2008-08-14 12:34:44.000000000 -0400 @@ -1,3 +1,9 @@ +scalapack (1.8.0-3) unstable; urgency=low + + * Added OpenMPI build (closes: #491028). Thanks to Adam Powell + + -- + scalapack (1.8.0-2) unstable; urgency=low * Bumped standards version to 3.7.3. diff -urN scalapack-1.8.0-2/debian/control scalapack-1.8.0/debian/control --- scalapack-1.8.0-2/debian/control 2008-08-14 11:28:24.000000000 -0400 +++ scalapack-1.8.0/debian/control 2008-08-14 12:34:26.000000000 -0400 @@ -3,7 +3,7 @@ Priority: extra Maintainer: Muammar El Khatib <[EMAIL PROTECTED]> Standards-Version: 3.7.3 -Build-Depends: libmpich1.0-dev, lam4-dev (>= 7.1.1-3.2), pvm-dev, blacs-pvm-dev, gfortran, liblapack-dev | liblapack.so.3gf , libblas-dev | libblas.so.3gf, debhelper (>= 5), blacsgf-mpich-dev, blacsgf-lam-dev +Build-Depends: libmpich1.0-dev, lam4-dev (>= 7.1.1-3.2), libopenmpi-dev (>= 1.2.4-5) [i386 amd64 alpha ia64 powerpc sparc], pvm-dev, blacs-pvm-dev, gfortran, liblapack-dev | liblapack.so.3gf , libblas-dev | libblas.so.3gf, debhelper (>= 5), blacsgf-mpich-dev, blacsgf-lam-dev, blacsgf-openmpi-dev Homepage: http://www.netlib.org/scalapack/ Package: scalapack1-mpich @@ -17,15 +17,15 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses MPICH. There - are packages for the shared libraries (this one), for the static + The package is available for OpenMPI, LAM and MPICH. This package uses MPICH. + There are packages for the shared libraries (this one), for the static libraries and the development files and for test programs. . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. Package: scalapack-mpich-dev Architecture: any -Depends: scalapack1-mpich (= ${binary:Version}), blacsgf-mpich-dev, ${shlibs:Depends} +Depends: scalapack1-mpich (= ${binary:Version}), blacsgf-mpich-dev Suggests: scalapack-doc Description: Scalable Linear Algebra Package - Dev. files for MPICH ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type @@ -34,8 +34,8 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses MPICH. There - are packages for the shared libraries, for the static libraries and + The package is available for OpenMPI, LAM and MPICH. This package uses MPICH. + There are packages for the shared libraries, for the static libraries and the development files (this one) and for test programs. . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. @@ -51,8 +51,8 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses MPICH. There - are packages for the shared libraries, for the static libraries and + The package is available for OpenMPI, LAM and MPICH. This package uses MPICH. + There are packages for the shared libraries, for the static libraries and the development files and for test programs (this one). . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. @@ -68,15 +68,15 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses LAM. There - are packages for the shared libraries (this one), for the static + The package is available for OpenMPI, LAM and MPICH. This package uses LAM. + There are packages for the shared libraries (this one), for the static libraries and the development files and for test programs. . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. Package: scalapack-lam-dev Architecture: any -Depends: scalapack1-lam (= ${binary:Version}), lam4-dev, blacsgf-lam-dev (>= 1.1-20), ${shlibs:Depends} +Depends: scalapack1-lam (= ${binary:Version}), lam4-dev, blacsgf-lam-dev (>= 1.1-20) Suggests: scalapack-doc Description: Scalable Linear Algebra Package - Dev. files for LAM ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type @@ -85,8 +85,8 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses LAM. There - are packages for the shared libraries, for the static libraries and + The package is available for OpenMPI, LAM and MPICH. This package uses LAM. + There are packages for the shared libraries, for the static libraries and the development files (this one) and for test programs. . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. @@ -102,12 +102,63 @@ You can choose between an implementation based on MPI or PVM. This package uses MPI. . - The package is available for LAM and MPICH. This package uses LAM. There - are packages for the shared libraries, for the static libraries and + The package is available for OpenMPI, LAM and MPICH. This package uses LAM. + There are packages for the shared libraries, for the static libraries and the development files and for test programs (this one). . Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. +Package: scalapack1-openmpi +Architecture: i386 amd64 alpha ia64 powerpc sparc +Depends: ${shlibs:Depends} +Suggests: scalapack-doc +Description: Scalable Linear Algebra Package - Shared libs. for OpenMPI + ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type + clusters. + . + You can choose between an implementation based on MPI or PVM. This + package uses MPI. + . + The package is available for OpenMPI, LAM and MPICH. This package uses + OpenMPI. There are packages for the shared libraries (this one), for the + static libraries and the development files and for test programs. + . + Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. + +Package: scalapack-openmpi-dev +Architecture: i386 amd64 alpha ia64 powerpc sparc +Depends: scalapack1-openmpi (= ${binary:Version}), libopenmpi-dev, blacsgf-openmpi-dev +Suggests: scalapack-doc +Description: Scalable Linear Algebra Package - Dev. files for OpenMPI + ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type + clusters. + . + You can choose between an implementation based on MPI or PVM. This + package uses MPI. + . + The package is available for OpenMPI, LAM and MPICH. This package uses + OpenMPI. There are packages for the shared libraries, for the static libraries + and the development files (this one) and for test programs. + . + Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. + +Package: scalapack-openmpi-test +Architecture: i386 amd64 alpha ia64 powerpc sparc +Depends: scalapack-test-common, ${shlibs:Depends} +Suggests: scalapack-doc +Description: Scalable Linear Algebra Package - Test files for OpenMPI + ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type + clusters. + . + You can choose between an implementation based on MPI or PVM. This + package uses MPI. + . + The package is available for OpenMPI, LAM and MPICH. This package uses + OpenMPI. There are packages for the shared libraries, for the static libraries + and the development files and for test programs (this one). + . + Also included: PBLAS, Parallel Basic Linear Algebra Subprograms. + Package: scalapack1-pvm Architecture: any Depends: ${shlibs:Depends} @@ -126,7 +177,7 @@ Package: scalapack-pvm-dev Architecture: any -Depends: scalapack1-pvm (= ${binary:Version}), blacs-pvm-dev, pvm-dev, ${shlibs:Depends} +Depends: scalapack1-pvm (= ${binary:Version}), blacs-pvm-dev, pvm-dev Suggests: scalapack-doc Description: Scalable Linear Algebra Package - Dev. files for PVM ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type @@ -158,7 +209,7 @@ Package: scalapack-test-common Architecture: all -Suggests: scalapack-lam-test | scalapack-mpich-test | scalapack-pvm-test +Suggests: scalapack-lam-test | scalapack-openmpi-test | scalapack-mpich-test | scalapack-pvm-test Description: Test data for ScaLAPACK testers ScaLAPACK is the parallel version of LAPACK and is used on Beowulf type clusters. diff -urN scalapack-1.8.0-2/debian/rules scalapack-1.8.0/debian/rules --- scalapack-1.8.0-2/debian/rules 2008-08-14 11:28:24.000000000 -0400 +++ scalapack-1.8.0/debian/rules 2008-08-14 12:34:26.000000000 -0400 @@ -11,12 +11,15 @@ topdir=$(shell pwd) +export openmpiPACKAGES=-pscalapack-openmpi1 -pscalapack-openmpi-dev -pscalapack-openmpi-test export lamPACKAGES=-pscalapack-lam1 -pscalapack-lam-dev -pscalapack-lam-test export mpichPACKAGES=-pscalapack-mpich1 -pscalapack-mpich-dev \ -pscalapack-mpich-test export pvmPACKAGES=-pscalapack-pvm1 -pscalapack-pvm-dev -pscalapack-pvm-test -build: build-lam build-mpich build-pvm +build: build-openmpi build-lam build-mpich build-pvm + +build-openmpi: build-stamp-openmpi build-lam: build-stamp-lam @@ -24,6 +27,41 @@ build-pvm: build-stamp-pvm +build-stamp-openmpi: + dh_testdir + if [ -e /usr/lib/openmpi/include/mpi.h ]; then \ + echo *** cleaning object files ***; \ + BASEDIR=$(topdir) make clean; \ + echo *** building shared libraries for openmpi ***; \ + BASEDIR=$(topdir) MPI=openmpi FPIC=-fPIC make lib; \ + mkdir -p tmp; \ + set -e ;\ + for i in scalapack ; do \ + cd tmp ;\ + ar x ../$${i}_openmpi.a ;\ + cd .. ;\ + gcc -shared -Wl,-soname=lib$$i-openmpi.so.$(version_major) -o \ + lib$$i-openmpi.so.$(version) tmp/*.o -lblas-3gf -llapackgf-3 -lblacsCinit-openmpi -lblacs-openmpi -L/usr/lib/openmpi/lib -lmpi -lgfortran;\ + ln -snf lib$$i-openmpi.so.$(version) lib$$i-openmpi.so.$(version_major) ;\ + ln -snf lib$$i-openmpi.so.$(version_major) lib$$i-openmpi.so ;\ + rm tmp/* ;\ + done; \ + rmdir tmp; \ + echo *** building static testing binaries for openmpi ***; \ + BASEDIR=$(topdir) MPI=openmpi BUILD=shared make exe; \ + set -e ;\ + cd TESTING ;\ + for i in $$(find -name 'x*' -maxdepth 1); do \ + mv $$i $$i-openmpi ;\ + done; \ + cd $(topdir); \ + echo *** cleaning object files ***; \ + BASEDIR=$(topdir) make clean; \ + echo *** building static libraries for openmpi ***; \ + BASEDIR=$(topdir) MPI=openmpi make lib; \ + fi + touch build-stamp-openmpi + build-stamp-lam: dh_testdir @@ -59,7 +97,7 @@ BASEDIR=$(topdir) MPI=lam BUILD=shared make exe set -e ;\ cd TESTING ;\ - for i in $$(find -name 'x*' -maxdepth 1); do \ + for i in $$(find -name 'x*' -maxdepth 1 ! -name 'x*-openmpi'); do \ mv $$i $$i-lam ;\ done @@ -102,7 +140,7 @@ BASEDIR=$(topdir) MPI=mpich BUILD=shared make exe set -e ;\ cd TESTING ;\ - for i in $$(find -name 'x*' -maxdepth 1 ! -name 'x*-lam'); do \ + for i in $$(find -name 'x*' -maxdepth 1 ! -name 'x*-openmpi' ! -name 'x*-lam'); do \ mv $$i $$i-mpich ;\ done @@ -145,7 +183,7 @@ BASEDIR=$(topdir) MPI=pvm BUILD=shared make exe set -e ;\ cd TESTING ;\ - for i in $$(find -name 'x*' -maxdepth 1 ! -name 'x*-lam' ! -name 'x*-mpich'); do \ + for i in $$(find -name 'x*' -maxdepth 1 ! -name 'x*-openmpi' ! -name 'x*-lam' ! -name 'x*-mpich'); do \ mv $$i $$i-pvm ;\ done @@ -176,7 +214,7 @@ # done dh_clean -install: install-dirs install-mpich install-lam install-pvm +install: install-dirs install-openmpi install-lam install-mpich install-pvm install-dirs: install-dirs-stamp @@ -188,12 +226,33 @@ touch install-dirs-stamp +install-openmpi: install-stamp-openmpi + install-lam: install-stamp-lam install-mpich: install-stamp-mpich install-pvm: install-stamp-pvm +install-stamp-openmpi: build-stamp-openmpi + dh_testdir + if [ -e /usr/lib/openmpi/include/mpi.h ]; then \ + dh_testroot; \ + set -e ;\ + for i in scalapack ; do \ + install lib$$i-openmpi.so.$(version) \ + `pwd`/debian/scalapack1-openmpi/usr/lib/lib$$i-openmpi.so.$(version) ;\ + done; \ + install TESTING/x*-openmpi \ + `pwd`/debian/scalapack-openmpi-test/usr/lib/scalapack; \ + set -e ;\ + for i in scalapack ; do \ + install $${i}_openmpi.a \ + `pwd`/debian/scalapack-openmpi-dev/usr/lib/lib$$i-openmpi.a ;\ + done; \ + fi + touch install-stamp-openmpi + install-stamp-lam: build-stamp-lam dh_testdir dh_testroot @@ -269,7 +328,7 @@ dh_strip dh_makeshlibs -V dh_installdeb - dh_shlibdeps -L scalapack1-pvm -l debian/scalapack1-pvm/usr/lib -L scalapack1-lam -l debian/scalapack1-lam/usr/lib -L scalapack1-mpich -l debian/scalapack1-mpich/usr/lib + dh_shlibdeps -L scalapack1-pvm -l debian/scalapack1-pvm/usr/lib -L scalapack1-openmpi -l debian/scalapack1-openmpi/usr/lib -L scalapack1-lam -l debian/scalapack1-lam/usr/lib -L scalapack1-mpich -l debian/scalapack1-mpich/usr/lib dh_gencontrol dh_md5sums dh_builddeb diff -urN scalapack-1.8.0-2/debian/scalapack1-openmpi.dirs scalapack-1.8.0/debian/scalapack1-openmpi.dirs --- scalapack-1.8.0-2/debian/scalapack1-openmpi.dirs 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack1-openmpi.dirs 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1 @@ +usr/lib diff -urN scalapack-1.8.0-2/debian/scalapack1-openmpi.links scalapack-1.8.0/debian/scalapack1-openmpi.links --- scalapack-1.8.0-2/debian/scalapack1-openmpi.links 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack1-openmpi.links 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1 @@ +usr/lib/libscalapack-openmpi.so.1.8.0 usr/lib/libscalapack-openmpi.so.1 diff -urN scalapack-1.8.0-2/debian/scalapack1-openmpi.postinst scalapack-1.8.0/debian/scalapack1-openmpi.postinst --- scalapack-1.8.0-2/debian/scalapack1-openmpi.postinst 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack1-openmpi.postinst 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ]; then + ldconfig +fi + +#DEBHELPER# diff -urN scalapack-1.8.0-2/debian/scalapack-openmpi-dev.dirs scalapack-1.8.0/debian/scalapack-openmpi-dev.dirs --- scalapack-1.8.0-2/debian/scalapack-openmpi-dev.dirs 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack-openmpi-dev.dirs 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1 @@ +usr/lib diff -urN scalapack-1.8.0-2/debian/scalapack-openmpi-dev.links scalapack-1.8.0/debian/scalapack-openmpi-dev.links --- scalapack-1.8.0-2/debian/scalapack-openmpi-dev.links 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack-openmpi-dev.links 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1 @@ +usr/lib/libscalapack-openmpi.so.1 usr/lib/libscalapack-openmpi.so diff -urN scalapack-1.8.0-2/debian/scalapack-openmpi-test.dirs scalapack-1.8.0/debian/scalapack-openmpi-test.dirs --- scalapack-1.8.0-2/debian/scalapack-openmpi-test.dirs 1969-12-31 19:00:00.000000000 -0500 +++ scalapack-1.8.0/debian/scalapack-openmpi-test.dirs 2008-08-14 12:34:26.000000000 -0400 @@ -0,0 +1 @@ +usr/lib/scalapack diff -urN scalapack-1.8.0-2/SLmake.inc scalapack-1.8.0/SLmake.inc --- scalapack-1.8.0-2/SLmake.inc 2008-08-14 11:28:24.000000000 -0400 +++ scalapack-1.8.0/SLmake.inc 2008-08-14 12:34:26.000000000 -0400 @@ -33,15 +33,30 @@ # # MPI setup; tailor to your system if using MPIBLACS # +ifeq ($(MPI),openmpi) +USEMPI = -DUsingMpiBlacs +ifeq ($(BUILD),static) +SMPLIB = -L/usr/lib/openmpi/lib/ -lmpi -lmpi_f77 +BLACSFINIT = /usr/lib/libblacsF77init-openmpi.a +BLACSCINIT = /usr/lib/libblacsCinit-openmpi.a +BLACSLIB = /usr/lib/libblacs-openmpi.a +else +SMPLIB = -L/usr/lib/openmpi/lib/ -lmpi -lmpi_f77 +BLACSFINIT = -lblacsF77init-openmpi +BLACSCINIT = -lblacsCinit-openmpi +BLACSLIB = -lblacs-openmpi +endif +TESTINGdir = $(home)/TESTING +endif ifeq ($(MPI),lam) USEMPI = -DUsingMpiBlacs ifeq ($(BUILD),static) -SMPLIB = -lmpi +SMPLIB = -L/usr/lib/lam/lib -lmpi BLACSFINIT = /usr/lib/libblacsF77init-lam.a BLACSCINIT = /usr/lib/libblacsCinit-lam.a BLACSLIB = /usr/lib/libblacs-lam.a else -SMPLIB = -lmpi +SMPLIB = -L/usr/lib/lam/lib -lmpi BLACSFINIT = -lblacsF77init-lam BLACSCINIT = -lblacsCinit-lam BLACSLIB = -lblacs-lam @@ -56,7 +71,7 @@ BLACSCINIT = /usr/lib/libblacsCinit-mpich.a BLACSLIB = /usr/lib/libblacs-mpich.a else -SMPLIB = /usr/lib/mpich/lib/libmpich.a +SMPLIB = -L/usr/lib/mpich/lib/shared -lmpich BLACSFINIT = -lblacsF77init-mpich BLACSCINIT = -lblacsCinit-mpich BLACSLIB = -lblacs-mpich
signature.asc
Description: This is a digitally signed message part

