From a537334559e59cd2d570a0c5c59d003d6d16d5f8 Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Wed, 6 Jan 2021 11:50:00 -0600
Subject: [PATCH] Macro USE_BOOST for boost::unordered_map rather than std::map
for configuring productPotential
---
src/ComputeForce.h | 16 ++++++++++++----
src/Configuration.h | 1 -
src/Makefile | 4 ++++
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/ComputeForce.h b/src/ComputeForce.h
index 8270fd5..a523404 100644
--- a/src/ComputeForce.h
+++ b/src/ComputeForce.h
@@ -28,20 +28,28 @@
#include "GPUManager.h"
// #include <map>
-#include <boost/unordered_map.hpp>
+
#include <cstdio>
// #include <cuda_runtime.h>
#include <thrust/transform_reduce.h> // thrust::reduce
#include <thrust/functional.h> // thrust::plus
+#ifdef USE_BOOST
+#include <boost/unordered_map.hpp>
+typedef boost::unordered_map<String,unsigned int> XpotMap;
inline std::size_t hash_value(String const& s) {
if (s.length() == 0) return 0;
- // return hash_value(s.val());
return boost::hash_range(s.val(), s.val()+s.length());
}
+#else
+#include <map>
+typedef std::map<String,unsigned int> XpotMap;
+inline std::size_t hash_value(String const& s) {
+ if (s.length() == 0) return 0;
+ return hash_value(s.val());
+}
+#endif
-typedef boost::unordered_map<String,unsigned int> XpotMap;
-// typedef std::map<String,unsigned int> XpotMap;
const unsigned int NUM_THREADS = 256;
diff --git a/src/Configuration.h b/src/Configuration.h
index 55b0ad2..85ae13f 100644
--- a/src/Configuration.h
+++ b/src/Configuration.h
@@ -251,7 +251,6 @@ public:
int numProductPotentials;
bool readProductPotentialsFromFile;
ProductPotentialConf* productPotentials;
- // boost::unordered_map<String, unsigned int> simple_potential_ids;
XpotMap simple_potential_ids;
std::vector<SimplePotential> simple_potentials;
diff --git a/src/Makefile b/src/Makefile
index 23b9905..2ada08a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -66,6 +66,10 @@ $(foreach SM,$(SMPTXS), $(eval NV_FLAGS += -gencode arch=compute_$(SM),code=comp
NVLD_FLAGS := $(NV_FLAGS) --device-link
LD_FLAGS = -L$(LIBRARY) -lcurand -lcudart -lcudadevrt -Wl,-rpath,$(LIBRARY)
+ifdef USE_BOOST
+ CC_FLAGS += -DUSE_BOOST
+endif
+
### Sources
CC_SRC := $(wildcard *.cpp)
CC_SRC := $(filter-out arbd.cpp, $(CC_SRC))
--
GitLab