还剩3页未读,继续阅读
文本内容:
Visual C++利用多线程模拟并行计算net电脑资料随着信息时代的到来,需要处理的信息量越来越庞大,需要解决的问题越来越复杂,使得计算量剧增,随着信息时代的到来,需要处理的信息量越来越庞大,需要解决的问题越来越复杂,使得计算量剧增通过提高单个处理器的计算速度和采用传统的顺序(串行)计算技术已难以胜任因此,需要有功能更强大的计算机系统和计算机技术来支撑并行计算机及并行计算技术应运而生题目如下令n=2的m次方,A是一个2n维的数组,待求最大值的数存放在An,An+1,……A2n-1中,所求得的最大值置于A1,于是算法描述如下输入n=2的m次方个数存在数组An;2n-1中;输出最大数置于A1中Begin Fork=m-1to0do Forj=2to2n-1par doAj=maxA2j,A2j+1End ForEnd ForEnd显然,算法的时间tn=Olgn,总比较次数为On,而最大的处理器数pn=n/2(也即最大的线程数)首先,我们建立一个基于对话框的应用程序,然后放置如图所示控件然后定义全局变量如下,array用于存放产生的随机数int g_nCount=0,j=0;int*array;在对话框的初始化函数中,我们随机产生n个数并存于数组array中,程序代码如下void CDemoDlg::OnBtnInitial{//初始化数组srandunsignedtimeNULL;int i,temp;CString str;UpdateDatatrue;g_nCount=pow2,m_intCount;array=new int[2*g_nCount];//根据用户的输入,产生2的m次方的随机数并存于array[n]…a[2n-1]中fori=g_nCount;i2*g_nCount;i++{temp=rand/100;array[i]=temp;}//显示产生的n个随机数fori=g_nCount;i2*g_nCount;i++{str.FormatArray[%d]=%d,i,array[i];m_strArr...。