当前位置: 首页 > 面试题库 >

并行高效地运行多个作业

谭景福
2023-03-14
问题内容

作业系统:Cent-OS

我有一些30,000作业(或脚本)要运行。每个工作需要3-5分钟。我有48 CPUs(nproc = 48)。我可以40 CPUs to run 40 Jobs并行使用。请建议一些脚本或工具通过并行运行40个Jobs来处理30,000个Job。

我做了什么:

  • 我创建了40个不同的文件夹,并通过为每个目录创建一个Shell脚本来并行执行作业。

  • 我想知道下一次处理此类工作的更好方法。


问题答案:

正如Mark Setchell所说:GNU并行。

find scripts/ -type f | parallel

如果您坚持要保持8个CPU空闲:

find scripts/ -type f | parallel -j-8

但是通常简单地使用它会更高效,nice因为在没有其他人需要它们的情况下,它将为您提供全部48个内核:

find scripts/ -type f | nice -n 15 parallel


 类似资料:
  • 一个spark有一个oracle查询。所以我必须并行运行多个作业,以便所有查询都将同时激发。 如何并行运行多个作业?

  • 我在BatchScheduler中有多个计划作业,它在特定时间运行。简单的内置JobLauncher,这是同步的。在自然界中最初使用。现在,我想并行运行这些作业,这样没有作业可以等待其他作业完成。 我在不同的作业上尝试过@Async注释,但都不起作用。 然后,我尝试设置joblauncher.settaskexecutor(新的SimpleAsyncTaskExecutor())。但这并不奏效。

  • 我正在从NPM迁移到Thread,我希望并行运行脚本,例如: 它在纱线中的等价物是什么? 我发现它的等价物是分别运行每一个: 但是我不能并行运行脚本。 如何使用多个脚本

  • 问题内容: 您将如何解决以下存储和检索问题? 每天(每年365天)将添加大约2.000.000行,每行包含以下信息: id(唯一的行标识符) entity_id (取值介于1到2.000.000(含)之间 date_id(每天增加一次-取值范围为1到3.650(十年:1 * 365 * 10)) value_1(取值范围在1到1.000.000之间(包括1和1.000.000之间) value_2

  • 问题内容: 在我的我有这两个脚本: 每当我开始在Node.js中开发时,我必须 并行 运行这两个脚本。我想到的第一件事是添加第三个脚本,如下所示: …但这将等待完成再运行。 如何并行运行它们? 请记住,我需要查看以下命令。另外,如果您的解决方案涉及构建工具,则我宁愿使用,因为我已经在另一个项目中使用了它。 问题答案: 使用并发调用的包。 然后按以下步骤设置您的任务:

  • 在我的中有以下两个脚本: 每次在Node.js中开始开发时,我都必须并行运行这两个脚本。我首先想到的是添加第三个这样的脚本: ...但在运行之前,将等待完成。 我如何并行运行这些?请记住,我需要查看这些命令的。另外,如果您的解决方案涉及构建工具,我宁愿使用而不是,因为我已经在另一个项目中使用了它。