并行的应用其实已经很久了,不过最近几年普通PC的CPU也普遍采用多核,并行普及的时代已经到来了。Intel又开始在桌面系统中推它的四核处理器,前几天还看到消息说它几年后将推出32核到48核的图形芯片。
编写桌面程序的人可以不用太担心,依赖操作系统的调度就可以了。而如果是开发专用的算法之类,那就得自己处理,使得多个核心或CPU能够联合起来发挥足够的优势。还有针对32核、48核的图形芯片编程,怎么办?微软的DirectX会支持吗?
想当年刚刚有计算机的时候0101地写程序是多么变态,到现在写个漂亮的程序如同搭积木一样简单(微软不是想让奶奶级别的也会变成吗)。并行的概念虽然很早提出,应用也比较早,但我觉得到现在也没有一个像当初编译器出现那样的飞跃。将来会有吗?
OpenMP、MPI之类基本都是在现有编译器的基础上加东西,对很多人还是有一定的难度。程序员还得精心地考虑如何调度进程(或线程),如何降低调度引入的负载。如同编译器的出现一样,尽管编译器的优化不可能完美,但它毕竟使得大型的项目更容易开发了。对于关键部位的代码,仍然可以用汇编来写。
嗯,其实我的认识也很粗浅,随便联想一下。