Пример #1
0
int main(int argc, char** argv)
{
	skata1 = 0;
	skata2 = 0.0;

	Query1Eval* eval = new Query1Eval();
	dbgassert(eval != 0);

	Config cfg;

	if (argc < 2) {
		cout << "ERROR: Configuration file not specified." << endl;
		cout << "Usage: " << argv[0] << " conf-file" << endl;
		return 2;
	}

	cfg.readFile(argv[1]);

	Query::UserDefinedOpMapT opmap;
	opmap["q1eval"] = eval;

	dbgassert(opmap.find("q1eval") != opmap.end());
	dbgassert(opmap.find("q1eval")->second == eval);

	// build plan tree
	q.create(cfg, opmap);

	dbgassert(opmap.find("q1eval") != opmap.end());
	dbgassert(opmap.find("q1eval")->second == 0);

#ifdef QUERYPLAN
	cout << "---------- QUERY PLAN START ----------" << endl;
	PrettyPrinterVisitor ppv;
	q.accept(&ppv);
	cout << "----------- QUERY PLAN END -----------" << endl;
#endif

	int threads = cfg.getRoot()["merge"]["threads"];

	q.threadInit();

	compute();

#ifdef QUERYPLAN
	cout << "---------- QUERY PLAN START ----------" << endl;
	q.accept(&ppv);
	cout << "----------- QUERY PLAN END -----------" << endl;
#endif

	q.threadClose();

	q.destroy();

	cout << "Threads: " << threads << endl;
	cout << "Cycles: " << timer << endl;
	cout << "Checksum: (" << skata1 << ", " << fixed << skata2 << ")" << endl;

	return 0;
}
Пример #2
0
int main(int argc, char** argv)
{
	Config cfg;

	if (argc < 2) {
		cout << "ERROR: Configuration file not specified." << endl;
		cout << "Usage: " << argv[0] << " conf-file" << endl;
		return 2;
	}

	cfg.readFile(argv[1]);
	q.create(cfg);

	q.threadInit();

	compute();

#ifdef QUERYPLAN
	cout << "---------- QUERY PLAN START ----------" << endl;
	PrettyPrinterVisitor ppv;
	q.accept(&ppv);
	cout << "----------- QUERY PLAN END -----------" << endl;
#endif

	cout << "Max Memory Allocated (bytes): " << TotalBytesAllocated << endl;

#ifdef STATS_ALLOCATE
	dbgPrintAllocations(q);
#endif

	q.threadClose();

	q.destroy();

	return 0;
}