GAMMA: a Network Of Workstation based on Active Messages and Linux

Giuseppe Ciaccio (multi@disi.unige.it)
Sat, 22 Jun 1996 12:50:23 +0200 (MET DST)


Hi guys,

we are currently developing a parallel machine based on the NOW
(Network Of Workstation) architecture and on the Active Message communication
paradigm. Its name is GAMMA (Genoa Active Message MAchine).

As for other similar projects, the main idea is to use
cheap off-the-shelf components, whose performances are not that bad nowadays,
and to exploit their capabilities as much as possible, with particular attention
to the exploitation of communication hardware performances (mainly low latency,
since bandwidth is still quite poor and doesn't scale, at least for low-end
products).

Different of other similar projects, our approach to efficient exploitation
of communication hardware consists of providing a standard OS kernel with some
new communication mechanisms especially tailored for our (fast) LAN-based
communication system.

We have realized that an OS kernel may well keep
providing processes with communication primitives as usual, but in order
to use such primitives as building blocks of an efficient parallel processing
platform they must be designed with care and cannot rely on the usual bulky
stack of communication protocols (e.g. RPC/TCP/IP) which is aimed at completely
different goals and environments.

We found that Active Messages could be the right kind of communication
mechanism to support our project. The main advantage of Active Messages is that
no kernel buffering is required for incoming/outgoing messages. The price
to pay is that messages must be dealt with immediately as they come/go,
regardless of the scheduling state of the receiver/sender process.
This requires that each process has two additional threads for sending/receiving
messages called "communication handlers", which are two functions
of the user program which are registered into the kernel as the program
itself starts execution. The "send"/"receive" handler of a process is then
executed immediately (and quickly enough, but this is up to the programmer)
each time a message from/for that process is sent/received.

We have implemented a small Active Message-based set of communication
primitives on a NOW equipped with two Pentium 133 each running Linux 1.3.72
(we will shift to 2.0 ASAP), connected by a 3COM Fast Ethernet LAN
(two 3c595 cards and one LinkBuilder FMS 100 hub, 100 Mbit/sec peak bandwidth).

http://www.disi.unige.it/project/gamma/ will provide you with more info.

Any pointer to similar work, as well as any suggestion and constructive
criticism, is welcome.

With regards

----------------------------------------------------------------------
Giuseppe Ciaccio phone: +39 10 353 661{6,3}
DISI - Universita' di Genova fax: +39 10 353 6699
via Dodecaneso, 35 mailto: ciaccio@disi.unige.it
16146 Genova, Italy http://www.disi.unige.it/person/CiaccioG/
----------------------------------------------------------------------