2
$\begingroup$

I've been running a calculation in parallel that requires a rasterize, and doing this requires one to wrap the rasterization with a UsingFrontEnd command (as is described here). When I do this, my dock is populated by a number of Mathematica icons equal to the number of parallel kernels I use, and then auto-hides them, dimming the icons, but not removing them from the dock:

enter image description here

Does Mathematica do this whenever UsingFrontEnd is used within a parallel routine? I also recall some other instances where this occurs within a Parallel call where I haven't explicitly called UsingFrontEnd, so I'm presuming that this occurs even for implicit launches of the front end.

It's quite annoying to pollute the dock with 8 (or more) icons, so it's something I'd to avoid if possible. But my question is more why does Mathematica behave in this way? I should also mention that the icons remain in the dock even after the parallel operation has completed.

$\endgroup$
5
$\begingroup$

Your assumptions are correct.

Every front end process that is started up will show in the dock. Certain operations, such as rasterization, require a front end. If you rasterize in parallel, each subkernel will start its own front end, which will show up in the dock.

$\endgroup$
  • $\begingroup$ OK. I forgot to mention that the icons remain in the dock even after the operation completes (I added this detail to my question). Is there any way to at least close the front ends that are launched after the calculation completes? $\endgroup$ – Guillochon Jan 14 '15 at 14:42
  • $\begingroup$ @Guillochon I don't know. I always assumed this was designed with the assumptions that the helper front end will stay open for as long as the kernel lives. There should probably be some undocumented way to close those front ends without closing the kernels, but off hand I don't know how. $\endgroup$ – Szabolcs Jan 14 '15 at 14:45
  • 1
    $\begingroup$ @Guillochon Theoretically you could look at Links[], see which one looks like the one belonging to the front end, and then manually LinkClose[] it. I just tried this. $\endgroup$ – Szabolcs Jan 14 '15 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.