利用多核的三个层次——观点贴
利用多核有三个层次。一是系统层次。一个核跑一个OS,每一个程序永远只能用一个核。这样大家都轻松。但是双核的时候我可以跑两个OS,难道4核的时候我需要跑4个OS?8核的时候...,我跑些什么OS呢?所以这个方向不可能很长久。
二是线程层次。就是说每一个新的线程自动利用空闲的core,这样的话应用程序的程序员也不用管,下层的操作系统就包办此事。只要照常写multi- threaded应用就好。我觉得这种模式可以坚持很长时间。因为现在大家一开机器就大概有几十个线程在跑,所以直到比如16核,甚至32核之前,使用这种方法就可以提高性能。问题仅仅在于,多线程程序并不好写,特别是不好调试。所以大家努力学习多线程开发吧。很多客户端程序,可能要求以这种思维重写。 Notepad和Calc的功能越来越强,还真没准要这么重写呢,你还别不信。
三是算法层次。就是说执行每一个具体的算法任务,都尽可能利用多核并行。比如说100个整数相加,在4核CPU上,可以分别让四个核处理25个数的加法,最后将4个结果加起来。这种方法几乎要求我们重写现有的大部分程序,无论是客户端还是服务端的应用。好在似乎只有少数应用需要这么干。而且有OpenMP等帮助我们。
总的来说,无论是第二层次还是第三层次,multicore带来的冲击势必是不可忽略的。
二是线程层次。就是说每一个新的线程自动利用空闲的core,这样的话应用程序的程序员也不用管,下层的操作系统就包办此事。只要照常写multi- threaded应用就好。我觉得这种模式可以坚持很长时间。因为现在大家一开机器就大概有几十个线程在跑,所以直到比如16核,甚至32核之前,使用这种方法就可以提高性能。问题仅仅在于,多线程程序并不好写,特别是不好调试。所以大家努力学习多线程开发吧。很多客户端程序,可能要求以这种思维重写。 Notepad和Calc的功能越来越强,还真没准要这么重写呢,你还别不信。
三是算法层次。就是说执行每一个具体的算法任务,都尽可能利用多核并行。比如说100个整数相加,在4核CPU上,可以分别让四个核处理25个数的加法,最后将4个结果加起来。这种方法几乎要求我们重写现有的大部分程序,无论是客户端还是服务端的应用。好在似乎只有少数应用需要这么干。而且有OpenMP等帮助我们。
总的来说,无论是第二层次还是第三层次,multicore带来的冲击势必是不可忽略的。
...全文
相关推荐
Linux利用多核多线程进行程序优化.docx
**软件优化的三个层次** 有效的程序优化应该遵循系统的层次结构,从宏观到微观逐层深入: - **系统层面**:检查硬件资源(如内存、CPU速度)和系统负载,优化操作系统配置,如内存管理、调度策略等。
层次化架构嵌入式多核处理器原型设计及其编程研究.pdf
**层次化架构**:层次化架构是一种处理器设计方法,它通过将处理单元组织成不同层次,以提高资源利用率和系统性能。在多核处理器中,层次化架构可以优化通信效率和数据访问速度。2.
Aurix多核编程精华应用笔记
应用笔记利用了一个极简的同质化样例,旨在使用户熟悉AURIX™多核编程的所有基础细节。
利用OpenMP线程绑定技术提升多核平台应用性能
### 利用OpenMP线程绑定技术提升多核平台应用性能#### 摘要随着多核处理器的普及,如何高效地利用这些处理器成为了一个重要的研究课题。
利用多cpu或多核cpu求解deform3d案例
在材料成型模拟软件Deform3D中,合理利用多核或多CPU资源可以显著提高计算效率,缩短求解时间。


