Newsgroups: comp.os.parix
From: elkner@sunpool.cs.tu-magdeburg.de (Jens Elkner)
Subject: Function MakeLink: AllocVLink error
Organization: Univ. of Magdeburg
Date: 30 Dec 1994 16:32:51 GMT
Message-ID: <ELKNER.94Dec30173251@palme.cs.tu-magdeburg.de>

Hi!

Right now I'm testing my new parix program and it is running very well
with up to 16 nodes (GC 128/ 4 MB per node). But when I try to run 
this program e.g. with 64 nodes (run -a p64 fractal.px 400 640)
then I get error messages like this:

Error(c0000000)-Processor 0, Context 2, Function MakeLink: AllocVLink error
Error(c0000000)-Processor 0, Context 2, Function MakeLink: AllocVLink error

I use a very simple topology: 1 master and (n-1) slaves, whereby the master
creates 1 link to each of the slaves :

    root = *GET_ROOT()->ProcRoot;
    local.proc_id = root.MyProcID;
    local.procs = root.nProcs;
    local.top_id = NewTop(local.procs);
    if (local.top_id < 0) printf("Cannot create Topology (%i)\n",local.top_id);
    local.link_id = (int *) malloc (local.procs * sizeof(int));
    for (i=1; i < local.procs; i++){
        /*Link Master -> Slave */
	local.link_id[i] = AddTop(local.top_id,MakeLink(i,0,&err));  
	if ((local.link_id[i] < 0) || (err != 0)) {
	    printf("Master: Cannot make link to processor %i (%i)\n",i,err);
	    exit(-1);
	}
    }

and similar to this procedure each slave creates a link to the master:

    root = *GET_ROOT()->ProcRoot;
    local.proc_id = root.MyProcID;
    local.procs = root.nProcs;
    local.top_id = NewTop(1);
    if (local.top_id < 0) printf("Cannot create Topology (%i)\n",local.top_id);
    local.link_id = (int *) malloc (sizeof(int));
    local.link_id[0] = AddTop(local.top_id,GetLink(0,0,&err));
    if ((local.link_id[0] < 0) || (err != 0)) {
	printf("Client %i: Cannot make link to master (%i)\n",
                local.proc_id,err);
	exit(-1);
    }

So where is the problem? I never got any error message like
"Cannot make linkt to ...." and thus there is probably no error return
(&err) in Get/MakeLink. My guess is, that Make/GetLink are calling
AllocVLink and there the error occurs. But how can I prevent that?
Has anybody a clue?

Thanx in advance,
Jens.

PS: Please reply to this posting (mail me direct your answer) because 
    our news system doesn't work correctly, and that's why I can't read 
    the comp.os.* newsgroups.
--
+--------------------------------------------------------------------------+
| Jens Elkner                   | Otto-von-Guericke-Universitaet Magdeburg |
|                               +==========================================|
| Am Uniplatz 5                     elkner@wotan.cs.uni-magdeburg.de       |
| WH 4   PF 310                     elkner@sunpool.cs.uni-magdeburg.de     |
| 39106 Magdeburg   GERMANY         elkner@next.cs.uni-magdeburg.de        |
+--------------------------------------------------------------------------+

