| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2312 人关注过本帖
标题:新手求助,基于多核的并行计算问题
只看楼主 加入收藏
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:14 
新手求助,基于多核的并行计算问题
我是新手不太清楚,cuda应该属于C吧

现在关于并行计算的加法想法是这样的
对于abcdefghijklmn+ABCDEFGHIJKLMN...分成n个进程块同时进行加法运算
用2个数组分别存储余数和进位数,然后在类似上面的方法依次相加

但是现在有个问题是进位和余数因为要错一位相加,在快与块之间那间隔的一位要怎么处理?
另外还有更好的计算思路吗
搜索更多相关主题的帖子: 计算 
2013-05-23 09:21
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
大家都说一下思路一起探讨一下吧,可能我的表达有问题,不清楚的可以再问
2013-05-24 12:35
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
这个真的不知道...

三十年河东,三十年河西,莫欺少年穷!
2013-05-24 12:50
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
学习!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-24 13:19
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
进位和余数因为要错一位相加----------------没看懂,
字符进行加法怎么又冒出余数了啊

Maybe
2013-05-24 14:36
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 5楼 邓士林
哦,那个余数就是比如5+8=1 3
这里1是进位,3我把它叫余数

错位相加我的意思是比如
    5+5+5+5+5+5+5+5+5+5+5
   +5+5+5+5+5+5+5+5+5+5+5
=   0 0 0 0 0 0 0 0 0 0 0
 +1+1+1+1+1+1+1+1+1+1+1
2013-05-25 07:50
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
因为第i位的计算依赖于第i-1位的计算结果,所以不可能进行并行计算。

重剑无锋,大巧不工
2013-05-25 09:17
xhd504070596
Rank: 2
等 级:论坛游民
帖 子:12
专家分:11
注 册:2013-5-24
收藏
得分:0 
理解你的意思了- -不过 我是小白 没试过这种算法
2013-05-25 09:22
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 7楼 beyondyf
这个可以的,只不过至少要进行两次运算
2013-05-25 19:32
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
以下是引用lyl930130在2013-5-25 19:32:00的发言:

这个可以的,只不过至少要进行两次运算

至少几次并不重要,至少只要一次。重点在至多需要几次。举个例子,11111111 + 88888889。

不是说不可以,只是成本很高,也不见得比单线程解决来的快。可以单独计算每一位的加法及进位情况,然后各位计算结果与进位各自形成两个数,重复这一过程直到进位数为0。最好的情况下这个过程只进行一次,最坏的情况下这个次数等于数的长度(分割长度,可以多位作为一组)。而且别忘了,线程调用也是要消耗资源的。除非是进行很高精度的大数运算(数百万位这个量级),否则我不会考虑并行计算。

当然,作为学习实践,我并不反对拿小一点的数来练手,但并没有很好的算法支持。

重剑无锋,大巧不工
2013-05-25 20:18
快速回复:新手求助,基于多核的并行计算问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016474 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved