Newsgroups: comp.parallel.pvm
From: eriks@cs.cmu.edu (Erik Seligman)
Subject: Re: can't get memory
Organization: School of Computer Science, Carnegie Mellon
Date: 10 Apr 1995 19:19:09 GMT
Message-ID: <3mc0bd$fu5@cantaloupe.srv.cs.cmu.edu>

In article <1995Apr10.084547.9687@reks.uia.ac.be>,
Kris.VanAlsenoy <alsenoy@sch2.uia.ac.be> wrote:
>
>Dear PVM'ers,
>
>I encountered a problem and got the following set of error messages:
>libpvm [t40036]: fr_new() can't get memory
>...


This looks like a problem that hit me a few months ago.  This seems to come
up a lot.  Is it in the FAQ?

Basically, if you do a lot of sends faster than they can be received, PVM
is not smart enough to delay returning from send or mcast calls; it will 
allow you to do as many sends as you want, until it uses up all its avialable
memory buffering them and crashes.

Workaround #1: setopt to PvmRouteDirect, so it will use TCP, which has its own
flow control to solve this problem.  Unfortunately, this solution will not
fix the bug in the case of mcasts, which never use TCP.

Workaround #2: setopt to PvmRouteDirect, and replace pvm_mcast with a wrapper 
function that does a send to each process in the mcast list.

Hope that helps!

	--- Erik
	eriks+@cs.cmu.edu

