我该如何充分利用双核

liunx_cj 2008-03-23 03:03:49
目前我要针对Intel给的酷睿双核(1.66GHz)学习多核编程,但是对于如何充分去利用双核感到比较困惑。
我从两个角度思考了这个问题,一是双核该用于哪些领域,擅长做哪些工作。我想到多线程并发执行,就想到服务器的多请求问题;想到大量数据处理,像音视频压缩和解压缩,编码和解码,高质量音视频处理显示的问题。
还有个角度是我想从程序里面用并行编程的思想实现程序的快速执行。
但这两个角度,我都不知道双核究竟能够带给我多大性能的提高。困惑ing!
...全文
762 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
intel_cyu 2008-04-14
  • 打赏
  • 举报
回复
一个IPP 的性能库,包括不少多媒体(音视频解码)使用的例子,建议去了解:
http://www3.intel.com/cd/software/products/asmo-na/eng/302910.htm
Mr-Chen 2008-04-14
  • 打赏
  • 举报
回复
关注!
hsg77 2008-04-10
  • 打赏
  • 举报
回复
正在学习中...
tt_timon 2008-03-30
  • 打赏
  • 举报
回复
你可以把不同的线程或者进程绑定到不同的核
通过调用SetThreadAffinityMask,就能为各个线程设置亲缘性屏蔽:
DWORD_PTR SetThreadAffinityMask(HANDLE hThread,
DWORD_PTR dwThreadAffinityMask);
该函数中的h T h r e a d参数用于指明要限制哪个线程, dwThreadAffinityMask用于指明该线程能够在哪个CPU上运行。dwThreadAffinityMask必须是进程的亲缘性屏蔽的相应子集。返回值是线程的前一个亲缘性屏蔽。因此,若要将3个线程限制到CPU1、2和3上去运行,可以这样操作:
//Thread 0 can only run on CPU 0.
SetThreadAffinityMask(hThread0, 0x00000001);

//Threads 1, 2, 3 run on CPUs 1, 2, 3.
SetThreadAffinityMask(hThread1, 0x0000000E);
SetThreadAffinityMask(hThread2, 0x0000000E);
SetThreadAffinityMask(hThread3, 0x0000000E);

567

社区成员

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

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