文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python怎么实现任务调度并行算法

2023-06-04 10:10

关注

本篇内容介绍了“Python怎么实现任务调度并行算法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本来自己想先使用Java来写一个版本,然后根据语法转义写成Python版本的,结果发现实际去做的时候有很多不同之处,首先就是Python中没有直接的数组的结构,入手点就不同,然后是API的使用程度上来看,发现Python中真是丰富,几乎都不需要再额外定制一些函数就可以轻松得到想要的结果。

Python版本的初版如下,我在考虑是否要引入第二维度作为参考,根据额外的维度来达到一种弹性的调度策略。

import randomARRAY_SIZE = 10def random_int_list(start, stop, length):start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start))length = int(abs(length)) if length else 0random_list = []for i in range(length+1):random_list.append(random.randint(start, stop))return random_listrandom_list = random_int_list(1,100,ARRAY_SIZE)print(random_list)random_list.sort(reverse=1)print(random_list)GRP_NO = 4array_group = [[0]*1 for i in range(GRP_NO)]print array_groupsum_value_array = []for i in range(GRP_NO):sum_value_array.append(i)print(sum_value_array)for i in random_list[1:ARRAY_SIZE+1]:print(i)array_sum_group=[0]*GRP_NOfor index,val in enumerate(random_list[1:GRP_NO+1]):#print 'index is %d, val is %d' % (index,val)array_group[index][0]=valarray_sum_group[index]=valprint(array_sum_group,array_sum_group.index(min(array_sum_group)))print(random_list)for index,val in enumerate(random_list[GRP_NO+1:]):#print 'index is %d, val is %d' % (index,val)min_group_no = array_sum_group.index(min(array_sum_group))array_group[min_group_no].append(val)array_sum_group[min_group_no] += valprint("array_group",array_group)print("array_sum_group",array_sum_group)

先看看目前的实现结果吧。如果是100个元素,分为4组,元素的分布还算比较平均。

('array_group', [[84, 24, 21], [73, 51, 3], [63, 62], [63, 61]])('array_sum_group', [129, 127, 125, 124])

这在元素的量级比较大的时候,效果就很明显了,比如元素是1000个,分为4组,得到的每组的结果集都是非常平均的。

('array_sum_group', [12951, 12951, 12951, 12951])

如果元素为1000,并行度为10,结果还不赖,达到了自己的初步预期了。

('array_sum_group', [4877, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876])

“Python怎么实现任务调度并行算法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯