Presentation is loading. Please wait.

Presentation is loading. Please wait.

Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology - 2009.

Similar presentations


Presentation on theme: "Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology - 2009."— Presentation transcript:

1 Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology - 2009 Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology - 2009 Why Bother? Several solution already exist, such as: Condor (Complex Syntax, One task per run, Not developer-friendly) MPI (Networking understanding needed, Executing and Synchronizing tasks is the user responsibility ) Implementing new solution: User-friendly API (ease of usage). User transparency. Dynamic System-Management. Task generic. Easy to convert user code from serial to parallel. Concepts Task Operation: the function/s the user wants to execute remotely. Task: invocation of Task Operation with specific arguments. Result: the component includes the Task Operation’s result on a Task. System Manager: manages communication among system components such as Networking, Auto-update, Failure detection and so on. Client: user’s interface, resides in user’s side and responsible for starting/stopping the system, submitting Tasks and processing Results. Executer: the remote implementing Task Operation. High Level Design Main Components: System manager, Client, Executer, UI.  Task and Result are shared among Executers and Clients.  Executer components resides on a remote machine waiting for tasks or orders from system manager.  UI Component connects to a given System-manager address and allows the user to manage the system. System Manager Client Executer Task Result UI Communication Design Diagram The system is built over multiple niches. Each level designed to have its own intra-communication infrastructure and the components communicate using the external-communication infrastructure. Client Tasks Buffer Results Buffer System Manager Executer Tasks Buffer Results Buffer Schedule Get Results Send Task Heart Beat Firewall Main Architecture Diagram The Client Schedules a Chunk of Tasks Through the System-Manager that chooses the best Executer for him. The Client Sends the Chunk to be executed to the chosen Executer. The Executer executes the Task and returns the Result to him. Internal Communication Data-flow Internal Components organization and communication data-flow considering chunks, threads and buffers. Executer main data-flow diagram: Collected Tasks in Chunks Scheduled by System-Manager to be sent to the designated Executer. Client main data-flow diagram: Received Chunks broken into Tasks, executed by the concrete Executer (user provided). Results are mapped to the relevant Client in results buffer. Tasks Buffer Client main Chunk Creator Chunk Buffer Schedule System Manager Chunk Scheduler Scheduled Chunks Chunks Sender Send Executer Result Collector Collect Results Buffer Client System Abstract Main Problem: Executing large set of small computational tasks consumes numerous processing time on a single machine. Tasks are homogeneous and non-related Executing is serial. Execution order is not significant. The Main Idea of the project is to build a generic distributed system which supplies a friendly user API allows remote execution. Target audiences of the system are software developers who need to execute tasks over more than one computer without getting involved with complex networking APIs. The system can be used in environments where some machines are behind firewalls. Additional features are: Auto-update, which seamlessly propagates code updates to all machines in the system. Logger is used for tracing the system and for finding bugs. Remote Exception Handler captures exception occurring on remote-machines and simulates them on the machine that submitted the task. Features  Firewall Overcome: A firewall can exist between user machine and remote-machines One side connection (user side)  Load Balancing: Tasks can be submitted to the system asynchronously. Load balancing needed for efficiency: Distributing tasks considering remote-machine load and priority Round-Robin based Prevent starvation  Auto-Update Support the ability of updating the code provided by the end-user from the System Management UI.  Efficiency (Chunking) formation of smaller units of information into large coordinated units.  Execution Transparency Simulating I/O operation and Exceptions in Client local machine.  Fault Tolerance (Failure Detection) Save the machine state until it connect again, then resumes its work. Performance Analysis Study on a sample application: Distributed webpage downloading and parsing Test results with the following workload: Task is downloading a web page given its URL Result is text extracted and parsed from the HTML of the web-page Legend Thread Executer1 Executer2 Executer3 System Manager Client Give me Executer Executer3 Task Result Chunks Buffer Executer System Tasks Receiver Chunk Breaker \ Classifier Tasks Buffer Special Tasks Handler Task Executer Concrete Executer Results Buffer Clients Results Organizer Clients Organized Results Client Collect Conclusion The more Executers added, the less execution time achieved Total execution time bounded by the longest task which is close to the optimal.


Download ppt "Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology - 2009."

Similar presentations


Ads by Google