早在2001年IBM推出了基于双核的Power4处理器;随后Sun和HP乘风追击,先后推出了基于双核架构的UltraSPARC IV以及PA-RISC8800处理器。但这些面向高端应用的RISC处理器曲高和寡,并没有能够引起广大群众的关注。直到2005年第二季度,Intel发布了基于X86的桌面双核处理器,从此多核才走进平常百姓家。

         时至今日,多核处理器的时代已经席卷而来。单核芯片已经渐行渐远了。多核编程既是机遇也是挑战,如何在这个行业大变革中把握方向、与时俱进,成为当务之急。怎么在一个芯片上来顺利处理多CPU内核编程成为了一件棘手的难题,这些多核处理器正在潜移默化地改变着开发人员传统的编程习惯。

  一旦您学会了用并行的方法来处理编程,任何问题就会迎刃而解。并行编程环境过去是很不方便的。但是随着并行计算社区的发展,尤其是多核和多芯片服务器的使用越来越广泛,高性能和并行计算获得了越来越多的支持。因此,需要一种优秀的并行平台。今天,我为大家重磅推荐10款工具,可以帮助大家缓解压力,顺利过渡到多核软件开发中。

  1、Intel Parallel Studio

 多核开发的10款编程工具

  Parallel Studio并行程序开发套件,旨在为基于Microsoft Visual Studio的C与C++程序开发各阶段提供简单、高效的Parallel Studio工具,显著提高应用程序在英特尔多核处理器上的性能。

  英特尔 Parallel Studio由英特尔 Parallel Composer、英特尔 Parallel Inspector以及英特尔 Parallel Amplifier三部分组成,每一款都具有强大的功能,既可各自独立使用,也可一起使用,可快速满足开发人员的并行程序开发需求。它具有较强的线程管理功能,提供优化的编译器和库,还拥有内存错误和线程检查器,以及线程性能分析器。

  2、Intel Threading Building Blocks

  多核开发的10款编程工具

  在多核的平台上开发并行化的程序,必须合理的利用系统的资源,如与内核数目相匹配的线程,内存的合理访问次序,最大话重用缓存。有时候用户使用低级应用接口创建、管理线程、很难保证应用程序是否处于最佳状态。

  作为Intel Parallel Studio XE (Extreme Edition)的一部分,Intel Threading Building Blocks提供了C++模板库,线程库的接口适合于跨平台移植,允许开发人员按照可用的处理器内核,来部署基于任务的并行应用程序。它提供了一些组件来实现并行编码,非常灵活,适合不同的多核平台,可以很好的解决上面的问题,用户可以不必关注线程,转而重点关注任务。

  3、Microsoft C ++ AMP

 多核开发的10款编程工具

  C++ AMP是微软Visual Studio和C++编程语言的新扩展,用于帮助开发人员充分适应现在和未来的高度并行和异构计算环境。C++ AMP标准将是一种开放的规范,它使用C++语言的句法,允许其它编译器集成和支持。通过这个C++ AMP扩展程序,能够让程序员轻松调用CPU和GPU的异构并行计算性能。微软据称这个扩展程序未来将会公开,并且允许其他编译器集成它。目前比较常用的接口标准是OpenCL,而微软推出这样的工具,可以让程序员有另外一个选择。

  4、Microsoft Visual Studio 2010 和 .Net Framework 4

 多核开发的10款编程工具

  微软强化了Visual Studio 2010和.NET Framwork 4的功能,它提供了并行扩展套件Parallel Extension,主要由 Task parallel Library、Parallel LINQ、Coordination Data Structures等三部分组成。该并行扩展套件时一个.NET类库,支持声明式和命令式的数据并行、还支持协同的数据结构,允许开发人员编写并行和并发应用程序。

  5、Rogue Wave Software ThreadSpotter

 多核开发的10款编程工具

  Rogue Wave Software ThreadSpotter是一款工具,在多核和单核系统中用来优化内存、分析内存和线程通信,暴露性能上的问题,并提供解决问题的方案。 


 

  6、Rogue Wave Software TotalView

 多核开发的10款编程工具

  Rogue Wave Software TotalView提供了一组调试工具套件,适用于C/C++的调试,可用来查找和纠正代码错误,验证原型和验证码。这些工具支持编译应用程序运行在Linux、Unix和Mac OS X上。

  7、Eclipse Parallel Tools Platform

 多核开发的10款编程工具

  这种开源的Eclipse Parallel Tools Platform(PTP)项目主要用来为并行应用程序的开发提供一个高效的平台,它内嵌的IDE支持并行架构和运行时系统,拥有并行调试器,为大多数并行工具提供了扩展支持。Eclipse Parallel Tools Platform是一个一致的基于开放标准的 Eclipse 环境,它允许高性能计算应用程序的开发人员消除开发周期中的发现阶段。有了 Eclipse 和 Java 编程语言的帮助,在机器之间迁移时就不再需要学习另一种高性能计算平台。由于 LANL 和 Eclipse 平台的贡献,现在有了一个用来开发、运行和调试并行应用程序的一致的平台。它可以用来构造一个与网格相似的机器阵列,从而帮助进行高性能计算。可以选择由多少个进程组成应用程序,当应用程序运行时,每个进程可以在单独的机器上运行、执行计算并使用 MPI 在进程之间来回传递数据。PTP 创建一个包含所有可用机器的网格,作业可以通过网络在这些机器上运行

  8、Oracle Solaris Studio

 多核开发的10款编程工具

  Oracle Solaris Studio是一个针对C、C++和Fortran的开发套件平台,可为Oracle Solaris系统创建快速、可扩展、安全和可靠的企业应用程序。它提供的一些分析工具可以用来优化编译器,提高多线程的性能,使应用程序运行在Solaris、Oracle Linux、和Red Hat Enterprise Linux平台上。Oracle Solaris Studio通过为并行开发提供igongOpenMP 3.1 API的规范,从而来简化多核开发。它还支持Sparc和x86的CPU架构。

  9、IBM Rational Rhapsody Developer

 多核开发的10款编程工具

  · IBM Rational Rhapsody Developer是一个面向基于统一建模语言 (UML) 的嵌入式、实时或技术应用程序软件开发的可视化开发环境。它可以为多核处理器生成代码,同时在部署多核应用程序的时候降低复杂性。它有助于提高整个嵌入式软件开发生命周期(从需求捕获到实施、测试和部署)的生产力。它可以生成完整的嵌入式应用程序,能用来模拟和基于模型的测试及可视化开发、 能将需求存储在设计元素和测试用例中,提供模型内的跟踪信息,帮助团队协作管理在不同环境中开发一致性设计的复杂性。与其他 IBM Rational 产品集成,可进行完整的产品生命周期开发。此外,您还可以使用可选的附加软件产品扩展 Rational Rhapsody Developer 的功能。

  10、Tilera Multicore Development Environment

 多核开发的10款编程工具

  Tilera Multicore Development Environment是一个多核编程平台,它具有Tilera的Tile处理器架构的并行处理能力。它提供了Linux运行时组件、Eclipse IDE,具有图像多核应用程序的调试和分析功能,还支持类似Perl、Python、PHP和 Erlang等语言。

        总之,作为一线的编程人员,我们必须直面多核革命带来的冲击。因为从单核到多核并不像处理器时钟频率的提升那样对程序员而言是透明的。对于Windows程序员来说,使用多线程的主要原因之一是为了提高用户体验:如在长时间的计算中提高UI、I/O或者网络的响应速度。而在多核时代我们编写应用程序是为了充分利用多个计算核心,缩短计算时间或者在相同的时间段内计算更多任务。现在用的多核编程工具注意是面向共享存储机制的openMP,主要利用的共享内存保护机制是分布式锁机制。如果我们的编写的程序没有针对多核的特点来设计,那就不能完全获得多核带来的性能提升。在这样一个旧瓶换新酒的时代,希望这十款编程工具能为多核编程人员保驾护航,在软件开发中乘风破浪。