草庐IT

zmq_recv

全部标签

c++ - 简单的 MPI_Send 和 Recv 使用 CUDA 给出段错误(11)和无效权限(2)

我正在尝试对格子玻尔兹曼建模的CUDA代码进行MPI,但在使用MPI_Send和MPI_Recv函数时遇到了令人沮丧的问题。我已经验证我有CUDA感知MPI和一些简单的设备缓冲区到设备缓冲区MPI发送/接收代码,所以我可以在GPU设备内存之间发送和接收数组,而无需通过CPU/主机。我的代码是针对3D晶格的,它在各个节点之间沿z方向划分,节点之间有光晕,以确保流体可以在这些划分之间流动。光环位于GPU上。下面的代码是一个简化和编译给出了与我的主要代码相同的错误。在这里,Rank0节点上的GPUHalo是MPI_Send()到rank1节点,它是MPI_Recv()。我的问题目前看起来很简

c++ - 即使在上下文终止后 ZMQ recv() 仍在阻塞

我已尽力按照ZMQterminationwhitepaper中的说明进行操作,但到目前为止我失败得很惨。我有一个父类,它生成一个监听器线程(使用win32-pthreads)。根据白皮书,终止时,我应该设置_stopped标志,删除上下文,这反过来会调用zmq_term()并释放阻塞接收()。相反,我得到的是:调用delete_zmqContext会使应用程序崩溃(可能是段错误)用zmq_term(_zmqContext)替换delete不会释放阻塞recv()我正在添加部分代码示例,该示例很长,因为我不确定哪部分可能很重要。AsyncZmqListener.hpp:classAsyn

c++ - MPI_Recv 中的消息被截断

我有邻接矩阵和以下代码:if(is_broadcast_message){MPI_Send(&broadcast_message,1,MPI_INT,j,3,MPI_COMM_WORLD);MPI_Send(&message,20,MPI_CHAR,j,3,MPI_COMM_WORLD);}broadcast_message=128(随机数只是为了知道我何时收到,这是一条广播消息)消息定义为char[20]。elseif(ihavetosendonlytoanode){MPI_Send(&destination,1,MPI_INT,next_hop[destination],3,MPI

c++ - ZMQ C++ Req 到路由器问题

我在我的网络层使用ZeroMQ,到目前为止一切正常,除了ROUTER套接字。特别是我在ROUTER上收到了预期的消息,但是当我尝试将答案发送回我的REQ套接字时,该消息从未收到过。这是我编写的一个相对简单的测试,它尝试向ROUTER发送“HELLO”消息并期望消息返回。这里是客户端代码:try{zmq::context_tmyContext;zmq::socket_treqSocket(myContext,ZMQ_REQ);reqSocket.setsockopt(ZMQ_IDENTITY,"REQ",3);reqSocket.connect(gpRouterAddress);//re

php - 尝试使用代理打开 url 时出现 CURLE_RECV_ERROR 56

我一直在尝试使用代理发送curl请求。当我使用POST方法发送此类请求时,它工作正常,但它不适用于GET方法,我得到:CURLE_RECV_ERROR(56)-Failurewhenreceivingdatafromthepeer.发生这种情况的任何可能原因?下面的代码返回此错误,而当我使用POSTMETHOD使用另一个url执行它时,它工作正常。$handle=curl_init($url);curl_setopt($handle,CURLOPT_POST,0);curl_setopt($handle,CURLOPT_RETURNTRANSFER,true);curl_setopt(

javascript - php ZMQ 通过 http 推送集成

我正在尝试使用php和nativezmq实现推送集成。我已成功将消息发送到服务器,但我的问题是我无法使用jsWebsocket()将消息推送到浏览器。我说WebSocketconnectionto'ws://127.0.0.1:8080/'failed:ErrorduringWebSockethandshake:Invalidstatusline这是我给客户的代码:connect("tcp://localhost:5555");$push->send($data);}if(isset($_POST["username"])){$envelope=array("from"=>"clien

c++ - ZMQ_DONTWAIT 标志不起作用?

我在我的应用程序中使用ZeroMQ进行网络连接,手册指出通过向send中的flags参数提供ZMQ_DONTWAIT标志或recv导致函数不阻塞线程。然而,它在我的情况下不起作用:std::cout这打印:abcdab我做了一个小类来让事情变得更简单:客户端类(为了简化,从所有“未使用”的东西中剥离出来)classclient{public:client(){}inlineboolinit(unsignedshortthreads=1){Running=true;context=zmq_init(threads);if(context==NULL)returnfalse;socket=

c++ - 在 Ubuntu 12.04 32 位上安装和编译 ZeroMQ/ZMQ/0MQ

我真的很想将0MQ用于个人项目,但我很难在安装后进行编译这是我的做法:####Installprerequisiteswithouterrors:####$sudoapt-getinstalllibtoolautoconfautomakeuuid-devbuild-essential####Get0MQ:####$cd~/Downloads$wgethttp://download.zeromq.org/zeromq-3.2.1-rc2.tar.gz$tar-xvzfzeromq-3.2.1-rc2.tar.gz####Install0MQwithouterrors:####$cdzer

c++ - zmq-cpp : recv() waits for data despite ZMQ_DONTWAIT being set

我正在尝试使用ZMQ_DONTWAIT标志通过ZeroMQ实现非阻塞接收方法,但是recv()的行为就像在没有标志的情况下被调用:autostart=std::chrono::steady_clock::now();autohave_data=sock_->recv(&reply,ZMQ_DONTWAIT);autoduration=std::chrono::duration_cast(std::chrono::steady_clock::now()-start).count();std::coutsock_是一个zmq::socket_t实例化为REQ套接字。在这种情况下,have_

c++ - 如何中断正在等待 recv 函数的线程?

这个问题在这里已经有了答案:Howtoexitablockingrecv()call?[duplicate](2个答案)关闭7年前。我有一个卡在recv函数上的套接字监听器:size_trecvLen=recv(sock,buf,512,0);我想通过打断它来终止这个线程。MSDN说:WhenissuingablockingWinsockcallsuchasrecv,Winsockmayneedtowaitforanetworkeventbeforethecallcancomplete.Winsockperformsanalertablewaitinthissituation,whic