Rasterization/rendering is done by the front end, not the kernel. Image[Graphics[...]]
also does rasterization. The parallel subkernels do not have a front end attached so they cannot render graphics. When a kernel process doesn't have a front end attached and it needs to render graphics (e.g. for exporting), it will start up a front end process in the background to do the rendering for it. In your case each subkernel will do this separately.
Why you end up with additional kernel processes as well is explained here.
There are some other operations too that depend on a front end process but won't launch it automatically. You can use UsingFrontEnd
to force the launching manually in that case.
Related: It is particularly important to be aware of this behaviour when running Mathematica in command line mode on a remote headless Linux computer, and trying to Export
some graphics. The Export
command will fail if there's no X server running because the helper front end process that's started by Export
depends on X, even though it does't actually draw anything on screen. The typical workaround is to use Xvfb to allow the front end to start.