Newsgroups: comp.parallel.pvm
From: raj@cup.hp.com (Rick Jones)
Subject: Re: Shared memory comm. on HP machines, possible?
Organization: Information Networks Division: Hewlett Packard
Date: 24 Jun 1994 00:27:17 GMT
Message-ID: <2ud995$n2m@hpindda.cup.hp.com>

Suwat Phruksawan (sphruksa@galaxy.csc.calpoly.edu) wrote:
: Hi,
:        Is there any way to make the local (same host) communications between 
: tasks use shared memory on the HP machines (or any machines that support 
: shared memory)?

If PVM uses AF_INET (normal UDP and TCP) sockets when the two
processes are on the same machine, it might be able to speed-up their
communication considerably. 

In HP-UX 9.0, HP introduced support for interfaces which provide
Internet checksum offload. This was primarily for the Integrated and
NIO FDDI cards. However, the loopback interface lo0 was modified to
identify itself as a checksum offload device.

Here's the trick. If you are on a machine "foo" and say that you want
to connect to machine foo, you will initially go to that hosts primary
"real" network interface (such as lan0). This interface will detect
that you are trying to talk to yourself, and then route the packet
through lo0. Unfortunately, the TCP (UDP) layer has done things based
on the characteristics of lan0 and not lo0. If lan0 is an Ethernet, it
will not think that there is checksum offload, and will also use a
small MTU (1500 bytes).

If instead, you add some host routes for your "real" interface's IP
addresses, pointing at 127.0.0.1 (lo0), the TCP and UDP sockets will
get the characteristics of lo0 and should use the nice large MTU and
take advantage of checksum offload. Bulk data transfer performance
measured with netperf was considerably improved.

This is described with some graphs in an appendix to the white paper
on network copy avoidance in HP-UX 9.0 (and later) which can be found
on col.hp.com:dist/networking/benchmarks/copyavoid.ps.Z and retrieved
with anonymous FTP.

rick jones

