作者ggg12345 (ggg)
看板Programming
标题Re: [请益] 那些语言或程式用上 多核心 CPU
时间Wed May 23 01:17:50 2007
※ 引述《ggg12345 (ggg)》之铭言:
: ※ 引述《avhacker (我想把整片天空打开)》之铭言:
: : intel 有出个 threading package 叫 Intel Threading Building Blocks.
: : 可以参考一下.
: : http://www.intel.com/cd/software/products/asmo-na/eng/294797.htm
: 谢谢指点.
: 不晓得这种 thread 跟一般的 thread 有那些不一样的地方 ?
这里有一个网页是介绍这种 多核心 Simultaneous MultiThreading(SMT)
与 Hyperthred 的. 多核不是一个 chip 里塞进多处理机, 而是有多个
Instruction Pointer , 各有对应的 interrupt fordwarding.
http://arstechnica.com/articles/paedia/cpu/hyperthreading.ars/1
Hyperthread 是由硬体支援的, 不必更动原来的 OS 架构, 因为 OS 都强调在
SMP 多处理机下照样运作.
HyperThread 是一种硬体支援, 让同一组 execution unit 藉助於部份是复制
且分开, 各自自备一套的 instruction queue , ip register 及 interrupt
handler . 就程式的执行言, 因为有多组 instruction pointer 使之看来像
有多组 logical processor, 馈入指令後, 指令的细部动作执行, 有一个硬体
的 sequence scheduler 来推动, 其主要作用是让随後共用的 multiple
pipeline function unit 尽量减少空档, 虽然不是多处理机, 但各 thread
(或 process) 指令同时在不同的 pipeline function unit 同时执行, 就能
跑出像有多个 logical processor 同时在跑的计算效能.
这是从 instruction parallel 改为 thread parallel. 使得 OS 及 AP 可以
把多核心当成多处理机来用.
这种系统是同时用多核跑多个彼此性质不同的片段程式, 让 multiple pipeline
function unit 都能同时利用上, 这应该不会触及 halting problem 的疑问 !
就程式与程式语言来看, 多核 CPU 如何让一个程式也能加以利用 ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.5.5