您好、欢迎来到现金彩票网!
当前位置:PC蛋蛋 > 最优并行算法 >

如何实现C语言的多处理器并行计算

发布时间:2019-06-27 07:10 来源:未知 编辑:admin

  我用C语言写了一个遗传算法的程序,想通过创建多个线程来提高算法的计算速度。如何用c实现?我电脑是i5四核64Windows,能不能实现?如何实现?...

  我用C语言写了一个遗传算法的程序,想通过创建多个线程来提高算法的计算速度。如何用c实现?我电脑是i5四核64Windows,能不能实现?如何实现?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我之前搜到过这篇文章,并且照着这个例子改写过。。。但是没有实现成功。。。但是谢谢了,会采纳的

  知道合伙人互联网行家采纳数:24806获赞数:302942011年中山职业技术学院毕业,现担任毅衣公司京东小二向TA提问展开全部1、问题描述

  将数组A均匀划分成m个片段,每个数组片段最多有(n+m-1)/m 个元素。每个数组片段分别由一个线程负责局部求和,最后这些部分和加起来就得到数组中所有元素的总和。

  这里使用malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型

  void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。

  这并不是说该函数调用后无返回值,而是返回一个结点的地址,该地址的类型为void,即一段存储区的首址,其具体类型无法确定,只有使用时根据各个域值数据再确定。可以用强转的方法将其转换为别的类型。例如:

  向系统申请10个连续的int类型的存储空间,用指针pi指向这个连续的空间的首地址。

  并且用(int*)对malloc的返回类型进行转换,以便把int类型数据的地址赋值给指针pi

  对于多线程而言,一个主要的难题就是如何线程是否都已经执行结束。这里用的方法是pthread_join

  第二个参数用来接受线程函数的返回值,如果没有返回值,就直接设为NULL。

http://caviarchef.com/zuiyoubingxingsuanfa/148.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有