1460925680-40a564bc-c1a6-44d3-a54c-a9921fe9acdc

1. A method for allocating a set of one or more processing components of an application to a set of one or more resource groups, comprising the steps performed by a computer system of:
ordering the set of one or more resource groups based on respective failure measures and resource capacities associated with the one or more resource groups;
assigning an importance value to each of the one or more components, wherein the importance value is associated with an effect of the one or more components on an output of the application; and
assigning the one or more components to the one or more resource groups based on the importance value of each of the one or more components and the respective failure measures and resource capacities associated with the one or more resource groups, wherein the one or more components with higher importance values are assigned to resource groups with lower failure measures and higher resource capacities;
wherein an order for assigning the one or more components is determined based on a data flow graph associated with the application such that a single resource group failure affects the minimal number of paths from a source to a sink in the data flow graph.
2. The method of claim 1, wherein the application is a partial fault tolerant (PFT) application that comprises a set of one or more PFT application components.
3. The method of claim 1, wherein the set of one or more resource groups comprise a heterogeneous set of resource groups.
4. The method of claim 1, wherein the ordering step comprises sorting the one or more resource groups in a decreasing order based on a ratio of a respective resource capacity of each of the one or more resource groups to a failure probability of each of the one or more resource groups.
5. The method of claim 1, wherein the ordering step comprises sorting the one or more resource groups in a decreasing order based on a product of a respective resource capacity of each of the one or more resource groups and an availability measure of each of the one or more resource groups.
6. The method of claim 5, wherein the availability measure for a given resource group is computed as one minus a failure probability of the given resource group.
7. The method of claim 1, wherein the importance value assigned to a given component is based on a contribution that the given component makes to the application output.
8. The method of claim 1, wherein the importance value assigned to a given component is based on a loss incurred in the application output value if the resource hosting the given component fails.
9. The method of claim 1, wherein the step of assigning the one or more components to the one or more resource groups is also based on one or more specified constraints on the one or more components.
10. The method of claim 1, wherein the step of assigning the one or more components to the one or more resource groups is performed responsive to a failure of at least one of the resources making unavailable at least one of the components assigned thereto.
11. The method of claim 1, wherein the effect of a given component on the output of the application comprises an effect of the given component on an output quality of the application.
12. The method of claim 11, wherein the effect of the given component on the application output quality is based on the given component being in one or more paths of the data flow graph associated with the application.
13. The method of claim 1, wherein the step of assigning the one or more components to the one or more resource groups comprises defining, within the data flow graph associated with the application, a connected sub-graph of components assigned to a given resource group.
14. An article of manufacture for allocating a set of one or more components of an application to a set of one or more resource groups, the article comprising a non-transitory computer readable storage medium containing one or more programs, which when executed by a computer implement the steps of claim 1.
15. Apparatus for allocating a set of one or more components of an application to a set of one or more resource groups, comprising:
a memory; and
at least one processor coupled to the memory and operative to perform the steps of:
ordering the set of one or more resource groups based on respective failure measures and resource capacities associated with the one or more resource groups;
assigning an importance value to each of the one or more components, wherein the importance value is associated with an effect of the component on an output of the application; and
assigning the one or more components to the one or more resource groups based on the importance value of each of the one or more components and the respective failure measures and resource capacities associated with the one or more resource groups, wherein the one or more components with higher importance values are assigned to resource groups with lower failure measures and higher resource capacities;
wherein an order for assigning the one or more components is determined based on a data flow graph associated with the application such that a single resource group failure affects the minimal number of paths from a source to a sink in the data flow graph.
16. The apparatus of claim 15, wherein the application is a partial fault tolerant (PFT) application that comprises a set of one or more PFT application components.
17. The apparatus of claim 15, wherein the ordering step comprises sorting the one or more resource groups in a decreasing order based on a ratio of a respective resource capacity of each of the one or more resource groups to a failure probability of each of the one or more resource groups.
18. The apparatus of claim 15, wherein the ordering step comprises sorting the one or more resource groups in a decreasing order based on a product of a respective resource capacity of each of the one or more resource groups and an availability measure of each of the one or more resource groups.
19. The apparatus of claim 15, wherein the importance value assigned to a given component is based on a contribution that the given component makes to the application output.
20. The apparatus of claim 15, wherein the importance value assigned to a given component is based on a loss incurred in the application output value if the resource hosting the given component fails.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A system to receive input image (x,y) data representable with a first pixel resolution and to output image data at a higher second pixel resolution, the system comprising:
given amplitudes of four pixels (P, PH, PV, PHV) at said first pixel resolution, means for defining, in at least one dimension selected from x and y, from said amplitudes amplitude of an intermediate pixel
PO=(1\u2212NVy)\xb7(1\u2212NVx)\xb7P+NVx\xb7PH+NVy\xb7(1\u2212NVx)\xb7PV+NVx\xb7PHV
at said higher second pixel resolution, where NVx=F(dx), NVy=F(dy), where F(dx) and F(dy) are functions of pixel distance, where distances from P to PH, from P to PV, from PH to PHV, and from PV to PHV are normalized to one, and normalized distances from P to PO are given as dx,dy; and
means for outputting pixel amplitude including intermediate pixel amplitude and location at said higher second pixel resolution in at least one dimension selected from x and y.
2. The system of claim 1, wherein at least one of F(dx) and F(dy) are programmable coefficients.
3. The system of claim 1, wherein at least one of F(dx) and F(dy) are user-programmable coefficients.
4. The system of claim 1, wherein at least one of F(dx) and F(dy) are non-linear interpolation functions.
5. The system of claim 1, wherein at least one of F(dx) and F(dy) are non-linear interpolation functions having at least two break-points.
6. The system of claim 1, wherein at least one of F(dx) and F(dy) is a continuous function.
7. The system of claim 1, wherein at least one of F(dx) and F(dy) have at least eight discrete values.
8. The system of claim 1, wherein NVx=dx and NVy=dy.
9. The system of claim 1, including:
a horizontal control unit to calculate distance dx of each output pixel PO; and
a horizontal look-up table to convert dx to NVx.
10. The system of claim 9, wherein said horizontal look-up table is programmable.
11. The system of claim 1, including:
a vertical control unit to calculate distance dy of each output pixel PO; and
a vertical look-up table to convert dx to NVy.
12. The system of claim 11, wherein said vertical look-up table is programmable.
13. A computer readable medium storing a routine that when executed by a central processor unit carries out the following steps:
(a) receiving amplitudes of four pixels (P, PH, PV, PHV) at a first pixel resolution;
(b) in at least one dimension selected from x and y, determining from said amplitudes received at step (a) an amplitude of an intermediate pixel PO=(1\u2212NVy)\xb7(1\u2212NVx)\xb7P+NVx\xb7PH+NVy\xb7(1\u2212NVx)\xb7PV+NVx\xb7PHV at said higher second pixel resolution, where NVx=F(dx), NVy=F(dy), where F(dx) and F(dy) are functions of pixel distance, where distances from P to PH, from P to PV, from PH to PHV, and from PV to PHV are normalized to one, and normalized distances from P to PO are given as dx,dy; and
(c) outputting pixel amplitude including intermediate pixel amplitude and location at said higher second pixel resolution in at least one dimension selected from x and y.
14. The computer readable medium of claim 13, wherein at least one of functions F(dx) and F(dy) have at least one characteristic selected from a group consisting of (I) the function represents a programmable coefficient, (ii) the function represents a user-programmable co-efficient, (iii) the function is a non-linear interpolation function, (iv) the function has at least two break-points, (v) the function has at least eight break-points, and (vi) the function is continuous.
15. A method to receive input image (x,y) data representable with a first pixel resolution and to output image data at a higher second pixel resolution, the method including the following steps:
(a) receiving amplitudes of four pixels (P, PH, PV, PHV) at a first pixel resolution;
(b) in at least one dimension selected from x and y, determining from said amplitudes received at step (a) an amplitude of an intermediate pixel PO=(1\u2212NVy)\xb7(1\u2212NVx)\xb7P+NVx\xb7PH+NVy\xb7(1\u2212NVx)\xb7PV+NVx\xb7PHV at said higher second pixel resolution, where NVx=F(dx), NVy=F(dy), where F(dx) and F(dy) are functions of pixel distance, where distances from P to PH, from P to PV, from PH to PHV, and from PV to PHV are normalized to one, and normalized distances from P to PO are given as dx,dy; and
(c) outputting image (x,y) data, including intermediate pixel locations PO, at said higher second pixel resolution.
16. The method of claim 15, wherein at least one of functions F(dx) and F(dy) have at least one characteristic selected from a group consisting of (I) the function represents a programmable coefficient, (ii) the function represents a user-programmable co-efficient, (iii) the function is a non-linear interpolation function, (iv) the function has at least two break-points, (v) the function has at least eight break-points, and (vi) the function is continuous.
17. The method of claim 15, wherein NVx=dx and NVy=dy.
18. The method of claim 15, wherein step (b) is carried out at least in part in software.
19. The method of claim 15, wherein step (b) is carried out at least in part in hardware.
20. The method of claim 15, wherein said method is carried out under control of a central processor unit.