Visual Studio 2010并行编程及调试诊断功能详解
创始人
2024-06-06 04:40:34
0

Visual Studio2010 Beta 1发布后,开发人员从其新特性,新功能中得到了不少的帮助。这里将介绍Visual Studio 2010并行编程方面的改进,较Visual Studio 2008有了极大的提高。

每当出现新的编程模型时,开发人员便需要一个用来学习、编写、调试以及优化代码的健壮的工具,以便能更好的利用该模型。由于并行计算在公式中添加了新的变量,对于工具的需求便更为突出。

Visual Studio 2010大幅度的提升了并行调试的用户体验。其中大部分的功能在Visual Studio 2008中也可通过插件获得。这里我将给大家介绍在Visual Studio 2008以及即将发布的Visual Studio2010并行编程、调试以及诊断等功能。

调试

虽然Visual Studio 2005有一个内建的MPI程序的简单调试器,但并未提供完整的“F5”体验。在新的Visual Studio 2008 插件(同时也将集成到Visual Studio 2010中)中,您只需选择一个集群头节点以及您需要多少核,然后按F5就可以对您的MPI程序进行调试了。

调试MPI程序

除了调试团队所作的很棒的核心工作以外,并行调试技术的领先供应商Allinea还将他们的环境导入到了Visual Studio中。Allinea的插件提供了针对集成的MPI程序的调试,包括基于排名的上下文切换、组单步调试、暂停及运行、并行栈视图和迭合。下面是Allinea的MPI调试环境:

Allinea的MPI调试环境

面向服务的架构调试

Windows HPC Server 2008的一个重要的新的编程模型是集群系统面向服务体系架构 (Cluster SOA),它是基于WCF构建的,并包含由HPC的调度器和代理节点提供的高级调度和负载平衡功能。目前为止,对面向服务架构的集群系统的调试还仅仅限于基本的WCF/.Net方式的调试,并无集群的集成。在Visual Studio 2010中,一个集群面向服务架构插件将提供SOA设置标签,在这里您可以选择头节点、调试节点和服务、部署运行时类库并自动进行清理。现在来看一下Visual Studio 2010中新的SOA调试器吧:

SOA调试器

剖析 (Profiling)

Windows Server HPC 1.0中没有集成针对MPI程序的剖析功能。在Windows HPC Server 2008中,XPerf等工具提供了MPI的剖析以及系统级别的剖析和故障排查的功能。但即使是XPerf也对MPI消息流量等细节所知甚少,目前为止也没有消息流量的浏览器。自那以后,消息流量浏览器Vampir被导入到Windows并完整地集成在事件跟踪日志(ETW)中。Vampir提供了对消息顺序和延迟进行故障排查的功能。还有更多的开源HPC工具,比如JumpShot是一个免费的基于Java的MPI消息浏览器。

在很多时候,VS内置的剖析器就能提供性能问题的分析。在Visual Studio 2010中,这一功能与HPC工作调度器进行了完整的集成,用来分析一个特定的MPI排名或节点的性能。Visual Studio MPI 剖析功能提供了行级别的剖析信息,包括与源代码视图并排的执行过程中的温度视图:

温度视图

剖析器还显示多个运行或版本的结果比较报告,这样您就可以轻松地了解您的修改所带来的效果。

修改后的效果

MPI 运行时分析

除了调试器和剖析器之外,有时您还需要专门的分析工具来帮助分析大规模并行程序的复杂度。位于斯图加特的HLRS/ZIH是德国的一个在该领域领先的机构,将他们自己的MPI分析工具Marmot导入到了Visual Studio 2008。Marmot可以用来检查MPI调用的输入参数的合法性、检测无法再生性、死锁和对资源的不正确管理。下面是运行中的Marmot:

运行中的Marmot

从Printf到集成的剖析和调试

不久前我们还在printf风格的调试世界里,“艺术级”的调试和剖析工具将此往前推进了一大步。

在Visual Studio里,您可以调试和剖析高性能MPI程序以及拥有成百到上千个核的集群SOA应用程序。您可以使用XPerf和事件跟踪日志来获取应用程序在整个系统环境中的全局视图。Visual Studio 2010里新增的多核剖析和调试工具也可以有效地用于集群的节点级别分析。

Visual Studio正成为越来越丰富和有效的编写各种并行程序的开发环境。访问Windows HPC Server 开发人员资源中心您能找到更多关于Windows HPC的开发模型。在CodePlex的Parallel Dwarfs站点上您能找到许多使用各种Visual Studio 2010并行编程模型的示例。

【编辑推荐】

  1. Visual Studio 2010响应Ribbon控件消息
  2. 微软称C++将得到Visual Studio 2010更多支持
  3. Visual Studio 2010新特性:动态语言功能
  4. 微软对Visual Studio 2010的Bug熟视无睹?
  5. Visual Studio 2010 Beta1试用手记

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...