草庐IT

boost-mpi

全部标签

python - 带有函数模板的 Boost::Python 类:如何从外部添加实例?

总结有没有办法(在C++中,而不是在Python中)从外部为Boost::Python中的类添加函数模板的额外实例化(通过注入(inject)、重新打开定义、注册所需的实例化等)?背景给定一个包含函数模板成员的类(不是类模板),我想使用Boost::Python生成Python绑定(bind)。但是,由于我正在编写一个库,所以我事先并不知道成员函数将使用哪些模板参数进行调用。这意味着,我不能在Boost::Python类定义中列出它们。例子假设我们有一个类TheClass,它有函数模板(带重载),以及两个测试类SomeClass和OtherClass,如下所示:类定义#include#

c++ - MPI - 随着进程数量的增加没有加速

我正在编写程序来测试数字是否为素数。一开始我计算分配给每个进程的数字,然后将这个数量发送给进程。接下来,执行计算并将数据发送回保存结果的进程0。下面的代码有效,但是当我增加进程数时,我的程序不会加速。在我看来,我的程序不能并行运行。怎么了?这是我在MPI的第一个项目,因此欢迎任何建议。我使用mpich2,并在IntelCorei7-950上测试我的程序。主要.cpp:if(rank==0){intworkers=(size-1);readFromFile(path);intelements_per_proc=(N+(workers-1))/workers;intrest=N%eleme

c++ - MPI非阻塞调用后的障碍,没有簿记?

我正在做一堆MPI_Iallreduce非阻塞通信。我已将这些Iallreduce调用添加到我的代码中的几个不同位置。每隔一段时间,我想暂停并等待所有Iallreduce调用完成。具有MPI_Request簿记功能的版本1——有效:MPI_Requestrequests[];MPI_Iallreduce(...,requests[0]);...MPI_Iallreduce(...,requests[n-1]);for(inti=0;i但是,我在一个相当大的代码库中工作,我不想编写额外的代码来跟踪所有这些MPI_Request对象。我想执行以下操作:版本2没有MPI_Request簿记—

c++ - 如何将 ostream 重定向到 Boost Log 库

我有一个进度条函数,它将std::ostream作为参数。出于描述的目的,我在这里对其进行了简化。voidsomeprogressbar(std::ostream&stream){stream我无法修改此功能,因为它是第三方功能。我用std::ostringstreammyoss;someprogressbar(myoss)调用这个函数或someprogressbar(std::cout).该函数会在我的程序进行时实时打印一些信息。如何将输出重定向到BoostLog库?我能做到BOOST_LOG_TRIVIAL(debug),但做不到someprogressbar(BOOST_LOG_

python - Boost.Python 多重返回参数

我有一个C++函数,它从它的参数返回多个值。voidDo_Something(doubleinput1,doubleinput2,doubleinput3,double&output1,double&output2){...output1=something;output2=something;}我想用Boost.Python包装这个函数。我想出了一个使用lambda的解决方案,但它有点乏味,因为我有许多函数在其参数中有多个返回值。BOOST_PYTHON_MODULE(mymodule){usingboost::python;def("Do_Something",+[](double

c++ - Boost 引用变体和相等性比较

以下程序中止:#includeusingvariant_type=boost::variant;intmain(){inta,b;variant_typev(a),u(b);v==u;return0;}与:$g++-std=c++14t.cpp&&./a.outa.out:/opt/boost/default/include/boost/variant/detail/forced_return.hpp:39:Tboost::detail::variant::forced_return()[withT=constint&]:Assertion`false'failed.Aborted(c

c++ - 使用 BOOST_FUSION_ADAPT_ADT 调整类时出错

我有以下类(class):#ifndefWFRACTAL_FRACTAL_METADATA_H_#defineWFRACTAL_FRACTAL_METADATA_H_#includenamespaceWFractal{namespaceFractal{classMetadata{public:voidsetAuthorName(conststd::string&name);voidsetAuthorEMail(conststd::string&email);voidsetBriefDescription(conststd::string&brief);voidsetCompleteDe

c++ - boost::asio::ssl::context 可以在多个 SSL 流之间共享吗?

在互联网上搜索了几个小时,我找不到问题的答案。我的模型是这样的:我有一个共享的boost::asio::ssl::context用于创建boost::asio::ssl::stream的实例。然后将流对象传递给不同的线程。这个模型线程安全吗?可以使用相同的boost::asio::ssl::context构建将同时使用的不同SSL流对象吗?请,在将此问题标记为重复之前,请考虑仔细阅读说明。谢谢!在我的具体情况下,线程之间不共享任何对象。所以在Boost.AsioSSLthreadsafety中说了什么线程安全不影响我的情况。我从单个线程访问boost::asio::ssl::conte

c++ - 如何使用 boost::multiprecision 在运行时更改数字精度

我读过boost::multiprecisiondocumentation:Dependinguponthenumbertype,precisionmaybearbitrarilylarge(limitedonlybyavailablememory),fixedatcompiletime(forexample50or100decimaldigits),oravariablecontrolledatrun-timebymemberfunctions.Thetypesareexpression-template-enabledforbetterperformancethannaiveuse

c++ - boost::lexical_cast<signed char> 无法处理负数?

这个简短的C++程序的行为方式让我感到困惑:#include#include#include#includeintmain(void){signedcharc=-2;assert(c==-2);c=boost::lexical_cast(std::string("-2"));std::cout使用g++5.2.1和boost-1.58.0,我得到:terminatecalledafterthrowinganinstanceof'boost::exception_detail::clone_impl>'what():badlexicalcast:sourcetypevaluecouldn