Flo*_*low 5 parallel-processing r traminer
我有一个包含超过250,000个观测值的大型数据集,我想使用该TraMineR包进行分析.我特别想用命令seqtree和seqdist,当我的例子中使用10,000观察一个子样本,工作正常.我的计算机可以管理的限制是大约20,000个观察.
我想使用所有观察结果,我确实可以访问一台能够做到这一点的超级计算机.但是,这并没有太大帮助,因为该过程仅在单个核心上运行.因此,我的问题是,是否可以将并行计算技术应用于上述命令?或者还有其他方法可以加快这个过程吗?任何帮助,将不胜感激!
内部seqdist函数是用C++编写的,并且有很多优化.因此,如果要并行化seqdist,则需要在C++中进行.循环位于源文件"distancefunctions.cpp"中,您需要查看函数"cstringdistance"中位于第300行周围的两个循环(抱歉,所有注释都是法语).不幸的是,第二个重要的优化是所有计算之间共享内存.出于这个原因,我认为并行化将非常复杂.
除了选择示例之外,您还应该考虑以下优化:
seqdist可以使用最佳匹配算法的优化版本.它仍然处于测试阶段(这就是为什么它被隐藏),但它应该取代未来版本中的实际算法.要使用它,请设置method="OMopt",而不是method="OM".根据您的顺序,它可能会缩短计算时间.