Moodle course web site

Assignment 3: A Divide-and-Conquer API

Purpose

  • Expand your experience working with Java RMI
  • Augment the functionality of your Java-centric cluster computing system to support a divide-and-conquer (DAC) API.
  • Specification

    The DAC API

    Design a DAC API. For ideas about this, review the Cilk paper, the CX paper, and the JICOS API, illustrated in the Tutorial section of the JICOS web site. Cilk allows any acyclic directed graph of threads. Your api needs to support only "fully strict" (i.e., purely DAC) programs. You may require that a task either:

    The implementation of this API involves the cooperation of the Task, the Computer, and the Space. Look at the specification of a Closure in the Cilk paper. Relate this to the infomation requirements of a Task in your system. The Space needs to distinguish between tasks that have all their arguments (and thus are ready to be executed by Computers) from those that do not. The scheduling algorithm you use to distribute ready tasks to Computers is unspecified: You can do whatever you want.

    If task t produces output o (as opposed to subtasks), it needs to communicate o to its successor task s, which is waiting for o, as an input argument: When t produces o, the Space needs to know which task is s. Thus, you may need some form of task identifier. The Space also needs to know which of s's arguments o is, so the Space can set the appropriate argument of s.

    Your system does not need to be robust in the presence of faulty application programs.

    Application development

    The clients

    Define a client that:

    Deployment

    Repeat the above steps for C = 1, 2, 4, 8, and 16. Let P be a problem instance (e.g., an instance of the TSP). Let TC be the elapsed time to complete P using C Computers. For each problem, P, using Excel, plot P's the parallel efficiency: T1 / (C TC).

    For the case of C = 1:

    Analysis

    Paper Summary

    Submit a 1-page summary, entirely in your own words, of the paper titled, "CX: A Scalable, Robust Network for Parallel Computing."

    Deliverable

    Mail <cappello@cs.ucsb.edu> a jar file, named <name>.jar, where <name> is the CS computer account username of 1 member of the pair. It should include the following directories and files:

    Directories

    Files



     cappello@cs.ucsb.edu 2009.04.29