The problem is that the argument to `WaitAll` should be a list of your `ParallelSubmit` "jobs". As in the Basic Examples of the documentation for [`ParallelSubmit`](http://reference.wolfram.com/mathematica/ref/ParallelSubmit.html), after first defining your function(s) and distributing the definitions, do something like: ps = Table[ParallelSubmit[{i}, RegionPlot[f[x, y, i] > 5, {x, -10, 10}, {y, -10, 10}]], {i, 1, 2}] Followed by results = WaitAll[ps] If you can't use `Table` or `ParallelTable` then simply use: ps1 = ParallelSubmit[funct1[v11, v22]] ps2 = ParallelSubmit[funct2[v21, v22]] Then results = WaitAll[{ps1,ps2}]