并行处理200条命令 怎么去实现(100分)

  • 主题发起人 奔雷手
  • 开始时间

奔雷手

Unregistered / Unconfirmed
GUEST, unregistred user!
[red][h2]并行去处理200条命令,既能节省内存又能已最少的时间,怎么去实现,有几种方法[/h2][/red]
 
没分了 给点分吧~好人呐`
 
单个PC中,MS里单个进程中。只能开线程吧。
要想真正实现并行处理200条命令,只有加200CPU了。
但目前一般情况下为2个CPU,所以并没意义,因为最终还是依次一个个处理。
一般情况下,开CPU个数+1个线程来处理数据。这个效率比较高了。
 
并行一定能节省运行的总时长么?非也!
如果你的200条命令使用的是同一系统资源,那么并行只会增加时间而不能减少。
例如你要做200次阶乘。假设每个命令执行的市场是1。这都是cpu操作,这时你启动10个线程,每个线程运行20个命令。所有命令执行完成的时间是大于200的,因为cpu还要付出时间做线程调度。
但如果你做200个命令,其中100个是用于到磁盘上取数每个操作时长为n(n>1),剩下100个是计算取出数据的阶乘每个操作时长为1。那么你可以使用两个线程,一个线程用于将磁盘数据读入队列,另一个线程用于计算队列中数据的阶乘。那么你的总时长可以变成100n+1
而串行计算的时长是100n+100。
综上所述 并行能够减少时间是有条件的。节省空间亦然,也需要根据具体的命题具体设计和分析
 
买个2008年6月23日以后出品的最新型号显卡(GF200系列或HD4800系列),直接使用显卡里的运算单元,可以并行执行300到800条命令。如何调用执行,可以去这些显卡公司的技术支持论坛看看。
 
运用多线程本来很好,但是如果你只是单核,那么对于问题的解决没有多大帮助.
 
顶部