此问题来自最近的问题“ Correct way to cap Mathematica memory use?

我想知道,是否可以通过编程方式重新启动MathKernel,以将当前的FrontEnd进程保持连接到新的MathKernel进程,并在新的MathKernel会话中评估一些代码?我的意思是“透明”重启,它允许用户继续进行FrontEnd的工作,同时使用来自先前内核的一些代码来评估/评估新的MathKernel进程吗?

这个问题的动机是要有一种方法,在占用过多内存而不会中断计算的情况下自动重启MathKernel。换句话说,计算应在新的MathKernel过程中自动继续进行,而无需与用户进行交互(但应保持用户与Mathematica进行交互的能力)。当然,在新内核中应该评估哪些代码的细节是特定于每个计算任务的。我正在寻找一个通用的解决方案,如何自动继续计算。

最佳答案

昨天在comment by Arnoud Buzing中,在Stack Exchange Mathematica聊天中,完全引用:

在笔记本中,如果您有多个单元格,则可以将“退出”本身放在一个单元格中并设置以下选项:

SetOptions[$FrontEnd, "ClearEvaluationQueueOnKernelQuit" -> False]


然后,如果在其上方和下方有一个单元格,然后选择所有三个单元并进行评估,内核将退出,但前端评估队列将继续(并为最后一个单元重新启动内核)。

-阿诺德·伯青(Arnoud Buzing)

07-26 09:37