问题标签 [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.
c++ - 如何在 MPI_Send 中发送一个集合对象
我搜索发送一个集合对象,我发现最接近的是向量(它不同,不适用于集合)。
如何在 MPI_Send 中发送集合对象?(不使用boost库)任何人都可以举一个简单的例子吗?
linker - 如何强制 MPICH 使用 GCC (g++) 而不是 PGI(pg++)?
我正在编译使用 C++ 编写的 MPI + OpenMP,我需要在使用 g++ 编译器的系统上对其进行测试,但目前该系统正在使用 mpic++ 包装器下的 PGI 编译器。
有什么办法可以强制使用 g++ 而不是 pgc++ 吗?
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并再次编译实例化。
谢谢,
mpi - 如何多次运行同一个 MPI 程序
我有一个 MPI 程序来计算排序时间。我用mpirun -np 2 mpiSort
. 所以这给了我2个过程的排序时间。
我想获得 5 次的排序时间来平均它们。我如何自动做到这一点?
mpiSort
如果我在程序中做一个循环。它实际上执行 5(次)x 2(进程)= 10 次。
编辑:mpiSort
并行排序。基本上,我试图在mpirun -np 2 mpiSort
不输入 5 次的情况下做到这一点。因为我想对 4 核、8 核做同样的事情。
c++ - 使用 mpic++ 错误的 C++ 编译
我正在尝试在 Linux 系统上使用 mpic++ 编译程序。该程序包含我们教授提供的源文件,正是这些文件引发了错误。在 Visual Studio C++ 中编译代码没有问题,但我们需要在 Linux 系统上启动它,当我将它移动到 Linux 系统以使用 mpic++ 编译它时出现错误。
错误不断发生,这些只是最初的几个。此特定错误引用的代码如下所示。
据我所知,我们不允许更改提供给我们的代码。
谢谢你的帮助。
编辑:
我使用makefile来编译程序。
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 上的挂钟时间(秒)
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>
c++ - OpenMPI:错误:尚未声明“MPI”
运行 OpenMPI 命令“mpicxx hello_cxx.cc -o hello”时总是出现以下错误
c++ - 如何让 macports 用 intel 编译器包装 openmpi?
我使用 MacPorts 安装openmpi。但是,我意识到当我使用mpicxx时,它实际上在后端使用了 clang。我希望它与英特尔编译器(即icpc)一起包装。我检查了openmpi网站,但没有弄清楚如何做到这一点。
有人可以帮我吗?
c++ - MPI 结果文件全部转到 .o 文件 [文件 i/o 错误]
由于我学校的服务器只能用我的学校IP访问,抱歉没有截图。我会详细解释。
以下是主文件(不重要)。
这是从属功能。
qu 是我制作的全局指针。我认为这里不会发生错误。qu 所做的是在每个循环中更改 id_now 的值,因此文件名会在每个循环中更改。
下面是 writemod 函数。
无论如何,当我运行这个文件时会发生什么
如果我运行此文件,所有输出文件数据似乎都转到 [jobname].o[jobid] 文件(默认输出文本文件)。它是 8.7Gb,所以我什至无法用 emacs 打开它来查看发生了什么。