如何使用xcode 4编译openmpi程序?
我使用的是lion和xcode 4.2。我使用macports安装了openmpi。它全部安装成功 但是,我找不到指南来告诉我如何/包括哪些库来编译示例(见下文)如何使用xcode 4编译openmpi程序?,xcode,macos,osx-lion,parallel-processing,openmpi,Xcode,Macos,Osx Lion,Parallel Processing,Openmpi,我使用的是lion和xcode 4.2。我使用macports安装了openmpi。它全部安装成功 但是,我找不到指南来告诉我如何/包括哪些库来编译示例(见下文) #包括 #包括 int main(int argc,char*argv[]) { 国际货币基金组织; int-myid; MPI_状态统计; /*所有MPI程序都以MPI_Init开始*/ MPI_Init(&argc,&argv); /*Comm_size告诉我们有多少个进程*/ MPI通信大小(MPI通信世界和numprocs);
#包括
#包括
int main(int argc,char*argv[])
{
国际货币基金组织;
int-myid;
MPI_状态统计;
/*所有MPI程序都以MPI_Init开始*/
MPI_Init(&argc,&argv);
/*Comm_size告诉我们有多少个进程*/
MPI通信大小(MPI通信世界和numprocs);
/*Comm_rank查找进程的级别*/
MPI通信等级(MPI通信世界和myid);
/*打印一条消息*/
printf(“Hello world,来自进程%d,共%d\n”,myid,numprocs);
/*MPI程序以MPI Finalize结束;这是一个弱同步点*/
MPI_Finalize();
返回0;
}
Xcode报告缺少mpi.h Open mpi有一个演练来完成这项工作 除了Dhaivat的链接,还有一些开放式MPI教程和。您需要做两件事: 1) 抓住 libmpi.1.dylib libmpi_cxx.1.dylib 并将它们复制到应用程序的项目文件夹中 2) 将mph.h文件(可能是/usr/local/include)的位置添加到标题搜索路径中 还要检查$PATH是否具有安装OpenMPI的路径;否则将导致编译时出错
祝你好运 这真的很容易。您可以按照OpenMPI网站中的说明操作,也可以执行以下操作(这将帮助您将任何程序链接到任何其他库) 在导航器(左面板)中选择项目。在“生成设置”中,搜索库搜索路径并放置MPI库所在的路径(/usr/local/lib) 然后查找用户头搜索路径,并将路径放在MPI头所在的位置(/usr/local/include) 最后,在构建阶段,查找带有库的链接二进制文件,单击加号(+),单击添加其他,按Cmd+Shift+G并将路径放在库
libmpi.1.dylib
,libmpi\u cxx.1.dylib
是(/usr/local/lib)的位置,添加它们,构建并运行,它应该像一个符咒一样工作
有点晚了,但这可能对其他人有所帮助。谢谢,这很有帮助。这是一个很好的教程。我不得不使用(假设只是一个更高版本)
libmpi.12.dylib
而不是libmpi.1.dylib
。此外,我必须使用#include“mpi.h”
而不是使用#include
来包含它。希望这会继续有帮助!此外,我还必须首先使用[sudo]brew install openmpi安装它,因为目录/Library/Application Support/Apple/Developer Tools
已不存在,它似乎不再工作
#include <mpi.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int numprocs;
int myid;
MPI_Status stat;
/* all MPI programs start with MPI_Init */
MPI_Init(&argc,&argv);
/* Comm_size tells us how many processes there are */
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
/* Comm_rank finds the rank of the process */
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
/* Print out a message */
printf("Hello world, from process %d of %d\n", myid, numprocs);
/* MPI Programs end with MPI Finalize; this is a weak synchronization point */
MPI_Finalize();
return 0;
}