C++中友好的多线程支持

摘要:使用R调用多线程的C++代码存在风险。由于R解释器是单线程的,因此不能在多个线程中进行用户中断检查或打印到R控制台。但是可以从主线程中与R进行同步。R包RcppThread(当前版本1.0.0)包含一个仅包含头文件的C++库,用于与R进行线程安全的通信,利用了这个事实。它包括用于线程、线程池和常规与R同步的并行循环的C++类。本文介绍了该包的功能,并给出了使用示例。同步机制可能也适用于其他线程框架。基准测试表明,尽管同步会导致开销,但RcppThread的并行抽象在统计计算中遇到的典型场景中与其他流行的库竞争。

作者:Thomas Nagler

论文ID:1811.00450

分类:Computation

分类简称:stat.CO

提交时间:2021-02-09

PDF 下载: 英文版 中文版pdf翻译中