一个简单问题的并行算法
来源:互联网 发布:应急救援车牌知乎 编辑:程序博客网 时间:2024/06/04 19:46
设一个数列S[N], 其中S[0] = 0; S[k] = S[k - 1] + k ( 1 <= k < N).
对于这个问题的求解串行算法相当简单,O(N)时间复杂度,不再解释。
并行:
假设有 M 个线程, 其中 M << N;
S[K] = S[K - 1] + K
= S[K - 2] + K - 1 + K
= S[K - 3] + K - 2 + K - 1 + k
...
= S[K - M] + M * K - M * (M - 1)/ 2
假设 M = 2
则S[K] = S[K - 2] + 2 * K - 1, 所以
S[0] , S[2] , S[4] .... S[2 * T] 和 S[1] , S[3] , S[5] .... S[2 * T + 1]为两个独立的序列,因此可以使用两个线程进行并行计算。
同理,M 为其它值时也一样, 如此就实现的并行计算的算法。
- 一个简单问题的并行算法
- 一个简单问题的并行算法
- select并行处理的一个简单示例
- 一个并行搜索算法
- 一个简单问题的遗传算法的实现
- MPI并行编程简介---一个简单的事例
- Parallel::ForkManage: 一个简单的并行进程用于fork管理:
- 【素养】由一个简单算法想到的程序员素养问题
- 从一个简单查找问题看算法的魅力
- 一个有错误的并行排序算法,先存上
- 一个简单的问题
- 一个简单的问题
- 一个简单的问题
- 一个简单的问题
- 一个简单的问题
- 并行算法的基本原理
- 一个关于局域网中【并行计算】的问题
- 并行算法研究现状及其相关问题的综述
- ORA-00600[2662]问题模拟及解决方法
- GPAC Project
- sqlite命令使用
- 类的属性即声明
- Android定位功能(一)
- 一个简单问题的并行算法
- Android定位功能(二)
- exchange2003 MDBDATA过大处理方法总结
- C/C++编译过程
- QT核心编程之Qt模板库(1)
- Http request header -- Connection
- SAP书籍介绍
- VC操作文件之:CFile操作详解
- 常见的Python Web框架