【求助】新手询问多核开发基本问题!

linjiework 2011-05-30 02:48:16
看了很多关于多核开发的资料,都没讲是物理多核(即有多个物理上的 CPU)还是逻辑多核(即只有一个物理CPU,但该CPU 是多核的)。是不是这两者在软件开发上是一样的,没有区别?

我看到关于多核开发都是讲多线程问题,难道说多进程的程序就不存在多核开发的问题?还是多进程的程序调度由操作系统完成了,无需开发者关心?

我现在需要在 Red Hat Linux 系统下,使用多个多核CPU 开发一套程序用来接收和存储数据,系统采用两个 Red Hat Linux 服务器做冗余(即双机热备)。开发语言为 C 语言(注意:不是 C++),那么在程序上应该如何开发,需要使用哪些开发包?使用多线程和多进程开发这样的系统有什么区别?


我是新手,请大家多多指点。如果有些问题不好讲清楚,给个参考链接也行,谢谢!



...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linjiework 2011-06-07
  • 打赏
  • 举报
回复
谢谢大家,结分了。
intel_iclifort 2011-06-03
  • 打赏
  • 举报
回复
针对硬件层面的多处理器和多核CPU进行优化,这些工作应该由操作系统,或者是你使用的多线程库完成(比如OpenMP,TBB,Cilk Plus)。

但是应用层面针对并行的优化,也是必须考虑的。比如负载是否均衡,是否有不合理的开销过大的锁,数据并行,还是任务并行,使用何种并行手段,代码的跨平台移植性,等等

linjiework 2011-06-03
  • 打赏
  • 举报
回复
还有人能做解答吗?谢谢!
linjiework 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoujk 的回复:]
多个物理上的 CPU 和一个多核 CPU 的区别是它们共享的程度不一样,多个CPU的共享是在内存进行的,多核CPU的共享是在缓存上进行的。这种区域对普通开发者而言区别不大。如果不是写特别底层的代码,如主板驱动,可以不管这个内容。
多进程的程序调度由操作系统完成了,无需开发者关
上述只是Win系统中的概念,没完过 Linux
[/Quote]


学习了,十分感谢!
zhoujk 2011-05-31
  • 打赏
  • 举报
回复
多个物理上的 CPU 和一个多核 CPU 的区别是它们共享的程度不一样,多个CPU的共享是在内存进行的,多核CPU的共享是在缓存上进行的。这种区域对普通开发者而言区别不大。如果不是写特别底层的代码,如主板驱动,可以不管这个内容。
多进程的程序调度由操作系统完成了,无需开发者关
上述只是Win系统中的概念,没完过 Linux
linjiework 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fox93073906 的回复:]
我只知道使用pthread库,这个库不是glib库里自带的
[/Quote]


谢谢!

我知道线程和进程的开发方法,重点关心的是开发过程中是否需要对多处理器和多核CPU进行优化。

代码熟练工 2011-05-30
  • 打赏
  • 举报
回复
我只知道使用pthread库,这个库不是glib库里自带的

566

社区成员

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

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