千家信息网

编程语言中任务调度的并行算法是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,编程语言中任务调度的并行算法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如果给定一批任务,比如有500个任务,需要在尽可能快
千家信息网最后更新 2026年11月01日编程语言中任务调度的并行算法是什么

编程语言中任务调度的并行算法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

如果给定一批任务,比如有500个任务,需要在尽可能快的时间内做完。

如果串行是肯定不行的。我们可以考虑并行策略,但是开了并行,怎么能够充分利用资源比较好呢。

这个问题在多年前做数据迁移的时候,逼得没办法,当时用shell写了一个算法,可以参考这一篇。

海量数据迁移之使用shell启用多个动态并行(r2笔记81天)

但是在自动化运维平台中,我希望这个操作能够更加通用,所以在程序端实现是极好的。

我先打算用Java来实现,然后转义为Python版本,已经写了大半部分,还没有调试好,就先不放出来了,我把我的思路说一下。

假设有下面的一些任务,第一位是序号,第二位是任务需要花费的时间。

假设分为4个并行,即4组执行任务,每组执行任务该如何分配呢。

(1, 10),

(2, 30),

(3, 20),

(4, 50),

(5, 60),

(6, 30),

(7, 20),

(8, 10),

(9, 20),

(10,50),

所以放眼任务调度的方向上,我们都希望并行,但是绝大多数情况下,并行的效果其实不好,一种最重建的情况就是前半段在并行,后半段基本在等待。

假设我们按照如下的思路来完成,前四个元素是每组的一个元素,然后每组查看累计值的最小值,然后依次加入后续的元素。按照这种方法,得到的任务安排如下:

1 10 60 70

2 30 20 20 70

3 20 30 50 100

4 50 10 60

明显这种方法有缺点,因为我们无法预知后续元素的大小,所以任务分配很不均匀。

所以我们需要排序,按照最大值,最小值的方式排序。

这样一来,最大的4个元素分别位列每组的第一个元素。然后依次取得每组累计值的最小值,加入后续的元素。

分配情况如下:

1 50 20 70

2 60 20 80

3 50 20 10 80

4 30 30 10 70

明显好很多。

关于编程语言中任务调度的并行算法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

任务 元素 问题 算法 调度 最小 情况 分配 编程语言 语言 编程 明显 最大 思路 数据 方法 时间 更多 帮助 排序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 哈尔滨大商圈互联网科技有限公司 互联网和科技技术 互联网科技会 互联网络科技有限公司 苏州大垚互联网科技 互联网科技公司介绍 富国互联网科技创新基金 湖南洣水互联网科技有限公司扣款 随着互联网科技发展 昭通云南众福互联网科技有限公司 互联网企业和科技型企业 互联网科技教育视频 河南猎农互联网科技有限公司 花神(南京)互联网科技有限公司 成都互联网科技公司工作好不好 长沙茂晟互联网科技有限公司 梅州GM互联网络科技有限公司 山东大美朱楼互联网科技有限公司 广西科技产业互联网是什么 手磨咖啡 互联网科技园 多迪互联网科技有限公司 中盈科技互联网信息有限公司 欧洲十大科技互联网公司 重庆威客帮互联网科技 互联网时代科技改变生活 2021互联网科技公司排名 广州千川互联网科技有限公司 杭州科技互联网公司有哪些
0