Skip to content

Commit

Permalink
Renamed to hdp.
Browse files Browse the repository at this point in the history
Signed-off-by: Mohammad Alaggan <mohammad.nabil.h@gmail.com>
  • Loading branch information
malaggan committed Dec 15, 2015
1 parent c5fb258 commit 80d8c98
Show file tree
Hide file tree
Showing 9 changed files with 2,435 additions and 2,435 deletions.
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -15,7 +15,7 @@ DEBUG:= -g0 #-ggdb3 -D_GLIBCXX_DEBUG #-fcheck-pointer-bounds
src=$(wildcard *.cc)
obj=$(patsubst %.cc,%.o,$(src))

BIN := gossple
BIN := hdp

all: $(BIN) TAGS

Expand Down
2 changes: 1 addition & 1 deletion args.cc
Expand Up @@ -55,7 +55,7 @@ void parse_args(int ac, char *av[]) {
p.add("dataset", 1);

po::store(po::command_line_parser(ac, av).options(cmdline_options).positional(p).run(), vm);
//po::store(po::parse_config_file<char>(".gossple", config_file_options), vm);
//po::store(po::parse_config_file<char>(".hdp", config_file_options), vm);
po::notify(vm);

if (vm.count("help")) {
Expand Down
24 changes: 12 additions & 12 deletions experiment.sh
Expand Up @@ -10,33 +10,33 @@ set -e # exit immediately on error
for DATASET in epinions-small.txt # survey.txt digg.txt delicious.txt
do
# i cannot use the .all-users file because it was computed before fixing excess
# ./gossple ${DATASET} --log LOG -o results.csv -a
./gossple ${DATASET} --log LOG -o results.csv -a --all-peers
# ./gossple ${DATASET} --log LOG -o results.csv -apb
./gossple ${DATASET} --log LOG -o results.csv -apb --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -a
./hdp ${DATASET} --log LOG -o results.csv -a --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -apb
./hdp ${DATASET} --log LOG -o results.csv -apb --all-peers
for e in 3 2 1 0.5 0.1
do
for s in {1..10}
do
for u in 0 0.5 0.9
do
# ./gossple ${DATASET} --log LOG -o results.csv -ape ${e} -s ${s} -u ${u}
./gossple ${DATASET} --log LOG -o results.csv -ape ${e} -s ${s} -u ${u} --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -ape ${e} -s ${s} -u ${u}
./hdp ${DATASET} --log LOG -o results.csv -ape ${e} -s ${s} -u ${u} --all-peers
done
done
for n in 0.1 0.2 0.6 0.7
do
for u in 0.1 0.2 0.6 0.7
do
# ./gossple ${DATASET} --log LOG -o results.csv -apne ${e} --normal ${n} --unconcerned ${u}
./gossple ${DATASET} --log LOG -o results.csv -apne ${e} --normal ${n} --unconcerned ${u} --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -apne ${e} --normal ${n} --unconcerned ${u}
./hdp ${DATASET} --log LOG -o results.csv -apne ${e} --normal ${n} --unconcerned ${u} --all-peers
for alpha in 0.0 0.2 0.4 0.6 0.8 # 1.0 = naive (above)
do
# ./gossple ${DATASET} --log LOG -o results.csv -apne ${e} -x ${alpha} --normal ${n} --unconcerned ${u}
./gossple ${DATASET} --log LOG -o results.csv -apne ${e} -x ${alpha} --normal ${n} --unconcerned ${u} --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -apne ${e} -x ${alpha} --normal ${n} --unconcerned ${u}
./hdp ${DATASET} --log LOG -o results.csv -apne ${e} -x ${alpha} --normal ${n} --unconcerned ${u} --all-peers
done
# ./gossple ${DATASET} --log LOG -o results.csv -apge ${e} --normal ${n} --unconcerned ${u}
./gossple ${DATASET} --log LOG -o results.csv -apge ${e} --normal ${n} --unconcerned ${u} --all-peers
# ./hdp ${DATASET} --log LOG -o results.csv -apge ${e} --normal ${n} --unconcerned ${u}
./hdp ${DATASET} --log LOG -o results.csv -apge ${e} --normal ${n} --unconcerned ${u} --all-peers
done
done
done
Expand Down
4,802 changes: 2,401 additions & 2,401 deletions expr_list.sh

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions gossple.cc → hdp.cc
Expand Up @@ -20,7 +20,7 @@
#include <iterator>
std::string HEADER{"dataset,seed,user-id,user-class,expr,slices,min,unconcerned,normal,concerned,alpha,epsilon,recall"};

namespace gossple {
namespace hdp {
// these must be public so as to no be destructed (and hence, closed),
// before the application termiantes.
std::ofstream out, log;
Expand Down Expand Up @@ -113,8 +113,8 @@ int main(int argc, char *argv[]) {
// TODO create 8 processes at a time and synchronize them using an interprocess semaphor ?
parse_args(argc, argv);

if(vm.count("output")) { gossple::redirect("output", gossple::out, std::cout); gossple::out_redirected = true; }
if(vm.count("log" )) { gossple::redirect("log" , gossple::log, std::clog); gossple::log_redirected = true; }
if(vm.count("output")) { hdp::redirect("output", hdp::out, std::cout); hdp::out_redirected = true; }
if(vm.count("log" )) { hdp::redirect("log" , hdp::log, std::clog); hdp::log_redirected = true; }

static logger l{"main"};

Expand Down Expand Up @@ -152,9 +152,9 @@ int main(int argc, char *argv[]) {
l.log("File \"%s\" does not exist. Cannot read dataset. Quitting...", fname.c_str());
exit(1);
}
gossple::in = std::ifstream{fname};
std::cin.rdbuf(gossple::in.rdbuf());
gossple::in_redirected = true;
hdp::in = std::ifstream{fname};
std::cin.rdbuf(hdp::in.rdbuf());
hdp::in_redirected = true;

l.log("Reading input dataset from \"%s\"", fname.c_str());
} else
Expand Down Expand Up @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) {

if(vm["header"].as<bool>())
std::cout << HEADER << std::endl;
boost::interprocess::file_lock flock("/home/malaggan/gossple/results.csv");
boost::interprocess::file_lock flock("./results.csv");
flock.lock();
for(auto a : joined_peers)
{
Expand Down Expand Up @@ -220,9 +220,9 @@ int main(int argc, char *argv[]) {
std::cout << recall << std::endl;
}
std::cout << std::flush;
if(gossple::out_redirected) {
gossple::out.flush();
gossple::out.close();
if(hdp::out_redirected) {
hdp::out.flush();
hdp::out.close();
}
flock.unlock();

Expand Down
12 changes: 6 additions & 6 deletions log.cc
Expand Up @@ -30,10 +30,10 @@ static void vprint(std::string const & component, std::string const & msg) {
if(use_arabic_locale) __detail::produce(log_type::LOG, "\xE2\x80\x8E"); // LTR character
// TODO use ncurses, also to detect color support

if(!gossple::log_redirected) __detail::produce(log_type::LOG, "\033[37;1m[\033[32;1m");
if(!hdp::log_redirected) __detail::produce(log_type::LOG, "\033[37;1m[\033[32;1m");
else __detail::produce(log_type::LOG, "[");
__detail::produce(log_type::LOG, component);
if(!gossple::log_redirected) __detail::produce(log_type::LOG, "\033[37;1m]\033[0m: ");
if(!hdp::log_redirected) __detail::produce(log_type::LOG, "\033[37;1m]\033[0m: ");
else __detail::produce(log_type::LOG, "]: ");
__detail::produce(log_type::LOG, msg);
if(use_arabic_locale) __detail::produce(log_type::LOG, "\xE2\x80\x8E"); // LTR character
Expand All @@ -56,7 +56,7 @@ void logger::log(char const * fmt, ...) {
}

void logger::runlog(std::string const &msg) {
if(!gossple::log_redirected && most_recent_run && most_recent_run->component == this->component)
if(!hdp::log_redirected && most_recent_run && most_recent_run->component == this->component)
__detail::produce(log_type::LOG, "\033[1F"); // move one line up
most_recent_run = this;

Expand All @@ -80,7 +80,7 @@ void logger::progress(uint32_t value, uint32_t max, bool advance_tick) {
static char const progress_tick[] = {'-','\\','|','/'};

// disable progress indicators for non-interactive logging
if(gossple::log_redirected)
if(hdp::log_redirected)
return;

if(advance_tick)
Expand Down Expand Up @@ -120,10 +120,10 @@ void logtime() {
if(use_arabic_locale) s.imbue(std::locale("ar_EG.utf8"));
else s.imbue(std::locale("en_US.utf8"));
if(use_arabic_locale) s << "\xE2\x80\x8F"; // RTL mark
if(!gossple::log_redirected) s << "\033[37;1m[\033[35;1m";
if(!hdp::log_redirected) s << "\033[37;1m[\033[35;1m";
else s << "[";
s << std::put_time(&tm, "%c");
if(!gossple::log_redirected) s << "\033[37;1m]\033[0m: ";
if(!hdp::log_redirected) s << "\033[37;1m]\033[0m: ";
else s << "]: ";
s << ' '; // %Z for timezone.
__detail::produce(log_type::LOG, s.str());
Expand Down
2 changes: 1 addition & 1 deletion log.hh
Expand Up @@ -2,7 +2,7 @@
#include <string>

enum class log_type { OUT = 0, LOG = 1 };
namespace gossple {
namespace hdp {
extern bool log_redirected;
}
class logger {
Expand Down
2 changes: 1 addition & 1 deletion option.hh
Expand Up @@ -58,7 +58,7 @@ some(T&& t) {
// --- find
#include <boost/range/algorithm/find.hpp>
// make find return maybe, instead of checking equality to end()
namespace gossple {
namespace hdp {
template <typename Range, typename T>
auto find(Range &r, T const &val) -> maybe<decltype(boost::find(r, val))> {
auto it = boost::find(r, val);
Expand Down
4 changes: 2 additions & 2 deletions view.cc
Expand Up @@ -19,11 +19,11 @@ view_t& view_t::add(user_id_t u) {
}

auto view_t::get_by_id(user_id_t u) -> maybe<iterator> {
return gossple::find(*this, u); // NOTE: depends that equality for ventry is on ID
return hdp::find(*this, u); // NOTE: depends that equality for ventry is on ID
}

auto view_t::get_by_id(user_id_t u) const -> maybe<const_iterator> {
return gossple::find(*this, u);
return hdp::find(*this, u);
}

bool view_t::contains(user_id_t u) const {
Expand Down

0 comments on commit 80d8c98

Please sign in to comment.