- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 MPI 如何分配内存以在不同进程之间共享使用的理解是,您需要在 MPI_Init 之前初始化它们。
typedef struct Car {
// struct
} Car;
int main
(int argc, char *argv[])
{
// Shared variables
int size, rank;
Car cars[20];
MPI_Init(&argc, &argv);
MPI_Comm_Size(MPI_COMM_WORLD, &size);
MPI_Comm_Rank(MPI_COMM_WORLD, &rank);
// Node logic
}
这是正确的吗?如果是这样,如果我想要与节点数量一样多的汽车,我将如何处理这种情况?
最佳答案
MPI 不会为跨进程共享使用分配内存。在 MPI 中,每个进程负责自己的内存管理。如果您想在每个进程上分配一个大小为 size
的数组,那么您必须在调用 MPI_comm_size
之后分配内存。之后,您要么单独初始化每个进程的值,要么在一个进程上初始化它们并交换消息以更新其他进程。
但是你仍然没有共享内存。您在每个进程上都有一个同名数组,而您作为程序员正在编写代码以确保每个进程对该数组中的值具有相同的 View 。
关于c - 共享内存的 MPI_Comm_Size 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953433/
嗯,大家好。我在 Linux 中使用 MPI 和 OpenMP 运行并行程序时遇到这些错误, [node65:03788] *** Process received signal *** [nod
当处理器计数为 4 时,MPI_Comm_size 命令始终返回单个进程。我在虚拟 xUbuntu 16.04 上使用带有 CLion 的 MPI 3.2.1。模拟器——VMWare。在虚拟机设置中,
我有一个 Fortran 代码,设计为使用默认通信器 MPI_COMM_WORLD 运行,但我打算只使用几个处理器运行它。我有另一个代码,它使用 MPI_comm_split 获取另一个通信器 MyC
我对 MPI 如何分配内存以在不同进程之间共享使用的理解是,您需要在 MPI_Init 之前初始化它们。 typedef struct Car { // struct } Car; int ma
我现在正在创建一个类来包装一些 MPI 通信函数,我用特定的 MPI 通信器构造这些函数。我希望该类将等级和通信器大小作为常量成员变量提供。不幸的是,这些只能通过将指向 int 的指针传递给 C 函数
我是一名优秀的程序员,十分优秀!