Digital multifunction reprographic systems have grown in sophistication and function. In addition, digital multifunction reprographic systems are often used in environments where several identical or similar machines are present, all of which are connected via some sort of high speed/high bandwidth network. Since some of the jobs that may be submitted to such a machine require extensive computation, it is desirable that a machine can distribute large computing tasks to other cooperating machines on its network. Such sharing can expedite the processing of large or complex tasks.
To provide a job sharing capability, how a job should be partitioned between the processing components should be determined. Conventional approaches use fixed partitioning schemes or consider computational capabilities. However, these conventional approaches do not consider the communication properties of the network.
As noted above, a number of office devices may be connected to a network. Conventionally, these devices are largely independent, and the user interacts with a single device. However, there is an opportunity for a collection of such devices to act collaboratively by sharing resources and cooperating to perform a user's task.
An example of such a task might be the ripping of a very large, rich print job. Documents are typically described in a page description language (PDL) format such as PCL, PostScript, or PDF. The PDL provides a series of drawing commands and as part of the printing process these commands must be converted to a raster image. Frequently, it can take longer to do this rasterization than it takes to image the raster pattern on the paper. Thus, the printer may sit in an idle state while the document is being prepared.
To improve the productivity of the printer, a conventional system has been developed that consists of an array of processors and software to separate the print job into pages and to farm the pages out to various processors for parallel rasterization. However, this is a specialized (and expensive) piece of hardware, and would not be appropriate for occasional use in the office environment.
Therefore, it is desirable to provide a system enables a sharing of resources without relying upon expensive hardware.
Moreover, it is desirable to provide a system where the document is separated into pages that are then farmed out to neighboring multi-functional devices for parallel rasterization.
The drawings are only for purposes of illustrating various embodiments and are not to be construed as limiting, wherein:
For a general understanding, reference is made to the drawings. In the drawings, like references have been used throughout to designate identical or equivalent elements. It is also noted that the drawings may not have been drawn to scale and that certain regions may have been purposely drawn disproportionately so that the features and concepts could be properly illustrated.
As noted above, it is desirable to provide a system where the document is separated into pages that are then farmed out to neighboring multi-functional devices for parallel rasterization.
The rasterized results could then be compressed and sent back to the printing device for imaging. In this scenario, the system would need to decide which of the available neighboring machine should be used, and how many pages each machine should be given. The ideal partitioning could consider productivity of the candidate machines, but that productivity depends not only on the processing power of the device, but also upon the communication costs in interacting with the device.
It is noted that rasterization and rendering of a document is only one of a number of possible functions that a multifunction device might perform. For example, a multifunction device might scan a document and apply optical character recognition techniques to discover the text that the page images contain. Here again, the scanned document could be partitioned into pages that could be distributed to candidate machines in order to conduct the optical character recognition processing in parallel. The device handling would include the disposition of the optical character recognition results. Other types of processing such as format conversion or translations are also candidates for parallel processing.
In general, the disposition of the document by the devices is referred to as the actions carried out by the device such as rendering or storing the document. Thus, the time to render or store a document is generally referred to as the disposition time to dispose of the document. Also, the work needed to prepare the document for disposition (such as rasterization or optical character recognition) is generally referred to as the processing carried out on the document. Thus, the time to rasterize a document or to optically recognize the characters in the document is generally referred to as the processing time to process the document.
In other words, candidates for parallel processing are jobs with actions that are not easily distributed. It is noted that one does not usually distribute the rendering of a job because a user typically desires to retrieve a single correlated document at the device. Moreover, it is noted that one does not usually distribute the storing of a document since a user typically desires a single coherent document to be stored.
In the description given below, the system includes a number of computing networks with a variety of computational devices including a number of digital reprographic machines. Each digital reprographic machine may comprise several different components including, for example, printing, scanning, and document storage. Each digital reprographic machine has associated with it a computing resource, usually some sort of microprocessor based computer that includes hardware and software components that can handle the various digital reprographic machine functions.
These functions can include: network communications, conversion of page description language (PDL) descriptions of documents into print format digital images, conversion of scanned image documents into a variety of formats, and others. There are also other devices on the network besides the digital reprographic machines including a variety of computer resources which may include, among other things, both servers and workstations. A user at a workstation may choose to access the resources available on the network, in particular, those associated with the digital reprographic machines.
In the following discussion a process will be described wherein the processing of a printing job, submitted by a workstation in PDL form to one of the digital reprographic machines, can be shared between several of the machines on the network.
A network may include a variety of devices. For example, it might include a computer workstation, a file or computation server, as well as a number of digital reprographic machines. The exact topography of the network is not relevant as long as the devices can communicate with each other. The devices may have different rates of information transmission or communication overhead. In such a system, a large, divisible job (such as a large document that can be processed in pieces) is submitted to node n0, which decides to split the large document into a number of smaller pieces and sends the smaller pieces to other nodes for parallel processing.
Traditional approaches assume homogeneous nodes and/or negligible communication overhead; however, node and network personalities should be taken into consideration, namely, node computation capabilities and communication overheads. Further, traditional parallel processing approaches assume that data domain is located at all the nodes and consequently there is no distribution cost. This assumption is not valid in document processing in office environment, in which a document is typically submitted to only one machine. As a result, distribution cost has to be taken into consideration.
To facilitate the distribution of the large document, node n0 has to decide which among the n nodes (including itself) are to be selected to parallel process the large document. An example of this determination is as follows.
Node n0 sends a message to each of the n−1 nodes asking about the nodes' computation capabilities. These messages are sent simultaneously. Messages are associated with a current time stamp, lifetime tlifetime, a sender ID list, and an addressee ID list of nodes from the set of n candidate nodes that are not on the sender list. Expired messages will be discarded by receiver nodes.
When a node receives the first query message, it immediately sends a feedback message to the sender and ignores following query messages from other senders. It also forwards to the members of the addressee list the query message with a new time stamp, its own ID removed from the addressee list and appended to the sender list. The process continues until the addressee list is empty or it is not worth splitting jobs represented by
Then, a spanning tree, as illustrated in
The example illustrated in
Suppose that in this example, the communication between node n0 and nodes n3 through n5 is slow. Although n0 sends message to n3, n3 receives message from n1 first, and as a result n3 becomes direct child of n1. In this example,
When the termination condition is met, the nodes will stop propagating the query messages. Then a spanning tree will be constructed where the route from ni to nj represents the fastest path between the two nodes.
To calculate the capabilities of each node, each leaf node, a leaf node being a node at the end of a span or branch of the spanning tree, reports the leaf node's computation capability and the communication overhead to its direct parent node. As shown in
Here for simplicity of the formula, the nodes have been relabeled such that the intermediate node is now node 0, and its direct children nodes have IDs as 1, 2, . . . , and m. λi is the communication overhead between node 0 and i; μi is the processing speed of node i; α is the ratio of document size after process compared to original document size.
Every intermediate node calculates and reports μgroup to its direct parent node using formula F3 or F4, until n0 receives all the responses from its direct children nodes (n1 and n2 in this example).
Node n0 partitions the document based on the computation capabilities and communication overhead of its direct children nodes (n1 and n2) and itself. If a child node branches to additional nodes as does node n1 in the example, then the computation capability of its child node is actually the group capability of a sub tree rooted from the child node, for example the capability reported by node n1 is the cumulated capability of the sub tree with node n1 as the root. Then node n0 sends the partitioned sub documents to its direct children nodes proportion to their capabilities.
After an intermediate node receives the sub documents, it further partitions it, and sends the further partitioned sub documents to its direct children nodes. After all the partitioned sub documents are sent out, the intermediate node can start processing the sub document assigned to itself while its direct children nodes are partitioning and distributing sub documents. Consequently, the partition and distribution is carried out on all the intermediate nodes in parallel.
After nodes finish processing the sub documents, the nodes send processed sub documents back to their direct parent node for aggregation. Similar to partitioning and distribution, the aggregation is carried out on all the intermediate nodes in parallel. The processed document is finally aggregated on original node (n0 in this example) and returned to the user.
The parallel processing method discussed above can be applied to the type of applications, which can be partitioned into independent sub tasks for parallel processing and merged after processing. However, the physical environment in which an application is executed may require the process to be customized.
In the one environment (typically a cluster or local area network environment), the communication bandwidth is the same among all the nodes (λ1=λ=100 Mbps). In such an environment, all the nodes will become the direct children nodes of node 0. Consequently, a one level tree can be constructed, as illustrated in
In Grid environments, the communication bandwidth is not uniform. As shown in
To accommodate the two environments, for nodes on the ith level of the tree (i is the length of sender list) and i is even, the lifetime of query messages is
where νmessage is the size of the query message and λ is the bandwidth within one virtual organization. Then messages sending to nodes in other virtual organizations will be discarded. In this way, a one level tree is constructed within one virtual organization.
For nodes on the ith level of the tree (i is the length of sender list) and i is odd, the lifetime of query messages is set to be a large value, to connect nodes in different virtual organizations.
As shown in
A document of size νi is assigned to nodei, and the size may change to αv after being processed. For example, if a color document of size x bytes (each page is 8.5 by 11) is rasterized and compressed (at compression ratio of 1/10), then its size becomes
Then
in this example.
The divide-parallelize-conquer process is illustrated in
As illustrated in
The above description is represented below, as E1. It is assumed that the time needed for partitioning and merging is proportional to the size of the operated document.
where 2≦i≦n−1 and s0=s1=1.
Then
where 1≦i≦n−1, and
Consequently,
where n≧2, and
According to Amdahl's law, the speedup of parallelism is
Only when
node 0 splits jobs.
Let
be the overhead incurred by parallel processing.
When
it is worth splitting.
When node 0 splits, it should decide how many nodes (n) are involved.
Executing a job on n+1 nodes will take less execution time than that on n nodes, where n≧2.
The speedup parameter is denoted by
Intuitively, as node 0 splits the job into more pieces, the decreasing rate of overall execution time will slow down and eventually does not have significant changes, evaluated by
According to the algorithm, node 0 adds node i to its children nodes in the sequence of μi decreasing. As a result, the overall execution time saved by adding one more node is becoming less significant. In other words, Efficiency(n) decreases as n increases.
The relationship of Speedup(n)and Efficiency(n) is plotted in
The scalability of a parallel processing method is the ability to maintain parallel processing gain when both problem size and system size increase. The scalability is defined as
where wn is the work executed when n processors are employed and Tn is the execution time, wm is the work executed when m processors are employed and Tm is the execution time. Ideally, if the overall workload and the number of processors involved both scale up m times, the execution time for scaled workload keeps the same as that for the original workload, namely, Scalability(m,n)=1.
Assuming μi=μ and then the termination conditions are
As a result, the number of processors n is determined independent of workload wn. Therefore,
Let
where 2≦i≦n−1, and s0=s1=1.
Then
where 1≦i≦n−1,
Consequently,
where n≧2, and
According to Amdahl's law, the speedup of parallelism is
Only when
node 0 splits jobs. Let
be the overhead incurred by parallel processing. When
it is worth splitting.
When node 0 splits, it should decide how many nodes (n) are involved.
If
executing a job on n+1 nodes will take less execution time than that on n nodes, where n≧2.
Intuitively, as node 0 splits the job into more pieces, the decreasing rate of overall execution time will slow down and eventually does not have significant changes, evaluated by
According to the algorithm, node 0 adds node i to its children nodes in the sequence of μi decreasing. As a result, the overall execution time saved by adding one more node is becoming less significant. In other words, Efficiency(n) decreases as n increases.
The relationship of Speedup(n)and Efficiency(n) is plotted in
According to
λ>√{square root over (2)}μ so that node 0 will split a job.
As shown in
As shown in
Assuming μi=μ and then the termination conditions are
As a result, the number of processors n is determined independent of workload wn. Therefore,
where wm≠wn.
The first phase begins in step S202 of
In step S206, node 0 sends a broadcast message to other devices on the network. The broadcast message has the ID of the sender node, a time stamp, and an expiration time. In step S208, each node that receives the message responds to the sender, and at the same time stops responding to any other requests.
However, since there may be some nodes whose communication links to node 0 are relatively slow, each node that receives the message resends the message in step S210, substituting its own sender ID. Steps S206 through S210 are repeated recursively by all nodes on the network until the expiration time of the message. Alternatively, a node may choose to not resend the message if its estimate of the overhead of partitioning is too high.
The second phase of the process, whose start overlaps the first phase, begins in step S212 of
In the third phase, node 0 now partitions the job into several subtasks and distributes the subtasks to its child nodes in step S216 of
In the fourth phase, after each node finishes processing its assigned part of the work, it sends the results to its parent node in step S220 of
Every node knows the composite capacities of its direct child nodes and can estimate their processing times. If a node fails and stops processing, its direct parent node can discover the node failure when no result comes back from the node after the estimated completion time. Since the parent node knows all the child nodes of this failed node during phase 2, it can collect the results from these children and follow the steps in phase 1 to assign the unfinished task (which is originally assigned to the failed node) to other node(s). Node failure causes delay in job completion time, but it does not have significant impact in overall finishing time since recovery happens when other nodes process their assigned tasks or consolidate partial results.
While a parent node is partitioning and assigning tasks to its child nodes, the child nodes which have already received their tasks can immediately start processing. After the parent node finishes task assigning, it can start processing its own task. The parent node can continue processing as its child nodes finish tasks and are return results. In this way, communication time is overlapped with computation time.
The process of
A further feature of the method illustrated in
The decision of how far to partition any particular job may depend on several factors—the speed with which any node can partition a job into subtasks, and the cost in terms of combined communication overhead and processing speed of any child node. In general, if the speedup by adding one more subtask and child node is less than the cost in terms of time to do the partitioning and allocation, there is a net gain. It is possible, by analyzing the combined effect of a network of nodes, to compute the effective speedup. Thus the decision as to how far to partition any particular job becomes one of simple computation rather than some estimation or guesswork.
It will be appreciated that various the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5930511 | Hinsley | Jul 1999 | A |
6369910 | Mitani | Apr 2002 | B1 |
6449650 | Westfall et al. | Sep 2002 | B1 |
6742161 | James et al. | May 2004 | B1 |
7161705 | Klassen | Jan 2007 | B2 |
7385714 | Christiansen | Jun 2008 | B2 |
7720993 | Liu et al. | May 2010 | B2 |
20040136028 | Rabb | Jul 2004 | A1 |
20040196496 | Klassen | Oct 2004 | A1 |
20060072148 | Kovnat et al. | Apr 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20090249029 A1 | Oct 2009 | US |