next up previous contents
Next: 6.3 Installing Java SDK Up: 6. USING SVM AND Previous: 6.1 Installing Cygwin   Contents

6.2 Installing PVM3

This step is optional and necessary only for those users who are interested in SVM distributed simulations.

PVM (Parallel Virtual Machine) is the underlying library that supports communication among multiple processes and multiple machines. Its source can be downloaded from its website:

http://www.csm.ornl.gov/pvm/pvm_home.html

PVM is not originally designed for Cygwin, and its version 3.4.3 is used here. The users are highly recommended to download the source from the following location:

http://scicomp.ewha.ac.kr/netlib/pvm3/pvm3.4.3.tgz

Note that newer versions of PVM may be found at:

http://scicomp.ewha.ac.kr/netlib/pvm3/

However, the only version that has been tested and successfully compiled is 3.4.3, and the following patch is applicable only for that version:

http://msdl.cs.mcgill.ca/people/tfeng/svmsccdoc/pvm3.4.3-Cygwin.patch

The content of the patch is:

Only in pvm3_patched/console: CYGWIN
Only in pvm3_patched/examples: CYGWIN
Only in pvm3_patched/gexamples: CYGWIN
Only in pvm3_patched/lib: CYGWIN
Only in pvm3_patched/libfpvm: CYGWIN
Only in pvm3_patched/pvmgs: CYGWIN
Only in pvm3_patched/rm: CYGWIN
Only in pvm3_patched/src: CYGWIN
diff -uar pvm3/src/lpvm.c pvm3_patched/src/lpvm.c
--- pvm3/src/lpvm.c	2000-02-17 18:12:10.000000000 -0500
+++ pvm3_patched/src/lpvm.c	2004-03-21 18:26:33.069064000 -0500
@@ -619,7 +619,7 @@
 
 #ifndef HASERRORVARS
 extern int errno;						/* from libc */
-extern char *sys_errlist[];
+//extern char *sys_errlist[];
 extern int sys_nerr;
 #endif
 
diff -uar pvm3/src/lpvmgen.c pvm3_patched/src/lpvmgen.c
--- pvm3/src/lpvmgen.c	2000-02-17 18:12:12.000000000 -0500
+++ pvm3_patched/src/lpvmgen.c	2004-03-21 18:26:20.340761600 -0500
@@ -578,7 +578,7 @@
 
 #ifndef HASERRORVARS
 extern int errno;						/* from libc */
-extern char *sys_errlist[];
+//extern char *sys_errlist[];
 extern int sys_nerr;
 #endif
 
diff -uar pvm3/src/pvmlog.c pvm3_patched/src/pvmlog.c
--- pvm3/src/pvmlog.c	2000-02-10 15:46:43.000000000 -0500
+++ pvm3_patched/src/pvmlog.c	2004-03-21 18:25:59.741140800 -0500
@@ -192,7 +192,7 @@
 extern int errno;					/* from libc */
 #ifndef WIN32
 extern int sys_nerr;
-extern char *sys_errlist[];
+//extern char *sys_errlist[];
 #endif
 #endif
 
Only in pvm3_patched/tracer: CYGWIN
Only in pvm3_patched/xep: CYGWIN

After obtaining the source (pvm3.4.3.tgz) and the above patch (pvm3.4.3-Cygwin.patch), the users may use the following commands to extract the package and apply the patch (assuming that both files are in the current directory):

$ tar zxvf pvm3.4.3.tgz
$ patch -p0 < pvm3.4.3-Cygwin.patch

A directory named pvm3 will be created, which contains the patched source. To build PVM, the users must first set the PVM_ROOT environment variable according to the PVM path. For example, the following command may be used (suppose the current shell is bash):

export PVM_ROOT=`pwd`/pvm3

Then the source can be made with the following command:

make -C pvm3

If all goes well, PVM will be built in the pvm3 directory, and the executables can be found in pvm3/lib/CYGWIN.

The users should set the following environment variables in their startup scripts ( /.bashrc for the bash shell):

  1. PVM_ROOT. As mentioned above, set it to the PVM path.

  2. PVM_ARCH. For Cygwin, this variable should always be set to CYGWIN.

  3. PATH. The users may add the path of the PVM executables to the PATH environment variable so that they can be accessed from any directory.


next up previous contents
Next: 6.3 Installing Java SDK Up: 6. USING SVM AND Previous: 6.1 Installing Cygwin   Contents
Thomas Huining Feng
2004-04-05