问题标签 [mpic++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1505 浏览

boost - 寻找mpic++

我正在按照这些说明尝试构建 Boost MPI.lib文件,但遇到了一个问题:我没有mpic++.

查看 MPICH 和 Open MPI 等 MPI 实现文件,我发现根本没有mpic++包含在内。

我在哪里可以找到mpic++

0 投票
2 回答
1206 浏览

c++ - 可以在 Internet 上而不是在 LAN 集群内分发 MPI (C++) 程序吗?

我编写了一些在大型集群上完美运行的 MPI 代码。集群中的每个节点都具有相同的 cpu 架构,并且可以访问网络(即“通用”)文件系统(以便每个节点都可以执行实际的二进制文件)。但考虑这种情况:

  • 我办公室里有一台带有双核处理器(英特尔)的机器。
  • 我家里有一台带有双核处理器(amd)的机器。

两台机器都运行linux,两台机器都可以在本地成功编译和运行MPI代码(即使用2核)。

现在,是否可以通过 MPI 将两台机器链接在一起,以便我可以利用所有 4 个内核,同时牢记不同的架构,并牢记没有共享(网络)文件系统的事实?

如果是这样,怎么做?

谢谢,本。

0 投票
1 回答
1263 浏览

c++ - 在 MPI_Send / MPI_Recv 对中,如果未正确同步,数据会丢失吗?

让我解释。考虑 4 个从节点 1、2、3、4 和一个主节点 0。现在,1、2、3、4 需要向 0 发送数据。0 以以下格式接收此数据。

显然,不能假设 1、2、3 和 4 将数据发送到 0 的顺序(因为它们都彼此独立运行——2 可能在 1 之前发送数据)。因此,假设 2 确实在 1 之前发送了它的数据(例如),在 MPI_Recv 命令中的源标签“proc”与处理器“1”匹配之前,上面显示的 0 中的接收循环不会启动,因为外部 for 循环强制这个排序。

因此,即使已经有来自 2、3 和 4 的数据,循环也会“等待”直到有数据从 1 传入,然后才能执行任何其他操作。如果从 2,3 和 4 传来的数据会发生什么情况在 1 点之前到达?从某种意义上说,一旦来自“1”的数据确实开始到达然后 proc 增加到 2,那么它最初试图从 2 接收的数据就不再存在了,它是否可以被“遗忘”?如果它被“遗忘”,整个分布式模拟就会挂起,因为它永远无法正确处理特定从属进程的数据。

谢谢,本。

0 投票
0 回答
600 浏览

char - mpic++ main(int, char**) - 不推荐从字符串常量到 'char*' 的转换

0 投票
2 回答
25129 浏览

c++ - 在makefile中创建一个库文件,然后编译

我的问题很简单,但我只是不知道如何解决它。如果我不使用 make 文件,我知道如何编译、库和链接它,因为这样我就可以单独调用 ar 并且一切正常。

无论如何,我正在使用petsc库,并且正在使用他们提供的 makefile:

ARFLAGS 将 -rv 作为默认值,所以我应该在哪里提供这样的信息

我应该在哪里添加 -L./-lclassdll ?

我是makefile的新手,所以我在这里有点迷路:<

我试图将线路更改为

然后我的编译命令似乎是 mpicxx -o myProgram main.o class.o /usr/bin/ar/libclassdll.a class.o -L (这里有很多链接),至少它说: g++ classdll.a没有这样的文件或目录。

所以它甚至不会为我生成一个 lib 文件。所以任何想法都会非常感激。

当我在不同的机器上上传 makefile 时的一个新问题,我当前的 makefile 看起来像这样

这适用于一台机器,但另一台机器出现以下错误

当然,我确实更改了路径,但我想这表明存在其他类型的问题,因为即使我输入“g++ -shared -Wl,-soname,libmyclass.so.1 -o libmyclass.so.1.0 MyClass.o”或“g++” -fPIC -share..." 我会得到同样的错误。

0 投票
2 回答
3442 浏览

c++ - 在 makefile 中编写依赖项,使用 makefile

基于一些 SO 问题 - 以及一些进一步的参考发现 - 我正在尝试构建一个能够:

  • 给定 中的目录,查找要编译$(SRC)的文件;.cpp
  • 编译.cpp,生成.o对象;
  • 从以前编译的每个生成.so共享对象。.o

为了实现这一目标,make 文件应该做的是:

  • 给定 中的目录,查找要编译$(SRC)的文件;.cpp
  • .cpp使用-MM编译器的标志为每个构建依赖项列表;
  • $(eval ...)使用;注释/添加每个依赖项
  • 评估/解决找到的每个依赖项,生成.o.so文件。

到目前为止我有什么:除了让它工作之外,我已经能够做很多事情了(:我得到的错误表明,不知何故,有一个空标签''作为依赖项:

$ make make: *没有规则来制作目标', needed by /home/rubens/bin/label.o'。停止。

所以,这是我还不能运行的makefile:

错误似乎在哪里:它似乎是由依赖项生成步骤引起的,因为当我删除任何空行时,将输出管道传输到grep,如下所示:

该错误以某种方式扩展到一个空的依赖项列表;我可以看到使用echo's in 规则的列表实际上是空的%.o:——唯一不为空的变量是$@and $*

/home/rubens/bin/label.o -- [][][/home/rubens/bin/label]

mpic++ -std=c++0x -O2 -Wall -fPIC -I /home/rubens/libwatershed/include -I /home/rubens/xerces-c-3.1.1/include -c -o /home/rubens/bin /标签.o

mpic++ -l 分水岭 -L -shared /home/rubens/bin/label.o -o /home/rubens/bin/label.so

非常非常欢迎任何有关解决此问题的更好方法的建议;然而,我真的很想在我开始使用类似Cmakeor的东西之前完成这个 makefile 的编写Scons

0 投票
1 回答
1471 浏览

c++ - 与 Cmake 中的库和目录包含的共享对象

我很新Cmake,我正在尝试使用它作为这种方法的替代方法,但效果不佳。

我的结构其实很简单,我有:

在每个App/src/soN文件夹中,我都有一个.cpp文件,该文件将被编译成一个共享对象。我知道我必须CMakeLists.txt在上面列出的每个文件夹中添加一个文件,但我真的迷失了图书馆的链接和包含。

例如,假设在 下有以下文件App/src/so1

而共享对象so1.so需要-I /some/dir/include,也需要链接-L /some/other/dir/lib -l otherdirlib。什么是适当的指令来做这个 using CMake

0 投票
1 回答
725 浏览

compiler-construction - mpic++ 文件是做什么用的?

我想知道 '/usr/bin/mpic++' 文件的用途。

我使用 g++4.5.4 构建 mpich2,mpic++ 脚本默认链接到 g++4.5.4。

然后,我将 g++ 更新为 g++4.7。

我的问题是'我需要使用 g++4.7 重新编译 mpich 还是只修改 mpic++ 脚本'?

谢谢!

0 投票
1 回答
3001 浏览

c++ - MPI_Allreduce 中的致命错误

我需要使用 MPICH 制作集群。在这种情况下,我首先在一台机器上尝试了这些示例(http://mpitutorial.com/beginner-mpi-tutorial/),并且这些示例按预期工作。然后我根据这个(https://help.ubuntu.com/community/MpichCluster)创建了集群并运行下面给出的示例并且它可以工作。

}

所以接下来我运行了这个例子(http://mpitutorial.com/tutorials/mpi-reduce-and-allreduce/)但当时我收到了这个错误。不知道哪里出了问题?

0 投票
1 回答
2588 浏览

c++ - OSX 什么是“错误:无法转换 'const std::__cxx11::basic_string“ 意思是?

我正在我的机器上编译一个朋友的代码,我一直遇到这个错误:

这是什么意思?我该如何诊断或治疗这个问题?我正在使用 mpic++ 编译器。我试过用谷歌搜索这个错误,但我没有找到任何有用的信息。

以下是我构建环境的方式: