next up previous
Next: Mandel Module Up: AVS for the CRAY Previous: T3D Modules

T3D/Y-MP Communication

A variety of techniques may be used to exchange information between the T3D and the frontend host. The best technique to use depends on the amount and type of data to be exchanged. Both machines employ 64 bit processors, but they use different floating point formats. Thus, format conversion becomess a concern when exchanging floating point data. The available methods by which the T3D can communicate to the frontend are: (1) files, (2) Parallel Virtual Machine (PVM) messages, (3) process memory tables, and (4) Unicos signals. The applicability of each of these techniques is discussed below and is summarized in Figure 3.

   figure77
Figure 3: T3D/Y-MP communication techniques.

Files are the easiest interface to implement, but also the slowest. All data types can be exchanged between any of the programming environments using ASCII files. But the transfer rate using formatted I/O between the T3D and the Y-MP frontend was only about 25 KB/s in tests we conducted by sending a file of image data from the T3D to the Y-MP. If performance is important (as it usually is) then file I/O can only be considered when exchanging very small amounts of data.

PVM messages are much faster than file I/O and allow all data types to be exchanged. The price for the speed of PVM is the additional programming required to implement the PVM message encoding, decoding and exchange of the messages. Since PVM has become one of the defacto standards in parallel processing, this type of communication is quite portable and even allows the T3D to exchange messages directly with hosts other than the frontend (although the messages still pass through the frontend agent). Using PVM we have obtained I/O rates between the T3D and Y-MP frontend of approximately 2 MB/s.

The fastest way to exchange data between the T3D and the Y-MP is through the use of the process memory file system, which gives users access to the address space of a running process. This file system consists of files named /proc/nnnnn, where nnnnn is a process ID formatted in decimal. Each file contains the address space of the process it represents. Process files may be read and written using the C system I/O routines open, lseek, read, and write. Reads and writes to a process file perform reads and writes on the address space of the process involved. By exchanging pointers to their data areas, processes on the the T3D and Y-MP are able to read and write directly into each other's memory. No data translation is performed, but library routines are available for converting between the floating point formats. In our tests involving the exchange of integer data, the transfer rate was about 50 MB/s. This is clearly the method of choice when megabytes of data must be rapidly exchanged.

The final form of communication between the T3D and the frontend host is Unicos signals. Signals are semaphores which allow a single bit of data to be exchanged and are primarily useful for synchronization of processes on the T3D and the frontend. The execution time for a signal between the T3D and the Y-MP is on the order of 10 milliseconds.


next up previous
Next: Mandel Module Up: AVS for the CRAY Previous: T3D Modules

Mitch Roth
Tue Aug 6 09:57:21 ADT 1996