Prev Up Next
Go backward to IDL to C++ mapping of basic and complex types
Go up to Selected lecture notes and example code
Go forward to Parallel version of matrix-vector product example

Matrix-vector product example

This file directory contains the example discussed in class on 2/18/99 (slightly extended). We first discussed matrix0.cpp, a matrix-vector product computation done in ordinary sequential computation, with no use of CORBA or any other kind of distributed components. However, some design choices were made with the goal of ultimately using some of its code and generic programming techniques in a distributed version. (As mentioned in class, these programs are only intended as simple exercises aimed at exploring ideas about combining generic programming techniques with distributed computing. For a serious effort at providing distributed components for linear algebra one should start with close examination of efforts such as the PETSc library, which does distributed computation but doesn't employ generic programming, or the Matrix Template Library (MTL), which makes extensive use of generic programming but doesn't (yet) do distributed computation.)

We then discussed a crude distributed version, with

See the server1.log, server2.log, and client.log files for the results of this scheme.

Try out this example yourself; experiment with running it as it is, then extend it! We will discuss some extensions in class, but that will be a lot more meaningful if you have already gotten thoroughly familiar with this basic version.

To compile and link the client and server, copy the zip file to a directory you own and unzip it. If you are using Mico on a Windows platform with VC++, do

	nmake/f Makefile.win32 all
If you are using Mico on a Unix platform (monica or yoyo), do
	gmake all
Unfortunately, linking with the Mico library on Unix is still taking a lot longer than it should.
 

Prev Up Next