[mlpack-git] master: Adds Bichromatic Parallel Test (abef504)

gitdub at mlpack.org gitdub at mlpack.org
Fri Jul 8 14:36:43 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/34cf8d94f79c9a72ff4199676033b060cd039fcd...425324bf7fb7c86c85d10a909d8a59d4f69b7164

>---------------------------------------------------------------

commit abef5045c4ac6f352bbc33897b4130276d099800
Author: Yannis Mentekidis <mentekid at gmail.com>
Date:   Sun Jun 19 15:01:38 2016 +0300

    Adds Bichromatic Parallel Test


>---------------------------------------------------------------

abef5045c4ac6f352bbc33897b4130276d099800
 src/mlpack/tests/lsh_test.cpp | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 deletions(-)

diff --git a/src/mlpack/tests/lsh_test.cpp b/src/mlpack/tests/lsh_test.cpp
index 8ddb7d3..2307ec8 100644
--- a/src/mlpack/tests/lsh_test.cpp
+++ b/src/mlpack/tests/lsh_test.cpp
@@ -481,9 +481,9 @@ BOOST_AUTO_TEST_CASE(DeterministicNoMerge)
 
 /**
  * Test: This test verifies that parallel query processing returns correct
- * results.
+ * results for the bichromatic search.
  */
-BOOST_AUTO_TEST_CASE(ParallelQueryTest)
+BOOST_AUTO_TEST_CASE(ParallelBichromatic)
 {
   // kNN and LSH parameters (use LSH default parameters).
   const int k = 4;
@@ -514,9 +514,41 @@ BOOST_AUTO_TEST_CASE(ParallelQueryTest)
   // Require both have same results
   double recall = ComputeRecall(sequentialNeighbors, parallelNeighbors);
   BOOST_REQUIRE_EQUAL(recall, 1);
-
 }
 
+/**
+ * Test: This test verifies that parallel query processing returns correct
+ * results for the monochromatic search.
+ */
+BOOST_AUTO_TEST_CASE(ParallelMonochromatic)
+{
+  // kNN and LSH parameters (use LSH default parameters).
+  const int k = 4;
+  const int numTables = 16;
+  const int numProj = 3;
+
+  // Read iris training data as reference and query set.
+  const string trainSet = "iris_train.csv";
+  arma::mat rdata;
+  data::Load(trainSet, rdata, true);
+
+  // Where to store neighbors and distances
+  arma::Mat<size_t> sequentialNeighbors;
+  arma::Mat<size_t> parallelNeighbors;
+  arma::mat distances;
+
+  // Construct an LSH object. By default, it uses the maximum number of threads
+  LSHSearch<> lshTest(rdata, numProj, numTables); //default parameters
+  lshTest.Search(k, parallelNeighbors, distances);
+
+  // Now perform same search but with 1 thread
+  lshTest.MaxThreads(1);
+  lshTest.Search(k, sequentialNeighbors, distances);
+
+  // Require both have same results
+  double recall = ComputeRecall(sequentialNeighbors, parallelNeighbors);
+  BOOST_REQUIRE_EQUAL(recall, 1);
+}
 
 BOOST_AUTO_TEST_CASE(LSHTrainTest)
 {




More information about the mlpack-git mailing list