PVM++: A C++-Library for PVM
This library provides an easy way to program the widely used parallel
programming library PVM,
which works in homogenous and heterogenous network environments.
Table of ContentsFeatures
DownloadDownload the latest version pvm++-0.6.0.tar.gz (201 KiB). See below for older versions and the differences between them. News2002-01-24:
2001-11-19:
2001-09-13:
2001-06-27: pvm++-0.6.0.tar.gz (201 KiB)
2001-02-01: pvm++-0.5.1.tar.gz (165 KiB)
2001-01-25: pvm++-0.5.0.tar.gz (156 KiB)
2000-02-11: pvm++-0.4.6.tar.gz (149 KiB)
2000-01-05:
1999-12-03:
1999-11-03: pvm++-0.4.5.tar.gz (163 KiB)
1998-06-03: pvm++-0.4.4.tar.gz (111 KiB)
1998-03-02: pvm++-0.4.3.tar.gz (106 KiB)
1998-02-09: pvm++-0.4.2.tar.gz (94 KiB)
1998-02-06: pvm++-0.4.1.tar.gz (94 KiB)
1998-01-30: pvm++-0.4.tar.gz (89 KiB)
LicenseThis library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. InstallationYou must have PVM3.3 or PVM3.4 installed on your machine. Then the installation should be fairly easy on all UN*X platforms. You just have to do: gunzip pvm++-0.6.0.tar.gz tar xvf pvm++-0.6.0.tar cd pvm++-0.6.0 ./configure make make install It should compile with egcs-1.0 or later and ggc-2.95 or later. Older versions of gcc might work, but I can not test that. If you do not want to have debug-info included in the library, you should set the environment variable CXXFLAGS to something without -g, i.e. you could do: ... env CXXFLAGS=-O2 ./configure ... On i386-pc-linux-gnu the (shared) library with debug-info has 1.6MB, whereas the version without it only has 182KB! The stripped version eventually only has 156KB (whether compiled with or without debug-info). NOTE: (HP-UX)If you're working on an HP-UX system, you have to make sure, that you have a proper sed(1) (e.g. GNU sed) installed! The program libtool, which handles the compilation of shared libraries for PVM++ needs this, as "the vendor-distributed HP-UX sed(1) programs are horribly broken". NOTE: (Win32)As I haven't got a PC with Win95 or WinNT at hand I don't know, whether it compiles there. If you get it to compile, I would very much appreciate any results and the corresponding Makefiles, patches etc. You simply have to compile all the .cc-files in the directory pvm++ and link the resulting files together to form the library. The necessary include-files (*.hh, *.ii) have to be available in the include-path. UsageIf you want to compile a program (e.g. forkjoin.cc), you at first have to include the right header (#include <pvm++/pvm++.hh>; <pvm3.h> needn't be included), and then all you have to do is (assuming that your C++ compiler is c++): c++ -I<pvm++ include path> \ -I<pvm include path> -c forkjoin.cc c++ -o forkjoin forkjoin.o -L<pvm++ library path> \ -L<pvm library path> \\ -lpvm++ -lpvm3 -l<other libraries needed for pvm> Packages using PVM++If you want to use PVM++ in your own program, you might want to consider using automake and autoconf, which PVM++ uses as well. You'll find a file pvm++.m4 included in this distribution, that will be installed into ${prefix}/share/aclocal. This file will (together with aclocal, which is part of automake) make life very easy for you. A sample configure.in looks like this: AC_INIT(main.cc) AM_INIT_AUTOMAKE(myprogram, 0.1.2) AC_PROG_CXX AC_PROG_INSTALL AC_PROG_MAKE_SET AM_PROG_LIBTOOL AC_FIND_PVM_P_P After this the configure-variable PVM_P_P_CFLAGS containes all necessary include-pathes and the variable PVM_P_P_LDFLAGS containes all necessary library-pathes and libraries. So the corresponding Makefile.am looks like this: bin_PROGRAMS = myprogram myprogram_SOURCES = main.cc INCLUDES = @PVM_P_P_CFLAGS@ LDADD = @PVM_P_P_LDFLAGS@ TODO
Documentation
Anonymous CVS accessThis project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. When prompted for a password for anonymous, simply press the Enter key. cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pvm-plus-plus login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pvm-plus-plus co pvm++ Updates from within the pvm++ directory do not need the -d parameter. The CVS tree can also be browsed online. ExamplesThere are examples included in the distribution in the directory examples. They will not be installed, but can be changed and compiled in place. Just edit and re-make them. You don't need to install them in the default PVM-Path either, as they spawn their children with absolute path. HistoryThe library PVM++ has been developed for practicum on fault tolerance at the Institute of Computer Design and Fault Tolerance of the University of Karlsruhe. There has previously been a library called pvm++. It was written by Daniel Cohen-Laroque of the Swiss Federal Institute of Technology. But the last release (as far as I could see) was 0.3 of 1994-09-30, and there doesn't seem to be ongoing development. So I adopted the name and numbered my first release 0.4 to avoid confusion. My library however doesn't include any code form that library (I in fact haven't seen it, before I finished the basic design of my library). CreditsI would like to thank:
Links
Final commentsI'd very much appreciate your feedback! Any comments and ideas on improvements are welcome.
|