Definition at line 498 of file DistributedAccess.h. References Impala::Core::Vector::VectorTem< ElemT >::GetData(), GetDataFromPart(), Impala::Util::PropertySet::GetInt(), Impala::Util::PropertySet::GetString(), ILOG_ERROR, and Impala::Core::Vector::VectorTem< ElemT >::Size(). Referenced by Impala::Application::RunDistributedLearningEngine(), and Impala::Core::Training::Factory::ServeDistributedAccess(). 00499 { 00500 int subscribers = 0; 00501 do 00502 { 00503 int source; 00504 String messageString = Link::Mpi::ReceiveString(source); 00505 Util::PropertySet message(messageString); 00506 String cmd = message.GetString("cmd"); 00507 ILOG_DEBUG_NODE("received cmd: " << messageString); 00508 if (cmd == "subscribe") 00509 { 00510 subscribers++; 00511 ILOG_DEBUG_NODE("subscription added: id=" << source << 00512 " new #=" << subscribers); 00513 continue; 00514 } 00515 if (cmd == "unsubscribe") 00516 { 00517 subscribers--; 00518 ILOG_DEBUG_NODE("subscription removed: #=" << subscribers); 00519 continue; 00520 } 00521 if ((cmd != "diagonal") && (cmd != "row") && (cmd != "column")) 00522 ILOG_ERROR("unknown command: " << cmd); 00523 int part = message.GetInt("part"); 00524 int index = message.GetInt("arg"); 00525 Vector64 v = GetDataFromPart(cmd, part, index); 00526 Link::Mpi::SendData(v.GetData(), v.Size(), source); 00527 } 00528 while (subscribers > 0); 00529 }
Here is the call graph for this function:
|