Development of a Distributed Task Bag Using CORBA Frank McCown
Download
Report
Transcript Development of a Distributed Task Bag Using CORBA Frank McCown
Development of a
Distributed Task Bag
Using CORBA
Frank McCown
Operating Systems – UALR
Dec. 6, 2001
Task Bag
Concept originated from Linda system
at Yale as distributed memory.
Master/Slave paradigm
tasks &
data
tasks &
data
Master
Worker
Task Bag
Worker
results
results
Worker
Task Bag Operations
1.
pairOut(key, value) – Adds the Pair (key/value) to
the Task Bag. If a Pair already exists with the same key,
that Pair is replaced with the new Pair.
2.
pairIn(key) value – Causes some Pair in the
Task Bag that matches key to be withdrawn from the Task
Bag. The value part of the Pair is returned. If no
matching Pair is available, an empty value is returned to
the caller.
3.
readPair(key) value – Same as pairIn except
the Pair is not removed from the Task Bag.
Tasks for Task Bag
Any problem that can be divided into
sub-tasks and solved in parallel:
Searching for text in multiple files
Finding set of prime numbers
Computing fractal images
Performing matrix multiplication
Matrix Multiplication
0
1
2
3
0
1
2
3
-14 –8 –2
1
2
3
4
-1 0
1
2
-20 -10 0 10
2
3
4
5
-2 -1 0
1
3
4
5
6
A
X
=
4
-26 -12 2 16
-3 -2 -1 0
-32 -14 4 22
B
Result
Each Result[R,C] is computed using row
R from A and column C from B.
Implementation
Task Bag is distributed object
2 choices for implementing distributed
system:
Java RMI
CORBA - ORBacus
Programming language: Java
Platform: Any
Task Bag Pairs
Data Pairs – Matrix rows and columns
for use by Workers
Task Pairs – Row and Column to be
calculated for Workers
Result Pairs – Result of calculation for
Row and Column for Master
Event Notification
Master must be notified when results
are available.
Workers must be notified when work is
available.
Order of Events
1) Register for Notification
1) Register for Notification
2) Data Pairs
pairOut
Master
3) First Task Pair
pairOut
9) Notification of
Result Pair
10) pairIn
Result Pair
4) Notification of
Task Pair
Task Bag
5) pairIn
Task Pair
6) Task Pair
pairOut
Worker
7) pairIn
Data Pair
8) Result Pair
pairOut
11) Deregister
interface TaskBag
IDL
{
oneway void pairOut(in string key, in string value);
oneway void pairOutTask(in string key, in string value);
oneway void pairOutResult(in string key, in string value,
in string workerName);
string pairIn(in string key);
string pairInTask(in string key, in string workerName);
string readPair(in string key);
};
Demo
Start Naming Service.
start java com.ooc.CosNaming.Server –ORBconfig project.conf
Start Master.
java TaskMaster
Start Workers.
java Worker
Place tasks in Task Bag for Workers to
do.