草庐IT

MPI_Recv

全部标签

linux - 在 Ubuntu 上为 mpi.h 设置 G++ 或 ICC

我从未在VS08之外做过任何主要的编程。我正在尝试使用两个相关的make文件之一编译一个名为LAMMPS的程序。一个调用g++,另一个调用icc(Intel的编译器)。icc产生这个错误:icc-O-DLAMMPS_GZIP-DMPICH_SKIP_MPICXX-DFFT_FFTW-Mwrite_restart.cpp>write_restart.dwrite_restart.cpp(15):catastrophicerror:cannotopensourcefile"mpi.h"#include"mpi.h"g++抛出这个错误g++-g-O-DLAMMPS_GZIP-DMPICH_S

c - Linux 上的 UDP connect() 和 recv()

根据connect(2)手册页IfthesocketsockfdisoftypeSOCK_DGRAMthenserv_addristheaddresstowhichdatagramsaresentbydefault,andtheonlyaddressfromwhichdatagramsarereceived.IfthesocketisoftypeSOCK_STREAMorSOCK_SEQPACKET,thiscallattemptstomakeaconnectiontothesocketthatisboundtotheaddressspecifiedbyserv_addr.我正在尝试过

c - Linux 上的 UDP connect() 和 recv()

根据connect(2)手册页IfthesocketsockfdisoftypeSOCK_DGRAMthenserv_addristheaddresstowhichdatagramsaresentbydefault,andtheonlyaddressfromwhichdatagramsarereceived.IfthesocketisoftypeSOCK_STREAMorSOCK_SEQPACKET,thiscallattemptstomakeaconnectiontothesocketthatisboundtotheaddressspecifiedbyserv_addr.我正在尝试过

linux - MPI_SEND 占用很大一部分虚拟内存

在大量内核上调试我的程序时,我遇到了非常奇怪的虚拟内存不足错误。我的调查导致代码和平,主人向每个奴隶发送小消息。然后我写了一个小程序,其中1个主机使用MPI_SEND发送10个整数,所有从机使用MPI_RECV接收它。比较MPI_SEND前后的/proc/self/status文件,内存大小的差异是巨大的!最有趣的事情(它使我的程序崩溃)是此内存不会在MPI_Send之后释放,并且仍然占用大量空间。有什么想法吗?SystemmemoryusagebeforeMPI_Send,rank:0Name:test_send_sizeState:R(running)Pid:7825Groups:

linux - MPI_SEND 占用很大一部分虚拟内存

在大量内核上调试我的程序时,我遇到了非常奇怪的虚拟内存不足错误。我的调查导致代码和平,主人向每个奴隶发送小消息。然后我写了一个小程序,其中1个主机使用MPI_SEND发送10个整数,所有从机使用MPI_RECV接收它。比较MPI_SEND前后的/proc/self/status文件,内存大小的差异是巨大的!最有趣的事情(它使我的程序崩溃)是此内存不会在MPI_Send之后释放,并且仍然占用大量空间。有什么想法吗?SystemmemoryusagebeforeMPI_Send,rank:0Name:test_send_sizeState:R(running)Pid:7825Groups:

阻止 recv() 返回少于请求字节的情况

recv()库函数手册页提到:Itreturnsthenumberofbytesreceived.Itnormallyreturnsanydataavailable,uptotherequestedamount,ratherthanwaitingforreceiptofthefullamountrequested.如果我们使用阻塞式recv()调用并请求100个字节:recv(sockDesc,buffer,size,0);/*Wheresizeis100.*/服务器只发送50个字节,然后此recv()将被阻塞,直到有100个字节可用,否则它将返回接收50个字节。场景可能是:发送仅50

阻止 recv() 返回少于请求字节的情况

recv()库函数手册页提到:Itreturnsthenumberofbytesreceived.Itnormallyreturnsanydataavailable,uptotherequestedamount,ratherthanwaitingforreceiptofthefullamountrequested.如果我们使用阻塞式recv()调用并请求100个字节:recv(sockDesc,buffer,size,0);/*Wheresizeis100.*/服务器只发送50个字节,然后此recv()将被阻塞,直到有100个字节可用,否则它将返回接收50个字节。场景可能是:发送仅50

c - 套接字 recv() 卡在带有 MSG_WAITALL 的大消息上

我有一个应用程序从服务器读取大文件并在特定机器上频繁挂起。长期在RHEL5.2下运行成功。我们最近升级到RHEL6.1,它现在经常挂起。我创建了一个重现该问题的测试应用程序。它在100次中大约挂了98次。#include#include#include#include#include#include#include#include#include#include#includeintmFD=0;voidopen_socket(){structaddrinfohints,*res;memset(&hints,0,sizeof(hints));hints.ai_socktype=SOCK_

c - 套接字 recv() 卡在带有 MSG_WAITALL 的大消息上

我有一个应用程序从服务器读取大文件并在特定机器上频繁挂起。长期在RHEL5.2下运行成功。我们最近升级到RHEL6.1,它现在经常挂起。我创建了一个重现该问题的测试应用程序。它在100次中大约挂了98次。#include#include#include#include#include#include#include#include#include#include#includeintmFD=0;voidopen_socket(){structaddrinfohints,*res;memset(&hints,0,sizeof(hints));hints.ai_socktype=SOCK_

MPI_IRECV类型铸造所需错误

我的代码可以在我的github上找到:https://github.com/chrismunley/parallelalprogramming/tree/master我得到的错误是:此转换所需的PGC-W-0095型铸件(my_laplace.c:112)此转换所需的PGC-W-0095型铸件(my_laplace.c:120)PGC/x86-64Linux17.5-0:汇编完成了警告有人知道我在IRECV上做错了什么?我认为这与参数有关。非常感谢!看答案这是一个编译器警告,表明需要隐式将数据类型隐式投放到另一种可能不安全的情况下。在这种情况下,似乎您正在将对MPI_STATUS变量的引用传递