PGI Fortran90+MPICH install questions on Scyld
Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.
Florent Calvayrac fcalvay at aviion.univ-lemans.frWed Oct 10 02:22:08 PDT 2001
- Previous message: PGI Fortran90+MPICH install questions on Scyld
- Next message: intel e100 driver howto
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi just make sure you recompile the source of the modified mpich1.2 given on Scyld's ftp site (beompi... according to your version of Beowulf2) do it twice with different installation prefixes to get an mpicc using gcc and mpif90 using pgf90 (else, there is always a simple or double underscore problem one way or another). I include a modified Makefile for beompi-1.0.14 below : -- Florent Calvayrac | Tel : 02 43 83 26 26 Laboratoire de Physique de l'Etat Condense | Fax : 02 43 83 35 18 UMR-CNRS 6087 | http://www.univ-lemans.fr/~fcalvay Universite du Maine-Faculte des Sciences | 72085 Le Mans Cedex 9 -------------- next part -------------- # beompi -- wrapper package to build and patch MPICH for Beowulf # # versioning information # PKG_NAME = beompi VERSION = 1 PATCHLEVEL = 0.14 BUILD_DATE = $(shell date +%D) AUTHOR = "newt at scyld.com - modified for pgf90 by Florent.Calvayrac at univ-lemans.fr" # # installation directories # USRDIR = /usr/local BINDIR = $(USRDIR)/bin LIBDIR = $(USRDIR)/lib INCDIR = $(USRDIR)/include MANDIR = $(USRDIR)/man # # build-time helper directories # MPP_LDFLAGS = # place a '-L' here for non-standard mpprun libs MPP_BUILDDIR = # place a dirname here to have mpi build mpprun # top of build dir TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) .EXPORT_ALL_VARIABLES: all: mpich-1.2.0 mpprun .unpack: contrib_sources/mpich.tar.gz # unpack distribution sources from ANL tar -xvzf $^ mv mpich-1.2.0/mpid/server mpich-1.2.0/mpid/server.unused touch .unpack .patch: .unpack # add the beowulf90 patches cd mpich-1.2.0 && patch -p1 < $(TOPDIR)/patches/beowulf-mpich.patch cd mpich-1.2.0/mpid/ch_p4 && patch -p1 < $(TOPDIR)/patches/beowulf-ch.patch cd mpich-1.2.0/mpid/ch_p4/p4 && patch -p1 < $(TOPDIR)/patches/beowulf-p4.patch cd mpich-1.2.0/mpid/ch_p4/p4 && patch -p1 < $(TOPDIR)/patches/beowulf-p4-sigint.patch touch .patch mpich-1.2.0: .patch cd mpich-1.2.0/ && BINDIR="" LIBDIR="" ./configure -opt=-O2 -f90="pgf90" -fc="pgf77" --with-device=ch_p4 --lib=-lbproc -rsh=/bin/true cd mpich-1.2.0/ && BINDIR="" LIBDIR="" make mpprun: dummy if [ -n "$(MPP_BUILDDIR)" ] ; then $(MAKE) -C $(MPP_BUILDDIR) ; fi mpirun-stub.o: dummy install: install-mpich mpprun mpirun-stub.o if [ -n "$(MPP_BUILDDIR)" ] ; then $(MAKE) -C $(MPP_BUILDDIR) install ; fi # # C libraries, static and dynamic ld -L/usr/lib -shared -soname libmpi.so.1 -lbproc $(MPP_LDFLAGS) -lmpirun --whole-archive -L$(USRDIR)/mpi-beowulf90/lib -lmpich -lslog -defsym getarg_=1 -defsym f__xargc=1 mpirun-stub.o -o $(LIBDIR)/libmpi.so ld -L/usr/lib -Bstatic -i -lbproc --whole-archive $(MPP_LDFLAGS) -lmpirun -L$(USRDIR)/mpi-beowulf90/lib -lmpich -lslog -defsym getarg_=1 -defsym f__xargc=1 -o $(LIBDIR)/libmpi.a # # Fortran libraries, static and dynamic ld -L/usr/lib -shared -soname libmpif.so.1 -lbproc $(MPP_LDFLAGS) -lmpirun --whole-archive -L$(USRDIR)/mpi-beowulf90/lib -lmpich mpirun-stub.o -o $(LIBDIR)/libmpif.so ld -L/usr/lib -Bstatic -i -lbproc --whole-archive $(MPP_LDFLAGS) -lmpirun -L$(USRDIR)/mpi-beowulf90/lib -lmpich -o $(LIBDIR)/libmpif.a install-mpich: mpich-1.2.0 # clean out the old stuff rm -rf $(USRDIR)/mpi-beowulf90 # install the base system cd mpich-1.2.0 && PREFIX=$(USRDIR)/mpi-beowulf90 make -e install # whip up the installation copy of the header rm -rf $(INCDIR)/mpi-beowulf90 mkdir $(INCDIR)/mpi-beowulf90 cp -R $(USRDIR)/mpi-beowulf90/include/*.h $(INCDIR)/mpi-beowulf90 cp -R $(USRDIR)/mpi-beowulf90/include/c++ $(INCDIR)/mpi-beowulf90/ find $(INCDIR)/mpi-beowulf90 -name '*.h' -exec sh -c 'echo -e ",s/#include[[:space:]]*\"/#include <mpi-beowulf90\//g\n,s/[.]h\"/.h>/g\nw" | ed {}' \; if [ -f $(INCDIR)/mpi.h ] ; then mv -f $(INCDIR)/mpi.h $(INCDIR)/mpi.h.old ; fi if [ -f $(INCDIR)/mpif.h ] ; then mv -f $(INCDIR)/mpif.h $(INCDIR)/mpif.h.old ; fi ln -s $(INCDIR)/mpi-beowulf90/mpi.h $(INCDIR)/mpi.h ln -s $(INCDIR)/mpi-beowulf90/mpif.h $(INCDIR)/mpif.h # copy the man pages into the right directories cp -ap mpich-1.2.0/man/man1/* $(MANDIR)/man1 cp -ap mpich-1.2.0/man/man3/* $(MANDIR)/man3 cp -ap mpich-1.2.0/man/man4/* $(MANDIR)/man4 rm -rf $(USRDIR)/mpi-beowulf90/man clean: # clean out out stubs rm -f *.[oas] # clean out our freindly packages. if [ -n "$(MPP_BUILDDIR)" ] ; then $(MAKE) -C $(MPP_BUILDDIR) clean ; fi # whack unfreindly packages rm -rf mpich-1.2.0 rm -f .unpack rm -f .patch release: clean cvs commit -m "see README" && cvs rtag ${PKG_NAME}-release-"${VERSION}-`echo ${PATCHLEVEL} | tr . - `" ${PKG_NAME} dummy:
- Previous message: PGI Fortran90+MPICH install questions on Scyld
- Next message: intel e100 driver howto
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Beowulf mailing list
