HPC工作负载中是否使用了二进制搜索树?
我知道quad-trees
和oct-trees
用于表示许多HPC应用程序中的2D和3D空间。例如Barnes-Hut algorithm
使用oct-trees
。 Quad-trees
应用程序中使用CFD
。但我找不到任何使用BST
或并行/并发版BST
答案 0 :(得分:1)
HPC工作负载中是否使用了二进制搜索树?
是的,就像许多其他基本数据结构一样。
BST只是图形的特殊变体,因此它们可以并行化。最复杂的部分是在树有很多变化时重新平衡树(不平衡的BST仍然是BST)并且处理器的数量很高。并非所有群集都适用于图形任务,PGAS environments可能更好。
例如,在HPC库中使用的BST和一些BST的一些并行实现:
A Parallelized Binary Search Tree (2011) - PTTRNFNDR - 用于搜索DNA序列中的模式;线程并行性显示
Parallel construction of multidimensional binary search trees,2000表明k-d树是多维二叉搜索树,对空间数据很有用
并行BST在the Cactus scientific framework中实现,cactuscode.org - Implementation of a Binary Tree Driver (OAKc) in Cactus:" 许多不同的应用程序使用二叉树结构来提高效率;包括高性能数据库,可视化层次结构,离散数学,MonteCarlo模拟,逻辑编程和计算计量经济学"
TMVA4中有BST,是ROOT library的一部分,用于CERN:http://root.cern.ch/root/htmldoc/TMVA__BinarySearchTree.html - 4.2 http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf
HDF5格式库在内部使用BST进行" 索引...磁盘上的块":https://webgrn0001.llnl.gov/prepress/WECOBA07.PDF