From d2c018f69acdd01ed8640b83f78d89daedf4a68b Mon Sep 17 00:00:00 2001 From: Dongryeol Lee Date: Fri, 21 Jan 2011 16:22:02 +0000 Subject: [PATCH] Prioritization changed. --- .../core/gnp/distributed_dualtree_dfs.h | 11 ----------- .../core/gnp/distributed_dualtree_dfs_dev.h | 15 --------------- .../thesis_research/core/gnp/dualtree_dfs_dev.h | 4 +++- 3 files changed, 3 insertions(+), 27 deletions(-) diff --git a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs.h b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs.h index 92adf0ca00..26fe746a14 100644 --- a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs.h +++ b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs.h @@ -9,7 +9,6 @@ #define CORE_GNP_DISTRIBUTED_DUALTREE_DFS_H #include -#include #include #include "core/math/range.h" @@ -51,14 +50,6 @@ class DistributedDualtreeDfs { */ DistributedTableType *reference_table_; - /** @brief The worker pool. - */ - boost::thread_group worker_pool_; - - /** @brief The work queue from which the workers work. - */ - std::multimap work_queue_; - private: template @@ -80,8 +71,6 @@ class DistributedDualtreeDfs { const MetricType &metric, TreeType *qnode, ResultType *query_results); - static void DoIt_(); - /** @brief The class used for prioritizing a computation object * (query, reference pair). */ diff --git a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs_dev.h b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs_dev.h index ed3482b7b1..298d583ae1 100644 --- a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs_dev.h +++ b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/distributed_dualtree_dfs_dev.h @@ -31,13 +31,6 @@ extern core::table::MemoryMappedFile *global_m_file_; namespace core { namespace gnp { -template -void DistributedDualtreeDfs::DoIt_() { - - // Dequeue a work. - -} - template template void DistributedDualtreeDfs::AllToAllReduce_( @@ -222,13 +215,6 @@ void DistributedDualtreeDfs::Init( if(query_table_ != reference_table_) { ResetStatisticRecursion_(reference_table_->get_tree(), reference_table_); } - - // Start the thread worker pool. - //const int num_worker_threads = 8; - //for(int i = 0; i < num_worker_threads; i++) { - //worker_pool_.create_thread( - // DistributedDualtreeDfs < DistributedProblemType >::DoIt_); - //} } template @@ -255,7 +241,6 @@ void DistributedDualtreeDfs::Compute( // workspace. This is currently doing an all-reduce type of // exchange. AllToAllReduce_(metric, query_results); - worker_pool_.join_all(); world_->barrier(); // Postprocess. diff --git a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/dualtree_dfs_dev.h b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/dualtree_dfs_dev.h index 08db2f33f3..70f0f3ed0d 100644 --- a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/dualtree_dfs_dev.h +++ b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/dualtree_dfs_dev.h @@ -391,10 +391,12 @@ bool DualtreeDfs::DualtreeCanonical_( // Otherwise, push into the list of reference nodes that must // be dealt later. These list will be used in the distributed // dualtree computation. + double priority = squared_distance_range.lo / + static_cast(qnode->count() * rnode->count()); unpruned_query_reference_pairs_.push_back( boost::make_tuple( qnode, std::pair( - rnode->begin(), rnode->count()), squared_distance_range.lo)); + rnode->begin(), rnode->count()), priority)); unpruned_reference_nodes_[rnode->begin()] = rnode->count(); }