问题标签 [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.
boost - 寻找mpic++
我正在按照这些说明尝试构建 Boost MPI.lib
文件,但遇到了一个问题:我没有mpic++
.
查看 MPICH 和 Open MPI 等 MPI 实现文件,我发现根本没有mpic++
包含在内。
我在哪里可以找到mpic++
?
c++ - 可以在 Internet 上而不是在 LAN 集群内分发 MPI (C++) 程序吗?
我编写了一些在大型集群上完美运行的 MPI 代码。集群中的每个节点都具有相同的 cpu 架构,并且可以访问网络(即“通用”)文件系统(以便每个节点都可以执行实际的二进制文件)。但考虑这种情况:
- 我办公室里有一台带有双核处理器(英特尔)的机器。
- 我家里有一台带有双核处理器(amd)的机器。
两台机器都运行linux,两台机器都可以在本地成功编译和运行MPI代码(即使用2核)。
现在,是否可以通过 MPI 将两台机器链接在一起,以便我可以利用所有 4 个内核,同时牢记不同的架构,并牢记没有共享(网络)文件系统的事实?
如果是这样,怎么做?
谢谢,本。
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 接收的数据就不再存在了,它是否可以被“遗忘”?如果它被“遗忘”,整个分布式模拟就会挂起,因为它永远无法正确处理特定从属进程的数据。
谢谢,本。
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..." 我会得到同样的错误。
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
非常非常欢迎任何有关解决此问题的更好方法的建议;然而,我真的很想在我开始使用类似Cmake
or的东西之前完成这个 makefile 的编写Scons
。
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
?
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++ 脚本'?
谢谢!
c++ - MPI_Allreduce 中的致命错误
我需要使用 MPICH 制作集群。在这种情况下,我首先在一台机器上尝试了这些示例(http://mpitutorial.com/beginner-mpi-tutorial/),并且这些示例按预期工作。然后我根据这个(https://help.ubuntu.com/community/MpichCluster)创建了集群并运行下面给出的示例并且它可以工作。
}
所以接下来我运行了这个例子(http://mpitutorial.com/tutorials/mpi-reduce-and-allreduce/)但当时我收到了这个错误。不知道哪里出了问题?
c++ - OSX 什么是“错误:无法转换 'const std::__cxx11::basic_string“ 意思是?
我正在我的机器上编译一个朋友的代码,我一直遇到这个错误:
这是什么意思?我该如何诊断或治疗这个问题?我正在使用 mpic++ 编译器。我试过用谷歌搜索这个错误,但我没有找到任何有用的信息。
以下是我构建环境的方式: