当前位置:文档之家› 在 VISUAL STUDIO 2010 (VS)中启动 MPI 群集调试程序

在 VISUAL STUDIO 2010 (VS)中启动 MPI 群集调试程序

在此操作实例中,您将了解如何在本地计算机和 Microsoft Windows HPC Server 2008 群集上设置和启动 MPI 群集调试程序会话。

此操作实例包括使用消息传递界面 (MPI) 和打开多进程 (OpenMP) 应用程序编程界面 (API) 创建应用程序所需的步骤和示例代码。

本指南内容:使用 MPI 群集调试程序的要求在 Visual Studio 2010 中创建 C++ MPI 示例项目配置和启动 MPI 群集调试程序附录:除应用程序二进制外,Visual Studio 部署的文件和 CRT (如果要求)使用 MPI 群集调试程序的要求您的开发计算机上必须安装了 Visual Studio 2010 Professional Edition 或更高版本(包括远程调试程序)。

您必须在群集上拥有管理权限。

Visual Studio 必须能够访问要运行调试会话的计算节点。

以下方案提供了所需的访问权限:您在群集头节点或专用登录节点上开发应用程序。

所使用群集的计算节点被连接到企业网络(拓扑 2、4 或 5),并且您的开发计算机连接到了相同的域或是与群集域有信任关系的域。

要从客户端计算机将应用程序提交到 HPC 群集,您必须安装了 Microsoft HPC Pack 2008。

要使用 Microsoft 消息传递界面构建 MPI 程序,需要在开发计算机上安装Windows HPC Server 2008 SDK。

在 Visual Studio 2010 中创建 C++ MPI 示例项目本部分的示例代码用于一个使用 Monte Carlo 模拟估算 Pi 值的并行应用程序。

示例代码在每个 MPI 进程上运行 50,000,000 次迭代计算。

在每次迭代计算中,示例代码都生成间隔为[0,1] 的随机数字以确定一组 x 和 y 坐标。

然后评估坐标组以确定点是否位于行 x2 + y2 = 1 下。

如果点位于该行下,则变量 count 将加一。

每个 MPI 的值 count 的总和将成为变量result。

将位于行 (result) 下的总点数乘以四,然后再用所乘的结果除以总迭代计算次数以估算 Pi 值。

以下步骤包含 Monte Carlo 模拟的两个实现。

第一个示例使用的是 MPI 和 OpenMP。

有关 OpenMP 的详细信息,请参阅 OpenMP in Visual C++。

第二个示例使用的是 MPI 和并行格式库 (PPL)。

有关 PPL 的详细信息,请参阅 Parallel Patterns Library (PLL)。

创建示例项目的步骤运行 Visual Studio 2010。

创建一个名为 ParallelPI 的新 C++ Win32 控制台应用程序。

使用一个无预编译头的项目。

在“文件”菜单上,指向“新建”,然后单击“项目”。

在“新建项目”对话框中,单击“已安装的模板”,然后选择“Visual C++”。

(根据 Visual Studio 的设置方式,“Visual C++”可能位于“其他语言”节点下。

)在模板列表中,单击“Win32 控制台应用程序”。

关于项目名称,请键入:ParallelPI. 单击“确定”。

此操作将打开“Win32 控制台应用程序”向导。

单击“下一步”。

在“应用程序设置”中的“其他选项”下,清除“预编译头”复选框。

单击“结束”以关闭向导并创建项目。

指定此项目的其他属性。

在“解决方案资源管理器”中,右键单击 Parallel PI,然后单击“属性”。

此操作将打开“属性页”对话框。

展开“配置属性”,然后选择“VC++ 目录”。

在“包含目录”中,将指针指到文本框中显示的列表的开头,然后指定 MS MPI C 标头文件的位置,随后添加英文分号 (;)。

例如: C:\Program Files\Microsoft HPC Pack 2008 SDK\Include; 在“库目录”中,将指针指到文本框中显示的列表的开头,然后指定 Microsoft HPC Pack 2008 SDK 库文件的位置,随后添加英文分号 (;)。

例如,如果您要构建和调试 32 位应用程序: C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386; 如果您要构建和调试 64 位应用程序: C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64; 在“链接器”下,选择“输入”。

在“附加依赖关系”中,将指针指到文本框中显示的列表开头,然后键入: msmpi.lib; 如果您使用的是 OpenMP 代码示例:在“配置属性”中展开“C/C++”,然后选择“语言”。

在“打开 MP 支持”中,选择“是(/openmp)”以启用编译器对 OpenMP 的支持。

单击“确定”关闭属性页。

在主要源文件中,选择全部代码,然后将其删除。

将以下示例代码之一粘贴到空的源文件中。

第一个示例使用的是 MPI 和 OpenMP,第二个示例使用的是 MPI 和并行格式库 (PPL)。

以下代码示例使用的是 MPI 和 OpenMP。

函数 ThrowDarts 使用 OpenMP 并行 for 循环,以利用多核硬件(如果可用)。

// ParallelPI.cpp : Defines the entry point for the MPI application. // #include
"mpi.h" #include "stdio.h" #include "stdlib.h" #include。

相关主题