Newsgroups: comp.os.parix
From: mbarnett@brownlee.cs.uidaho.edu (Michael Barnett)
Subject: Communication Algorithms
Organization: Laboratory for Applied Logic
Date: 30 Jun 1994 17:13:38 GMT
Message-ID: <MBARNETT.94Jun30101338@brownlee.cs.uidaho.edu>

I am new to the "Parix philosophy" of programming, being mostly accustomed to the
SPMD model used on hypercubes and meshes made by Intel. But I am trying to learn, so
bear with me if this is not a well-formed question.

My understanding is that the parix model is to create a set of processes running on the
separate nodes of the parallel machine. One then creates a communication topology to
use in sending messages between the processes. I assume that one creates a topology
that "fits" the application. But what does one do when one needs to perform a (set of)
communication that does not fit the pattern in the rest of the application? For instance,
suppose it matches most of the application to create a pipe (or ring) of processes so that
each process has a communication link to its two neighbours. But then a part of the
program comes where a global broadcast needs to be done, or a summing of a vector
that each process possesses. I realize it *can* be done by using the already created topology,
but it can be done faster with a different topology. Are there system libraries to perform such
common "building block" functions, or does the programmer have to create a new topology
just to accomplish this single part of the application?

I will be happy to summarize any replies that are sent to me. Thank you very much in
advance,

Michael Barnett
-- 
Laboratory for Applied Logic		tel: 208-885-5524
Department of Computer Science		fax: 208-885-6645
University of Idaho			email: mbarnett@cs.uidaho.edu
Moscow, Idaho 83844-1010		www: http://www.cs.uidaho.edu/

