22得票8回答
共享内存,MPI和排队系统

我的Unix/Windows C++应用程序已经使用MPI实现了并行化:作业被分割成N个CPU,每个块都以并行方式执行,效率很高,速度扩展性非常好,工作完成得很好。 但是某些数据在每个进程中都是重复的,并且由于技术原因,这些数据不能轻松地通过MPI分割(...)。例如: 5 GB的静态数...

20得票1回答
如何在PHP和Boost库IPC之间进行通信?

我有一个使用共享内存进行通信的PHP客户端和服务器,现在我想使用Boost.Interprocess访问这个共享内存对象,我该如何访问它? server.php: function create_image($str){ // Create a blank image and add...

17得票3回答
将文件中非连续的块映射到连续的内存地址中

我对使用内存映射IO的前景很感兴趣,最好利用boost::interprocess的功能来实现跨平台支持,将文件中非连续的系统页面大小块映射到内存中的连续地址空间。 一个简化的具体场景是:我有许多'plain-old-data'结构,每个结构的长度固定(小于系统页面大小)。这些结构被连接成一...

14得票1回答
Boost::asio、共享内存和进程间通信

我有一个应用程序,它完全使用boost::asio作为其输入数据源,因为我们大部分的对象都是基于网络通信的。由于一些特定要求,我们现在需要使用共享内存作为另一种输入方式。我已经编写了共享内存组件,并且它的工作相对良好。 问题是如何处理来自共享内存进程到消费应用程序的通知,表示可以读取数据-我...

13得票2回答
boost iostream mapped file和boost interprocess mapped file有什么区别?

我想创建一个映射到内存的二进制文件,但是我不确定如何创建要映射到系统中的文件。我已经多次阅读了文档,并意识到有两个映射文件实现,一个在iostream中,另一个在interprocess中。 你们有任何关于如何在共享内存中创建映射文件的想法吗?我正在尝试让多线程程序读取以二进制文件格式编写的...

12得票2回答
boost::interprocess准备好了吗?

我正在开发一个基于内存映射文件支持的线程安全队列,它广泛使用boost interprocess库。我将其提交进行代码评审,然后一位比我在这个星球上经验更多的开发人员说他不认为boost::interprocess已经"准备好进入实际应用场景",并建议我直接使用pthread。 我认为这主...

12得票2回答
使用 Boost 创建共享内存,如何设置权限?

我们可以通过以下方式打开由另一个进程创建的Boost共享内存: boost::interprocess::managed_shared_memory segment(boost::interprocess::open_only, "SharedMem"); 如果创建共享内存的进程是root用...

12得票2回答
通过boost消息队列发送复杂数据结构

我有以下的数据结构:typedef struct { short id; string name; short age; } person_struct; 使用boost消息队列,我试图将这个数据结构发送到另一个进程的消息队列接收器。然而,在接收后,当访问上述结构中的“...

12得票2回答
boost::interprocess消息队列性能较慢?

我需要一个超快的消息队列机制,其中发送方和接收方均使用C++编写,在Windows平台上运行。 我当前使用RCF-C ++进行IPC的实现在Windows命名管道上的速度约为20,000个消息/秒。 我正在根据演示应用程序测试boost :: interprocess消息队列的性能,并测量...

10得票1回答
Boost::Interprocess共享内存总线错误

我正在使用 CentOS 5.4 x86_64 和 Boost 1.42.0,在使用 Open-MPI 1.3.3 的集群上编写一个共享库,该共享库使用共享内存来存储大量数据供多个进程使用。还有一个加载器应用程序,它将从文件中读取数据并将其加载到共享内存中。 当我运行加载器应用程序时,它确定...