| CPC G06F 9/45504 (2013.01) [G06F 8/314 (2013.01); G06F 8/34 (2013.01); G06F 8/433 (2013.01); G06F 9/38 (2013.01); G06F 9/3851 (2013.01); G06F 9/3885 (2013.01); G06F 9/44 (2013.01); G06F 9/445 (2013.01); G06F 9/45533 (2013.01); G06F 9/4843 (2013.01); G06F 21/577 (2013.01); G06F 21/62 (2013.01); G06F 21/6218 (2013.01); G06F 9/30 (2013.01); G06F 9/4494 (2018.02); G06F 16/24532 (2019.01); G06F 16/24547 (2019.01); G06F 2221/034 (2013.01)] | 16 Claims |

|
1. A method comprising:
receiving an untrusted application that includes a data parallel pipeline, wherein the data parallel pipeline specifies multiple parallel data objects and multiple parallel data operations;
instantiating a first secured processing environment in a native processing environment and on one or more processing modules;
executing the untrusted application to generate a dataflow graph of deferred parallel data objects and deferred parallel operations corresponding to the data parallel pipeline;
communicating information representing the data-flow graph outside of the first secured processing environment;
applying, in the native processing environment, one or more graph transformations to the information representing the dataflow graph to generate a revised dataflow graph that includes one or more of the deferred parallel data objects and deferred, combined parallel data operations that are associated with the untrusted application; and
executing the deferred, combined parallel operations to produce materialized parallel data objects corresponding to the deferred parallel data objects.
|