主题:[讨论]说一说,怎样用VS 2010开发并行软件?
随着多核处理器的快速发展,传统的应用程序再也无法顺其自然地在更高端的硬件设备上获得更高的性能回报,多核并行计算软件成为应对硬件发展解决主流解决方案,同时成为软件核心发展趋势。
因为并行编程有别于串行编程,要改变这种思维定式不但需要一段时间,更需要良好的开发平台。最新发布的VS 2010中对于并行计算开发有了良好的支持,能够便捷进行并行计算开发。
因为并行开发不仅仅是写代码这么简单,并行开发首先要从需求分析、程序的设计编写、到调试和性能优化、以及测试、发布和后期维护,这一系列的行为在串行编程的复杂性上平添了一个维度。所以需要系统的工具和模型。
VS 2010中为C++实现了一套并发编程框架,支持常用的协同任务调度和硬件资源(CPU和内存)管理。使开发者充分利用细颗粒度并行的优势,保证空闲的线程依照一定的顺序,从本地、全局,甚至是其他线程的任务队列中“偷取”任务执行。同时,性增的新语言和库功能,以及一系列面向任务的并行结构和算法是简化并行程序开发的另一个重要基础。
VS 2010里包含了两个新的调试器窗口和一个新的性能可视化剖析器(Profiler)。有了这两个调试器窗口,开着可以在代码同等的任务进行调试,不但可以看到任务的状态,彼此之间的关系,调用堆栈等等。还可以看到任务对应的线程,并利用一个全局的统一视图来查看所有线程的调用堆栈,以及彼此之间的关系等。
另外,VS 2010里的并行性能可视化探查器,可以帮助开发者你看到应用程序对资源的利用情况,程序的哪个部分是受计算量限制的,以及线程的执行情况,阻断的原因,线程在不同的核之间切换的情况等等。当然,我们也可以根据在线程执行的不同时间点上,跳转到相应的调用堆栈,去研究造成线程阻断的根本原因。
总之,VS 2010的新特性新技术,在简化、推动并行应用程序的开发中变的更加便捷简单。
因为并行编程有别于串行编程,要改变这种思维定式不但需要一段时间,更需要良好的开发平台。最新发布的VS 2010中对于并行计算开发有了良好的支持,能够便捷进行并行计算开发。
因为并行开发不仅仅是写代码这么简单,并行开发首先要从需求分析、程序的设计编写、到调试和性能优化、以及测试、发布和后期维护,这一系列的行为在串行编程的复杂性上平添了一个维度。所以需要系统的工具和模型。
VS 2010中为C++实现了一套并发编程框架,支持常用的协同任务调度和硬件资源(CPU和内存)管理。使开发者充分利用细颗粒度并行的优势,保证空闲的线程依照一定的顺序,从本地、全局,甚至是其他线程的任务队列中“偷取”任务执行。同时,性增的新语言和库功能,以及一系列面向任务的并行结构和算法是简化并行程序开发的另一个重要基础。
VS 2010里包含了两个新的调试器窗口和一个新的性能可视化剖析器(Profiler)。有了这两个调试器窗口,开着可以在代码同等的任务进行调试,不但可以看到任务的状态,彼此之间的关系,调用堆栈等等。还可以看到任务对应的线程,并利用一个全局的统一视图来查看所有线程的调用堆栈,以及彼此之间的关系等。
另外,VS 2010里的并行性能可视化探查器,可以帮助开发者你看到应用程序对资源的利用情况,程序的哪个部分是受计算量限制的,以及线程的执行情况,阻断的原因,线程在不同的核之间切换的情况等等。当然,我们也可以根据在线程执行的不同时间点上,跳转到相应的调用堆栈,去研究造成线程阻断的根本原因。
总之,VS 2010的新特性新技术,在简化、推动并行应用程序的开发中变的更加便捷简单。