Alan Kaminsky Department of Computer Science Rochester Institute of Technology
Home Page

Many-to-Many Invocation as an Object Oriented Paradigm
for Parallel Programming

Alan Kaminsky
Department of Computer Science
Rochester Institute of Technology

First SlideLast Slide


Many-to-Many Invocation (M2MI) was initially conceived as an object oriented broadcast remote method invocation mechanism for building ad hoc collaborative systems of small mobile wireless devices. An M2MI invocation means “Every object out there that implements this interface, call this method.” Each device has one or more objects that are parts of a distributed system. The system operates by having each object broadcast M2MI invocations to all the other objects on all the devices.

M2MI’s ability to execute a method in many objects all at once with a single invocation is reminiscent of constructs in parallel programming languages that execute statements on many data items all at once. Thus, M2MI can be an object oriented paradigm and mechanism for parallel programming applications as well as ad hoc collaborative applications.

This talk will (a) cover the basic concepts of M2MI; (b) present several examples showing how to write object oriented parallel programs using M2MI; (c) demonstrate the example programs running on a single processor; (d) describe the architecture of M2MI, showing how it scales from single processors to multiple processors, especially processor clusters; and (e) discuss future research directions for M2MI.


1.   Basic Concepts of M2MI
1.1.   M2MI Object References
1.2.   Omnihandles
1.3.   Unihandles
1.4.   Multihandles
1.5.   M2MI Invocations
1.6.   Example: A Chat Application
2.   Parallel Programming With M2MI
2.1.   N Bodies Simulation
2.1.1.   The Problem
2.1.2.   The Solution
2.1.3.   Operation
2.1.4.   Where’s the Beef? (Parallelism?)
2.1.5.   The Display
2.2.   Matrix Multiplication, Version 1
2.2.1.   The Problem
2.2.2.   The Solution
2.2.3.   Operation
2.2.4.   A Performance Bug
2.3.   Matrix Multiplication, Version 2
2.3.1.   The Solution
2.3.2.   Operation
2.4.   Cellular Automata
2.5.   Comparison With Other Approaches
3.   Architecture of M2MI
3.1.   Exported Objects
3.2.   Invocations Within Same Process
3.3.   Invocations Between Different Processes, Same Host
3.4.   Invocations Between Different Hosts
4.   Status and Future Plans
5.   Further Information

Alan Kaminsky Department of Computer Science Rochester Institute of Technology
Home Page
Copyright © 2002 Rochester Institute of Technology. All rights reserved. Last updated 30-Apr-2002. Please send comments to ark­@­