Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

int Impala::Application::ConceptSet::mainConceptSet ( int  argc,
char *  argv[] 
)

Definition at line 113 of file mainConceptSet.cpp.

References Impala::CmdOptions::AddOption(), DoApproxFikModel(), Impala::CmdOptions::GetArg(), Impala::CmdOptions::GetInstance(), Impala::CmdOptions::GetInt(), Impala::Core::Database::RawDataSet::GetLocator(), Impala::CmdOptions::GetString(), ILOG_DEBUG, ILOG_ERROR, ILOG_ERROR_COUNT, ILOG_INFO, ILOG_NDC_POP, ILOG_NDC_PUSH, ILOG_VAR, Impala::CmdOptions::Initialise(), Impala::Core::Database::MakeRawDataSet(), Impala::CmdOptions::ParseArgs(), and Impala::Core::Vector::ReduceSum().

Referenced by main().

00114 {
00115     Link::Mpi::Init(&argc, &argv);
00116 
00117     CmdOptions& options = CmdOptions::GetInstance();
00118     options.Initialise(false, false, true);
00119     options.AddOption(0, "start", "index of concept to start with", "0");
00120     options.AddOption(0, "number", "number of concepts", "-1");
00121     options.AddOption(0, "concept", "name", "");
00122     options.AddOption(0, "featureIndexCat", "name", "");
00123 
00124     if (! options.ParseArgs(argc, argv, "cmd dataSet conceptSet [cmdArgs]", 3))
00125     {
00126         Link::Mpi::Finalize();
00127         return 1;
00128     }
00129 
00130     ILOG_VAR(Impala.Application.ConceptSet.mainConceptSet);
00131 
00132     int curArg = 0;
00133     String cmd = options.GetArg(curArg++);
00134     String dataSetName = options.GetArg(curArg++);
00135     String conceptSet = options.GetArg(curArg++);
00136 
00137     RawDataSet* dataSet = MakeRawDataSet(dataSetName);
00138     KeywordListLocator loc(dataSet->GetLocator(), conceptSet);
00139     KeywordList concepts = *(KeywordListRepository().Get(loc));
00140 
00141 
00142     int start = options.GetInt("start");
00143     int number = options.GetInt("number");
00144     String concept = options.GetString("concept");
00145     if (!concept.empty())
00146     {
00147         for (int i=0 ; i<concepts.size() ; i++)
00148         {
00149             if (concepts[i] == concept)
00150             {
00151                 start = i;
00152                 number = 1;
00153             }
00154         }
00155     }
00156     if (number == -1)
00157         number = concepts.size();
00158     if (start + number >= concepts.size())
00159         number = concepts.size() - start;
00160     int last = start + number;
00161     int numProcs = Link::Mpi::NrProcs();
00162     int myId = Link::Mpi::MyId();
00163     int taskSize = number / numProcs;
00164     int restSize = number % numProcs;
00165     int cur = start;
00166     for (int i=0 ; i<=myId ; i++)
00167     {
00168         start = cur;
00169         number = taskSize;
00170         if (--restSize >= 0)
00171             number++;
00172         if (start + number > last)
00173             number = last - start;
00174         cur += number;
00175     }
00176     ILOG_INFO("Process " << myId << " of " << numProcs << " is doing concepts "
00177               << start << " till " << start + number);
00178 
00179     ILOG_INFO_HEADNODE("conceptset command : " << cmd);
00180     for (int i=start ; i<start+number ; i++)
00181     {
00182         ILOG_INFO("doing concept " << concepts[i]);
00183         ILOG_NDC_PUSH(concepts[i]);
00184         if (cmd == "approxfikmodel")
00185             DoApproxFikModel(dataSet, conceptSet, concepts[i], options, curArg);
00186         else
00187         {
00188             ILOG_ERROR("Unknown command : " << cmd);
00189             ILOG_NDC_POP;
00190             break;
00191         }
00192         ILOG_NDC_POP;
00193     }
00194 
00195     int nrOfErrors = ILOG_ERROR_COUNT;
00196     ILOG_DEBUG("nr of errors collected = " << nrOfErrors);
00197 
00198     nrOfErrors = Link::Mpi::ReduceSum(nrOfErrors);
00199     ILOG_INFO_HEADNODE("Root: total nr error = " << nrOfErrors);
00200     Link::Mpi::Finalize();
00201 
00202     return nrOfErrors;
00203 }

Here is the call graph for this function:


Generated on Thu Jan 13 09:14:39 2011 for ImpalaSrc by  doxygen 1.5.1