怎么写程序才能让多个cpu一块工作?

zzzl 2006-06-20 02:20:58
rt
...全文
1637 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我的板子是技嘉的 GA-6BXD,PCB 版本号 1.6,BIOS 更新到最新。跳线在 100MHz/5.0X,装上 2 只原装 OEM PIII500 CPU,Solt1 接口,开机能够认到 2 个 CPU,显示

INTEL 440BX CHIPSET
VCORE1=2.00V VCORE2=2.00V
INTEL PENTIUM III-MMX CPU 500MHz , 2 Processor(2)
<CPU2 ID=0636><PATCH ID=0035><CPU1 ID=0636><PATCH ID=0035>
Memory Testing... 1048576KB OK.

但是无论安装 WinNT 4.0 Win2000 Pro/Server WinXP 都不能识别 2 个 CPU,任务管理器只有 1 个,任务管理器的图表菜单中也没有每个CPU一个图表的选项。

请教这是怎么回事?
stonesky 2006-08-20
  • 打赏
  • 举报
回复
这就需要看你做什么程序了,通常采用多线程方式,处理好了,确实可以很好利用资源,没处理好,还不如单线程
dishening7 2006-08-18
  • 打赏
  • 举报
回复
需要编写多线程的程序,可以使用Win32API 或者pThread库、OpenMP
另外从WIN NT就已经支持多线程了,好像也支持smp(不太确定)
“对于单线程的程序,在多CPU环境下运行跟在单CPU环境下一样。 ”
上面这句话很对,并且多线程的程序在双核机上不一定比单线程的效果好,毕竟线程和同步等都是一种资源
popoxee 2006-08-18
  • 打赏
  • 举报
回复
用API里的线程函数创建多线程就行拉,不会的去买本API的书
cxxylce0 2006-08-09
  • 打赏
  • 举报
回复
XP Starter Edition 不支持 2 CPU
liangxf0022 2006-06-21
  • 打赏
  • 举报
回复
多线程未必就是多个CPU执行,要看操作系统是怎么设计的了。

XP 以上都支持2个以上的CPU
lostgdi731 2006-06-20
  • 打赏
  • 举报
回复
记得win nt 的时候已提及关于并行处理的概念了,让独立的线程分到不同的cpu处理。
可能有人会问涉及某些信号同步的问题,但我个人认为,当你选择你的程序以多线程的方式工作的时候必然已考虑过了,因为即使只有一个cpu的环境里线程间的执行顺序也是不定的。
所以抽象于多cpu的工作环境,一定量的多线程工作方式必然带来速度上的优势,也即当能独立分配到不同cpu工作的线程数和可用cpu数成一定比例的时候。

以上仅个人观点。
天涯倦客 2006-06-20
  • 打赏
  • 举报
回复
windows API,
SetThreadAffinityMask(),用于使线程与某个具体处理器相关联,它表示该线程将只在一个处理器上运行——即使其它处理器处于闲置状态亦如此
SetIdealProcessor(),提示操作系统哪一个处理器用来执行哪个具体线程
天涯倦客 2006-06-20
  • 打赏
  • 举报
回复
google的
这要取决于你编写的程序是否多线程。

对于多线程的程序,在多CPU环境下系统能把任务平均分配给各个CPU去处理(需要操作系统的支持)。而在单CPU的环境下,各线程按其优先级由操作系统分配CPU时间,即轮流获得CPU的使用权。

对于单线程的程序,在多CPU环境下运行跟在单CPU环境下一样。

因此对于多CPU环境编程,首先要保证程序是多线程,第二要保证操作系统支持多CPU系统,如UNIX,Windows NT/2000

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧