问题标签 [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 投票
1 回答
4889 浏览

c++ - 如何在 MPI_Send 中发送一个集合对象

我搜索发送一个集合对象,我发现最接近的是向量(它不同,不适用于集合)。

如何在 MPI_Send 中发送集合对象?(不使用boost库)任何人都可以举一个简单的例子吗?

0 投票
0 回答
107 浏览

linker - 如何强制 MPICH 使用 GCC (g++) 而不是 PGI(pg++)?

我正在编译使用 C++ 编写的 MPI + OpenMP,我需要在使用 g++ 编译器的系统上对其进行测试,但目前该系统正在使用 mpic++ 包装器下的 PGI 编译器。

有什么办法可以强制使用 g++ 而不是 pgc++ 吗?

0 投票
0 回答
33 浏览

c++ - 显式实例化的 MPICH 问题(忽略外部)

我使用显式实例化技术编写了一个简单的 C++ 程序,如下所示:

这里我有类 foo 的显式实例化:

在主文件中,我使用extern关键字告诉编译器foo::call已经实例化,因此无需再次编译:

我使用gcc-4.9使用g++mpic++测试程序。对于g++,当我通过foo.o时它工作正常:

当我没有通过foo.o时,它会按预期抱怨:

但是当我在这两种情况下(通过或不通过foo.o )使用mpic++ (MPICH)编译时,程序编译时应该会抱怨foo.o没有通过。

或者

我用OpenMPI测试了代码,行为与g++相同。所以问题是为什么MPICH会忽略extern并再次编译实例化。

谢谢,

0 投票
2 回答
1454 浏览

mpi - 如何多次运行同一个 MPI 程序

我有一个 MPI 程序来计算排序时间。我用mpirun -np 2 mpiSort. 所以这给了我2个过程的排序时间。

我想获得 5 次的排序时间来平均它们。我如何自动做到这一点?

mpiSort如果我在程序中做一个循环。它实际上执行 5(次)x 2(进程)= 10 次。

编辑:mpiSort并行排序。基本上,我试图在mpirun -np 2 mpiSort不输入 5 次的情况下做到这一点。因为我想对 4 核、8 核做同样的事情。

0 投票
1 回答
200 浏览

c++ - 使用 mpic++ 错误的 C++ 编译

我正在尝试在 Linux 系统上使用 mpic++ 编译程序。该程序包含我们教授提供的源文件,正是这些文件引发了错误。在 Visual Studio C++ 中编译代码没有问题,但我们需要在 Linux 系统上启动它,当我将它移动到 Linux 系统以使用 mpic++ 编译它时出现错误。

错误不断发生,这些只是最初的几个。此特定错误引用的代码如下所示。

据我所知,我们不允许更改提供给我们的代码。

谢谢你的帮助。

编辑:

我使用makefile来编译程序。

0 投票
1 回答
593 浏览

asynchronous - MPI isend 和 irecv 的意外结果

我的目标是从进程 0 向进程 1 发送一个向量。然后,将其从进程 1 发送回进程 0。

我的实施有两个问题,

1-为什么从进程 1 发送回进程 0 比反之亦然花费更长的时间?第一个 send-recv 总共需要 ~1e-4 秒,第二个 send-recv 需要 ~1 秒。

2- 当我增加向量的大小时,出现以下错误。这个问题的原因是什么?


mpirun 注意到节点 server1 上 PID 为 11248 的进程等级 0 在信号 11 上退出(分段错误)。

我更新的 C++ 代码如下

输出为:进程 1:2.484e-05 (sec) 上的挂钟时间

进程 2 上的挂钟时间:0.000125325(秒)

测试是否从节点 0 收到数据:1

进程 2 上的挂钟时间:0.000125325(秒)

测试是否从节点 1 收到数据:2

进程 1:1.00133 上的挂钟时间(秒)

0 投票
2 回答
1698 浏览

gcc - 使用 mpich 和 gcc 编译失败

我在 centos 上用 gcc 4.8.3 编译了 mpich 3.2。一切似乎都很好。然后我写了一个简单的测试程序,

并使用 mpic++ 编译。然后错误返回,

/home/setups/mpich-3.2/build/lib/libmpi.so:未定义引用_intel_fast_memcpy' /home/setups/mpich-3.2/build/lib/libmpi.so: undefined reference to__intel_sse2_strncmp' /home/setups/mpich-3.2/build/lib/libmpi.so:未定义引用_intel_fast_memset' /home/setups/mpich-3.2/build/lib/libmpi.so: undefined reference to__intel_sse2_strlen'

究竟出了什么问题?我很困惑,错误似乎与intel编译器有关,但我使用gcc通过命令编译mpich,

我已将 /home/setups/mpich-3.2/build/bin 添加到 PATH 并将 /home/setups/mpich-3.2/build/lib 添加到 LD_LIBRARY_PATH

mpicc -v 显示:</p>

0 投票
2 回答
2427 浏览

c++ - OpenMPI:错误:尚未声明“MPI”

运行 OpenMPI 命令“mpicxx hello_cxx.cc -o hello”时总是出现以下错误

0 投票
1 回答
155 浏览

c++ - 如何让 macports 用 intel 编译器包装 openmpi?

我使用 MacPorts 安装openmpi。但是,我意识到当我使用mpicxx时,它实际上在后端使用了 clang。我希望它与英特尔编译器(即icpc)一起包装。我检查了openmpi网站,但没有弄清楚如何做到这一点。

有人可以帮我吗?

0 投票
0 回答
62 浏览

c++ - MPI 结果文件全部转到 .o 文件 [文件 i/o 错误]

由于我学校的服务器只能用我的学校IP访问,抱歉没有截图。我会详细解释。

以下是主文件(不重要)。

这是从属功能。

qu 是我制作的全局指针。我认为这里不会发生错误。qu 所做的是在每个循环中更改 id_now 的值,因此文件名会在每个循环中更改。

下面是 writemod 函数。

无论如何,当我运行这个文件时会发生什么

如果我运行此文件,所有输出文件数据似乎都转到 [jobname].o[jobid] 文件(默认输出文本文件)。它是 8.7Gb,所以我什至无法用 emacs 打开它来查看发生了什么。