110 likes | 119 Views
Explore the development of a distributed task bag system using CORBA, enabling efficient task management between master and worker instances. Learn about task bag operations, task types, and implementation using Java RMI or ORBacus. Witness matrix multiplication, task bag pairs, and event notifications in action through a step-by-step demonstration of the system.
E N D
Development of a Distributed Task Bag Using CORBA Frank McCown Operating Systems – UALR Dec. 6, 2001
Worker tasks & data Master Task Bag tasks & data Worker results Worker results Task Bag • Concept originated from Linda system at Yale as distributed memory. • Master/Slave paradigm
Task Bag Operations • 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. • 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. • 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
0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6 0 1 2 3 -1 0 1 2 -2 -1 0 1 -3 -2 -1 0 -14 –8 –2 4 -20 -10 0 10 -26 -12 2 16 -32 -14 4 22 Matrix Multiplication Each Result[R,C] is computed using row R from A and column C from B. X = A B Result
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.
1) Register for Notification 1) Register for Notification 2) Data Pairs pairOut 4) Notification of Task Pair Task Bag Worker Master 5) pairIn 3) First Task Pair pairOut Task Pair 6) Task Pair pairOut 7) pairIn 9) Notification of Result Pair Data Pair 10) pairIn 8) Result Pair pairOut 11) Deregister Result Pair Order of Events
IDL interface TaskBag { 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.