12th meeting

昨天忘记写了,今天补上。

大家都开学啦,虽然我的学期也算是完了,但是好像没有丝毫放假的迹象啊,这一次的持续学习时间真长了,从去年9月就开始了,一直要到今年6月吧。

年终于过完了,心情也慢慢变好了,开始计划回家的事情。

这个月争取和他们到北海道去滑滑雪,然后看什么时候再去一趟东京,还有富士山。

扯远啦,继续说毕业设计的事情,首先说说昨天开的会。

我成功地实现了上次设计的那些东西,然后用大到3000的数据测试了,能够到1倍多的加速吧。

今天的最新成果,在比较好的情况下,能够到4倍加速,这是一个令人高兴的消息,因为我还没有进行太多的优化。

昨天从山口老师那里知道,并行计算不一定能够加速的,而且随着程序本身的运行时间长短变化,越长的程序,可能得到加速的可能越大。

一般情况下,4-5倍是比较理想的情况。最梦幻的情况是几个处理器,达到几倍加速,但是那是不可能的,因为还有一些系统延迟,数据传输等等。所以6个处理器,4-5倍应该是比较好的结果了吧。

加速方案主要有:

1.一次传输更多的需要计算的数据

2.spu一次计算更多可能的数据,也就是说减少创建和销毁context,thread的时间

3.加速SPU计算,利用一些向量化,这个还没有考虑到。

现在已经实现的和还可以改进的:

1.一次传输最大可能的数据,但是我在想,应该是可以传输和传回不同量的,这样的话,传过去只需要传初始值就行,不需要将全部的数组传过去。

2.减少创建和销毁次数,现在已经减少到了最小,也就是6次。接下来要做的,是进行一些动态的优化调度,这个继续思考吧。

3.也就是向量化,这个是从前没有遇到过的。

今天加速的心得:减少线程创建,利用多线程的同步和互斥机制,防止死锁。昨天就是死锁了好多,晕。

然后传输是不是除了最简单的mfc_get put,还有更好点的。比如什么DMA双缓冲之类的。

继续努力吧,看见了曙光,哈哈~  论文?!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注