示例#1
0
文件: Session.cpp 项目: Artox/qtmoko
void SessionGroup::addSession(Session* session)
{
    _sessions.insert(session,false);

    QListIterator<Session*> masterIter(masters());

    while ( masterIter.hasNext() )
        connectPair(masterIter.next(),session);
}
示例#2
0
文件: Session.cpp 项目: Artox/qtmoko
void SessionGroup::removeSession(Session* session)
{
    setMasterStatus(session,false);

    QListIterator<Session*> masterIter(masters());

    while ( masterIter.hasNext() )
        disconnectPair(masterIter.next(),session);

    _sessions.remove(session);
}
示例#3
0
文件: Session.cpp 项目: Artox/qtmoko
void SessionGroup::connectAll(bool connect)
{
    QListIterator<Session*> masterIter(masters());

    while ( masterIter.hasNext() )
    {
        Session* master = masterIter.next();

        QListIterator<Session*> otherIter(_sessions.keys());
        while ( otherIter.hasNext() )
        {
            Session* other = otherIter.next();

            if ( other != master )
            {
                if ( connect )
                    connectPair(master,other);
                else
                    disconnectPair(master,other);
            }
        }
    }
}
示例#4
0
int main(int argc, char* argv[]) {
  init(&argc, &argv);
  run([]{
    
    double t;
    
    TupleGraph tg;
    
    GRAPPA_TIME_REGION(tuple_time) {
      if (FLAGS_path.empty()) {
        int64_t NE = (1L << FLAGS_scale) * FLAGS_edgefactor;
        tg = TupleGraph::Kronecker(FLAGS_scale, NE, 111, 222);
      } else {
        LOG(INFO) << "loading " << FLAGS_path;
        tg = TupleGraph::Load(FLAGS_path, FLAGS_format);
      }
    }
    LOG(INFO) << tuple_time;
    LOG(INFO) << "constructing graph";
    t = walltime();
    
    auto g = G::create(tg);
    
    construction_time = walltime()-t;
    LOG(INFO) << construction_time;
    
    count = 0;
    forall(masters(g), [](G::Vertex& v){
      count += v.n_out;
    });
    CHECK_EQ(count, g->ne);
    
    Metrics::start_tracing();
    
    for (int i = 0; i < FLAGS_trials; i++) {
      if (FLAGS_trials > 1) LOG(INFO) << "trial " << i;
      
      forall(g, [](G::Vertex& v){ v->rank = 1.0; });
      
      GRAPPA_TIME_REGION(total_time) {
        activate_all(g);
        GraphlabEngine<G,PagerankVertexProgram>::run_sync(g);
      }
      
      if (i == 0) {
        total_time.reset(); // don't count the first one
        total_rank = 0;
        forall(g, [](G::Vertex& v){ total_rank += v->rank; });
        std::cerr << "total_rank: " << total_rank << "\n";
      }      
    }
    
    Metrics::stop_tracing();
    
    LOG(INFO) << total_time;
    
    total_rank = 0;
    forall(masters(g), [](G::Vertex& v){ total_rank += v->rank; });
    LOG(INFO) << "total_rank: " << total_rank << "\n";
    
  });