Parallel processing 关闭默认并行化

Parallel processing 关闭默认并行化,parallel-processing,wolfram-mathematica,Parallel Processing,Wolfram Mathematica,我正在尝试执行Matheamtica脚本,它应该只使用一个内核。在第一行,我放了LaunchKernels[1];然而,当脚本运行时,所有计算机的核心都被分配(总共96个)。当然,我希望使用bash脚本运行96个脚本副本 有没有办法设置Mathematica off可能使用的最大Mathematica内核数 我按如下方式启动脚本(实际上我使用一个循环,16存储在一个变量中,但我想这并不重要): 最后两个字符串只是输入和输出文件名。您可以配置将用于对话框的Mathematica内核的最大数量: 在

我正在尝试执行Matheamtica脚本,它应该只使用一个内核。在第一行,我放了LaunchKernels[1];然而,当脚本运行时,所有计算机的核心都被分配(总共96个)。当然,我希望使用bash脚本运行96个脚本副本

有没有办法设置Mathematica off可能使用的最大Mathematica内核数

我按如下方式启动脚本(实际上我使用一个循环,16存储在一个变量中,但我想这并不重要):


最后两个字符串只是输入和输出文件名。

您可以配置将用于对话框的Mathematica内核的最大数量:
并行内核配置部分编辑首选项并行

然后,您可以通过系统选项设置限制Mathematica用于许多机器精度操作的英特尔数学内核库将使用的线程数:

SetSystemOptions["MKLThreads" -> 1]
有关Mathematica堆栈交换站点的相关问题:

您可以配置将与对话框一起使用的Mathematica内核的最大数量:
并行内核配置部分编辑首选项并行

然后,您可以通过系统选项设置限制Mathematica用于许多机器精度操作的英特尔数学内核库将使用的线程数:

SetSystemOptions["MKLThreads" -> 1]
有关Mathematica堆栈交换站点的相关问题:

在不了解脚本的情况下,很难判断发生了什么。如果不使用并行构造(并行化、并行表等),则不使用并行化。如果您使用LaunchKernels[1],并且确实有并行结构,那么只会运行一个子内核,与根本没有并行化相比,性能会更差。如果您有内部并行且不需要多个子内核的函数,则仍然可以使用多个内核。大多数此类函数使用MKL,例如
LinearSolve
。你可以考虑在MadiaTaC.StAccExchange(com)上进行询问。不,它不会:并行运行96个单核心任务几乎总是比运行单96核心任务快。在大多数情况下,速度是相等的。谢谢你的MKL提示。如果你不知道你的脚本,很难说出发生了什么。如果不使用并行构造(并行化、并行表等),则不使用并行化。如果您使用LaunchKernels[1],并且确实有并行结构,那么只会运行一个子内核,与根本没有并行化相比,性能会更差。如果您有内部并行且不需要多个子内核的函数,则仍然可以使用多个内核。大多数此类函数使用MKL,例如
LinearSolve
。你可以考虑在MadiaTaC.StAccExchange(com)上进行询问。不,它不会:并行运行96个单核心任务几乎总是比运行单96核心任务快。在大多数情况下,速度是相等的。谢谢你的MKL提示。