草庐IT

MPI_ERR_BUFFER

全部标签

c++ - 将 MPI 与 c++11 和 CUDA 相结合

我正在编写分子动力学模拟,一些内核将使用CUDA进行计算。我从使用一些c++11功能的普通CPU实现开始我的代码。现在我必须添加一些CUDA代码,我必须使用不支持c++11功能的编译器(gcc在我的makefile中,我分别从所有cpp文件创建对象,最后将它们全部链接在一起。此外,我的代码以这样一种方式拆分,即可以使用“现代”编译器编译没有CUDA的部分,而使用旧编译器编译其余部分(利用CUDA)。我现在的问题是,这是否可以,或者我是否会/可能会遇到问题? 最佳答案 我不知道Cuda,但我知道的是将C++98和C++11目标文件链接

java - Google Protocol Buffer 和 UTF-16

我有一个以UTF-16格式存储数据的应用程序(主要是因为中文/Big-5字符)。它使用GoogleProtocolBuffers作为请求/响应协议(protocol)。我知道您不能以字符串格式发回UTF-16数据。我试图通过协议(protocol)以字节数据类型发回数据,并让客户端读取字节数据并创建一个UTF-16字符串。这是最好的方法吗?有没有人遇到过这样的事情?有没有一种方法可以使用字符串数据类型将UTF-8数据转换为UTF-16? 最佳答案 如果您已经拥有一个有效的UTF-8字符串,为什么不尝试string=newString

c++ - 为什么 boost::circular_buffer 在我的基准测试中这么慢?

阅读rationale,boost::circular_buffer看起来很有希望:Suitabilityforreal-timeandperformancecriticalapplications.Fastconstant-timeinsertionandremovalofelementsfromthefrontandback.当我运行一个模拟我的用例的简单基准测试时,将其用作字节缓冲区:写一个更大的block读取较小的block直到为空重复性能绝对糟糕,超过4000x比我自己的hack和spsc_queue慢。lin:101//10240xlock:109//10240xcirc:

c++ - 使用 MPI 在多个内核上运行

我使用当前命令提交MPI作业:mpirun-npno.ofprocessorsfilename我的理解是上面的命令让我提交给4个通过MPI通信的独立处理器。然而,在我们的设置中,每个处理器都有4个未使用的内核.我的问题如下:是否可以从MPI运行命令行提交作业以在同一节点或多个节点上的多个内核上运行?如果是怎么办?以上是否需要在代码中进行任何特殊注释/设置?我确实从阅读一些文献中了解到,内核之间的通信时间可能与处理器之间的通信时间不同,因此确实需要考虑问题的分布方式……但是对于那个问题?还需要估算什么?最后,传输的数据量是否有限制?总线可以发送/接收多少数据有限制吗?缓存有限制吗?谢谢!

python - MPI Newbie - 关于 'mpirun' 工作原理和进程管理的一些问题

首先,我不是专业的程序员,但我必须为我的项目编写代码(尽管我对C++和python有一定的熟练程度)。当我遇到困难时,我经常来这里,大多数时候从这里得到很好的解决方案,但现在我有关于MPI编程的基本问题,否则在我了解它的概念之前我无法真正继续。这是我对问题的描述,我想为科学计算的算法创建代码。代码可以分为两部分。A.)矩阵vector乘法和矩阵求逆。这部分相对简单,我什至有自己的MPI代码用于这部分B.)调用外部MPI-ready程序进行更复杂的计算(这部分应该也很简单,因为它只是调用UNIX命令行)。我遇到的问题是如何将这两个部分连接在一起?我的算法是这样的,forkinspecif

浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决

ERR_SSL_KEY_USAGE_INCOMPATIBLE报错原因ERR_SSL_KEY_USAGE_INCOMPATIBLE错误通常发生在使用SSL/TLS连接时,指的是客户端和服务器之间进行安全通信尝试失败,原因是证书中的密钥用途(KeyUsage)或扩展密钥用途(ExtendedKeyUsage,EKU)与正在尝试的操作不兼容。这意味着SSL/TLS证书不支持当前的使用场景。密钥用途(KeyUsage)密钥用途限制了证书中公钥的使用方式。例如,某些证书仅用于验证数字签名,而其他证书可能用于加密数据。如果尝试使用证书执行未经授权的操作(比如,使用仅限签名的证书来建立SSL/TLS连接),

c++ - 通过 boost :MPI got error 发送一个简单的 boost 图形对象

我正在通过修改“/apps/boost_1_56_0/libs/graph/test”中的代码“serialize.cpp”并尝试通过boostMPI通过网络发送一个boostgraph对象来进行测试。它编译得很好,但是当我使用mpirun运行可执行文件时,我得到了这个错误:terminatecalledafterthrowinganinstanceof'boost::archive::archive_exception'what():inputstreamerror.我想我正在读取一个空缓冲区,但不确定如何修复它。#include#include#include#include#in

c++ - MPI 在 C++ 中发送具有 vector 属性的结构

我想发送一个具有vector属性的结构。typedefstruct{intid;vectorneighbors;}Node;我知道我必须创建一个MPI派生数据类型,如thisanswer,但我不知道在我的情况下该怎么做,因为我在结构中有一个vector。 最佳答案 如果你想保持高水平并发送对象,那么Boost.MPI是个不错的选择。使用Boost.MPI,您可以为结构指定高级序列化。您不能(正确地)静态确定vector数据成员的偏移量。拼凑出一个有效的类型当然是可能的。但这也是搬起石头砸自己脚的好方法。您会在代码中引入假设(例如,v

c++ - 毫秒 mpi 错误 : unable to allocate launching block

我使用msmpi在VS2015中创建了简单的控制台程序。#include#include#includeintmain(intargc,char**argv){intrank=0,size=0;MPI_Init(&argc,&argv);/*startsMPI*/MPI_Comm_rank(MPI_COMM_WORLD,&rank);/*getcurrentprocessid*/MPI_Comm_size(MPI_COMM_WORLD,&size);if(rank==0){charhelloStr[]="HelloWorld";//MPI_Send(helloStr,_countof(

c++ - 游戏机上的 Protocol Buffer

有人在游戏机上尝试过googleprotocolbuffers吗?与手持系统相比,我对PS3或Xbox360等高端游戏机更感兴趣。我感兴趣的是:它是否开箱即用地很好地编译,还是您需要处理protobuf编译器才能正确生成正确的代码?是否存在任何可能导致问题的有争议的库依赖项?是否担心生成过多的代码会导致游戏的代码量激增?我正在考虑在C++环境中使用它。随意添加您认为我应该考虑的更多问题。我不仅在寻找问题,成功的故事也同样有趣。 最佳答案 它编译得非常干净。您只需要将protobufheader放在您的包含路径中,然后与库链接。我也没